ZGlmZiAtLWdpdCBhL2RvYy9odG1sL2NhbGxiYWNrcy5odG1sIGIvZG9jL2h0bWwvY2FsbGJhY2tzLmh0bWwKaW5kZXggMTgwOTg0Ny4uYTAyY2ZlYSAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvY2FsbGJhY2tzLmh0bWwKKysrIGIvZG9jL2h0bWwvY2FsbGJhY2tzLmh0bWwKQEAgLTU2LDcgKzU2LDcgQEAKIFB5dGhvbiB0aHJlYWRzIHRvIGJlIGFibGUgdG8gZG8gb3RoZXIgdGhpbmdzLiBUaGUgcmVhbCB0cm91YmxlIGlzIGlmIHlvdSd2ZQogcmVsZWFzZWQgdGhlIHRocmVhZCBsb2NrIHRvIGRvIGEgcG90ZW50aWFsbHkgYmxvY2tpbmcgb3BlcmF0aW9uLCBhbmQgdGhlCiBvcGVyYXRpb24gY2FsbHMgYSBjYWxsYmFjay4gVGhlbiB3ZSBtdXN0IHRha2UgdGhlIHRocmVhZCBsb2NrIGJhY2s8QSBOQU1FPSJ0ZXgyaHRtbDYiCi0gIEhSRUY9IiNmb290OTYyIj48U1VQPjU8L1NVUD48L0E+LgorICBIUkVGPSIjZm9vdDk2NiI+PFNVUD41PC9TVVA+PC9BPi4KIAogPFA+CiBUaGVyZSBhcmUgdHdvIHNvbHV0aW9ucyB0byB0aGUgZmlyc3QgcHJvYmxlbSwgYm90aCBvZiB3aGljaCBhcmUgbmVjZXNzYXJ5LiBUaGUKQEAgLTg0LDcgKzg0LDcgQEAKIDxQPgogPEJSPjxIUj48SDQ+Rm9vdG5vdGVzPC9IND4KIDxETD4KLTxEVD48QSBOQU1FPSJmb290OTYyIj4uLi4gYmFjazwvQT48QQorPERUPjxBIE5BTUU9ImZvb3Q5NjYiPi4uLiBiYWNrPC9BPjxBCiAgaHJlZj0iY2FsbGJhY2tzLmh0bWwjdGV4Mmh0bWw2Ij48U1VQPjU8L1NVUD48L0E+PC9EVD4KIDxERD5JJ20KIG5vdCBzdXJlIHdoeSB0aGlzIGlzIG5lY2Vzc2FyeSwgYnV0IG90aGVyd2lzZSBJIGdldCBhIHNlZ21lbnRhdGlvbiB2aW9sYXRpb24gb24KZGlmZiAtLWdpdCBhL2RvYy9odG1sL2ludHJvLmh0bWwgYi9kb2MvaHRtbC9pbnRyby5odG1sCmluZGV4IGU3MWZiMzYuLjJlN2IzNDAgMTAwNjQ0Ci0tLSBhL2RvYy9odG1sL2ludHJvLmh0bWwKKysrIGIvZG9jL2h0bWwvaW50cm8uaHRtbApAQCAtNjAsOSArNjAsOSBAQAogdW5mb3J0dW5hdGVseSBpdHMgZXJyb3IgaGFuZGxpbmcgc3lzdGVtIGRvZXMgbm90IHNlZW0gdG8gYmUgZmluaXNoZWQsCiBlc3BlY2lhbGx5IGZvciBub24tYmxvY2tpbmcgSS9PLiAgSSB0aGluayB0aGF0IG11Y2ggb2YgdGhlIHJlYXNvbiBmb3IgdGhpcwogaXMgdGhhdCBNMkNyeXB0bzxBIE5BTUU9InRleDJodG1sMSIKLSAgSFJFRj0iI2Zvb3Q5MjIiPjxTVVA+MTwvU1VQPjwvQT4gaXMKKyAgSFJFRj0iI2Zvb3Q5MjYiPjxTVVA+MTwvU1VQPjwvQT4gaXMKIGRldmVsb3BlZCB1c2luZyBTV0lHPEEgTkFNRT0idGV4Mmh0bWwyIgotICBIUkVGPSIjZm9vdDkyMyI+PFNVUD4yPC9TVVA+PC9BPi4gIFRoaXMKKyAgSFJFRj0iI2Zvb3Q5MjciPjxTVVA+MjwvU1VQPjwvQT4uICBUaGlzCiBtYWtlcyBpdCBhd2t3YXJkIHRvIGNyZWF0ZSBmdW5jdGlvbnMgdGhhdCBlLmcuIGNhbiByZXR1cm4gYm90aCBhbiBpbnRlZ2VyIGFuZAogTlVMTCBzaW5jZSAoYXMgZmFyIGFzIEkga25vdykgeW91IGJhc2ljYWxseSB3cml0ZSBDIGZ1bmN0aW9ucyBhbmQgU1dJRyBtYWtlcwogd3JhcHBlciBmdW5jdGlvbnMgdGhhdCBwYXJzZXMgdGhlIFB5dGhvbiBhcmd1bWVudCBsaXN0IGFuZCBjYWxscyB5b3VyIEMKQEAgLTcxLDEyICs3MSwxMiBAQAogPFA+CiA8QlI+PEhSPjxIND5Gb290bm90ZXM8L0g0PgogPERMPgotPERUPjxBIE5BTUU9ImZvb3Q5MjIiPi4uLiBNMkNyeXB0bzwvQT48QQorPERUPjxBIE5BTUU9ImZvb3Q5MjYiPi4uLiBNMkNyeXB0bzwvQT48QQogIGhyZWY9ImludHJvLmh0bWwjdGV4Mmh0bWwxIj48U1VQPjE8L1NVUD48L0E+PC9EVD4KIDxERD5TZWUgPGEgY2xhc3M9InVybCIgaHJlZj0iaHR0cDovL3d3dy5wb3N0MS5jb20vaG9tZS9uZ3BzL20yLyI+aHR0cDovL3d3dy5wb3N0MS5jb20vaG9tZS9uZ3BzL20yLzwvYT4KIAogPC9ERD4KLTxEVD48QSBOQU1FPSJmb290OTIzIj4uLi4gU1dJRzwvQT48QQorPERUPjxBIE5BTUU9ImZvb3Q5MjciPi4uLiBTV0lHPC9BPjxBCiAgaHJlZj0iaW50cm8uaHRtbCN0ZXgyaHRtbDIiPjxTVVA+MjwvU1VQPjwvQT48L0RUPgogPEREPlNlZSA8YSBjbGFzcz0idXJsIiBocmVmPSJodHRwOi8vc3dpZy5zb3VyY2Vmb3JnZS5uZXQvIj5odHRwOi8vc3dpZy5zb3VyY2Vmb3JnZS5uZXQvPC9hPgogCmRpZmYgLS1naXQgYS9kb2MvaHRtbC9vcGVuc3NsLTUwOWV4dC5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC01MDlleHQuaHRtbAppbmRleCA5M2MxMGM1Li5lY2E4YjQ2IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9vcGVuc3NsLTUwOWV4dC5odG1sCisrKyBiL2RvYy9odG1sL29wZW5zc2wtNTA5ZXh0Lmh0bWwKQEAgLTUyLDcgKzUyLDcgQEAKIFg1MDlFeHRlbnNpb24gb2JqZWN0cyBjdXJyZW50bHkgb25seSBoYXZlIG9uZSBtZXRob2Q6CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzknPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfY3JpdGljYWw8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTgwJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2NyaXRpY2FsPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXR1cm4gdGhlIGNyaXRpY2FsIGZpZWxkIG9mIHRoZSBleHRlbnNpb24gb2JqZWN0LgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wtY29ubmVjdGlvbi5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC1jb25uZWN0aW9uLmh0bWwKaW5kZXggNTU0ODc5Yy4uZGEzYjdlZiAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvb3BlbnNzbC1jb25uZWN0aW9uLmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC1jb25uZWN0aW9uLmh0bWwKQEAgLTUxLDcgKzUxLDcgQEAKIENvbm5lY3Rpb24gb2JqZWN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDInPjx0dCBjbGFzcz0nbWV0aG9kJz5hY2NlcHQ8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0Myc+PHR0IGNsYXNzPSdtZXRob2QnPmFjY2VwdDwvdHQ+PC9hPjwvYj4oKQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmFjY2VwdDwvdHQ+IG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBzb2NrZXQgYW5kIHNldCB1cCBTU0wgb24gdGhlCiByZXR1cm5lZCBzb2NrZXQsIHVzaW5nIHRoZSBDb250ZXh0IG9iamVjdCBzdXBwbGllZCB0byB0aGlzIENvbm5lY3Rpb24gb2JqZWN0IGF0CkBAIC02MSwyMCArNjEsMjAgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQzJz48dHQgY2xhc3M9J21ldGhvZCc+YmluZDwvdHQ+PC9hPjwvYj4oPHZhcj5hZGRyZXNzPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQ0Jz48dHQgY2xhc3M9J21ldGhvZCc+YmluZDwvdHQ+PC9hPjwvYj4oPHZhcj5hZGRyZXNzPC92YXI+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmJpbmQ8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDQnPjx0dCBjbGFzcz0nbWV0aG9kJz5jbG9zZTwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQ1Jz48dHQgY2xhc3M9J21ldGhvZCc+Y2xvc2U8L3R0PjwvYT48L2I+KCkKIDxkZD4KIENhbGwgdGhlIDx0dCBjbGFzcz0ibWV0aG9kIj5jbG9zZTwvdHQ+IG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBzb2NrZXQuIE5vdGU6IElmIHlvdSB3YW50CiBjb3JyZWN0IFNTTCBjbG9zdXJlLCB5b3UgbmVlZCB0byBjYWxsIHRoZSA8dHQgY2xhc3M9Im1ldGhvZCI+c2h1dGRvd248L3R0PiBtZXRob2QgZmlyc3QuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0NSc+PHR0IGNsYXNzPSdtZXRob2QnPmNvbm5lY3Q8L3R0PjwvYT48L2I+KDx2YXI+YWRkcmVzczwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0Nic+PHR0IGNsYXNzPSdtZXRob2QnPmNvbm5lY3Q8L3R0PjwvYT48L2I+KDx2YXI+YWRkcmVzczwvdmFyPikKIDxkZD4KIENhbGwgdGhlIDx0dCBjbGFzcz0ibWV0aG9kIj5jb25uZWN0PC90dD4gbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBhbmQgc2V0IHVwIFNTTCBvbiB0aGUKIHNvY2tldCwgdXNpbmcgdGhlIENvbnRleHQgb2JqZWN0IHN1cHBsaWVkIHRvIHRoaXMgQ29ubmVjdGlvbiBvYmplY3QgYXQKQEAgLTgyLDcgKzgyLDcgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQ2Jz48dHQgY2xhc3M9J21ldGhvZCc+Y29ubmVjdF9leDwvdHQ+PC9hPjwvYj4oPHZhcj5hZGRyZXNzPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQ3Jz48dHQgY2xhc3M9J21ldGhvZCc+Y29ubmVjdF9leDwvdHQ+PC9hPjwvYj4oPHZhcj5hZGRyZXNzPC92YXI+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmNvbm5lY3RfZXg8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0IGFuZCBzZXQgdXAgU1NMIG9uCiB0aGUgc29ja2V0LCB1c2luZyB0aGUgQ29udGV4dCBvYmplY3Qgc3VwcGxpZWQgdG8gdGhpcyBDb25uZWN0aW9uIG9iamVjdCBhdApAQCAtOTEsNyArOTEsNyBAQAogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDcnPjx0dCBjbGFzcz0nbWV0aG9kJz5kb19oYW5kc2hha2U8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0OCc+PHR0IGNsYXNzPSdtZXRob2QnPmRvX2hhbmRzaGFrZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUGVyZm9ybSBhbiBTU0wgaGFuZHNoYWtlICh1c3VhbGx5IGNhbGxlZCBhZnRlciA8dHQgY2xhc3M9Im1ldGhvZCI+cmVuZWdvdGlhdGU8L3R0PiBvciBvbmUgb2YKIDx0dCBjbGFzcz0ibWV0aG9kIj5zZXRfYWNjZXB0X3N0YXRlPC90dD4gb3IgPHR0IGNsYXNzPSJtZXRob2QiPnNldF9hY2NlcHRfc3RhdGU8L3R0PikuIFRoaXMgY2FuIHJhaXNlIHRoZQpAQCAtOTksMjUgKzk5LDI1IEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0OCc+PHR0IGNsYXNzPSdtZXRob2QnPmZpbGVubzwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQ5Jz48dHQgY2xhc3M9J21ldGhvZCc+ZmlsZW5vPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgZmlsZSBkZXNjcmlwdG9yIG51bWJlciBmb3IgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDknPjx0dCBjbGFzcz0nbWV0aG9kJz5saXN0ZW48L3R0PjwvYT48L2I+KDx2YXI+YmFja2xvZzwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1MCc+PHR0IGNsYXNzPSdtZXRob2QnPmxpc3RlbjwvdHQ+PC9hPjwvYj4oPHZhcj5iYWNrbG9nPC92YXI+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmxpc3RlbjwvdHQ+IG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBzb2NrZXQuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1MCc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9hcHBfZGF0YTwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTUxJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2FwcF9kYXRhPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSBhcHBsaWNhdGlvbiBkYXRhIGFzIHNldCBieSA8dHQgY2xhc3M9Im1ldGhvZCI+c2V0X2FwcF9kYXRhPC90dD4uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1MSc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9jaXBoZXJfbGlzdDwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTUyJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2NpcGhlcl9saXN0PC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBjaXBoZXJzIHVzZWQgYnkgdGhlIENvbm5lY3Rpb24gb2JqZWN0LiBXQVJOSU5HOiBUaGlzIEFQSQogaGFzIGNoYW5nZWQuIEl0IHVzZWQgdG8gdGFrZSBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgYW5kIGp1c3QgcmV0dXJuIGEgc3RyaW5nLApAQCAtMTI1LDQ0ICsxMjUsNDQgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTUyJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2NvbnRleHQ8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1Myc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9jb250ZXh0PC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgQ29udGV4dCBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQ29ubmVjdGlvbi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTUzJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3BlZXJfY2VydGlmaWNhdGU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1NCc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9wZWVyX2NlcnRpZmljYXRlPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgb3RoZXIgc2lkZSdzIGNlcnRpZmljYXRlIChpZiBhbnkpCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1NCc+PHR0IGNsYXNzPSdtZXRob2QnPmdldHBlZXJuYW1lPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTUnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRwZWVybmFtZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmdldHBlZXJuYW1lPC90dD4gbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIHNvY2tldC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTU1Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0c29ja25hbWU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1Nic+PHR0IGNsYXNzPSdtZXRob2QnPmdldHNvY2tuYW1lPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBDYWxsIHRoZSA8dHQgY2xhc3M9Im1ldGhvZCI+Z2V0c29ja25hbWU8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTYnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRzb2Nrb3B0PC90dD48L2E+PC9iPig8dmFyPmxldmVsLCBvcHRuYW1lPC92YXI+PGJpZz5bPC9iaWc+PHZhcj4sIGJ1ZmxlbjwvdmFyPjxiaWc+XTwvYmlnPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1Nyc+PHR0IGNsYXNzPSdtZXRob2QnPmdldHNvY2tvcHQ8L3R0PjwvYT48L2I+KDx2YXI+bGV2ZWwsIG9wdG5hbWU8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgYnVmbGVuPC92YXI+PGJpZz5dPC9iaWc+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmdldHNvY2tvcHQ8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTcnPjx0dCBjbGFzcz0nbWV0aG9kJz5wZW5kaW5nPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTgnPjx0dCBjbGFzcz0nbWV0aG9kJz5wZW5kaW5nPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgY2FuIGJlIHNhZmVseSByZWFkIGZyb20gdGhlIFNTTCBidWZmZXIKICg8aT5ub3Q8L2k+IHRoZSB1bmRlcmx5aW5nIHRyYW5zcG9ydCBidWZmZXIpLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTgnPjx0dCBjbGFzcz0nbWV0aG9kJz5yZWN2PC90dD48L2E+PC9iPig8dmFyPmJ1ZnNpemU8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNTknPjx0dCBjbGFzcz0nbWV0aG9kJz5yZWN2PC90dD48L2E+PC9iPig8dmFyPmJ1ZnNpemU8L3Zhcj4pCiA8ZGQ+CiBSZWNlaXZlIGRhdGEgZnJvbSB0aGUgQ29ubmVjdGlvbi4gVGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlCiBkYXRhIHJlY2VpdmVkLiBUaGUgbWF4aW11bSBhbW91bnQgb2YgZGF0YSB0byBiZSByZWNlaXZlZCBhdCBvbmNlLCBpcyBzcGVjaWZpZWQKQEAgLTE3MCwyMCArMTcwLDIwIEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE1OSc+PHR0IGNsYXNzPSdtZXRob2QnPnJlbmVnb3RpYXRlPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjAnPjx0dCBjbGFzcz0nbWV0aG9kJz5yZW5lZ290aWF0ZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmVuZWdvdGlhdGUgdGhlIFNTTCBzZXNzaW9uLiBDYWxsIHRoaXMgaWYgeW91IHdpc2ggdG8gY2hhbmdlIGNpcGhlciBzdWl0ZXMgb3IKIGFueXRoaW5nIGxpa2UgdGhhdC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTYwJz48dHQgY2xhc3M9J21ldGhvZCc+c2VuZDwvdHQ+PC9hPjwvYj4oPHZhcj5zdHJpbmc8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjEnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZW5kPC90dD48L2E+PC9iPig8dmFyPnN0cmluZzwvdmFyPikKIDxkZD4KIFNlbmQgdGhlIDx2YXI+c3RyaW5nPC92YXI+IGRhdGEgdG8gdGhlIENvbm5lY3Rpb24uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2MSc+PHR0IGNsYXNzPSdtZXRob2QnPnNlbmRhbGw8L3R0PjwvYT48L2I+KDx2YXI+c3RyaW5nPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTYyJz48dHQgY2xhc3M9J21ldGhvZCc+c2VuZGFsbDwvdHQ+PC9hPjwvYj4oPHZhcj5zdHJpbmc8L3Zhcj4pCiA8ZGQ+CiBTZW5kIGFsbCBvZiB0aGUgPHZhcj5zdHJpbmc8L3Zhcj4gZGF0YSB0byB0aGUgQ29ubmVjdGlvbi4gVGhpcyBjYWxscyA8dHQgY2xhc3M9Im1ldGhvZCI+c2VuZDwvdHQ+CiByZXBlYXRlZGx5IHVudGlsIGFsbCBkYXRhIGlzIHNlbnQuIElmIGFuIGVycm9yIG9jY3VycywgaXQncyBpbXBvc3NpYmxlIHRvIHRlbGwKQEAgLTE5MSw0MCArMTkxLDQwIEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2Mic+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9hY2NlcHRfc3RhdGU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2Myc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9hY2NlcHRfc3RhdGU8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFNldCB0aGUgY29ubmVjdGlvbiB0byB3b3JrIGluIHNlcnZlciBtb2RlLiBUaGUgaGFuZHNoYWtlIHdpbGwgYmUgaGFuZGxlZAogYXV0b21hdGljYWxseSBieSByZWFkL3dyaXRlLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjMnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfYXBwX2RhdGE8L3R0PjwvYT48L2I+KDx2YXI+ZGF0YTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2NCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9hcHBfZGF0YTwvdHQ+PC9hPjwvYj4oPHZhcj5kYXRhPC92YXI+KQogPGRkPgogQXNzb2NpYXRlIDx2YXI+ZGF0YTwvdmFyPiB3aXRoIHRoaXMgQ29ubmVjdGlvbiBvYmplY3QuIDx2YXI+ZGF0YTwvdmFyPiBjYW4gYmUgcmV0cmlldmVkCiBsYXRlciB1c2luZyB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmdldF9hcHBfZGF0YTwvdHQ+IG1ldGhvZC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTY0Jz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X2Nvbm5lY3Rfc3RhdGU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2NSc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9jb25uZWN0X3N0YXRlPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBTZXQgdGhlIGNvbm5lY3Rpb24gdG8gd29yayBpbiBjbGllbnQgbW9kZS4gVGhlIGhhbmRzaGFrZSB3aWxsIGJlIGhhbmRsZWQKIGF1dG9tYXRpY2FsbHkgYnkgcmVhZC93cml0ZS4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTY1Jz48dHQgY2xhc3M9J21ldGhvZCc+c2V0YmxvY2tpbmc8L3R0PjwvYT48L2I+KDx2YXI+ZmxhZzwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2Nic+PHR0IGNsYXNzPSdtZXRob2QnPnNldGJsb2NraW5nPC90dD48L2E+PC9iPig8dmFyPmZsYWc8L3Zhcj4pCiA8ZGQ+CiBDYWxsIHRoZSA8dHQgY2xhc3M9Im1ldGhvZCI+c2V0YmxvY2tpbmc8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjYnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRzb2Nrb3B0PC90dD48L2E+PC9iPig8dmFyPmxldmVsLCBvcHRuYW1lLCB2YWx1ZTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2Nyc+PHR0IGNsYXNzPSdtZXRob2QnPnNldHNvY2tvcHQ8L3R0PjwvYT48L2I+KDx2YXI+bGV2ZWwsIG9wdG5hbWUsIHZhbHVlPC92YXI+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPnNldHNvY2tvcHQ8L3R0PiBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgc29ja2V0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjcnPjx0dCBjbGFzcz0nbWV0aG9kJz5zaHV0ZG93bjwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTY4Jz48dHQgY2xhc3M9J21ldGhvZCc+c2h1dGRvd248L3R0PjwvYT48L2I+KCkKIDxkZD4KIFNlbmQgdGhlIHNodXRkb3duIG1lc3NhZ2UgdG8gdGhlIENvbm5lY3Rpb24uIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2h1dGRvd24KIG1lc3NhZ2UgZXhjaGFuZ2UgaXMgY29tcGxldGVkIGFuZCBmYWxzZSBvdGhlcndpc2UgKGluIHdoaWNoIGNhc2UgeW91IGNhbGwKQEAgLTIzMyw0MCArMjMzLDQwIEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE2OCc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9zaHV0ZG93bjwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTY5Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3NodXRkb3duPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBHZXQgdGhlIHNodXRkb3duIHN0YXRlIG9mIHRoZSBDb25uZWN0aW9uLiAgUmV0dXJucyBhIGJpdHZlY3RvciBvZiBlaXRoZXIgb3IKIGJvdGggb2YgPHZhcj5TRU5UX1NIVVRET1dOPC92YXI+IGFuZCA8dmFyPlJFQ0VJVkVEX1NIVVRET1dOPC92YXI+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNjknPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfc2h1dGRvd248L3R0PjwvYT48L2I+KDx2YXI+c3RhdGU8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNzAnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfc2h1dGRvd248L3R0PjwvYT48L2I+KDx2YXI+c3RhdGU8L3Zhcj4pCiA8ZGQ+CiBTZXQgdGhlIHNodXRkb3duIHN0YXRlIG9mIHRoZSBDb25uZWN0aW9uLiAgPHZhcj5zdGF0ZTwvdmFyPiBpcyBhIGJpdHZlY3RvciBvZgogZWl0aGVyIG9yIGJvdGggb2YgPHZhcj5TRU5UX1NIVVRET1dOPC92YXI+IGFuZCA8dmFyPlJFQ0VJVkVEX1NIVVRET1dOPC92YXI+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNzAnPjx0dCBjbGFzcz0nbWV0aG9kJz5zb2NrX3NodXRkb3duPC90dD48L2E+PC9iPig8dmFyPmhvdzwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE3MSc+PHR0IGNsYXNzPSdtZXRob2QnPnNvY2tfc2h1dGRvd248L3R0PjwvYT48L2I+KDx2YXI+aG93PC92YXI+KQogPGRkPgogQ2FsbCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPnNodXRkb3duPC90dD4gbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIHNvY2tldC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTcxJz48dHQgY2xhc3M9J21ldGhvZCc+c3RhdGVfc3RyaW5nPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNzInPjx0dCBjbGFzcz0nbWV0aG9kJz5zdGF0ZV9zdHJpbmc8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHJpZXZlIGEgdmVyYm9zZSBzdHJpbmcgZGV0YWlsaW5nIHRoZSBzdGF0ZSBvZiB0aGUgQ29ubmVjdGlvbi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTcyJz48dHQgY2xhc3M9J21ldGhvZCc+d2FudF9yZWFkPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNzMnPjx0dCBjbGFzcz0nbWV0aG9kJz53YW50X3JlYWQ8L3R0PjwvYT48L2I+KCkKIDxkZD4KIENoZWNrcyBpZiBtb3JlIGRhdGEgaGFzIHRvIGJlIHJlYWQgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyIHRvIGNvbXBsZXRlIGFuCiBvcGVyYXRpb24uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE3Myc+PHR0IGNsYXNzPSdtZXRob2QnPndhbnRfd3JpdGU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE3NCc+PHR0IGNsYXNzPSdtZXRob2QnPndhbnRfd3JpdGU8L3R0PjwvYT48L2I+KCkKIDxkZD4KIENoZWNrcyBpZiB0aGVyZSBpcyBkYXRhIHRvIHdyaXRlIHRvIHRoZSB0cmFuc3BvcnQgbGF5ZXIgdG8gY29tcGxldGUgYW4KIG9wZXJhdGlvbi4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wtY29udGV4dC5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC1jb250ZXh0Lmh0bWwKaW5kZXggOWVmMDQ2Yy4uNWRlOGVhZiAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvb3BlbnNzbC1jb250ZXh0Lmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC1jb250ZXh0Lmh0bWwKQEAgLTUyLDcgKzUyLDcgQEAKIENvbnRleHQgb2JqZWN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMTgnPjx0dCBjbGFzcz0nbWV0aG9kJz5jaGVja19wcml2YXRla2V5PC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMTknPjx0dCBjbGFzcz0nbWV0aG9kJz5jaGVja19wcml2YXRla2V5PC90dD48L2E+PC9iPigpCiA8ZGQ+CiBDaGVjayBpZiB0aGUgcHJpdmF0ZSBrZXkgKGxvYWRlZCB3aXRoIDx0dCBjbGFzcz0ibWV0aG9kIj51c2VfcHJpdmF0ZWtleTxiaWc+WzwvYmlnPl9maWxlPGJpZz5dPC9iaWc+PC90dD4pCiBtYXRjaGVzIHRoZSBjZXJ0aWZpY2F0ZSAobG9hZGVkIHdpdGggPHR0IGNsYXNzPSJtZXRob2QiPnVzZV9jZXJ0aWZpY2F0ZTxiaWc+WzwvYmlnPl9maWxlPGJpZz5dPC9iaWc+PC90dD4pLgpAQCAtNjAsMTMgKzYwLDEzIEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTExOSc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9hcHBfZGF0YTwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTIwJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2FwcF9kYXRhPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSBhcHBsaWNhdGlvbiBkYXRhIGFzIHNldCBieSA8dHQgY2xhc3M9Im1ldGhvZCI+c2V0X2FwcF9kYXRhPC90dD4uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEyMCc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9jZXJ0X3N0b3JlPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjEnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfY2VydF9zdG9yZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmV0cmlldmUgdGhlIGNlcnRpZmljYXRlIHN0b3JlIChhIFg1MDlTdG9yZSBvYmplY3QpIHRoYXQgdGhlIGNvbnRleHQgdXNlcy4KIFRoaXMgY2FuIGJlIHVzZWQgdG8gYWRkICJ0cnVzdGVkIiBjZXJ0aWZpY2F0ZXMgd2l0aG91dCB1c2luZyB0aGUuCkBAIC03NCw2MSArNzQsNjEgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTIxJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3RpbWVvdXQ8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEyMic+PHR0IGNsYXNzPSdtZXRob2QnPmdldF90aW1lb3V0PC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSBzZXNzaW9uIHRpbWVvdXQsIGFzIHNldCBieSA8dHQgY2xhc3M9Im1ldGhvZCI+c2V0X3RpbWVvdXQ8L3R0Pi4gVGhlIGRlZmF1bHQgaXMgMzAwCiBzZWNvbmRzLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjInPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfdmVyaWZ5X2RlcHRoPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjMnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfdmVyaWZ5X2RlcHRoPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXRyaWV2ZSB0aGUgQ29udGV4dCBvYmplY3QncyB2ZXJpZnkgZGVwdGgsIGFzIHNldCBieQogPHR0IGNsYXNzPSJtZXRob2QiPnNldF92ZXJpZnlfZGVwdGg8L3R0Pi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTIzJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3ZlcmlmeV9tb2RlPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjQnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfdmVyaWZ5X21vZGU8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHJpZXZlIHRoZSBDb250ZXh0IG9iamVjdCdzIHZlcmlmeSBtb2RlLCBhcyBzZXQgYnkgPHR0IGNsYXNzPSJtZXRob2QiPnNldF92ZXJpZnlfbW9kZTwvdHQ+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjQnPjx0dCBjbGFzcz0nbWV0aG9kJz5sb2FkX2NsaWVudF9jYTwvdHQ+PC9hPjwvYj4oPHZhcj5wZW1maWxlPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTI1Jz48dHQgY2xhc3M9J21ldGhvZCc+bG9hZF9jbGllbnRfY2E8L3R0PjwvYT48L2I+KDx2YXI+cGVtZmlsZTwvdmFyPikKIDxkZD4KIFJlYWQgYSBmaWxlIHdpdGggUEVNLWZvcm1hdHRlZCBjZXJ0aWZpY2F0ZXMgdGhhdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGNsaWVudAogd2hlbiByZXF1ZXN0aW5nIGEgY2xpZW50IGNlcnRpZmljYXRlLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjUnPjx0dCBjbGFzcz0nbWV0aG9kJz5sb2FkX3ZlcmlmeV9sb2NhdGlvbnM8L3R0PjwvYT48L2I+KDx2YXI+cGVtZmlsZTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEyNic+PHR0IGNsYXNzPSdtZXRob2QnPmxvYWRfdmVyaWZ5X2xvY2F0aW9uczwvdHQ+PC9hPjwvYj4oPHZhcj5wZW1maWxlPC92YXI+KQogPGRkPgogU3BlY2lmeSB3aGVyZSBDQSBjZXJ0aWZpY2F0ZXMgZm9yIHZlcmlmaWNhdGlvbiBwdXJwb3NlcyBhcmUgbG9jYXRlZC4gVGhlc2UgYXJlCiB0cnVzdGVkIGNlcnRpZmljYXRlcy4gTm90ZSB0aGF0IHRoZSBjZXJ0aWZpY2F0ZXMgaGF2ZSB0byBiZSBpbiBQRU0gZm9ybWF0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjYnPjx0dCBjbGFzcz0nbWV0aG9kJz5sb2FkX3RtcF9kaDwvdHQ+PC9hPjwvYj4oPHZhcj5kaGZpbGU8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjcnPjx0dCBjbGFzcz0nbWV0aG9kJz5sb2FkX3RtcF9kaDwvdHQ+PC9hPjwvYj4oPHZhcj5kaGZpbGU8L3Zhcj4pCiA8ZGQ+CiBMb2FkIHBhcmFtZXRlcnMgZm9yIEVwaGVtZXJhbCBEaWZmaWUtSGVsbG1hbiBmcm9tIDx2YXI+ZGhmaWxlPC92YXI+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjcnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfYXBwX2RhdGE8L3R0PjwvYT48L2I+KDx2YXI+ZGF0YTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEyOCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9hcHBfZGF0YTwvdHQ+PC9hPjwvYj4oPHZhcj5kYXRhPC92YXI+KQogPGRkPgogQXNzb2NpYXRlIDx2YXI+ZGF0YTwvdmFyPiB3aXRoIHRoaXMgQ29udGV4dCBvYmplY3QuIDx2YXI+ZGF0YTwvdmFyPiBjYW4gYmUgcmV0cmlldmVkCiBsYXRlciB1c2luZyB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPmdldF9hcHBfZGF0YTwvdHQ+IG1ldGhvZC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTI4Jz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X2NpcGhlcl9saXN0PC90dD48L2E+PC9iPig8dmFyPmNpcGhlcnM8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjknPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfY2lwaGVyX2xpc3Q8L3R0PjwvYT48L2I+KDx2YXI+Y2lwaGVyczwvdmFyPikKIDxkZD4KIFNldCB0aGUgbGlzdCBvZiBjaXBoZXJzIHRvIGJlIHVzZWQgaW4gdGhpcyBjb250ZXh0LiBTZWUgdGhlIE9wZW5TU0wgbWFudWFsIGZvcgogbW9yZSBpbmZvcm1hdGlvbiAoZS5nLiBjaXBoZXJzKDEpKQogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMjknPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfaW5mb19jYWxsYmFjazwvdHQ+PC9hPjwvYj4oPHZhcj5jYWxsYmFjazwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzMCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9pbmZvX2NhbGxiYWNrPC90dD48L2E+PC9iPig8dmFyPmNhbGxiYWNrPC92YXI+KQogPGRkPgogU2V0IHRoZSBpbmZvcm1hdGlvbiBjYWxsYmFjayB0byA8dmFyPmNhbGxiYWNrPC92YXI+LiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiBmcm9tIHRpbWUgdG8gdGltZSBkdXJpbmcgU1NMIGhhbmRzaGFrZXMuCkBAIC0xMzksMTQgKzEzOSwxNCBAQAogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzAnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfb3B0aW9uczwvdHQ+PC9hPjwvYj4oPHZhcj5vcHRpb25zPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTMxJz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X29wdGlvbnM8L3R0PjwvYT48L2I+KDx2YXI+b3B0aW9uczwvdmFyPikKIDxkZD4KIEFkZCBTU0wgb3B0aW9ucy4gT3B0aW9ucyB5b3UgaGF2ZSBzZXQgYmVmb3JlIGFyZSBub3QgY2xlYXJlZCEKIFRoaXMgbWV0aG9kIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIDx0dCBjbGFzcz0iY29uc3RhbnQiPk9QXyo8L3R0PiBjb25zdGFudHMuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzMSc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9wYXNzd2RfY2I8L3R0PjwvYT48L2I+KDx2YXI+Y2FsbGJhY2s8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgdXNlcmRhdGE8L3Zhcj48YmlnPl08L2JpZz4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzInPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfcGFzc3dkX2NiPC90dD48L2E+PC9iPig8dmFyPmNhbGxiYWNrPC92YXI+PGJpZz5bPC9iaWc+PHZhcj4sIHVzZXJkYXRhPC92YXI+PGJpZz5dPC9iaWc+KQogPGRkPgogU2V0IHRoZSBwYXNzcGhyYXNlIGNhbGxiYWNrIHRvIDx2YXI+Y2FsbGJhY2s8L3Zhcj4uIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKIHdoZW4gYSBwcml2YXRlIGtleSB3aXRoIGEgcGFzc3BocmFzZSBpcyBsb2FkZWQuCkBAIC0xNjAsNyArMTYwLDcgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTMyJz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X3Nlc3Npb25faWQ8L3R0PjwvYT48L2I+KDx2YXI+bmFtZTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzMyc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9zZXNzaW9uX2lkPC90dD48L2E+PC9iPig8dmFyPm5hbWU8L3Zhcj4pCiA8ZGQ+CiBTZXQgdGhlIGNvbnRleHQgPHZhcj5uYW1lPC92YXI+IHdpdGhpbiB3aGljaCBhIHNlc3Npb24gY2FuIGJlIHJldXNlZCBmb3IgdGhpcwogQ29udGV4dCBvYmplY3QuIFRoaXMgaXMgbmVlZGVkIHdoZW4gZG9pbmcgc2Vzc2lvbiByZXN1bXB0aW9uLCBiZWNhdXNlIHRoZXJlIGlzCkBAIC0xNjksNyArMTY5LDcgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTMzJz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X3RpbWVvdXQ8L3R0PjwvYT48L2I+KDx2YXI+dGltZW91dDwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzNCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF90aW1lb3V0PC90dD48L2E+PC9iPig8dmFyPnRpbWVvdXQ8L3Zhcj4pCiA8ZGQ+CiBTZXQgdGhlIHRpbWVvdXQgZm9yIG5ld2x5IGNyZWF0ZWQgc2Vzc2lvbnMgZm9yIHRoaXMgQ29udGV4dCBvYmplY3QgdG8KIDx2YXI+dGltZW91dDwvdmFyPi4gPHZhcj50aW1lb3V0PC92YXI+IG11c3QgYmUgZ2l2ZW4gaW4gKHdob2xlKSBzZWNvbmRzLiBUaGUgZGVmYXVsdApAQCAtMTc4LDcgKzE3OCw3IEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzNCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF92ZXJpZnk8L3R0PjwvYT48L2I+KDx2YXI+bW9kZSwgY2FsbGJhY2s8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzUnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfdmVyaWZ5PC90dD48L2E+PC9iPig8dmFyPm1vZGUsIGNhbGxiYWNrPC92YXI+KQogPGRkPgogU2V0IHRoZSB2ZXJpZmljYXRpb24gZmxhZ3MgZm9yIHRoaXMgQ29udGV4dCBvYmplY3QgdG8gPHZhcj5tb2RlPC92YXI+IGFuZCBzcGVjaWZ5CiB0aGF0IDx2YXI+Y2FsbGJhY2s8L3Zhcj4gc2hvdWxkIGJlIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBjYWxsYmFja3MuIDx2YXI+bW9kZTwvdmFyPgpAQCAtMTkzLDM5ICsxOTMsMzkgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTM1Jz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X3ZlcmlmeV9kZXB0aDwvdHQ+PC9hPjwvYj4oPHZhcj5kZXB0aDwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEzNic+PHR0IGNsYXNzPSdtZXRob2QnPnNldF92ZXJpZnlfZGVwdGg8L3R0PjwvYT48L2I+KDx2YXI+ZGVwdGg8L3Zhcj4pCiA8ZGQ+CiBTZXQgdGhlIG1heGltdW0gZGVwdGggZm9yIHRoZSBjZXJ0aWZpY2F0ZSBjaGFpbiB2ZXJpZmljYXRpb24gdGhhdCBzaGFsbCBiZQogYWxsb3dlZCBmb3IgdGhpcyBDb250ZXh0IG9iamVjdC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTM2Jz48dHQgY2xhc3M9J21ldGhvZCc+dXNlX2NlcnRpZmljYXRlPC90dD48L2E+PC9iPig8dmFyPmNlcnQ8L3Zhcj4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzcnPjx0dCBjbGFzcz0nbWV0aG9kJz51c2VfY2VydGlmaWNhdGU8L3R0PjwvYT48L2I+KDx2YXI+Y2VydDwvdmFyPikKIDxkZD4KIFVzZSB0aGUgY2VydGlmaWNhdGUgPHZhcj5jZXJ0PC92YXI+IHdoaWNoIGhhcyB0byBiZSBhIFg1MDkgb2JqZWN0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzcnPjx0dCBjbGFzcz0nbWV0aG9kJz5hZGRfZXh0cmFfY2hhaW5fY2VydDwvdHQ+PC9hPjwvYj4oPHZhcj5jZXJ0PC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTM4Jz48dHQgY2xhc3M9J21ldGhvZCc+YWRkX2V4dHJhX2NoYWluX2NlcnQ8L3R0PjwvYT48L2I+KDx2YXI+Y2VydDwvdmFyPikKIDxkZD4KIEFkZHMgdGhlIGNlcnRpZmljYXRlIDx2YXI+Y2VydDwvdmFyPiwgd2hpY2ggaGFzIHRvIGJlIGEgWDUwOSBvYmplY3QsIHRvIHRoZQogY2VydGlmaWNhdGUgY2hhaW4gcHJlc2VudGVkIHRvZ2V0aGVyIHdpdGggdGhlIGNlcnRpZmljYXRlLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzgnPjx0dCBjbGFzcz0nbWV0aG9kJz51c2VfY2VydGlmaWNhdGVfY2hhaW5fZmlsZTwvdHQ+PC9hPjwvYj4oPHZhcj5maWxlPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTM5Jz48dHQgY2xhc3M9J21ldGhvZCc+dXNlX2NlcnRpZmljYXRlX2NoYWluX2ZpbGU8L3R0PjwvYT48L2I+KDx2YXI+ZmlsZTwvdmFyPikKIDxkZD4KIExvYWQgYSBjZXJ0aWZpY2F0ZSBjaGFpbiBmcm9tIDx2YXI+ZmlsZTwvdmFyPiB3aGljaCBtdXN0IGJlIFBFTSBlbmNvZGVkLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMzknPjx0dCBjbGFzcz0nbWV0aG9kJz51c2VfcHJpdmF0ZWtleTwvdHQ+PC9hPjwvYj4oPHZhcj5wa2V5PC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTQwJz48dHQgY2xhc3M9J21ldGhvZCc+dXNlX3ByaXZhdGVrZXk8L3R0PjwvYT48L2I+KDx2YXI+cGtleTwvdmFyPikKIDxkZD4KIFVzZSB0aGUgcHJpdmF0ZSBrZXkgPHZhcj5wa2V5PC92YXI+IHdoaWNoIGhhcyB0byBiZSBhIFBLZXkgb2JqZWN0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDAnPjx0dCBjbGFzcz0nbWV0aG9kJz51c2VfY2VydGlmaWNhdGVfZmlsZTwvdHQ+PC9hPjwvYj4oPHZhcj5maWxlPC92YXI+PGJpZz5bPC9iaWc+PHZhcj4sIGZvcm1hdDwvdmFyPjxiaWc+XTwvYmlnPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0MSc+PHR0IGNsYXNzPSdtZXRob2QnPnVzZV9jZXJ0aWZpY2F0ZV9maWxlPC90dD48L2E+PC9iPig8dmFyPmZpbGU8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgZm9ybWF0PC92YXI+PGJpZz5dPC9iaWc+KQogPGRkPgogTG9hZCB0aGUgZmlyc3QgY2VydGlmaWNhdGUgZm91bmQgaW4gPHZhcj5maWxlPC92YXI+LiBUaGUgY2VydGlmaWNhdGUgbXVzdCBiZSBpbiB0aGUKIGZvcm1hdCBzcGVjaWZpZWQgYnkgPHZhcj5mb3JtYXQ8L3Zhcj4sIHdoaWNoIGlzIGVpdGhlciA8dHQgY2xhc3M9ImNvbnN0YW50Ij5GSUxFVFlQRV9QRU08L3R0PiBvcgpAQCAtMjMzLDcgKzIzMyw3IEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTE0MSc+PHR0IGNsYXNzPSdtZXRob2QnPnVzZV9wcml2YXRla2V5X2ZpbGU8L3R0PjwvYT48L2I+KDx2YXI+ZmlsZTwvdmFyPjxiaWc+WzwvYmlnPjx2YXI+LCBmb3JtYXQ8L3Zhcj48YmlnPl08L2JpZz4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xNDInPjx0dCBjbGFzcz0nbWV0aG9kJz51c2VfcHJpdmF0ZWtleV9maWxlPC90dD48L2E+PC9iPig8dmFyPmZpbGU8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgZm9ybWF0PC92YXI+PGJpZz5dPC9iaWc+KQogPGRkPgogTG9hZCB0aGUgZmlyc3QgcHJpdmF0ZSBrZXkgZm91bmQgaW4gPHZhcj5maWxlPC92YXI+LiBUaGUgcHJpdmF0ZSBrZXkgbXVzdCBiZSBpbiB0aGUKIGZvcm1hdCBzcGVjaWZpZWQgYnkgPHZhcj5mb3JtYXQ8L3Zhcj4sIHdoaWNoIGlzIGVpdGhlciA8dHQgY2xhc3M9ImNvbnN0YW50Ij5GSUxFVFlQRV9QRU08L3R0PiBvcgpkaWZmIC0tZ2l0IGEvZG9jL2h0bWwvb3BlbnNzbC1uZXRzY2FwZS1zcGtpLmh0bWwgYi9kb2MvaHRtbC9vcGVuc3NsLW5ldHNjYXBlLXNwa2kuaHRtbAppbmRleCA1ZTU2OGFlLi44OWNlMDRlIDEwMDY0NAotLS0gYS9kb2MvaHRtbC9vcGVuc3NsLW5ldHNjYXBlLXNwa2kuaHRtbAorKysgYi9kb2MvaHRtbC9vcGVuc3NsLW5ldHNjYXBlLXNwa2kuaHRtbApAQCAtNTEsMzEgKzUxLDMxIEBACiBOZXRzY2FwZVNQS0kgb2JqZWN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04MCc+PHR0IGNsYXNzPSdtZXRob2QnPmI2NF9lbmNvZGU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTgxJz48dHQgY2xhc3M9J21ldGhvZCc+YjY0X2VuY29kZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmV0dXJuIGEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTgxJz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3B1YmtleTwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtODInPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfcHVia2V5PC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXR1cm4gdGhlIHB1YmxpYyBrZXkgb2Ygb2JqZWN0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04Mic+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9wdWJrZXk8L3R0PjwvYT48L2I+KDx2YXI+a2V5PC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtODMnPjx0dCBjbGFzcz0nbWV0aG9kJz5zZXRfcHVia2V5PC90dD48L2E+PC9iPig8dmFyPmtleTwvdmFyPikKIDxkZD4KIFNldCB0aGUgcHVibGljIGtleSBvZiB0aGUgb2JqZWN0IHRvIDx2YXI+a2V5PC92YXI+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04Myc+PHR0IGNsYXNzPSdtZXRob2QnPnNpZ248L3R0PjwvYT48L2I+KDx2YXI+a2V5LCBkaWdlc3RfbmFtZTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg0Jz48dHQgY2xhc3M9J21ldGhvZCc+c2lnbjwvdHQ+PC9hPjwvYj4oPHZhcj5rZXksIGRpZ2VzdF9uYW1lPC92YXI+KQogPGRkPgogU2lnbiB0aGUgTmV0c2NhcGVTUEtJIG9iamVjdCB1c2luZyB0aGUgZ2l2ZW4gPHZhcj5rZXk8L3Zhcj4gYW5kIDx2YXI+ZGlnZXN0X25hbWU8L3Zhcj4uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg0Jz48dHQgY2xhc3M9J21ldGhvZCc+dmVyaWZ5PC90dD48L2E+PC9iPig8dmFyPmtleTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg1Jz48dHQgY2xhc3M9J21ldGhvZCc+dmVyaWZ5PC90dD48L2E+PC9iPig8dmFyPmtleTwvdmFyPikKIDxkZD4KIFZlcmlmeSB0aGUgTmV0c2NhcGVTUEtJIG9iamVjdCB1c2luZyB0aGUgZ2l2ZW4gPHZhcj5rZXk8L3Zhcj4uCiA8L2RsPgpkaWZmIC0tZ2l0IGEvZG9jL2h0bWwvb3BlbnNzbC1wa2NzMTIuaHRtbCBiL2RvYy9odG1sL29wZW5zc2wtcGtjczEyLmh0bWwKaW5kZXggYmVlOWY4YS4uNGViODkzZiAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvb3BlbnNzbC1wa2NzMTIuaHRtbAorKysgYi9kb2MvaHRtbC9vcGVuc3NsLXBrY3MxMi5odG1sCkBAIC01MiwxOSArNTIsMTkgQEAKIFBLQ1MxMiBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc2Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2NlcnRpZmljYXRlPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC03Nyc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9jZXJ0aWZpY2F0ZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmV0dXJuIGNlcnRpZmljYXRlIHBvcnRpb24gb2YgdGhlIFBLQ1MxMiBzdHJ1Y3R1cmUuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc3Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3ByaXZhdGVrZXk8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc4Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3ByaXZhdGVrZXk8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHVybiBwcml2YXRlIGtleSBwb3J0aW9uIG9mIHRoZSBQS0NTMTIgc3RydWN0dXJlCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc4Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X2NhX2NlcnRpZmljYXRlczwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzknPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfY2FfY2VydGlmaWNhdGVzPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBSZXR1cm4gQ0EgY2VydGlmaWNhdGVzIHdpdGhpbiB0aGUgUEtDUzEyIG9iamVjdCBhcyBhIHR1cGxlLiBSZXR1cm5zCiBOb25lIGlmIG5vIENBIGNlcnRpZmljYXRlcyBhcmUgcHJlc2VudC4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wtcGtjczcuaHRtbCBiL2RvYy9odG1sL29wZW5zc2wtcGtjczcuaHRtbAppbmRleCA5YTI4N2IzLi4xZGE3OTY0IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9vcGVuc3NsLXBrY3M3Lmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC1wa2NzNy5odG1sCkBAIC01MiwzMSArNTIsMzEgQEAKIFBLQ1M3IG9iamVjdHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzEnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX3NpZ25lZDwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzInPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX3NpZ25lZDwvdHQ+PC9hPjwvYj4oKQogPGRkPgogRklYTUUKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzInPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX2VudmVsb3BlZDwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzMnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX2VudmVsb3BlZDwvdHQ+PC9hPjwvYj4oKQogPGRkPgogRklYTUUKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzMnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX3NpZ25lZEFuZEVudmVsb3BlZDwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzQnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX3NpZ25lZEFuZEVudmVsb3BlZDwvdHQ+PC9hPjwvYj4oKQogPGRkPgogRklYTUUKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzQnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlX2lzX2RhdGE8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc1Jz48dHQgY2xhc3M9J21ldGhvZCc+dHlwZV9pc19kYXRhPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBGSVhNRQogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC03NSc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF90eXBlX25hbWU8L3R0PjwvYT48L2I+KCkKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTc2Jz48dHQgY2xhc3M9J21ldGhvZCc+Z2V0X3R5cGVfbmFtZTwvdHQ+PC9hPjwvYj4oKQogPGRkPgogR2V0IHRoZSB0eXBlIG5hbWUgb2YgdGhlIFBLQ1M3LgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wtcGtleS5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC1wa2V5Lmh0bWwKaW5kZXggNjY2NTAxMC4uY2I5ZWNiZSAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvb3BlbnNzbC1wa2V5Lmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC1wa2V5Lmh0bWwKQEAgLTUyLDIwICs1MiwyMCBAQAogVGhlIFBLZXkgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjgnPjx0dCBjbGFzcz0nbWV0aG9kJz5iaXRzPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02OSc+PHR0IGNsYXNzPSdtZXRob2QnPmJpdHM8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHVybiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YgdGhlIGtleS4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjknPjx0dCBjbGFzcz0nbWV0aG9kJz5nZW5lcmF0ZV9rZXk8L3R0PjwvYT48L2I+KDx2YXI+dHlwZSwgYml0czwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTcwJz48dHQgY2xhc3M9J21ldGhvZCc+Z2VuZXJhdGVfa2V5PC90dD48L2E+PC9iPig8dmFyPnR5cGUsIGJpdHM8L3Zhcj4pCiA8ZGQ+CiBHZW5lcmF0ZSBhIHB1YmxpYy9wcml2YXRlIGtleSBwYWlyIG9mIHRoZSB0eXBlIDx2YXI+dHlwZTwvdmFyPiAob25lIG9mCiA8dHQgY2xhc3M9ImNvbnN0YW50Ij5UWVBFX1JTQTwvdHQ+IGFuZCA8dHQgY2xhc3M9ImNvbnN0YW50Ij5UWVBFX0RTQTwvdHQ+KSB3aXRoIHRoZSBzaXplIDx2YXI+Yml0czwvdmFyPi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNzAnPjx0dCBjbGFzcz0nbWV0aG9kJz50eXBlPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC03MSc+PHR0IGNsYXNzPSdtZXRob2QnPnR5cGU8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHVybiB0aGUgdHlwZSBvZiB0aGUga2V5LgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wtcmFuZC5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC1yYW5kLmh0bWwKaW5kZXggZTk2MDg5YS4uYjNiNzFjOCAxMDA2NDQKLS0tIGEvZG9jL2h0bWwvb3BlbnNzbC1yYW5kLmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC1yYW5kLmh0bWwKQEAgLTU2LDUyICs1Niw1MiBAQAogZGVjbGFyZXMgdGhlIGZvbGxvd2luZzoKIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04Nic+PHR0IGNsYXNzPSdmdW5jdGlvbic+YWRkPC90dD48L2E+PC9iPig8dmFyPnN0cmluZywgZW50cm9weTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg3Jz48dHQgY2xhc3M9J2Z1bmN0aW9uJz5hZGQ8L3R0PjwvYT48L2I+KDx2YXI+c3RyaW5nLCBlbnRyb3B5PC92YXI+KQogPGRkPgogTWl4IGJ5dGVzIGZyb20gPHZhcj5zdHJpbmc8L3Zhcj4gaW50byB0aGUgUFJORyBzdGF0ZS4gVGhlIDx2YXI+ZW50cm9weTwvdmFyPiBhcmd1bWVudCBpcwogKHRoZSBsb3dlciBib3VuZCBvZikgYW4gZXN0aW1hdGUgb2YgaG93IG11Y2ggcmFuZG9tbmVzcyBpcyBjb250YWluZWQgaW4KLTx2YXI+c3RyaW5nPC92YXI+LCBtZWFzdXJlZCBpbiBieXRlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBlLmcuIDxhIGNsYXNzPSJyZmMiIG5hbWU9InJmY3JlZi0xODM1IgorPHZhcj5zdHJpbmc8L3Zhcj4sIG1lYXN1cmVkIGluIGJ5dGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGUuZy4gPGEgY2xhc3M9InJmYyIgbmFtZT0icmZjcmVmLTE4NDQiCiBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMxNzUwLnR4dCI+UkZDIDE3NTA8L2E+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04Nyc+PHR0IGNsYXNzPSdmdW5jdGlvbic+ZWdkPC90dD48L2E+PC9iPig8dmFyPnBhdGg8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgYnl0ZXM8L3Zhcj48YmlnPl08L2JpZz4pCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04OCc+PHR0IGNsYXNzPSdmdW5jdGlvbic+ZWdkPC90dD48L2E+PC9iPig8dmFyPnBhdGg8L3Zhcj48YmlnPls8L2JpZz48dmFyPiwgYnl0ZXM8L3Zhcj48YmlnPl08L2JpZz4pCiA8ZGQ+CiBRdWVyeSB0aGUgRW50cm9weSBHYXRoZXJpbmcgRGFlbW9uPEEgTkFNRT0idGV4Mmh0bWwzIgotICBIUkVGPSIjZm9vdDk0NCI+PFNVUD4zPC9TVVA+PC9BPiBvbiBzb2NrZXQgPHZhcj5wYXRoPC92YXI+IGZvciA8dmFyPmJ5dGVzPC92YXI+CisgIEhSRUY9IiNmb290OTQ4Ij48U1VQPjM8L1NVUD48L0E+IG9uIHNvY2tldCA8dmFyPnBhdGg8L3Zhcj4gZm9yIDx2YXI+Ynl0ZXM8L3Zhcj4KIGJ5dGVzIG9mIHJhbmRvbSBkYXRhIGFuZCBhbmQgdXNlcyA8dHQgY2xhc3M9ImZ1bmN0aW9uIj5hZGQ8L3R0PiB0byBzZWVkIHRoZSBQUk5HLiBUaGUgZGVmYXVsdAogdmFsdWUgb2YgPHZhcj5ieXRlczwvdmFyPiBpcyAyNTUuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg4Jz48dHQgY2xhc3M9J2Z1bmN0aW9uJz5sb2FkX2ZpbGU8L3R0PjwvYT48L2I+KDx2YXI+cGF0aDwvdmFyPjxiaWc+WzwvYmlnPjx2YXI+LCBieXRlczwvdmFyPjxiaWc+XTwvYmlnPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTg5Jz48dHQgY2xhc3M9J2Z1bmN0aW9uJz5sb2FkX2ZpbGU8L3R0PjwvYT48L2I+KDx2YXI+cGF0aDwvdmFyPjxiaWc+WzwvYmlnPjx2YXI+LCBieXRlczwvdmFyPjxiaWc+XTwvYmlnPikKIDxkZD4KIFJlYWQgPHZhcj5ieXRlczwvdmFyPiBieXRlcyAob3IgYWxsIG9mIGl0LCBpZiA8dmFyPmJ5dGVzPC92YXI+IGlzIG5lZ2F0aXZlKSBvZiBkYXRhIGZyb20KIHRoZSBmaWxlIDx2YXI+cGF0aDwvdmFyPiB0byBzZWVkIHRoZSBQUk5HLiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiA8dmFyPmJ5dGVzPC92YXI+IGlzIC0xLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC04OSc+PHR0IGNsYXNzPSdmdW5jdGlvbic+c2NyZWVuPC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05MCc+PHR0IGNsYXNzPSdmdW5jdGlvbic+c2NyZWVuPC90dD48L2E+PC9iPigpCiA8ZGQ+CiBBZGQgdGhlIGN1cnJlbnQgY29udGVudHMgb2YgdGhlIHNjcmVlbiB0byB0aGUgUFJORyBzdGF0ZS4KIEF2YWlsYWJpbGl0eTogV2luZG93cy4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTAnPjx0dCBjbGFzcz0nZnVuY3Rpb24nPnNlZWQ8L3R0PjwvYT48L2I+KDx2YXI+c3RyaW5nPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTEnPjx0dCBjbGFzcz0nZnVuY3Rpb24nPnNlZWQ8L3R0PjwvYT48L2I+KDx2YXI+c3RyaW5nPC92YXI+KQogPGRkPgogVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPHR0IGNsYXNzPSJmdW5jdGlvbiI+YWRkPC90dD4gd2l0aCA8dmFyPmVudHJvcHk8L3Zhcj4gYXMgdGhlIGxlbmd0aAogb2YgdGhlIHN0cmluZy4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTEnPjx0dCBjbGFzcz0nZnVuY3Rpb24nPnN0YXR1czwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTInPjx0dCBjbGFzcz0nZnVuY3Rpb24nPnN0YXR1czwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmV0dXJucyB0cnVlIGlmIHRoZSBQUk5HIGhhcyBiZWVuIHNlZWRlZCB3aXRoIGVub3VnaCBkYXRhLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05Mic+PHR0IGNsYXNzPSdmdW5jdGlvbic+d3JpdGVfZmlsZTwvdHQ+PC9hPjwvYj4oPHZhcj5wYXRoPC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTMnPjx0dCBjbGFzcz0nZnVuY3Rpb24nPndyaXRlX2ZpbGU8L3R0PjwvYT48L2I+KDx2YXI+cGF0aDwvdmFyPikKIDxkZD4KIFdyaXRlIGEgbnVtYmVyIG9mIHJhbmRvbSBieXRlcyAoY3VycmVudGx5IDEwMjQpIHRvIHRoZSBmaWxlIDx2YXI+cGF0aDwvdmFyPi4gVGhpcwogZmlsZSBjYW4gdGhlbiBiZSB1c2VkIHdpdGggPHR0IGNsYXNzPSJmdW5jdGlvbiI+bG9hZF9maWxlPC90dD4gdG8gc2VlZCB0aGUgUFJORyBhZ2Fpbi4KQEAgLTExMCw3ICsxMTAsNyBAQAogPFA+CiA8QlI+PEhSPjxIND5Gb290bm90ZXM8L0g0PgogPERMPgotPERUPjxBIE5BTUU9ImZvb3Q5NDQiPi4uLiBEYWVtb248L0E+PEEKKzxEVD48QSBOQU1FPSJmb290OTQ4Ij4uLi4gRGFlbW9uPC9BPjxBCiAgaHJlZj0ib3BlbnNzbC1yYW5kLmh0bWwjdGV4Mmh0bWwzIj48U1VQPjM8L1NVUD48L0E+PC9EVD4KIDxERD5TZWUKIDxhIGNsYXNzPSJ1cmwiIGhyZWY9Imh0dHA6Ly93d3cubG90aGFyLmNvbS90ZWNoL2NyeXB0by8iPmh0dHA6Ly93d3cubG90aGFyLmNvbS90ZWNoL2NyeXB0by88L2E+CmRpZmYgLS1naXQgYS9kb2MvaHRtbC9vcGVuc3NsLXNzbC5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC1zc2wuaHRtbAppbmRleCBmYmU5NWNjLi45YTFiMzczIDEwMDY0NAotLS0gYS9kb2MvaHRtbC9vcGVuc3NsLXNzbC5odG1sCisrKyBiL2RvYy9odG1sL29wZW5zc2wtc3NsLmh0bWwKQEAgLTU0LDM5ICs1NCwzOSBAQAogQ29udGV4dCwgQ29ubmVjdGlvbi4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05NCc+PHR0PlNTTHYyX01FVEhPRDwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTk1Jz48dHQ+U1NMdjJfTUVUSE9EPC90dD48L2E+PC9iPgogPGRkPgotPGR0PjxiPjxhIG5hbWU9J2wyaC0xMDgnPjx0dD5TU0x2M19NRVRIT0Q8L3R0PjwvYT48L2I+PGRkPgotPGR0PjxiPjxhIG5hbWU9J2wyaC0xMDknPjx0dD5TU0x2MjNfTUVUSE9EPC90dD48L2E+PC9iPjxkZD4KLTxkdD48Yj48YSBuYW1lPSdsMmgtMTEwJz48dHQ+VExTdjFfTUVUSE9EPC90dD48L2E+PC9iPjxkZD4KKzxkdD48Yj48YSBuYW1lPSdsMmgtMTA5Jz48dHQ+U1NMdjNfTUVUSE9EPC90dD48L2E+PC9iPjxkZD4KKzxkdD48Yj48YSBuYW1lPSdsMmgtMTEwJz48dHQ+U1NMdjIzX01FVEhPRDwvdHQ+PC9hPjwvYj48ZGQ+Cis8ZHQ+PGI+PGEgbmFtZT0nbDJoLTExMSc+PHR0PlRMU3YxX01FVEhPRDwvdHQ+PC9hPjwvYj48ZGQ+CiBUaGVzZSBjb25zdGFudHMgcmVwcmVzZW50IHRoZSBkaWZmZXJlbnQgU1NMIG1ldGhvZHMgdG8gdXNlIHdoZW4gY3JlYXRpbmcgYQogY29udGV4dCBvYmplY3QuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTk1Jz48dHQ+VkVSSUZZX05PTkU8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05Nic+PHR0PlZFUklGWV9OT05FPC90dD48L2E+PC9iPgogPGRkPgotPGR0PjxiPjxhIG5hbWU9J2wyaC0xMTEnPjx0dD5WRVJJRllfUEVFUjwvdHQ+PC9hPjwvYj48ZGQ+Ci08ZHQ+PGI+PGEgbmFtZT0nbDJoLTExMic+PHR0PlZFUklGWV9GQUlMX0lGX05PX1BFRVJfQ0VSVDwvdHQ+PC9hPjwvYj48ZGQ+Cis8ZHQ+PGI+PGEgbmFtZT0nbDJoLTExMic+PHR0PlZFUklGWV9QRUVSPC90dD48L2E+PC9iPjxkZD4KKzxkdD48Yj48YSBuYW1lPSdsMmgtMTEzJz48dHQ+VkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUPC90dD48L2E+PC9iPjxkZD4KIFRoZXNlIGNvbnN0YW50cyByZXByZXNlbnQgdGhlIHZlcmlmaWNhdGlvbiBtb2RlIHVzZWQgYnkgdGhlIENvbnRleHQKIG9iamVjdCdzIDx0dCBjbGFzcz0ibWV0aG9kIj5zZXRfdmVyaWZ5PC90dD4gbWV0aG9kLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05Nic+PHR0PkZJTEVUWVBFX1BFTTwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTk3Jz48dHQ+RklMRVRZUEVfUEVNPC90dD48L2E+PC9iPgogPGRkPgotPGR0PjxiPjxhIG5hbWU9J2wyaC0xMTMnPjx0dD5GSUxFVFlQRV9BU04xPC90dD48L2E+PC9iPjxkZD4KKzxkdD48Yj48YSBuYW1lPSdsMmgtMTE0Jz48dHQ+RklMRVRZUEVfQVNOMTwvdHQ+PC9hPjwvYj48ZGQ+CiBGaWxlIHR5cGUgY29uc3RhbnRzIHVzZWQgd2l0aCB0aGUgPHR0IGNsYXNzPSJtZXRob2QiPnVzZV9jZXJ0aWZpY2F0ZV9maWxlPC90dD4gYW5kCiA8dHQgY2xhc3M9Im1ldGhvZCI+dXNlX3ByaXZhdGVrZXlfZmlsZTwvdHQ+IG1ldGhvZHMgb2YgQ29udGV4dCBvYmplY3RzLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05Nyc+PHR0Pk9QX1NJTkdMRV9ESF9VU0U8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC05OCc+PHR0Pk9QX1NJTkdMRV9ESF9VU0U8L3R0PjwvYT48L2I+CiA8ZGQ+Ci08ZHQ+PGI+PGEgbmFtZT0nbDJoLTExNCc+PHR0Pk9QX0VQSEVNRVJBTF9SU0E8L3R0PjwvYT48L2I+PGRkPgotPGR0PjxiPjxhIG5hbWU9J2wyaC0xMTUnPjx0dD5PUF9OT19TU0x2MjwvdHQ+PC9hPjwvYj48ZGQ+Ci08ZHQ+PGI+PGEgbmFtZT0nbDJoLTExNic+PHR0Pk9QX05PX1NTTHYzPC90dD48L2E+PC9iPjxkZD4KLTxkdD48Yj48YSBuYW1lPSdsMmgtMTE3Jz48dHQ+T1BfTk9fVExTdjE8L3R0PjwvYT48L2I+PGRkPgorPGR0PjxiPjxhIG5hbWU9J2wyaC0xMTUnPjx0dD5PUF9FUEhFTUVSQUxfUlNBPC90dD48L2E+PC9iPjxkZD4KKzxkdD48Yj48YSBuYW1lPSdsMmgtMTE2Jz48dHQ+T1BfTk9fU1NMdjI8L3R0PjwvYT48L2I+PGRkPgorPGR0PjxiPjxhIG5hbWU9J2wyaC0xMTcnPjx0dD5PUF9OT19TU0x2MzwvdHQ+PC9hPjwvYj48ZGQ+Cis8ZHQ+PGI+PGEgbmFtZT0nbDJoLTExOCc+PHR0Pk9QX05PX1RMU3YxPC90dD48L2E+PC9iPjxkZD4KIENvbnN0YW50cyB1c2VkIHdpdGggPHR0IGNsYXNzPSJtZXRob2QiPnNldF9vcHRpb25zPC90dD4gb2YgQ29udGV4dCBvYmplY3RzLgogPHR0IGNsYXNzPSJjb25zdGFudCI+T1BfU0lOR0xFX0RIX1VTRTwvdHQ+IG1lYW5zIHRvIGFsd2F5cyBjcmVhdGUgYSBuZXcga2V5IHdoZW4gdXNpbmcgZXBoZW1lcmFsCiBEaWZmaWUtSGVsbG1hbi4gPHR0IGNsYXNzPSJjb25zdGFudCI+T1BfRVBIRU1FUkFMX1JTQTwvdHQ+IG1lYW5zIHRvIGFsd2F5cyB1c2UgZXBoZW1lcmFsIFJTQSBrZXlzCkBAIC05NywxMyArOTcsMTMgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtOTgnPjx0dD5Db250ZXh0VHlwZTwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTk5Jz48dHQ+Q29udGV4dFR5cGU8L3R0PjwvYT48L2I+CiA8ZGQ+CiBBIFB5dGhvbiB0eXBlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIENvbnRleHQgb2JqZWN0IHR5cGUuCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTk5Jz48dHQgY2xhc3M9J2Z1bmN0aW9uJz5Db250ZXh0PC90dD48L2E+PC9iPig8dmFyPm1ldGhvZDwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEwMCc+PHR0IGNsYXNzPSdmdW5jdGlvbic+Q29udGV4dDwvdHQ+PC9hPjwvYj4oPHZhcj5tZXRob2Q8L3Zhcj4pCiA8ZGQ+CiBGYWN0b3J5IGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhIG5ldyBDb250ZXh0IG9iamVjdCBnaXZlbiBhbiBTU0wgbWV0aG9kLiBUaGUKIG1ldGhvZCBzaG91bGQgYmUgPHR0IGNsYXNzPSJjb25zdGFudCI+U1NMdjJfTUVUSE9EPC90dD4sIDx0dCBjbGFzcz0iY29uc3RhbnQiPlNTTHYzX01FVEhPRDwvdHQ+LApAQCAtMTExLDIxICsxMTEsMjEgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTAwJz48dHQ+Q29ubmVjdGlvblR5cGU8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC0xMDEnPjx0dD5Db25uZWN0aW9uVHlwZTwvdHQ+PC9hPjwvYj4KIDxkZD4KIEEgUHl0aG9uIHR5cGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgQ29ubmVjdGlvbiBvYmplY3QgdHlwZS4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtMTAxJz48dHQgY2xhc3M9J2Z1bmN0aW9uJz5Db25uZWN0aW9uPC90dD48L2E+PC9iPig8dmFyPmNvbnRleHQsIHNvY2tldDwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTEwMic+PHR0IGNsYXNzPSdmdW5jdGlvbic+Q29ubmVjdGlvbjwvdHQ+PC9hPjwvYj4oPHZhcj5jb250ZXh0LCBzb2NrZXQ8L3Zhcj4pCiA8ZGQ+CiBGYWN0b3J5IGZ1Y25jdGlvbiB0aGF0IGNyZWF0ZXMgYSBuZXcgQ29ubmVjdGlvbiBvYmplY3QgZ2l2ZW4gYW4gU1NMIGNvbnRleHQgYW5kCiBhIHNvY2tldCA8QSBOQU1FPSJ0ZXgyaHRtbDUiCi0gIEhSRUY9IiNmb290OTQ3Ij48U1VQPjQ8L1NVUD48L0E+IG9iamVjdC4KKyAgSFJFRj0iI2Zvb3Q5NTEiPjxTVVA+NDwvU1VQPjwvQT4gb2JqZWN0LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTAyJz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+RXJyb3I8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTAzJz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+RXJyb3I8L3R0PjwvYT48L2I+CiA8ZGQ+CiBUaGlzIGV4Y2VwdGlvbiBpcyB1c2VkIGFzIGEgYmFzZSBjbGFzcyBmb3IgdGhlIG90aGVyIFNTTC1yZWxhdGVkCiBleGNlcHRpb25zLCBidXQgbWF5IGFsc28gYmUgcmFpc2VkIGRpcmVjdGx5LgpAQCAtMTM5LDcgKzEzOSw3IEBACiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+ZXhjZXB0aW9uIDxhIG5hbWU9J2wyaC0xMDMnPjx0dCBjbGFzcz0nZXhjZXB0aW9uJz5aZXJvUmV0dXJuRXJyb3I8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTA0Jz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+WmVyb1JldHVybkVycm9yPC90dD48L2E+PC9iPgogPGRkPgogVGhpcyBleGNlcHRpb24gbWF0Y2hlcyB0aGUgZXJyb3IgcmV0dXJuIGNvZGUgPGNvZGU+U1NMX0VSUk9SX1pFUk9fUkVUVVJOPC9jb2RlPiwgYW5kCiBpcyByYWlzZWQgd2hlbiB0aGUgU1NMIENvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkLiBJbiBTU0wgMy4wIGFuZCBUTFMgMS4wLCB0aGlzCkBAIC0xNTMsNyArMTUzLDcgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj5leGNlcHRpb24gPGEgbmFtZT0nbDJoLTEwNCc+PHR0IGNsYXNzPSdleGNlcHRpb24nPldhbnRSZWFkRXJyb3I8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTA1Jz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+V2FudFJlYWRFcnJvcjwvdHQ+PC9hPjwvYj4KIDxkZD4KIFRoZSBvcGVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZTsgdGhlIHNhbWUgSS9PIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGFnYWluCiBsYXRlciwgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHMuIEFueSBJL08gbWV0aG9kIGNhbiBsZWFkIHRvIHRoaXMgc2luY2UgbmV3CkBAIC0xNjEsMTMgKzE2MSwxMyBAQAogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTA1Jz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+V2FudFdyaXRlRXJyb3I8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTA2Jz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+V2FudFdyaXRlRXJyb3I8L3R0PjwvYT48L2I+CiA8ZGQ+CiBTZWUgPHR0IGNsYXNzPSJleGNlcHRpb24iPldhbnRSZWFkRXJyb3I8L3R0Pi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj5leGNlcHRpb24gPGEgbmFtZT0nbDJoLTEwNic+PHR0IGNsYXNzPSdleGNlcHRpb24nPldhbnRYNTA5TG9va3VwRXJyb3I8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPmV4Y2VwdGlvbiA8YSBuYW1lPSdsMmgtMTA3Jz48dHQgY2xhc3M9J2V4Y2VwdGlvbic+V2FudFg1MDlMb29rdXBFcnJvcjwvdHQ+PC9hPjwvYj4KIDxkZD4KIFRoZSBvcGVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZSBiZWNhdXNlIGFuIGFwcGxpY2F0aW9uIGNhbGxiYWNrIGhhcyBhc2tlZCB0byBiZQogY2FsbGVkIGFnYWluLiBUaGUgSS9PIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGFnYWluIGxhdGVyLCB3aXRoIHRoZSBzYW1lCkBAIC0xNzYsNyArMTc2LDcgQEAKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj5leGNlcHRpb24gPGEgbmFtZT0nbDJoLTEwNyc+PHR0IGNsYXNzPSdleGNlcHRpb24nPlN5c0NhbGxFcnJvcjwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+ZXhjZXB0aW9uIDxhIG5hbWU9J2wyaC0xMDgnPjx0dCBjbGFzcz0nZXhjZXB0aW9uJz5TeXNDYWxsRXJyb3I8L3R0PjwvYT48L2I+CiA8ZGQ+CiBUaGUgPHR0IGNsYXNzPSJleGNlcHRpb24iPlN5c0NhbGxFcnJvcjwvdHQ+IG9jY3VycyB3aGVuIHRoZXJlJ3MgYW4gSS9PIGVycm9yIGFuZCBPcGVuU1NMJ3MKIGVycm9yIHF1ZXVlIGRvZXMgbm90IGNvbnRhaW4gYW55IGluZm9ybWF0aW9uLiBUaGlzIGNhbiBtZWFuIHR3byB0aGluZ3M6IEFuCkBAIC0xODgsNyArMTg4LDcgQEAKIDxQPgogPEJSPjxIUj48SDQ+Rm9vdG5vdGVzPC9IND4KIDxETD4KLTxEVD48QSBOQU1FPSJmb290OTQ3Ij4uLi4gc29ja2V0PC9BPjxBCis8RFQ+PEEgTkFNRT0iZm9vdDk1MSI+Li4uIHNvY2tldDwvQT48QQogIGhyZWY9Im9wZW5zc2wtc3NsLmh0bWwjdGV4Mmh0bWw1Ij48U1VQPjQ8L1NVUD48L0E+PC9EVD4KIDxERD5BY3R1YWxseSwgYWxsIHRoYXQgaXMgcmVxdWlyZWQgaXMgYW4gb2JqZWN0IHRoYXQKIDxpPmJlaGF2ZXM8L2k+IGxpa2UgYSBzb2NrZXQsIHlvdSBjb3VsZCBldmVuIHVzZSBmaWxlcywgZXZlbiB0aG91Z2ggaXQnZCBiZQpkaWZmIC0tZ2l0IGEvZG9jL2h0bWwvb3BlbnNzbC14NTA5bmFtZS5odG1sIGIvZG9jL2h0bWwvb3BlbnNzbC14NTA5bmFtZS5odG1sCmluZGV4IGM5NjY2MTMuLjIxMWI3YWQgMTAwNjQ0Ci0tLSBhL2RvYy9odG1sL29wZW5zc2wteDUwOW5hbWUuaHRtbAorKysgYi9kb2MvaHRtbC9vcGVuc3NsLXg1MDluYW1lLmh0bWwKQEAgLTQ5LDUyICs0OSw2MiBAQAogPC9IMz4KIAogPFA+CitYNTA5TmFtZSBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCis8UD4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU1Jz48dHQgY2xhc3M9J21ldGhvZCc+aGFzaDwvdHQ+PC9hPjwvYj4oKQorPGRkPgorUmV0dXJuIGFuIGludGVnZXIgZ2l2aW5nIHRoZSBmaXJzdCBmb3VyIGJ5dGVzIG9mIHRoZSBNRDUgZGlnZXN0IG9mIHRoZSBERVIKK3JlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW1lLgorPC9kbD4KKworPFA+CiBYNTA5TmFtZSBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZW1iZXJzOgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU1Jz48dHQgY2xhc3M9J21lbWJlcic+Y291bnRyeU5hbWU8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC01Nic+PHR0IGNsYXNzPSdtZW1iZXInPmNvdW50cnlOYW1lPC90dD48L2E+PC9iPgogPGRkPgogVGhlIGNvdW50cnkgb2YgdGhlIGVudGl0eS4gPGNvZGU+QzwvY29kZT4gbWF5IGJlIHVzZWQgYXMgYW4gYWxpYXMgZm9yCiA8Y29kZT5jb3VudHJ5TmFtZTwvY29kZT4uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU2Jz48dHQgY2xhc3M9J21lbWJlcic+c3RhdGVPclByb3ZpbmNlTmFtZTwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU3Jz48dHQgY2xhc3M9J21lbWJlcic+c3RhdGVPclByb3ZpbmNlTmFtZTwvdHQ+PC9hPjwvYj4KIDxkZD4KIFRoZSBzdGF0ZSBvciBwcm92aW5jZSBvZiB0aGUgZW50aXR5LiA8Y29kZT5TVDwvY29kZT4gbWF5IGJlIHVzZWQgYXMgYW4gYWxpYXMgZm9yCiA8Y29kZT5zdGF0ZU9yUHJvdmluY2VOYW1lPC9jb2RlPrcKIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNTcnPjx0dCBjbGFzcz0nbWVtYmVyJz5sb2NhbGl0eU5hbWU8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC01OCc+PHR0IGNsYXNzPSdtZW1iZXInPmxvY2FsaXR5TmFtZTwvdHQ+PC9hPjwvYj4KIDxkZD4KIFRoZSBsb2NhbGl0eSBvZiB0aGUgZW50aXR5LiA8Y29kZT5MPC9jb2RlPiBtYXkgYmUgdXNlZCBhcyBhbiBhbGlhcyBmb3IKIDxjb2RlPmxvY2FsaXR5TmFtZTwvY29kZT4uCiA8L2RsPgogCiA8UD4KLTxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU4Jz48dHQgY2xhc3M9J21lbWJlcic+b3JnYW5pemF0aW9uTmFtZTwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTU5Jz48dHQgY2xhc3M9J21lbWJlcic+b3JnYW5pemF0aW9uTmFtZTwvdHQ+PC9hPjwvYj4KIDxkZD4KIFRoZSBvcmdhbml6YXRpb24gbmFtZSBvZiB0aGUgZW50aXR5LiA8Y29kZT5PPC9jb2RlPiBtYXkgYmUgdXNlZCBhcyBhbiBhbGlhcyBmb3IKIDxjb2RlPm9yZ2FuaXphdGlvbk5hbWU8L2NvZGU+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC01OSc+PHR0IGNsYXNzPSdtZW1iZXInPm9yZ2FuaXphdGlvbmFsVW5pdE5hbWU8L3R0PjwvYT48L2I+Cis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02MCc+PHR0IGNsYXNzPSdtZW1iZXInPm9yZ2FuaXphdGlvbmFsVW5pdE5hbWU8L3R0PjwvYT48L2I+CiA8ZGQ+CiBUaGUgb3JnYW5pemF0aW9uYWwgdW5pdCBvZiB0aGUgZW50aXR5LiA8Y29kZT5PVTwvY29kZT4gbWF5IGJlIHVzZWQgYXMgYW4gYWxpYXMgZm9yCiA8Y29kZT5vcmdhbml6YXRpb25hbFVuaXROYW1lPC9jb2RlPi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjAnPjx0dCBjbGFzcz0nbWVtYmVyJz5jb21tb25OYW1lPC90dD48L2E+PC9iPgorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjEnPjx0dCBjbGFzcz0nbWVtYmVyJz5jb21tb25OYW1lPC90dD48L2E+PC9iPgogPGRkPgogVGhlIGNvbW1vbiBuYW1lIG9mIHRoZSBlbnRpdHkuIDxjb2RlPkNOPC9jb2RlPiBtYXkgYmUgdXNlZCBhcyBhbiBhbGlhcyBmb3IKIDxjb2RlPmNvbW1vbk5hbWU8L2NvZGU+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02MSc+PHR0IGNsYXNzPSdtZW1iZXInPmVtYWlsQWRkcmVzczwvdHQ+PC9hPjwvYj4KKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTYyJz48dHQgY2xhc3M9J21lbWJlcic+ZW1haWxBZGRyZXNzPC90dD48L2E+PC9iPgogPGRkPgogVGhlIGUtbWFpbCBhZGRyZXNzIG9mIHRoZSBlbnRpdHkuCiA8L2RsPgpkaWZmIC0tZ2l0IGEvZG9jL2h0bWwvb3BlbnNzbC14NTA5cmVxLmh0bWwgYi9kb2MvaHRtbC9vcGVuc3NsLXg1MDlyZXEuaHRtbAppbmRleCAxMjVkNGFhLi5iMmVjZDI2IDEwMDY0NAotLS0gYS9kb2MvaHRtbC9vcGVuc3NsLXg1MDlyZXEuaHRtbAorKysgYi9kb2MvaHRtbC9vcGVuc3NsLXg1MDlyZXEuaHRtbApAQCAtNTIsMzIgKzUyLDMyIEBACiBYNTA5UmVxIG9iamVjdHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjInPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfcHVia2V5PC90dD48L2E+PC9iPigpCis8ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02Myc+PHR0IGNsYXNzPSdtZXRob2QnPmdldF9wdWJrZXk8L3R0PjwvYT48L2I+KCkKIDxkZD4KIFJldHVybiBhIFBLZXkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcHVibGljIGtleSBvZiB0aGUgY2VydGlmaWNhdGUgcmVxdWVzdC4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjMnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfc3ViamVjdDwvdHQ+PC9hPjwvYj4oKQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjQnPjx0dCBjbGFzcz0nbWV0aG9kJz5nZXRfc3ViamVjdDwvdHQ+PC9hPjwvYj4oKQogPGRkPgogUmV0dXJuIGFuIFg1MDlOYW1lIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHN1YmplY3Qgb2YgdGhlIGNlcnRpZmljYXRlLgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02NCc+PHR0IGNsYXNzPSdtZXRob2QnPnNldF9wdWJrZXk8L3R0PjwvYT48L2I+KDx2YXI+cGtleTwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTY1Jz48dHQgY2xhc3M9J21ldGhvZCc+c2V0X3B1YmtleTwvdHQ+PC9hPjwvYj4oPHZhcj5wa2V5PC92YXI+KQogPGRkPgogU2V0IHRoZSBwdWJsaWMga2V5IG9mIHRoZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IHRvIDx2YXI+cGtleTwvdmFyPi4KIDwvZGw+CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjUnPjx0dCBjbGFzcz0nbWV0aG9kJz5zaWduPC90dD48L2E+PC9iPig8dmFyPnBrZXksIGRpZ2VzdDwvdmFyPikKKzxkbD48ZHQ+PGI+PGEgbmFtZT0nbDJoLTY2Jz48dHQgY2xhc3M9J21ldGhvZCc+c2lnbjwvdHQ+PC9hPjwvYj4oPHZhcj5wa2V5LCBkaWdlc3Q8L3Zhcj4pCiA8ZGQ+CiBTaWduIHRoZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0LCB1c2luZyB0aGUga2V5IDx2YXI+cGtleTwvdmFyPiBhbmQgdGhlIG1lc3NhZ2UgZGlnZXN0CiBhbGdvcml0aG0gaWRlbnRpZmllZCBieSB0aGUgc3RyaW5nIDx2YXI+ZGlnZXN0PC92YXI+LgogPC9kbD4KIAogPFA+Ci08ZGw+PGR0PjxiPjxhIG5hbWU9J2wyaC02Nic+PHR0IGNsYXNzPSdtZXRob2QnPnZlcmlmeTwvdHQ+PC9hPjwvYj4oPHZhcj5wa2V5PC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjcnPjx0dCBjbGFzcz0nbWV0aG9kJz52ZXJpZnk8L3R0PjwvYT48L2I+KDx2YXI+cGtleTwvdmFyPikKIDxkZD4KIFZlcmlmeSBhIGNlcnRpZmljYXRlIHJlcXVlc3QgdXNpbmcgdGhlIHB1YmxpYyBrZXkgPHZhcj5wa2V5PC92YXI+LgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9odG1sL29wZW5zc2wteDUwOXN0b3JlLmh0bWwgYi9kb2MvaHRtbC9vcGVuc3NsLXg1MDlzdG9yZS5odG1sCmluZGV4IDYwN2Q5MmQuLjI3MjBjMTEgMTAwNjQ0Ci0tLSBhL2RvYy9odG1sL29wZW5zc2wteDUwOXN0b3JlLmh0bWwKKysrIGIvZG9jL2h0bWwvb3BlbnNzbC14NTA5c3RvcmUuaHRtbApAQCAtNTIsNyArNTIsNyBAQAogVGhlIFg1MDlTdG9yZSBvYmplY3QgaGFzIGN1cnJlbnRseSBqdXN0IG9uZSBtZXRob2Q6CiAKIDxQPgotPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjcnPjx0dCBjbGFzcz0nbWV0aG9kJz5hZGRfY2VydDwvdHQ+PC9hPjwvYj4oPHZhcj5jZXJ0PC92YXI+KQorPGRsPjxkdD48Yj48YSBuYW1lPSdsMmgtNjgnPjx0dCBjbGFzcz0nbWV0aG9kJz5hZGRfY2VydDwvdHQ+PC9hPjwvYj4oPHZhcj5jZXJ0PC92YXI+KQogPGRkPgogQWRkIHRoZSBjZXJ0aWZpY2F0ZSA8dmFyPmNlcnQ8L3Zhcj4gdG8gdGhlIGNlcnRpZmljYXRlIHN0b3JlLgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9weU9wZW5TU0wucHMgYi9kb2MvcHlPcGVuU1NMLnBzCmluZGV4IDQ3YmU1MjUuLmExNTJhNGEgMTAwNjQ0Ci0tLSBhL2RvYy9weU9wZW5TU0wucHMKKysrIGIvZG9jL3B5T3BlblNTTC5wcwpAQCAtMSw3ICsxLDcgQEAKICUhUFMtQWRvYmUtMi4wCiAlJUNyZWF0b3I6IGR2aXBzKGspIDUuOTYuMSBDb3B5cmlnaHQgMjAwNyBSYWRpY2FsIEV5ZSBTb2Z0d2FyZQogJSVUaXRsZTogcHlPcGVuU1NMLmR2aQotJSVDcmVhdGlvbkRhdGU6IFNhdCBNYXIgMjIgMDA6MDc6MTkgMjAwOAorJSVDcmVhdGlvbkRhdGU6IE1vbiBNYXIgMjQgMTc6NDI6MjIgMjAwOAogJSVQYWdlczogMTUKICUlUGFnZU9yZGVyOiBBc2NlbmQKICUlQm91bmRpbmdCb3g6IDAgMCA1OTUgODQyCkBAIC0xMCw3ICsxMCw3IEBACiAlRFZJUFNXZWJQYWdlOiAod3d3LnJhZGljYWxleWUuY29tKQogJURWSVBTQ29tbWFuZExpbmU6IGR2aXBzIC1OMCAtbyBweU9wZW5TU0wucHMgcHlPcGVuU1NMCiAlRFZJUFNQYXJhbWV0ZXJzOiBkcGk9NjAwCi0lRFZJUFNTb3VyY2U6ICBUZVggb3V0cHV0IDIwMDguMDMuMjI6MDAwNworJURWSVBTU291cmNlOiAgVGVYIG91dHB1dCAyMDA4LjAzLjI0OjE3NDIKICUlQmVnaW5Qcm9jU2V0OiB0ZXgucHJvIDAgMAogJSEKIC9UZVhEaWN0IDMwMCBkaWN0IGRlZiBUZVhEaWN0IGJlZ2luL057ZGVmfWRlZi9Ce2JpbmQgZGVmfU4vU3tleGNofU4vWHtTCkBAIC00NTY5LDcgKzQ1NjksNyBAQAogVGVYRGljdCBiZWdpbiAxIDAgYm9wIDAgODMgMzkwMSA5IHYgMTg5MCA0NTEgYSBGdShQeXRob24pNjQKIGIoT3ApNSBiKGVuU1NMKTY0IGIoTWFudWFsKTMzNDggNjE5IHkgRnQoUmVsZWFzZSkzMyBiKDAuN2ExKTMxODkKIDk3NCB5IEZzKE1hKW0ocnRpbilrKFNqXDM2NmdyZW4pMzM0MiAxMzI4IHkgRnIoTWFyYyluKGgpMjYKLWIoMjIsKWgoMjAwOCkzMzAxIDE0NzUgeSBGcShtYSluKHJ0aW5Ac3RyYWt0LmNvbSkxNzgxCitiKDI0LCloKDIwMDgpMzMwMSAxNDc1IHkgRnEobWEpbihydGluQHN0cmFrdC5jb20pMTc4MQogMTY5NyB5IEZwKEFic3RyYWN0KTIwOCAxODQxIHkgRm8oVGhpcykzMiBiKG1vKXIoZHVsZSlmKGlzKWgoYSlnKHJhdGhlcikKIGcodGhpbilmKHdyYXBwKXIoZXIpaChhcm91bmQpZyhcKGEpZyhzdWJzZXQpZihvZik2IGIoXCkpMzIKIGIodGhlKWcoT3ApcihlblNTTCllKGxpYnJhcnkpLTYgYiguKTUyIGIoV2l0aCkzMiBiKHRoaW4pZih3cmFwcClyKGVyKQpAQCAtNDkwMSw1OTIgKzQ5MDEsNTk2IEBACiAoaW4paCh0aGUpZyhzZXF1ZW5jZSlmIEZkKGV4dGVuc2lvbnMpMzQgYiBGcih0bykyNyBiKHRoZSloCiAoY2VydGlcMDM0Y2F0ZS4pMCAzNzM1IHkgRmcoWDUwOU5hbWUpZShvYmplY3RzKTAgMzkzNgogeSBGcihYNTA5TmFtZSlnKG9iKTUgYihqZWN0cykyNyBiKGhhKW4odiluKGUpZyh0aGUpaChmb2xsbyluKHdpbmcpZQotKG1lbSluKGIpcihlcnM6KTAgNDA4MyB5IEZtKGNvdW50cnlOYW1lKTIwOCA0MTgyIHkgRnIoVGhlKWgoY291biluKHRyeSkKKyhtZXRobylyKGRzOikwIDQwODMgeSBGbShoYXNoXChcKSkyMDggNDE4MiB5IEZyKFJldHVybillKGFuKWcoaW4pbgorKHRlZ2VyKWYoZ2l2aW5nKWcodGhlKWkoXDAzNHJzdClmKGZvdXIpZyhiKW4oeXRlcylmKG9mKWgodGhlKWgoTUQ1KWYKKyhkaWdlc3QpZyhvZilnKHRoZSloKERFUilnKHJlcHJlc2VuKW4odGF0aW9uKWUob2YpaCh0aGUpZyhuYW1lLikwCis0MzI5IHkoWDUwOU5hbWUpaShvYik1IGIoamVjdHMpMjcgYihoYSluKHYpbihlKWcodGhlKWgoZm9sbG8pbih3aW5nKWUKKyhtZW0pbihiKXIoZXJzOikwIDQ0NzYgeSBGbShjb3VudHJ5TmFtZSkyMDggNDU3NiB5IEZyKFRoZSloKGNvdW4pbih0cnkpCiBnKG9mKWcodGhlKWgoZW4pbih0aXQpbih5KS03IGIoLikzNyBiIEZtKEMpMjcgYiBGcihtYSluKHkpZyhiKXIoZSloCiAodXNlZClnKGFzKWYoYW4pZyhhbGlhcylmKGZvciloIEZtKGNvdW50cnlOYW1lKXAgRnIoLikwCi00MzI5IHkgRm0oc3RhdGVPclByb3ZpbmNlTilvKGFtKW8oZSkyMDggNDQyOSB5IEZyKFRoZSlnKHN0YXRlKWgob3IpZQorNDcyMiB5IEZtKHN0YXRlT3JQcm92aW5jZU4pbyhhbSlvKGUpMjA4IDQ4MjIgeSBGcihUaGUpZyhzdGF0ZSloKG9yKWUKIChwcm8pbih2aW5jZSlnKG9mKWkodGhlKWcoZW4pbih0aXQpbih5KS03IGIoLikzNyBiIEZtKFNUKTI3CiBiIEZyKG1hKW4oeSlmKGIpcihlKWkodXNlZClnKGFzKWYoYW4pZyhhbGlhcylnKGZvcilnCi1GbShzdGF0ZU9yUHJvdmluY2UpbyhOYSlvKG1lKXAgRnIoXDI2NykwIDQ1NzYgeSBGbShsb2NhbGl0eU5hbWUpMjA4Ci00Njc1IHkgRnIoVGhlKWcobG8pcihjYWxpdCluKHkpZyhvZiloKHRoZSlmKGVuKW4odGl0KW4oeSktNworRm0oc3RhdGVPclByb3ZpbmNlKW8oTmEpbyhtZSlwIEZyKFwyNjcpMCA0OTY5IHkgRm0obG9jYWxpdHlOYW1lKTIwOAorNTA2OSB5IEZyKFRoZSlnKGxvKXIoY2FsaXQpbih5KWcob2YpaCh0aGUpZihlbiluKHRpdCluKHkpLTcKIGIoLikzNyBiIEZtKEwpMjggYiBGcihtYSluKHkpZShiKXIoZSlpKHVzZWQpZyhhcylmKGFuKWcoYWxpYXMpZyhmb3IpZwotRm0obG9jYWxpdHlOYW1lKXAgRnIoLikwIDQ4MjIgeSBGbShvcmdhbml6YXRpb25OYW1lKTIwOAotNDkyMiB5IEZyKFRoZSlnKG9yZ2FuaXphdGlvbillKG5hbWUpaihvZilmKHRoZSloKGVuKW4odGl0KW4oeSktNworRm0obG9jYWxpdHlOYW1lKXAgRnIoLikwIDUyMTUgeSBGbShvcmdhbml6YXRpb25OYW1lKTIwOAorNTMxNSB5IEZyKFRoZSlnKG9yZ2FuaXphdGlvbillKG5hbWUpaihvZilmKHRoZSloKGVuKW4odGl0KW4oeSktNwogYiguKTM3IGIgRm0oTykyNyBiIEZyKG1hKW4oeSlnKGIpcihlKWgodXNlZClnKGFzKWUoYW4paShhbGlhcyllKGZvciloCi1GbShvcmdhbml6YXRpb25OYW1lKXAgRnIoLikwIDUwNjkgeSBGbShvcmdhbml6YXRpb25hbFVuKW8oaXQpbyhOYW0pbyhlKQotMjA4IDUxNjggeSBGcihUaGUpZyhvcmdhbml6YXRpb25hbCllKHVuaXQpaihvZilnKHRoZSlnKGVuKW4odGl0KW4oeSktNwotYiguKTM2IGIgRm0oT1UpMjcgYiBGcihtYSluKHkpZyhiKXIoZSloKHVzZWQpZyhhcylmKGFuKWcoYWxpYXMpZihmb3IpaAotRm0ob3JnYW5pemF0aW9uYWxVbmkpbyh0TilvKGFtKW8oZSlwIEZyKC4pMCA1MzE1IHkgRm0oY29tbW9uTmFtZSlwCi0wIDU1NDkgMzkwMSA0IHYgMCA1NjQ5IGEgRmcoNikyMjM5IGIoMyk4MyBiIEZtKE9wZW5TU0wpMjQKLWIgRmcoXDAyNilrKFB5dGhvbilmKGludGVyZmFjZSloKHRvKWYoT3ApcihlblNTTClwIGVvcAotZW5kCitGbShvcmdhbml6YXRpb25OYW1lKXAgRnIoLilwIDAgNTU0OSAzOTAxIDQgdiAwIDU2NDkgYQorRmcoNikyMjM5IGIoMyk4MyBiIEZtKE9wZW5TU0wpMjQgYiBGZyhcMDI2KWsoUHl0aG9uKWYoaW50ZXJmYWNlKWgodG8pZgorKE9wKXIoZW5TU0wpcCBlb3AgZW5kCiAlJVBhZ2U6IDcgNwotVGVYRGljdCBiZWdpbiA3IDYgYm9wIDIwOCA4MyBhIEZyKFRoZSkyNyBiKGNvbW1vbilnKG5hbWUpaChvZilmKHRoZSloCi0oZW4pbih0aXQpbih5KS03IGIoLikzNyBiIEZtKENOKTI3IGIgRnIobWEpbih5KWYoYilyKGUpaSh1c2VkKWcoYXMpZgotKGFuKWcoYWxpYXMpZyhmb3IpZyBGbShjb21tb25OYW1lKXAgRnIoLikwIDIzMCB5IEZtKGVtYWlsQWRkcmVzcykyMDgKLTMzMCB5IEZyKFRoZSlnKGUtbWFpbClnKGFkZHJlc3MpZihvZilpKHRoZSlnKGVuKW4odGl0KW4oeSktNwotYiguKTAgNTkzIHkgRmcoWDUwOVJlcSkyNiBiKG9iamVjdHMpMCA3OTMgeSBGcihYNTA5UmVxKWcob2IpNQorVGVYRGljdCBiZWdpbiA3IDYgYm9wIDAgODMgYSBGbShvcmdhbml6YXRpb25hbFVuKW8oaXQpbyhOYW0pbyhlKTIwOAorMTgzIHkgRnIoVGhlKTI3IGIob3JnYW5pemF0aW9uYWwpZSh1bml0KWoob2YpZyh0aGUpZyhlbiluKHRpdCluKHkpLTcKK2IoLikzNiBiIEZtKE9VKTI3IGIgRnIobWEpbih5KWcoYilyKGUpaCh1c2VkKWcoYXMpZihhbilnKGFsaWFzKWYoZm9yKWgKK0ZtKG9yZ2FuaXphdGlvbmFsVW5pKW8odE4pbyhhbSlvKGUpcCBGciguKTAgMzMwIHkgRm0oY29tbW9uTmFtZSkyMDgKKzQyOSB5IEZyKFRoZSlnKGNvbW1vbilnKG5hbWUpaChvZilmKHRoZSloKGVuKW4odGl0KW4oeSktNworYiguKTM3IGIgRm0oQ04pMjcgYiBGcihtYSluKHkpZihiKXIoZSlpKHVzZWQpZyhhcylmKGFuKWcoYWxpYXMpZyhmb3IpZworRm0oY29tbW9uTmFtZSlwIEZyKC4pMCA1NzYgeSBGbShlbWFpbEFkZHJlc3MpMjA4IDY3NgoreSBGcihUaGUpZyhlLW1haWwpZyhhZGRyZXNzKWYob2YpaSh0aGUpZyhlbiluKHRpdCluKHkpLTcKK2IoLikwIDkzOSB5IEZnKFg1MDlSZXEpMjYgYihvYmplY3RzKTAgMTEzOSB5IEZyKFg1MDlSZXEpZyhvYik1CiBiKGplY3RzKTI3IGIoaGEpbih2KW4oZSlnKHRoZSloKGZvbGxvKW4od2luZyllKG1ldGhvKXIoZHM6KTAKLTk0MCB5IEZtKGdldF9wdWJrZXlcKFwpKTIwOCAxMDQwIHkgRnIoUmV0dXJuKWgoYSlnKFBLZXkpaChvYik1CisxMjg2IHkgRm0oZ2V0X3B1YmtleVwoXCkpMjA4IDEzODYgeSBGcihSZXR1cm4paChhKWcoUEtleSloKG9iKTUKIGIoamVjdCkyNyBiKHJlcHJlc2VuKW4odGluZylmKHRoZSlpKHB1YmxpYylnKGspbihleSlmKG9mKWcodGhlKWgKLShjZXJ0aVwwMzRjYXRlKWYocmVxdWVzdC4pMCAxMTg2IHkgRm0oZ2V0X3N1YmplY3RcKFwpKTIwOAotMTI4NiB5IEZyKFJldHVybilnKGFuKWgoWDUwOU5hbWUpZShvYik1IGIoamVjdCkyNyBiKHJlcHJlc2VuKW4odGluZylmCisoY2VydGlcMDM0Y2F0ZSlmKHJlcXVlc3QuKTAgMTUzMiB5IEZtKGdldF9zdWJqZWN0XChcKSkyMDgKKzE2MzIgeSBGcihSZXR1cm4pZyhhbiloKFg1MDlOYW1lKWUob2IpNSBiKGplY3QpMjcgYihyZXByZXNlbiluKHRpbmcpZgogKHRoZSlpKHN1Yik1IGIoamVjdCkyOCBiKG9mKWYodGhlKWgoY2VydGlcMDM0Y2F0ZS4pMAotMTQzMyB5IEZtKHNldF9wdWJrZXlcKClwIEZkKHBrZXkpNyBiIEZtKFwpKTIwOCAxNTMyIHkKKzE3NzkgeSBGbShzZXRfcHVia2V5XCgpcCBGZChwa2V5KTcgYiBGbShcKSkyMDggMTg3OSB5CiBGcihTZXQpMjggYih0aGUpZihwdWJsaWMpaChrKW4oZXkpZihvZiloKHRoZSlnKGNlcnRpXDAzNGNhdGUpZihyZXF1ZXN0KQotZyh0bylnIEZkKHBrZXkpNyBiIEZyKC4pMCAxNjc5IHkgRm0oc2lnblwoKXAgRmQocGtleSwpMjkKLWIoZGlnZXN0KTggYiBGbShcKSkyMDggMTc3OSB5IEZyKFNpZ24pMzYgYih0aGUpZyhjZXJ0aVwwMzRjYXRlKWcKK2codG8pZyBGZChwa2V5KTcgYiBGciguKTAgMjAyNSB5IEZtKHNpZ25cKClwIEZkKHBrZXksKTI5CitiKGRpZ2VzdCk4IGIgRm0oXCkpMjA4IDIxMjUgeSBGcihTaWduKTM2IGIodGhlKWcoY2VydGlcMDM0Y2F0ZSlnCiAocmVxdWVzdCwpaCh1c2luZylmKHRoZSlnKGspbihleSloIEZkKHBrZXkpNDUgYiBGcihhbmQpMzYKIGIodGhlKWcobWVzc2FnZSlmKGRpZ2VzdClnKGFsZ29yaXRobSlnKGlkZW4pbih0aVwwMzRlZClpKGIpbih5KWYodGhlKQotMjA4IDE4NzkgeShzdHJpbmcpMjggYiBGZChkaWdlc3QpOCBiIEZyKC4pMCAyMDI1IHkgRm0odmVyaWZ5XCgpcAotRmQocGtleSlmIEZtKFwpKTIwOCAyMTI1IHkgRnIoViktNyBiKGVyaWZ5KTI3IGIoYSlnKGNlcnRpXDAzNGNhdGUpZworMjA4IDIyMjUgeShzdHJpbmcpMjggYiBGZChkaWdlc3QpOCBiIEZyKC4pMCAyMzcyIHkgRm0odmVyaWZ5XCgpcAorRmQocGtleSlmIEZtKFwpKTIwOCAyNDcxIHkgRnIoViktNyBiKGVyaWZ5KTI3IGIoYSlnKGNlcnRpXDAzNGNhdGUpZwogKHJlcXVlc3QpZyh1c2luZylnKHRoZSloKHB1YmxpYylnKGspbihleSlnIEZkKHBrZXkpNwotYiBGciguKTAgMjM4OCB5IEZnKFg1MDlTdG8pbihyZSkyNiBiKG9iamVjdHMpMCAyNTg5IHkKK2IgRnIoLikwIDI3MzQgeSBGZyhYNTA5U3RvKW4ocmUpMjYgYihvYmplY3RzKTAgMjkzNSB5CiBGcihUaGUpaShYNTA5U3RvcmUpZChvYik1IGIoamVjdCkyOCBiKGhhcylmKGN1cnJlbiluKHRseSlmKGp1c3QpaShvbmUpZwotKG1ldGhvKXIoZDopMCAyNzM1IHkgRm0oYWRkX2NlcnRcKClwIEZkKGMpbChlcnQpOCBiIEZtKFwpKTIwOAotMjgzNSB5IEZyKEEpbihkZCkyNyBiKHRoZSloKGNlcnRpXDAzNGNhdGUpZiBGZChjKWwoZXJ0KTM2Ci1iIEZyKHRvKTI3IGIodGhlKWgoY2VydGlcMDM0Y2F0ZSlmKHN0b3JlLikwIDMwOTggeSBGZyhQS2V5KWcob2JqZWN0cykwCi0zMjk5IHkgRnIoVGhlKWgoUEtleSlmKG9iKTUgYihqZWN0KTI3IGIoaGFzKWcodGhlKWgoZm9sbG8pbih3aW5nKWYKLShtZXRobylyKGRzOikwIDM0NDUgeSBGbShiaXRzXChcKSkyMDggMzU0NSB5IEZyKFJldHVybilnKHRoZSloKG4pbih1bSluCi0oYilyKGVyKWYob2YpaChiaXRzKWcob2YpZih0aGUpaChrKW4oZXkpLTcgYiguKTAgMzY5MgorKG1ldGhvKXIoZDopMCAzMDgyIHkgRm0oYWRkX2NlcnRcKClwIEZkKGMpbChlcnQpOCBiIEZtKFwpKTIwOAorMzE4MSB5IEZyKEEpbihkZCkyNyBiKHRoZSloKGNlcnRpXDAzNGNhdGUpZiBGZChjKWwoZXJ0KTM2CitiIEZyKHRvKTI3IGIodGhlKWgoY2VydGlcMDM0Y2F0ZSlmKHN0b3JlLikwIDM0NDQgeSBGZyhQS2V5KWcob2JqZWN0cykwCiszNjQ1IHkgRnIoVGhlKWgoUEtleSlmKG9iKTUgYihqZWN0KTI3IGIoaGFzKWcodGhlKWgoZm9sbG8pbih3aW5nKWYKKyhtZXRobylyKGRzOikwIDM3OTIgeSBGbShiaXRzXChcKSkyMDggMzg5MSB5IEZyKFJldHVybilnKHRoZSloKG4pbih1bSluCisoYilyKGVyKWYob2YpaChiaXRzKWcob2YpZih0aGUpaChrKW4oZXkpLTcgYiguKTAgNDAzOAogeSBGbShnZW5lcmF0ZV9rZXlcKClwIEZkKHR5cClsKGUsKTI1IGIoYml0cyk3IGIgRm0oXCkpMjA4Ci0zNzkyIHkgRnIoR2VuZXJhdGUpMjIgYihhKWgocHVibGljL3ByaXYpLTUgYihhdGUpMjMgYihrKW4oZXkpZihwYWlyKWgKKzQxMzggeSBGcihHZW5lcmF0ZSkyMiBiKGEpaChwdWJsaWMvcHJpdiktNSBiKGF0ZSkyMyBiKGspbihleSlmKHBhaXIpaAogKG9mKWcodGhlKWgodCluKHlwKXIoZSlmIEZkKHR5cClsKGUpMzAgYiBGcihcKG9uZSkyMwogYihvZikzMCBiIEZtKFRZUEVfUlNBKTE5IGIgRnIoYW5kKTI0IGIgRm0oVFlQRV9EU0EpcAotRnIoXCkpYyh3aXRoKWoodGhlKWgoc2l6ZSlmIEZkKGJpdHMpNyBiIEZyKC4pMCAzOTM4IHkKLUZtKHR5cGVcKFwpKTIwOCA0MDM4IHkgRnIoUmV0dXJuKTI3IGIodGhlKWgodCluKHlwKXIoZSlnKG9mKWYodGhlKWgoayluCi0oZXkpLTcgYiguKTAgNDMwMSB5IEZnKFBLKW4oQ1M3KTI3IGIob2JqZWN0cykwIDQ1MDIgeQorRnIoXCkpYyh3aXRoKWoodGhlKWgoc2l6ZSlmIEZkKGJpdHMpNyBiIEZyKC4pMCA0Mjg1IHkKK0ZtKHR5cGVcKFwpKTIwOCA0Mzg0IHkgRnIoUmV0dXJuKTI3IGIodGhlKWgodCluKHlwKXIoZSlnKG9mKWYodGhlKWgoayluCisoZXkpLTcgYiguKTAgNDY0NyB5IEZnKFBLKW4oQ1M3KTI3IGIob2JqZWN0cykwIDQ4NDggeQogRnIoUEspbihDUzcpZyhvYik1IGIoamVjdHMpMjcgYihoYSluKHYpbihlKWYodGhlKWkoZm9sbG8pbih3aW5nKWYKLShtZXRobylyKGRzOikwIDQ2NDggeSBGbSh0eXBlX2lzX3NpZ25lZFwoXCkpMjA4IDQ3NDgKLXkgRnIoRklYTUUpMCA0ODk1IHkgRm0odHlwZV9pc19lbnZlbG9wZSlvKGRcKClvKFwpKTIwOAotNDk5NSB5IEZyKEZJWE1FKTAgNTE0MSB5IEZtKHR5cGVfaXNfc2lnbmVkQW4pbyhkRSlvKG52ZSlvKGxvKW8ocGUpbwotKGRcKFwpKTIwOCA1MjQxIHkgRnIoRklYTUUpcCAwIDU1NDkgMzkwMSA0IHYgMCA1NjQ5IGEKLUZnKDMuMSk4MiBiIEZtKGNyeXB0bykyNSBiIEZnKFwwMjYpaihHZW5lcmljKWcoY3J5cHRvZ3JhcGhpYyllKG1vKXIKLShkdWxlKTIyMzQgYig3KXAgZW9wIGVuZAorKG1ldGhvKXIoZHM6KTAgNDk5NSB5IEZtKHR5cGVfaXNfc2lnbmVkXChcKSkyMDggNTA5NAoreSBGcihGSVhNRSkwIDUyNDEgeSBGbSh0eXBlX2lzX2VudmVsb3BlKW8oZFwoKW8oXCkpMjA4Cis1MzQxIHkgRnIoRklYTUUpcCAwIDU1NDkgMzkwMSA0IHYgMCA1NjQ5IGEgRmcoMy4xKTgyCitiIEZtKGNyeXB0bykyNSBiIEZnKFwwMjYpaihHZW5lcmljKWcoY3J5cHRvZ3JhcGhpYyllKG1vKXIoZHVsZSkyMjM0CitiKDcpcCBlb3AgZW5kCiAlJVBhZ2U6IDggOAotVGVYRGljdCBiZWdpbiA4IDcgYm9wIDAgODMgYSBGbSh0eXBlX2lzX2RhdGFcKFwpKTIwOAotMTgzIHkgRnIoRklYTUUpMCAzMzAgeSBGbShnZXRfdHlwZV9uYW1lXChcKSkyMDggNDI5IHkKK1RlWERpY3QgYmVnaW4gOCA3IGJvcCAwIDgzIGEgRm0odHlwZV9pc19zaWduZWRBbilvKGRFKW8obnZlKW8obG8pbyhwZSlvCisoZFwoXCkpMjA4IDE4MyB5IEZyKEZJWE1FKTAgMzMwIHkgRm0odHlwZV9pc19kYXRhXChcKSkyMDgKKzQyOSB5IEZyKEZJWE1FKTAgNTc2IHkgRm0oZ2V0X3R5cGVfbmFtZVwoXCkpMjA4IDY3NiB5CiBGcihHZXQpMjggYih0aGUpZih0KW4oeXApcihlKWgobmFtZSlnKG9mKWYodGhlKWgoUEspbihDUzcuKTAKLTY5MiB5IEZnKFBLKW4oQ1MxMillKG9iamVjdHMpMCA4OTMgeSBGcihQSyluKENTMTIpZyhvYik1Cis5MzkgeSBGZyhQSyluKENTMTIpZShvYmplY3RzKTAgMTEzOSB5IEZyKFBLKW4oQ1MxMilnKG9iKTUKIGIoamVjdHMpMjggYihoYSluKHYpbihlKWUodGhlKWkoZm9sbG8pbih3aW5nKWUobWV0aG8pcihkczopMAotMTA0MCB5IEZtKGdldF9jZXJ0aWZpY2F0ZVwoKW8oXCkpMjA4IDExMzkgeSBGcihSZXR1cm4paChjZXJ0aVwwMzRjYXRlKWcKLShwKXIob3J0aW9uKWcob2YpaCh0aGUpZyhQSyluKENTMTIpZShzdHJ1Y3R1cmUuKTAgMTI4NgoteSBGbShnZXRfcHJpdmF0ZWtleVwoXCkpMjA4IDEzODYgeSBGcihSZXR1cm4paChwcml2KS01CisxMjg2IHkgRm0oZ2V0X2NlcnRpZmljYXRlXCgpbyhcKSkyMDggMTM4NiB5IEZyKFJldHVybiloKGNlcnRpXDAzNGNhdGUpZworKHApcihvcnRpb24pZyhvZiloKHRoZSlnKFBLKW4oQ1MxMillKHN0cnVjdHVyZS4pMCAxNTMyCit5IEZtKGdldF9wcml2YXRla2V5XChcKSkyMDggMTYzMiB5IEZyKFJldHVybiloKHByaXYpLTUKIGIoYXRlKTI3IGIoayluKGV5KWcocClyKG9ydGlvbilnKG9mKWgodGhlKWcoUEspbihDUzEyKWUoc3RydWN0dXJlKTAKLTE1MzIgeSBGbShnZXRfY2FfY2VydGlmaWNhKW8odGUpbyhzXChcKSkyMDggMTYzMiB5IEZyKFJldHVybilrKENBKWcKKzE3NzkgeSBGbShnZXRfY2FfY2VydGlmaWNhKW8odGUpbyhzXChcKSkyMDggMTg3OSB5IEZyKFJldHVybilrKENBKWcKIChjZXJ0aVwwMzRjYXRlcylmKHdpdGhpbilpKHRoZSlmKFBLKW4oQ1MxMilmKG9iKTUgYihqZWN0KTMwCiBiKGFzKWYoYSlnKHR1cGxlLik0NSBiKFJldHVybnMpMzAgYihOb25lKWcoaWYpZyhubylnKENBKWcKLShjZXJ0aVwwMzRjYXRlcylmKGFyZSkyMDggMTczMiB5KHByZXNlbiluKHQuKTAgMTk5NSB5Ci1GZyhYNTA5RXh0ZW5zaW9uKWMob2JqZWN0cykwIDIxOTUgeSBGcihYNTA5RXh0ZW5zaW9uKWgob2IpNQorKGNlcnRpXDAzNGNhdGVzKWYoYXJlKTIwOCAxOTc4IHkocHJlc2VuKW4odC4pMCAyMjQxIHkKK0ZnKFg1MDlFeHRlbnNpb24pYyhvYmplY3RzKTAgMjQ0MiB5IEZyKFg1MDlFeHRlbnNpb24paChvYik1CiBiKGplY3RzKTI3IGIoY3VycmVuKW4odGx5KWcob25seSlnKGhhKW4odiluKGUpZihvbmUpaShtZXRobylyKGQ6KTAKLTIzNDIgeSBGbShnZXRfY3JpdGljYWxcKFwpKTIwOCAyNDQyIHkgRnIoUmV0dXJuKWYodGhlKWgoY3JpdGljYWwpZgotKFwwMzRlbGQpaChvZilmKHRoZSloKGV4dGVuc2lvbilmKG9iKTUgYihqZWN0LikwIDI3MDUKLXkgRmcoTmV0c2NhcClyKGVTUEtJKTI3IGIob2JqZWN0cykwIDI5MDUgeSBGcihOZXRzY2FwKXIoZVNQS0kpaChvYik1CisyNTg5IHkgRm0oZ2V0X2NyaXRpY2FsXChcKSkyMDggMjY4OCB5IEZyKFJldHVybilmKHRoZSloKGNyaXRpY2FsKWYKKyhcMDM0ZWxkKWgob2YpZih0aGUpaChleHRlbnNpb24pZihvYik1IGIoamVjdC4pMCAyOTUxCit5IEZnKE5ldHNjYXApcihlU1BLSSkyNyBiKG9iamVjdHMpMCAzMTUyIHkgRnIoTmV0c2NhcClyKGVTUEtJKWgob2IpNQogYihqZWN0cykyNyBiKGhhKW4odiluKGUpZih0aGUpaShmb2xsbyluKHdpbmcpZShtZXRobylyKGRzOikwCi0zMDUyIHkgRm0oYjY0X2VuY29kZVwoXCkpMjA4IDMxNTIgeSBGcihSZXR1cm4paChhKWcoYmFzZTY0LWVuY28pcihkZWQpZgorMzI5OSB5IEZtKGI2NF9lbmNvZGVcKFwpKTIwOCAzMzk4IHkgRnIoUmV0dXJuKWgoYSlnKGJhc2U2NC1lbmNvKXIoZGVkKWYKIChzdHJpbmcpaChyZXByZXNlbiluKHRhdGlvbillKG9mKWoodGhlKWcob2IpNSBiKGplY3QuKTAKLTMyOTkgeSBGbShnZXRfcHVia2V5XChcKSkyMDggMzM5OCB5IEZyKFJldHVybikyNyBiKHRoZSloKHB1YmxpYylnKGspbgotKGV5KWYob2YpaChvYik1IGIoamVjdC4pMCAzNTQ1IHkgRm0oc2V0X3B1YmtleVwoKXAgRmQoa2V5KWkKLUZtKFwpKTIwOCAzNjQ1IHkgRnIoU2V0KTI4IGIodGhlKWYocHVibGljKWgoayluKGV5KWYob2YpaCh0aGUpZyhvYik1Ci1iKGplY3QpMjcgYih0byloIEZkKGtleSk3IGIgRnIoLikwIDM3OTIgeSBGbShzaWduXCgpcAotRmQoa2V5LCkyOSBiKGRpZ2VzdF9uYW1lKTYgYiBGbShcKSkyMDggMzg5MSB5IEZyKFNpZ24pMjcKKzM1NDUgeSBGbShnZXRfcHVia2V5XChcKSkyMDggMzY0NSB5IEZyKFJldHVybikyNyBiKHRoZSloKHB1YmxpYylnKGspbgorKGV5KWYob2YpaChvYik1IGIoamVjdC4pMCAzNzkyIHkgRm0oc2V0X3B1YmtleVwoKXAgRmQoa2V5KWkKK0ZtKFwpKTIwOCAzODkxIHkgRnIoU2V0KTI4IGIodGhlKWYocHVibGljKWgoayluKGV5KWYob2YpaCh0aGUpZyhvYik1CitiKGplY3QpMjcgYih0byloIEZkKGtleSk3IGIgRnIoLikwIDQwMzggeSBGbShzaWduXCgpcAorRmQoa2V5LCkyOSBiKGRpZ2VzdF9uYW1lKTYgYiBGbShcKSkyMDggNDEzOCB5IEZyKFNpZ24pMjcKIGIodGhlKWgoTmV0c2NhcClyKGVTUEtJKWcob2IpNSBiKGplY3QpMjcgYih1c2luZylnKHRoZSloKGdpdiluKGVuKWYKLUZkKGtleSkzNSBiIEZyKGFuZCkyOCBiIEZkKGRpZ2VzdF9uYW1lKTYgYiBGciguKTAgNDAzOAoteSBGbSh2ZXJpZnlcKClwIEZkKGtleSloIEZtKFwpKTIwOCA0MTM4IHkgRnIoViktNyBiKGVyaWZ5KTI3CitGZChrZXkpMzUgYiBGcihhbmQpMjggYiBGZChkaWdlc3RfbmFtZSk2IGIgRnIoLikwIDQyODUKK3kgRm0odmVyaWZ5XCgpcCBGZChrZXkpaCBGbShcKSkyMDggNDM4NCB5IEZyKFYpLTcgYihlcmlmeSkyNwogYih0aGUpaChOZXRzY2FwKXIoZVNQS0kpZyhvYik1IGIoamVjdCkyNyBiKHVzaW5nKWcodGhlKWgoZ2l2KW4oZW4pZgotRmQoa2V5KTcgYiBGciguKTAgNDQxNyB5IEZrKDMuMik5NyBiIEZlKHJhbmQpMzQgYiBGayhcMDI2KWUoQW4paAorRmQoa2V5KTcgYiBGciguKTAgNDY2NCB5IEZrKDMuMik5NyBiIEZlKHJhbmQpMzQgYiBGayhcMDI2KWUoQW4paAogKGludGVyZmFjZSlnKHRvKWcodGhlKWcoT3ApcyhlblNTTClmKHBzZXVkbyloKHJhbmRvbSlnKG51bWIpcyhlcilnCi0oZ2VuZXJhdG8pbShyKTAgNDYxOCB5IEZyKFRoaXMpMjggYihtbylyKGR1bGUpZihoYW5kbGVzKWgodGhlKWYoT3ApcgorKGdlbmVyYXRvKW0ocikwIDQ4NjQgeSBGcihUaGlzKTI4IGIobW8pcihkdWxlKWYoaGFuZGxlcyloKHRoZSlmKE9wKXIKIChlblNTTCloKHBzZXVkbylmKHJhbmRvbSlnKG4pbih1bSluKGIpcihlcilnKGdlbmVyYXRvcilmKFwoUFJOR1wpKWoKLShhbmQpZShkZWNsYXJlcylmKHRoZSlpKGZvbGxvKW4od2luZzopMCA0NzY1IHkgRm0oYWRkXCgpcAotRmQoc3RyaW5nLClnKGVudHIpbChvcHkpNyBiIEZtKFwpKTIwOCA0ODY0IHkgRnIoTWl4KTIyCisoYW5kKWUoZGVjbGFyZXMpZih0aGUpaShmb2xsbyluKHdpbmc6KTAgNTAxMSB5IEZtKGFkZFwoKXAKK0ZkKHN0cmluZywpZyhlbnRyKWwob3B5KTcgYiBGbShcKSkyMDggNTExMSB5IEZyKE1peCkyMgogYihiKW4oeXRlcylnKGZyb20pZyBGZChzdHJpbmcpMzAgYiBGcihpbiluKHRvKTIyIGIodGhlKWgoUFJORyloKHN0YXRlLikKIDM1IGIoVGhlKTIyIGIgRmQoZW50cilsKG9weSkzMCBiIEZyKGFyZ3VtZW4pbih0KTIyIGIoaXMpZyhcKHRoZSloKGxvKW4KICh3KW4oZXIpZShiKXIob3VuZClpKG9mKTYgYihcKSkyMyBiKGFuKWYoZXN0aW1hdGUpMjA4Ci00OTY0IHkob2YpZihobyluKHcpZyhtKW4odWMpbihoKWgocmFuZG9tbmVzcyllKGlzKWgoY29uKW4odGFpbmVkKWcoaW4paAorNTIxMCB5KG9mKWYoaG8pbih3KWcobSluKHVjKW4oaCloKHJhbmRvbW5lc3MpZShpcyloKGNvbiluKHRhaW5lZClnKGluKWgKIEZkKHN0cmluZyk3IGIgRnIoLCkyMyBiKG1lYXN1cmVkKWUoaW4paChiKW4oeXRlcy4pMzQKIGIoRiktNyBiKG9yKTIxIGIobW9yZSlnKGluZm9ybWF0aW9uLCloKHNlZSlnKGUuZy4pMzQKLWIoUkYpbihDKTIwOCA1MDY0IHkoMTc1MC4pMCA1MjEwIHkgRm0oZWdkXCgpcCBGZChwKWwoYXRoKTYKLWIgRmMoWylwIEZkKCwpMjkgYihieXRlcykxOSBiIEZjKF0pcCBGbShcKSlwIDAgNTU0OSAzOTAxCi00IHYgMCA1NjQ5IGEgRmcoOCkyMjM5IGIoMyk4MyBiIEZtKE9wZW5TU0wpMjQgYiBGZyhcMDI2KWsoUHl0aG9uKWYKLShpbnRlcmZhY2UpaCh0bylmKE9wKXIoZW5TU0wpcCBlb3AgZW5kCitiKFJGKW4oQykyMDggNTMxMCB5KDE3NTAuKXAgMCA1NTQ5IDM5MDEgNCB2IDAgNTY0OSBhCitGZyg4KTIyMzkgYigzKTgzIGIgRm0oT3BlblNTTCkyNCBiIEZnKFwwMjYpayhQeXRob24pZihpbnRlcmZhY2UpaCh0bylmCisoT3ApcihlblNTTClwIGVvcCBlbmQKICUlUGFnZTogOSA5Ci1UZVhEaWN0IGJlZ2luIDkgOCBib3AgMjA4IDgzIGEgRnIoUXVlcnkpMjkgYih0aGUpaihFbiluKHRyb3Apbih5KWUKLShHYXRoZXJpbmcpZyhEYWVtb24pMTYyOSA1MyB5IEZsKDMpMTY5NyA4MyB5IEZyKG9uKWgoc28pcihjKW4oayluKGV0KWYKLUZkKHApbChhdGgpMzggYiBGcihmb3IpMzAgYiBGZChieXRlcykzOCBiIEZyKGIpbih5dGVzKTMxCi1iKG9mKWcocmFuZG9tKWYoZGF0YSlnKGFuZCloKGFuZClnKHVzZXMpMjA4IDE4MyB5IEZtKGFkZCkyNgotYiBGcih0byloKHNlZWQpaCh0aGUpZyhQUk5HLilnKFRoZSlnKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkyNwotYihvZikzNCBiIEZkKGJ5dGVzKWggRnIoaXMpMjcgYigyNTUuKTAgMzQ0IHkgRm0obG9hZF9maWxlXCgpcAotRmQocClsKGF0aCk2IGIgRmMoWylwIEZkKCwpMjYgYihieXRlcykxOSBiIEZjKF0pcCBGbShcKSkyMDgKLTQ0NCB5IEZyKFJlYWQpMjkgYiBGZChieXRlcykzOCBiIEZyKGIpbih5dGVzKTMwIGIoXChvcilmKGFsbCloKG9mKWcKLShpdCwpaShpZikzNyBiIEZkKGJ5dGVzKWcgRnIoaXMpMzEgYihuZWdhdGl2KW4oZVwpKWUob2YpaChkYXRhKWcoZnJvbSlnCi0odGhlKWcoXDAzNGxlKWggRmQocClsKGF0aCkzNyBiIEZyKHRvKTMwIGIoc2VlZClnKHRoZSloKFBSTkcuKWcoVGhlKTIwOAotNTQzIHkoZGVmYXVsdClkKHYpLTUgYihhbHVlKTI3IGIob2YpMzQgYiBGZChieXRlcyloIEZyKGlzKTI3Ci1iKC0xLikwIDY5MCB5IEZtKHNjcmVlblwoXCkpMjA4IDc5MCB5IEZyKEEpbihkZClnKHRoZSloKGN1cnJlbiluKHQpZgorVGVYRGljdCBiZWdpbiA5IDggYm9wIDAgOTAgYSBGbShlZ2RcKClwIEZkKHApbChhdGgpNgorYiBGYyhbKXAgRmQoLCkyOSBiKGJ5dGVzKTE5IGIgRmMoXSlwIEZtKFwpKTIwOCAxODkgeQorRnIoUXVlcnkpMjkgYih0aGUpaihFbiluKHRyb3Apbih5KWUoR2F0aGVyaW5nKWcoRGFlbW9uKTE2MjkKKzE1OSB5IEZsKDMpMTY5NyAxODkgeSBGcihvbiloKHNvKXIoYyluKGspbihldClmIEZkKHApbChhdGgpMzgKK2IgRnIoZm9yKTMwIGIgRmQoYnl0ZXMpMzggYiBGcihiKW4oeXRlcykzMSBiKG9mKWcocmFuZG9tKWYoZGF0YSlnKGFuZCloCisoYW5kKWcodXNlcykyMDggMjg5IHkgRm0oYWRkKTI2IGIgRnIodG8paChzZWVkKWgodGhlKWcoUFJORy4pZyhUaGUpZworKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkyNyBiKG9mKTM0IGIgRmQoYnl0ZXMpaCBGcihpcykyNworYigyNTUuKTAgNDUwIHkgRm0obG9hZF9maWxlXCgpcCBGZChwKWwoYXRoKTYgYiBGYyhbKXAKK0ZkKCwpMjYgYihieXRlcykxOSBiIEZjKF0pcCBGbShcKSkyMDggNTUwIHkgRnIoUmVhZCkyOQorYiBGZChieXRlcykzOCBiIEZyKGIpbih5dGVzKTMwIGIoXChvcilmKGFsbCloKG9mKWcoaXQsKWkoaWYpMzcKK2IgRmQoYnl0ZXMpZyBGcihpcykzMSBiKG5lZ2F0aXYpbihlXCkpZShvZiloKGRhdGEpZyhmcm9tKWcodGhlKWcKKyhcMDM0bGUpaCBGZChwKWwoYXRoKTM3IGIgRnIodG8pMzAgYihzZWVkKWcodGhlKWgoUFJORy4pZyhUaGUpMjA4Cis2NDkgeShkZWZhdWx0KWQodiktNSBiKGFsdWUpMjcgYihvZikzNCBiIEZkKGJ5dGVzKWggRnIoaXMpMjcKK2IoLTEuKTAgNzk2IHkgRm0oc2NyZWVuXChcKSkyMDggODk2IHkgRnIoQSluKGRkKWcodGhlKWgoY3VycmVuKW4odClmCiAoY29uKW4odGVuKW4odHMpZyhvZilnKHRoZSloKHNjcmVlbilmKHRvKWcodGhlKWgoUFJORyloKHN0YXRlLikzNwotYihBKS05IGIodilrKGFpbGFiaWxpdCluKHk6KTM2IGIoV2luZG8pbih3cy4pMCA5MzcgeQotRm0oc2VlZFwoKXAgRmQoc3RyaW5nKTcgYiBGbShcKSkyMDggMTAzNiB5IEZyKFRoaXMpMjcKK2IoQSktOSBiKHYpayhhaWxhYmlsaXQpbih5OikzNiBiKFdpbmRvKW4od3MuKTAgMTA0MyB5CitGbShzZWVkXCgpcCBGZChzdHJpbmcpNyBiIEZtKFwpKTIwOCAxMTQyIHkgRnIoVGhpcykyNwogYihpcyloKGVxdWl2KS01IGIoYWxlbiluKHQpMjcgYih0bylnKGNhbGxpbmcpaCBGbShhZGQpZgogRnIod2l0aCloIEZkKGVudHIpbChvcHkpMzUgYiBGcihhcykyNyBiKHRoZSloKGxlbmd0aClmKG9mKWgodGhlKWcKLShzdHJpbmcuKTAgMTE4MyB5IEZtKHN0YXR1c1woXCkpMjA4IDEyODMgeSBGcihSZXR1cm5zKWYodHJ1ZSlnKGlmKWkKKyhzdHJpbmcuKTAgMTI4OSB5IEZtKHN0YXR1c1woXCkpMjA4IDEzODkgeSBGcihSZXR1cm5zKWYodHJ1ZSlnKGlmKWkKICh0aGUpZShQUk5HKWkoaGFzKWUoYilyKGVlbiloKHNlZWRlZClmKHdpdGgpaChlbm91Z2gpZihkYXRhLClnKGFuZCloCi0oZmFsc2UpZihvdGhlcndpc2UuKTAgMTQzMCB5IEZtKHdyaXRlX2ZpbGVcKClwIEZkKHApbChhdGgpNgotYiBGbShcKSkyMDggMTUyOSB5IEZyKFcpLTcgYihyaXRlKTM0IGIoYSlnKG4pbih1bSluKGIpcihlcilnKG9mKWgKKyhmYWxzZSlmKG90aGVyd2lzZS4pMCAxNTM2IHkgRm0od3JpdGVfZmlsZVwoKXAgRmQocClsKGF0aCk2CitiIEZtKFwpKTIwOCAxNjM1IHkgRnIoVyktNyBiKHJpdGUpMzQgYihhKWcobiluKHVtKW4oYilyKGVyKWcob2YpaAogKHJhbmRvbSllKGIpbih5dGVzKWgoXChjdXJyZW4pbih0bHkpZygxMDI0XCkpZih0byloKHRoZSloKFwwMzRsZSlmCiBGZChwKWwoYXRoKTYgYiBGciguKTU5IGIoVGhpcykzNCBiKFwwMzRsZSloKGNhbilmKHRoZW4pZyhiKXIoZSloKHVzZWQpZwotKHdpdGgpMjA4IDE2MjkgeSBGbShsb2FkX2ZpbGUpMjMgYiBGcih0bykyOCBiKHNlZWQpZih0aGUpaChQUk5HKWgKLShhZ2Fpbi4pMCAxOTA4IHkgRmsoMy4zKTk3IGIgRmUoU1NMKTMzIGIgRmsoXDAyNilmKEFuKWgoaW50ZXJmYWNlKWgodG8pCisod2l0aCkyMDggMTczNSB5IEZtKGxvYWRfZmlsZSkyMyBiIEZyKHRvKTI4IGIoc2VlZClmKHRoZSloKFBSTkcpaAorKGFnYWluLikwIDIwMTUgeSBGaygzLjMpOTcgYiBGZShTU0wpMzMgYiBGayhcMDI2KWYoQW4paChpbnRlcmZhY2UpaCh0bykKIGUodGhlKWgoU1NMLXNwKXMoZWNpXDAzNGMpaChwYSltKHJ0cylmKG9mKWYoT3ApcyhlblNTTCkwCi0yMTA5IHkgRnIoVGhpcyljKG1vKXIoZHVsZSlmKGhhbmRsZXMpaCh0aGluZ3MpZihzcClyKGVjaVwwMzRjKWgodG8pZgorMjIxNSB5IEZyKFRoaXMpYyhtbylyKGR1bGUpZihoYW5kbGVzKWgodGhpbmdzKWYoc3ApcihlY2lcMDM0YyloKHRvKWYKIChTU0wuKWgoVGhlcmUpZihhcmUpZih0KW4odyluKG8paChvYik1IGIoamVjdHMpMjcgYihkZVwwMzRuZWQ6KTM4Ci1iKENvbiluKHRleHQsKTI3IGIoQ29ubmVjdGlvbi4pMCAyMjU2IHkgRm0oU1NMdjJfTUVUSE9EKTAKLTIzNTUgeShTU0x2M19NRVRIT0QpMCAyNDU1IHkoU1NMdjIzX01FVEhPRCkwIDI1NTUgeShUTFN2MV9NRVRIT0QpMjA4Ci0yNjU0IHkgRnIoVGhlc2UpZyhjb25zdGFuKW4odHMpZihyZXByZXNlbiluKHQpaCh0aGUpaChkaVwwMzNlcmVuKW4odClmCitiKENvbiluKHRleHQsKTI3IGIoQ29ubmVjdGlvbi4pMCAyMzYyIHkgRm0oU1NMdjJfTUVUSE9EKTAKKzI0NjIgeShTU0x2M19NRVRIT0QpMCAyNTYxIHkoU1NMdjIzX01FVEhPRCkwIDI2NjEgeShUTFN2MV9NRVRIT0QpMjA4CisyNzYwIHkgRnIoVGhlc2UpZyhjb25zdGFuKW4odHMpZihyZXByZXNlbiluKHQpaCh0aGUpaChkaVwwMzNlcmVuKW4odClmCiAoU1NMKWgobWV0aG8pcihkcylnKHRvKWYodXNlKWgod2hlbilmKGNyZWF0aW5nKWcoYSlnKGNvbiluKHRleHQpZyhvYik1Ci1iKGplY3QuKTAgMjgwMSB5IEZtKFZFUklGWV9OT05FKTAgMjkwMSB5KFZFUklGWV9QRUVSKTAKLTMwMDAgeShWRVJJRllfRkFJTF9JRl9OKW8oT18pbyhQRUUpbyhSXylvKENFKW8oUlQpMjA4Ci0zMTAwIHkgRnIoVGhlc2UpMjcgYihjb25zdGFuKW4odHMpZihyZXByZXNlbiluKHQpaCh0aGUpaCh2KW4KK2IoamVjdC4pMCAyOTA3IHkgRm0oVkVSSUZZX05PTkUpMCAzMDA3IHkoVkVSSUZZX1BFRVIpMAorMzEwNyB5KFZFUklGWV9GQUlMX0lGX04pbyhPXylvKFBFRSlvKFJfKW8oQ0UpbyhSVCkyMDgKKzMyMDYgeSBGcihUaGVzZSkyNyBiKGNvbnN0YW4pbih0cylmKHJlcHJlc2VuKW4odCloKHRoZSloKHYpbgogKGVyaVwwMzRjYXRpb24pZShtbylyKGRlKWgodXNlZCloKGIpbih5KWYodGhlKWgoQ29uKW4odGV4dClmKG9iKTUKLWIoamVjdCdzKTI3IGIgRm0oc2V0X3ZlcmlmeSlkIEZyKG1ldGhvKXIoZC4pMCAzMjQ3IHkKLUZtKEZJTEVUWVBFX1BFTSkwIDMzNDYgeShGSUxFVFlQRV9BU04xKTIwOCAzNDQ2IHkgRnIoRmlsZSk0MQorYihqZWN0J3MpMjcgYiBGbShzZXRfdmVyaWZ5KWQgRnIobWV0aG8pcihkLikwIDMzNTMgeQorRm0oRklMRVRZUEVfUEVNKTAgMzQ1MyB5KEZJTEVUWVBFX0FTTjEpMjA4IDM1NTIgeSBGcihGaWxlKTQxCiBiKHQpbih5cClyKGUpZyhjb25zdGFuKW4odHMpZih1c2VkKWgod2l0aClnKHRoZSloIEZtKHVzZV9jZXJ0aWZpY2F0ZSlvCiAoX2YpbyhpbGUpMzQgYiBGcihhbmQpNDEgYiBGbSh1c2VfcHJpdmF0ZWtleV9mKW8oaWwpbyhlKTM1Ci1iIEZyKG1ldGhvKXIoZHMpNDEgYihvZikyMDggMzU0NiB5KENvbiluKHRleHQpMjcgYihvYik1Ci1iKGplY3RzLikwIDM2OTMgeSBGbShPUF9TSU5HTEVfREhfVVNFKTAgMzc5MiB5KE9QX0VQSEVNRVJBTF9SU0EpMAotMzg5MiB5KE9QX05PX1NTTHYyKTAgMzk5MSB5KE9QX05PX1NTTHYzKTAgNDA5MSB5KE9QX05PX1RMU3YxKTIwOAotNDE5MSB5IEZyKENvbnN0YW4pbih0cykzMCBiKHVzZWQpaSh3aXRoKWcgRm0oc2V0X29wdGlvbnMpMjYKK2IgRnIobWV0aG8pcihkcyk0MSBiKG9mKTIwOCAzNjUyIHkoQ29uKW4odGV4dCkyNyBiKG9iKTUKK2IoamVjdHMuKTAgMzc5OSB5IEZtKE9QX1NJTkdMRV9ESF9VU0UpMCAzODk4IHkoT1BfRVBIRU1FUkFMX1JTQSkwCiszOTk4IHkoT1BfTk9fU1NMdjIpMCA0MDk4IHkoT1BfTk9fU1NMdjMpMCA0MTk3IHkoT1BfTk9fVExTdjEpMjA4Cis0Mjk3IHkgRnIoQ29uc3RhbiluKHRzKTMwIGIodXNlZClpKHdpdGgpZyBGbShzZXRfb3B0aW9ucykyNgogYiBGcihvZikzMiBiKENvbiluKHRleHQpZihvYik1IGIoamVjdHMuKTQ4IGIgRm0oT1BfU0lOR0xFX0RIX1VTRSkyNQotYiBGcihtZWFucykzMSBiKHRvKWcoYWx3KW4oYSluKHlzKWYoY3JlYXRlKWcoYSkyMDggNDI5MAorYiBGcihtZWFucykzMSBiKHRvKWcoYWx3KW4oYSluKHlzKWYoY3JlYXRlKWcoYSkyMDggNDM5NwogeShuZXcpMTkgYihrKW4oZXkpZih3aGVuKWgodXNpbmcpZyhlcGhlbWVyYWwpZihEaVwwMzZlLUhlbGxtYW4uKTM0CiBiIEZtKE9QX0VQSEVNRVJBTF9SU0EpMTMgYiBGcihtZWFucykxOCBiKHRvKWgoYWx3KW4oYSluKHlzKWUodXNlKWkKLShlcGhlbWVyYWwpZyhSU0EpMjA4IDQzOTAgeShrKW4oZXlzKWYod2hlbiloKGRvaW5nKWYoUlNBKWkob3ApcgorKGVwaGVtZXJhbClnKFJTQSkyMDggNDQ5NiB5KGspbihleXMpZih3aGVuKWgoZG9pbmcpZihSU0EpaShvcClyCiAoZXJhdGlvbnMuKTMzIGIgRm0oT1BfTk9fU1NMdjIpcCBGcigsKTE2IGIgRm0oT1BfTk9fU1NMdjMpZgogRnIoYW5kKWsgRm0oT1BfTk9fVExTdjEpMTQgYiBGcihtZWFucykxOSBiKHRvKWcoZGlzYWJsZSlmKHRob3NlKTIwOAotNDQ5MCB5KHNwKXIoZWNpXDAzNGMpMjkgYihwcm90bylyKGNvbHMuKTM5IGIoVGhpcykyOQorNDU5NiB5KHNwKXIoZWNpXDAzNGMpMjkgYihwcm90bylyKGNvbHMuKTM5IGIoVGhpcykyOQogYihpcylnKGluKW4odGVyZXN0aW5nKWcoaWYpZyh5KW4ob3UncmUpZih1c2luZylnKGUuZy4pNDEKIGIgRm0oU1NMdjIzX01FVEhPRCkyNCBiIEZyKHRvKTI5IGIoZ2V0KWcoYW4pZihTU0x2Mi1jb21wYXRpYmxlKTIwOAotNDU4OSB5KGhhbmRzaGFrKW4oZSwpZShidXQpaShkb24ndClnKHcpbihhbiluKHQpZih0bylnKHVzZSloKFNTTHYyLikwCi00NzM2IHkgRm0oQ29udGV4dFR5cGUpMjA4IDQ4MzYgeSBGcihBKWYoUHl0aG9uKWgodCluKHlwKXIoZSlnKG9iKTUKKzQ2OTUgeShoYW5kc2hhayluKGUsKWUoYnV0KWkoZG9uJ3QpZyh3KW4oYW4pbih0KWYodG8pZyh1c2UpaChTU0x2Mi4pMAorNDg0MiB5IEZtKENvbnRleHRUeXBlKTIwOCA0OTQyIHkgRnIoQSlmKFB5dGhvbiloKHQpbih5cClyKGUpZyhvYik1CiBiKGplY3QpMjggYihyZXByZXNlbiluKHRpbmcpZCh0aGUpaihDb24pbih0ZXh0KWcob2IpNQotYihqZWN0KTI3IGIodCluKHlwKXIoZS4pMCA0OTgzIHkgRm0oQ29udGV4dFwoKXAgRmQobWV0aG8pbChkKTkKLWIgRm0oXCkpMjA4IDUwODIgeSBGcihGKS03IGIoYWN0b3J5KTM0IGIoZnVuY3Rpb24paSh0aGF0KWcoY3JlYXRlcylmKGEpCitiKGplY3QpMjcgYih0KW4oeXApcihlLikwIDUwODkgeSBGbShDb250ZXh0XCgpcCBGZChtZXRobylsKGQpOQorYiBGbShcKSkyMDggNTE4OCB5IEZyKEYpLTcgYihhY3RvcnkpMzQgYihmdW5jdGlvbilpKHRoYXQpZyhjcmVhdGVzKWYoYSkKIGcobmV3KWgoQ29uKW4odGV4dClmKG9iKTUgYihqZWN0KTM2IGIoZ2l2KW4oZW4pZShhbilpKFNTTClnKG1ldGhvKXIoZC4pCi02MSBiKFRoZSkzNiBiKG1ldGhvKXIoZClnKHNob3VsZClnKGIpcihlKTIwOCA1MTgyIHkgRm0oU1NMdjJfTUVUSE9EKXAKLUZyKCwpMjIgYiBGbShTU0x2M19NRVRIT0QpcCBGcigsKWggRm0oU1NMdjIzX01FVEhPRClmCi1GcihvcikyNyBiIEZtKFRMU3YxX01FVEhPRClwIEZyKC4pcCAwIDUyNTEgMTU2MCA0IHYgOTIKLTUzMDUgYSBGaSgzKTEyNyA1MzI4IHkgRmgoU2VlKWQgRnEoaHR0cDovL3d3dy5sb3RoYSluCis2MSBiKFRoZSkzNiBiKG1ldGhvKXIoZClnKHNob3VsZClnKGIpcihlKXAgMCA1MjU4IDE1NjAKKzQgdiA5MiA1MzEyIGEgRmkoMykxMjcgNTMzNSB5IEZoKFNlZSkyNCBiIEZxKGh0dHA6Ly93d3cubG90aGEpbgogKHIuY29tL3RlY2gvY3J5cHRvLylwIDAgNTU0OSAzOTAxIDQgdiAwIDU2NDkgYSBGZygzLjMpODIKIGIgRm0oU1NMKTI2IGIgRmcoXDAyNilpKEFuKWcoaW50ZXJmYWNlKWcodG8pZih0aGUpZyhTU0wtc3ApcihlY2lcMDM0YyloCiAocGEpbihydHMpZihvZiloKE9wKXIoZW5TU0wpMTY1MiBiKDkpcCBlb3AgZW5kCiAlJVBhZ2U6IDEwIDEwCi1UZVhEaWN0IGJlZ2luIDEwIDkgYm9wIDAgODMgYSBGbShDb25uZWN0aW9uVHlwZSkyMDggMTgzCi15IEZyKEEpMjcgYihQeXRob24paCh0KW4oeXApcihlKWcob2IpNSBiKGplY3QpMjggYihyZXByZXNlbiluKHRpbmcpZAotKHRoZSlqKENvbm5lY3Rpb24pZihvYik1IGIoamVjdCkyOCBiKHQpbih5cClyKGUuKTAgMzMwCitUZVhEaWN0IGJlZ2luIDEwIDkgYm9wIDIwOCA4MyBhIEZtKFNTTHYyX01FVEhPRClwIEZyKCwpMjIKK2IgRm0oU1NMdjNfTUVUSE9EKXAgRnIoLCloIEZtKFNTTHYyM19NRVRIT0QpZiBGcihvcikyNworYiBGbShUTFN2MV9NRVRIT0QpcCBGciguKTAgMjMwIHkgRm0oQ29ubmVjdGlvblR5cGUpMjA4CiszMzAgeSBGcihBKWcoUHl0aG9uKWgodCluKHlwKXIoZSlnKG9iKTUgYihqZWN0KTI4IGIocmVwcmVzZW4pbih0aW5nKWQKKyh0aGUpaihDb25uZWN0aW9uKWYob2IpNSBiKGplY3QpMjggYih0KW4oeXApcihlLikwIDQ3NgogeSBGbShDb25uZWN0aW9uXCgpcCBGZChjKWwob250ZXh0LCljKHNvKWwoY2tldCk4IGIgRm0oXCkpMjA4Ci00MjkgeSBGcihGKS03IGIoYWN0b3J5KTI2IGIoZnVjbmN0aW9uKWkodGhhdClnKGNyZWF0ZXMpZShhKWgobmV3KWgKKzU3NiB5IEZyKEYpLTcgYihhY3RvcnkpMjYgYihmdWNuY3Rpb24paSh0aGF0KWcoY3JlYXRlcyllKGEpaChuZXcpaAogKENvbm5lY3Rpb24pZihvYik1IGIoamVjdCkyNyBiKGdpdiluKGVuKWcoYW4pZyhTU0wpaChjb24pbih0ZXh0KWYoYW5kKWgKLShhKWYoc28pcihjKW4oayluKGV0KTM1MzggMzk5IHkgRmwoNCkzNjAzIDQyOSB5IEZyKG9iKTUKLWIoamVjdC4pMCA1NzYgeSBGbihleGNlcHRpb24pMzIgYiBGbShFcnJvcikyMDggNjc2IHkKKyhhKWYoc28pcihjKW4oayluKGV0KTM1MzggNTQ2IHkgRmwoNCkzNjAzIDU3NiB5IEZyKG9iKTUKK2IoamVjdC4pMCA3MjMgeSBGbihleGNlcHRpb24pMzIgYiBGbShFcnJvcikyMDggODIzIHkKIEZyKFRoaXMpaShleGNlcHRpb24pZyhpcyloKHVzZWQpZihhcylnKGEpaChiYXNlKWUoY2xhc3MpaChmb3IpZyh0aGUpaAogKG90aGVyKWYoU1NMLXJlbGF0ZWQpZyhleGNlcHRpb25zLClpKGJ1dClmKG1hKW4oeSlmKGFsc28pZihiKXIoZSlpCi0ocmFpc2VkKTIwOCA3NzUgeShkaXJlY3RseSktNyBiKC4pMjA4IDkwOCB5KFdoZW5ldiluKGVyKTM2CisocmFpc2VkKTIwOCA5MjIgeShkaXJlY3RseSktNyBiKC4pMjA4IDEwNTUgeShXaGVuZXYpbihlcikzNgogYih0aGlzKWgoZXhjZXB0aW9uKWcoaXMpZyhyYWlzZWQpZihkaXJlY3RseSktNyBiKCwpNDAKIGIoaXQpZChoYXMpZyhhKWYobGlzdClpKG9mKWYoZXJyb3IpZShtZXNzYWdlcylnKGZyb20paSh0aGUpaChPcClyCi0oZW5TU0wpZihlcnJvcikyMDggMTAwOCB5KHF1ZXVlLClrKHdoZXJlKWQoZWFjKW4oaClmKGl0ZW0paShpcylnKGEpZgorKGVuU1NMKWYoZXJyb3IpMjA4IDExNTUgeShxdWV1ZSwpayh3aGVyZSlkKGVhYyluKGgpZihpdGVtKWkoaXMpZyhhKWYKICh0dXBsZSloIEZtKFwoKXAgRmQobGliKTUgYiBGbSgsKTQ0IGIgRmQoZnVuY3Rpb24pNiBiCiBGbSgsKTQzIGIgRmQocilsKGUpbChhc29uKTYgYiBGbShcKSlwIEZyKC4pNzAgYihIZXJlKTM4CiBiIEZkKGxpYik1IGIgRnIoLCk0MyBiIEZkKGZ1bmN0aW9uKWggRnIoYW5kKTM5IGIgRmQocilsKGUpbChhc29uKTQ1Ci1iIEZyKGFyZSkzNyBiKGFsbCkyMDggMTEwNyB5KHN0cmluZ3MsKTI2IGIoZGVzY3JpYmluZyloKHdoZXJlKWcoYW5kKWcKK2IgRnIoYXJlKTM3IGIoYWxsKTIwOCAxMjU0IHkoc3RyaW5ncywpMjYgYihkZXNjcmliaW5nKWgod2hlcmUpZyhhbmQpZwogKHdoYXQpaCh0aGUpZyhwcm9ibGVtKWYoaXMuKTM2IGIoU2VlKTI4IGIgRmQoZXJyKXAgRnIoXCgzXCkpZyhmb3IpZgotKG1vcmUpZyhpbmZvcm1hdGlvbi4pMCAxMjU0IHkgRm4oZXhjZXB0aW9uKTMyIGIgRm0oWmVyb1JldHVybkVycm9yKTIwOAotMTM1NCB5IEZyKFRoaXMpZyhleGNlcHRpb24pZyhtYXRjKW4oaGVzKWcodGhlKWgoZXJyb3IpZChyZXR1cm4paShjbylyCisobW9yZSlnKGluZm9ybWF0aW9uLikwIDE0MDEgeSBGbihleGNlcHRpb24pMzIgYiBGbShaZXJvUmV0dXJuRXJyb3IpMjA4CisxNTAxIHkgRnIoVGhpcylnKGV4Y2VwdGlvbilnKG1hdGMpbihoZXMpZyh0aGUpaChlcnJvcilkKHJldHVybilpKGNvKXIKIChkZSloIEZtKFNTTF9FUlJPUl9aRVJPXylvKFJFKW8oVFVSKW8oTilwIEZyKCwpMjYgYihhbmQpMzMKLWIoaXMpZihyYWlzZWQpZih3aGVuKWkodGhlKWcoU1NMKTIwOCAxNDUzIHkoQ29ubmVjdGlvbiljKGhhcylnKGIpcihlZW4pCitiKGlzKWYocmFpc2VkKWYod2hlbilpKHRoZSlnKFNTTCkyMDggMTYwMCB5KENvbm5lY3Rpb24pYyhoYXMpZyhiKXIoZWVuKQogaChjbG9zZWQuKTQzIGIoSW4pMjkgYihTU0wpaCgzLjApZihhbmQpaChUTFMpZygxLjAsKWYodGhpcyloKG9ubHkpZihvKXIKIChjY3VycylnKGlmKWgoYSlnKGNsb3N1cmUpZShhbGVydCloKGhhcylnKG8pcihjY3VycmVkKTIwOAotMTU1MyB5KGluKWcodGhlKWcocHJvdG8pcihjb2wsKWYoaS5lLik0MSBiKHRoZSkyOSBiKGNvbm5lY3Rpb24pZihoYXMpZworMTcwMCB5KGluKWcodGhlKWcocHJvdG8pcihjb2wsKWYoaS5lLik0MSBiKHRoZSkyOSBiKGNvbm5lY3Rpb24pZihoYXMpZwogKGIpcihlZW4paShjbG9zZWQpZShjbGVhbmx5KS03IGIoLik0MCBiKE5vdGUpMjkgYih0aGF0KWcodGhpcylnKGRvKXIKLShlcylmKG5vdCloKG5lY2Vzc2FyaWx5KWUobWVhbikyMDggMTY1MyB5KHRoYXQpZyh0aGUpaCh0cmFuc3ApcihvcnQpZgorKGVzKWYobm90KWgobmVjZXNzYXJpbHkpZShtZWFuKTIwOCAxODAwIHkodGhhdClnKHRoZSloKHRyYW5zcClyKG9ydClmCiAobGEpbih5KW4oZXIpZihcKGUuZy4pMzYgYihhKTI4IGIoc28pcihjKW4oayluKGV0XCkpZShoYXMpaChiKXIoZWVuKWgKLShjbG9zZWQuKTIwOCAxNzg2IHkoSXQpayhtYSluKHkpZihzZWVtKWgoYSlmKGxpdHRsZSlpKHN0cmFuZ2UpZSh0aGF0KWgKKyhjbG9zZWQuKTIwOCAxOTMyIHkoSXQpayhtYSluKHkpZihzZWVtKWgoYSlmKGxpdHRsZSlpKHN0cmFuZ2UpZSh0aGF0KWgKICh0aGlzKWcoaXMpZyhhbilnKGV4Y2VwdGlvbiwpZyhidXQpaChpdClmKGRvKXIoZXMpZyhtYXRjKW4oaClnKGFuKWYKLUZtKFNTTF9FUlJPUillIEZyKGNvKXIoZGUsKWooYW5kKWcoaXMpMjA4IDE4ODUgeSh2KW4oZXJ5KTI2Ci1iKGNvbiluKHYpbihlbmllbiluKHQuKTAgMjAzMiB5IEZuKGV4Y2VwdGlvbikzMiBiIEZtKFdhbnRSZWFkRXJyb3IpMjA4Ci0yMTMyIHkgRnIoVGhlKWkob3ApcihlcmF0aW9uKWUoZGlkKWoobm90KWYoY29tcGxldGU7KWoodGhlKWQoc2FtZSlnCitGbShTU0xfRVJST1IpZSBGcihjbylyKGRlLClqKGFuZClnKGlzKTIwOCAyMDMyIHkodiluKGVyeSkyNgorYihjb24pbih2KW4oZW5pZW4pbih0LikwIDIxNzkgeSBGbihleGNlcHRpb24pMzIgYiBGbShXYW50UmVhZEVycm9yKTIwOAorMjI3OSB5IEZyKFRoZSlpKG9wKXIoZXJhdGlvbillKGRpZClqKG5vdClmKGNvbXBsZXRlOylqKHRoZSlkKHNhbWUpZwogKEkvTylmKG1ldGhvKXIoZCloKHNob3VsZClnKGIpcihlKWcoY2FsbGVkKWcoYWdhaW4pZihsYXRlciwpaSh3aXRoKWYKLSh0aGUpaChzYW1lKTIwOCAyMjMxIHkoYXJndW1lbiluKHRzLilnKEFuKW4oeSkyOCBiKEkvTyllKG1ldGhvKXIoZClpCisodGhlKWgoc2FtZSkyMDggMjM3OCB5KGFyZ3VtZW4pbih0cy4pZyhBbiluKHkpMjggYihJL08pZShtZXRobylyKGQpaQogKGNhbilmKGxlYWQpaCh0bylmKHRoaXMpaChzaW5jZSlmKG5ldyloKGhhbmRzaGFrKW4oZXMpZShjYW4paChvKXIoY2N1cikKLWcoYXQpZyhhbiluKHkpZyh0aW1lLikwIDIzNzggeSBGbihleGNlcHRpb24pMzIgYiBGbShXYW50V3JpdGVFcnJvcikyMDgKLTI0NzggeSBGcihTZWUpMjcgYiBGbShXYW50UmVhZEVycm9yKXAgRnIoLikwIDI2MjUgeSBGbihleGNlcHRpb24pMzIKLWIgRm0oV2FudFg1MDlMb29rdXBFKW8ocnIpbyhvcikyMDggMjcyNCB5IEZyKFRoZSkyNCBiKG9wKXIoZXJhdGlvbilnCitnKGF0KWcoYW4pbih5KWcodGltZS4pMCAyNTI1IHkgRm4oZXhjZXB0aW9uKTMyIGIgRm0oV2FudFdyaXRlRXJyb3IpMjA4CisyNjI1IHkgRnIoU2VlKTI3IGIgRm0oV2FudFJlYWRFcnJvcilwIEZyKC4pMCAyNzcyIHkgRm4oZXhjZXB0aW9uKTMyCitiIEZtKFdhbnRYNTA5TG9va3VwRSlvKHJyKW8ob3IpMjA4IDI4NzEgeSBGcihUaGUpMjQgYihvcClyKGVyYXRpb24pZwogKGRpZCloKG5vdClnKGNvbXBsZXRlKWYoYilyKGVjYXVzZSlnKGFuKWgoYXBwbGljYXRpb24pZihjYWxsYmFjKW4oaylmCiAoaGFzKWgoYXNrKW4oZWQpZyh0bylnKGIpcihlKWgoY2FsbGVkKWcoYWdhaW4uKTM0IGIoVGhlKTI1Ci1iKEkvTykyMDggMjgyNCB5KG1ldGhvKXIoZClmKHNob3VsZCloKGIpcihlKWYoY2FsbGVkKWcoYWdhaW4pZyhsYXRlciwpZworYihJL08pMjA4IDI5NzEgeShtZXRobylyKGQpZihzaG91bGQpaChiKXIoZSlmKGNhbGxlZClnKGFnYWluKWcobGF0ZXIsKWcKICh3aXRoKWgodGhlKWcoc2FtZSllKGFyZ3VtZW4pbih0cy4pMzUgYihOb3RlOilnKFRoaXMpMjQKLWIodyluKG9uJ3QpaChvKXIoY2N1cillKGluKWkodGhpcylnKHYpbihlcnNpb24sKTIwOCAyOTI0CitiKHcpbihvbid0KWgobylyKGNjdXIpZShpbilpKHRoaXMpZyh2KW4oZXJzaW9uLCkyMDggMzA3MAogeShhcyloKHRoZXJlKWkoYXJlKWUobm8paShzdWMpbihoKWYoY2FsbGJhYyluKGtzKWYoaW4paSh0aGlzKWYodiluCi0oZXJzaW9uLikwIDMwNzAgeSBGbihleGNlcHRpb24pMzIgYiBGbShTeXNDYWxsRXJyb3IpMjA4Ci0zMTcwIHkgRnIoVGhlKTI1IGIgRm0oU3lzQ2FsbEVycm9yKTIwIGIgRnIobylyKGNjdXJzKWsod2hlbilpKHRoZXJlJ3MpZQorKGVyc2lvbi4pMCAzMjE3IHkgRm4oZXhjZXB0aW9uKTMyIGIgRm0oU3lzQ2FsbEVycm9yKTIwOAorMzMxNyB5IEZyKFRoZSkyNSBiIEZtKFN5c0NhbGxFcnJvcikyMCBiIEZyKG8pcihjY3VycylrKHdoZW4paSh0aGVyZSdzKWUKIChhbiloKEkvTylnKGVycm9yKWUoYW5kKWkoT3ApcihlblNTTCdzKWcoZXJyb3IpZShxdWV1ZSlpKGRvKXIoZXMpZyhub3QpCi1nKGNvbiluKHRhaW4pZyhhbiluKHkpMjA4IDMyNzAgeShpbmZvcm1hdGlvbi4pNTkgYihUaGlzKTM2CitnKGNvbiluKHRhaW4pZyhhbiluKHkpMjA4IDM0MTcgeShpbmZvcm1hdGlvbi4pNTkgYihUaGlzKTM2CiBiKGNhbilmKG1lYW4pZyh0KW4odyluKG8pZyh0aGluZ3M6KTUyIGIoQW4pMzYgYihlcnJvcilkKGluKWoodGhlKWcKICh0cmFuc3ApcihvcnQpZShwcm90bylyKGNvbCwpaShvcilmKGFuKWcoZW5kKWgob2YpZihcMDM0bGUpaCh0aGF0KTIwOAotMzM2OSB5KHZpb2xhdGVzKTI2IGIodGhlKWkocHJvdG8pcihjb2wuKTM2IGIoVGhlKTI3IGIocGFyYW1ldGVyKWYodG8paQorMzUxNiB5KHZpb2xhdGVzKTI2IGIodGhlKWkocHJvdG8pcihjb2wuKTM2IGIoVGhlKTI3IGIocGFyYW1ldGVyKWYodG8paQogKHRoZSlnKGV4Y2VwdGlvbilmKGlzKWcoYWx3KW4oYSluKHlzKWYoYSloKHBhaXIpZyBGbShcKClwCiBGZChlcnJudW0pNiBiIEZtKCwpNDIgYiBGZChlcnJzdHIpOSBiIEZtKFwpKXAgRnIoLikwCi0zNjMyIHkgRmcoQ29udGV4dCkyNyBiKG9iamVjdHMpMCAzODMzIHkgRnIoQ29uKW4odGV4dClnKG9iKTUKKzM3NzkgeSBGZyhDb250ZXh0KTI3IGIob2JqZWN0cykwIDM5ODAgeSBGcihDb24pbih0ZXh0KWcob2IpNQogYihqZWN0cykyNyBiKGhhKW4odiluKGUpZyh0aGUpaChmb2xsbyluKHdpbmcpZShtZXRobylyKGRzOikwCi0zOTgwIHkgRm0oY2hlY2tfcHJpdmF0ZWtleSlvKFwoXCkpMjA4IDQwOTYgeSBGcihDaGVjKW4oaylrKGlmKWkodGhlKWcKKzQxMjcgeSBGbShjaGVja19wcml2YXRla2V5KW8oXChcKSkyMDggNDI0MyB5IEZyKENoZWMpbihrKWsoaWYpaSh0aGUpZwogKHByaXYpLTUgYihhdGUpMzEgYihrKW4oZXkpZihcKGxvYWRlZCloKHdpdGgpaCBGbSh1c2VfcHJpdmF0ZWtleSlwCiBGYyhbKXAgRm0oXylvKGZpKW8obGUpMTEgYiBGYyhdKXAgRnIoXCkpMjYgYihtYXRjKW4oaGVzKWsodGhlKWkKLShjZXJ0aVwwMzRjYXRlKWYoXChsb2FkZWQpZyh3aXRoKTIwOCA0MjI0IHkgRm0odXNlX2NlcnRpZmljYXRlKW8KKyhjZXJ0aVwwMzRjYXRlKWYoXChsb2FkZWQpZyh3aXRoKTIwOCA0MzcxIHkgRm0odXNlX2NlcnRpZmljYXRlKW8KIEZjKFspcCBGbShfKW8oZmlsKW8oZSkxMSBiIEZjKF0pcCBGcihcKS4pMzEgYihSZXR1cm5zKWQKIEZtKE5vbmUpZSBGcihpZilpKHRoZXkpZihtYXRjKW4oaCwpaChyYWlzZXMpZSBGbShFcnJvcilnCi1GcihvdGhlcndpc2UuKTAgNDM3MSB5IEZtKGdldF9hcHBfZGF0YVwoXCkpMjA4IDQ0NzAgeQorRnIob3RoZXJ3aXNlLikwIDQ1MTcgeSBGbShnZXRfYXBwX2RhdGFcKFwpKTIwOCA0NjE3IHkKIEZyKFJldHJpZXYpbihlKWcoYXBwbGljYXRpb24paChkYXRhKWcoYXMpZyhzZXQpaChiKW4oeSlnCi1GbShzZXRfYXBwX2RhdGEpcCBGciguKTAgNDYxNyB5IEZtKGdldF9jZXJ0X3N0b3JlXChcKSkyMDgKLTQ3MTcgeSBGcihSZXRyaWV2KW4oZSkzNCBiKHRoZSlpKGNlcnRpXDAzNGNhdGUpZihzdG9yZSlmKFwoYSloCitGbShzZXRfYXBwX2RhdGEpcCBGciguKTAgNDc2NCB5IEZtKGdldF9jZXJ0X3N0b3JlXChcKSkyMDgKKzQ4NjQgeSBGcihSZXRyaWV2KW4oZSkzNCBiKHRoZSlpKGNlcnRpXDAzNGNhdGUpZihzdG9yZSlmKFwoYSloCiAoWDUwOVN0b3JlKWYob2IpNSBiKGplY3RcKSkzNSBiKHRoYXQpaCh0aGUpZihjb24pbih0ZXh0KWcodXNlcy4pNjAKLWIoVGhpcykzNSBiKGNhbilnKGIpcihlKWgodXNlZClmKHRvKWcoYWRkKTIwOCA0ODE2IHkoInRydXN0ZWQiKTI2CitiKFRoaXMpMzUgYihjYW4pZyhiKXIoZSloKHVzZWQpZih0bylnKGFkZCkyMDggNDk2MyB5KCJ0cnVzdGVkIikyNgogYihjZXJ0aVwwMzRjYXRlcyloKHdpdGhvdXQpaCh1c2luZylmKHRoZS4pMzcgYiBGbShsb2FkX3ZlcmlmeV9sb2NhKW8KLSh0aW8pbyhucylvKFwoXCkpMjEgYiBGcihtZXRobylyKGQuKTAgNDk2MyB5IEZtKGdldF90aW1lb3V0XChcKSkyMDgKLTUwNjMgeSBGcihSZXRyaWV2KW4oZSkyNiBiKHNlc3Npb24paCh0aW1lb3V0LCloKGFzKWYoc2V0KWcoYiluKHkpaQotRm0oc2V0X3RpbWVvdXQpcCBGciguKWooVGhlKWMoZGVmYXVsdClnKGlzKWYoMzAwKWYoc2Vjb25kcy4pcAotMCA1MTMyIDE1NjAgNCB2IDkyIDUxODYgYSBGaSg0KTEyNyA1MjA5IHkgRmgoQSluKGN0dWFsbHkpLTYKKyh0aW8pbyhucylvKFwoXCkpMjEgYiBGcihtZXRobylyKGQuKTAgNTExMCB5IEZtKGdldF90aW1lb3V0XChcKSlwCiswIDUxODIgMTU2MCA0IHYgOTIgNTIzNSBhIEZpKDQpMTI3IDUyNTkgeSBGaChBKW4oY3R1YWxseSktNgogYigsKTI1IGIoYWxsKWUodGhhdClqKGlzKWQocmVxdWlyZWQpaihpcyllKGFuKWcob2IpdChqZWN0KWgodGhhdCloCiBGYihiKWwoZWhhdmVzKWUgRmgobGlrKW4oZSlnKGEpaChzbylyKGMpbihrKW4oZXQsKWcoeSluKG91KWcoY291bGQpZwogKGV2KW4oZW4pZyh1c2UpZihcMDM0bGVzLClnKGV2KW4oZW4paSh0aG91Z2gpZihpdCdkKWYoYilyKGUpaCh0cmljKW4KLShreSlnKHRvKTAgNTI4OCB5KGdldClnKHRoZSlmKGhhbmRzaGFrKW4oZXMpaChyaWdoKW4odCEpcAorKGt5KWcodG8pMCA1MzM3IHkoZ2V0KWcodGhlKWYoaGFuZHNoYWspbihlcyloKHJpZ2gpbih0ISlwCiAwIDU1NDkgMzkwMSA0IHYgMCA1NjQ5IGEgRmcoMTApMjE5NyBiKDMpODMgYiBGbShPcGVuU1NMKTI0CiBiIEZnKFwwMjYpayhQeXRob24pZihpbnRlcmZhY2UpaCh0bylmKE9wKXIoZW5TU0wpcCBlb3AKIGVuZAogJSVQYWdlOiAxMSAxMQotVGVYRGljdCBiZWdpbiAxMSAxMCBib3AgMCA4MyBhIEZtKGdldF92ZXJpZnlfZGVwdGgpbyhcKFwpKTIwOAotMTgzIHkgRnIoUmV0cmlldiluKGUpMjYgYih0aGUpaShDb24pbih0ZXh0KWYob2IpNSBiKGplY3QncykyOAorVGVYRGljdCBiZWdpbiAxMSAxMCBib3AgMjA4IDgzIGEgRnIoUmV0cmlldiluKGUpMjYgYihzZXNzaW9uKWgKKyh0aW1lb3V0LCloKGFzKWYoc2V0KWcoYiluKHkpaSBGbShzZXRfdGltZW91dClwIEZyKC4paihUaGUpYyhkZWZhdWx0KWcKKyhpcylmKDMwMClmKHNlY29uZHMuKTAgMjMwIHkgRm0oZ2V0X3ZlcmlmeV9kZXB0aClvKFwoXCkpMjA4CiszMzAgeSBGcihSZXRyaWV2KW4oZSlnKHRoZSlpKENvbiluKHRleHQpZihvYik1IGIoamVjdCdzKTI4CiBiKHYpbihlcmlmeSllKGRlcHRoLClqKGFzKWQoc2V0KWkoYiluKHkpZyBGbShzZXRfdmVyaWZ5X2RlcHRoKXAKLUZyKC4pMCAzMzAgeSBGbShnZXRfdmVyaWZ5X21vZGVcKClvKFwpKTIwOCA0MjkgeSBGcihSZXRyaWV2KW4oZSllKHRoZSlpCitGciguKTAgNDc2IHkgRm0oZ2V0X3ZlcmlmeV9tb2RlXCgpbyhcKSkyMDggNTc2IHkgRnIoUmV0cmlldiluKGUpZSh0aGUpaQogKENvbiluKHRleHQpZihvYik1IGIoamVjdCdzKTI4IGIodiluKGVyaWZ5KWUobW8pcihkZSwpaShhcylmKHNldCloKGIpbgotKHkpZyBGbShzZXRfdmVyaWZ5X21vZGUpcCBGciguKTAgNTc2IHkgRm0obG9hZF9jbGllbnRfY2FcKClwCi1GZChwKWwoZW1cMDM0bGUpNiBiIEZtKFwpKTIwOCA2NzYgeSBGcihSZWFkKTMzIGIoYSlnKFwwMzRsZSloKHdpdGgpZworKHkpZyBGbShzZXRfdmVyaWZ5X21vZGUpcCBGciguKTAgNzIzIHkgRm0obG9hZF9jbGllbnRfY2FcKClwCitGZChwKWwoZW1cMDM0bGUpNiBiIEZtKFwpKTIwOCA4MjMgeSBGcihSZWFkKTMzIGIoYSlnKFwwMzRsZSloKHdpdGgpZwogKFBFTS1mb3JtYXR0ZWQpZyhjZXJ0aVwwMzRjYXRlcylmKHRoYXQpaCh3aWxsKWcoYilyKGUpZyhzZW4pbih0KWYodG8paAogKHRoZSlnKGNsaWVuKW4odClmKHdoZW4paChyZXF1ZXN0aW5nKWYoYSlnKGNsaWVuKW4odCkyMDgKLTc3NSB5KGNlcnRpXDAzNGNhdGUuKTAgOTIyIHkgRm0obG9hZF92ZXJpZnlfbG9jYSlvKHRpKW8ob25zKW8oXCgpcAotRmQocClsKGVtXDAzNGxlKTYgYiBGbShcKSkyMDggMTAyMiB5IEZyKFNwKXIoZWNpZnkpMjQKKzkyMiB5KGNlcnRpXDAzNGNhdGUuKTAgMTA2OSB5IEZtKGxvYWRfdmVyaWZ5X2xvY2Epbyh0aSlvKG9ucylvKFwoKXAKK0ZkKHApbChlbVwwMzRsZSk2IGIgRm0oXCkpMjA4IDExNjkgeSBGcihTcClyKGVjaWZ5KTI0CiBiKHdoZXJlKWYoQ0EpZyhjZXJ0aVwwMzRjYXRlcylnKGZvcilnKHYpbihlcmlcMDM0Y2F0aW9uKWYocHVycClyKG9zZXMpaAogKGFyZSlmKGxvKXIoY2F0ZWQuKTM1IGIoVGhlc2UpMjMgYihhcmUpZyh0cnVzdGVkKWcoY2VydGlcMDM0Y2F0ZXMuKTM1Ci1iKE5vdGUpMjA4IDExMjEgeSh0aGF0KTI3IGIodGhlKWgoY2VydGlcMDM0Y2F0ZXMpZihoYSluKHYpbihlKWYodG8paShiKQotcihlKWcoaW4pZyhQRU0pZyhmb3JtYXQuKTAgMTI2OCB5IEZtKGxvYWRfdG1wX2RoXCgpcAotRmQoZGhcMDM0bGUpNiBiIEZtKFwpKTIwOCAxMzY4IHkgRnIoTG9hZCkyNiBiKHBhcmFtZXRlcnMpZyhmb3IpaAorYihOb3RlKTIwOCAxMjY4IHkodGhhdCkyNyBiKHRoZSloKGNlcnRpXDAzNGNhdGVzKWYoaGEpbih2KW4oZSlmKHRvKWkoYikKK3IoZSlnKGluKWcoUEVNKWcoZm9ybWF0LikwIDE0MTUgeSBGbShsb2FkX3RtcF9kaFwoKXAKK0ZkKGRoXDAzNGxlKTYgYiBGbShcKSkyMDggMTUxNSB5IEZyKExvYWQpMjYgYihwYXJhbWV0ZXJzKWcoZm9yKWgKIChFcGhlbWVyYWwpZyhEaVwwMzZlLUhlbGxtYW4paChmcm9tKWcgRmQoZGhcMDM0bGUpNiBiCi1GciguKTAgMTUxNSB5IEZtKHNldF9hcHBfZGF0YVwoKXAgRmQoZGF0YSlnIEZtKFwpKTIwOAotMTYxNCB5IEZyKEFzc28pcihjaWF0ZSkyNSBiIEZkKGRhdGEpMzMgYiBGcih3aXRoKTI3IGIodGhpcylmKENvbiluCitGciguKTAgMTY2MiB5IEZtKHNldF9hcHBfZGF0YVwoKXAgRmQoZGF0YSlnIEZtKFwpKTIwOAorMTc2MSB5IEZyKEFzc28pcihjaWF0ZSkyNSBiIEZkKGRhdGEpMzMgYiBGcih3aXRoKTI3IGIodGhpcylmKENvbiluCiAodGV4dClmKG9iKTUgYihqZWN0LikzNiBiIEZkKGRhdGEpZSBGcihjYW4pMjUgYihiKXIoZSlpKHJldHJpZXYpbihlZClkCiAobGF0ZXIpaSh1c2luZylmKHRoZSlpIEZtKGdldF9hcHBfZGF0YSkyMSBiIEZyKG1ldGhvKXIoZC4pMAotMTc2MSB5IEZtKHNldF9jaXBoZXJfbGlzdFwoKW8gRmQoY2lwaGVycyk3IGIgRm0oXCkpMjA4Ci0xODYxIHkgRnIoU2V0KTI4IGIodGhlKWcobGlzdCloKG9mKWYoY2lwaGVycylmKHRvKWgoYilyKGUpZyh1c2VkKWcoaW4pZworMTkwOCB5IEZtKHNldF9jaXBoZXJfbGlzdFwoKW8gRmQoY2lwaGVycyk3IGIgRm0oXCkpMjA4CisyMDA4IHkgRnIoU2V0KTI4IGIodGhlKWcobGlzdCloKG9mKWYoY2lwaGVycylmKHRvKWgoYilyKGUpZyh1c2VkKWcoaW4pZwogKHRoaXMpaChjb24pbih0ZXh0LikzNyBiKFNlZSkyOCBiKHRoZSloKE9wKXIoZW5TU0wpZihtYW4pbih1YWwpZihmb3IpaAotKG1vcmUpZihpbmZvcm1hdGlvbilnKFwoZS5nLikyMDggMTk2MSB5KGNpcGhlcnNcKDFcKVwpKTAKLTIxMDcgeSBGbShzZXRfaW5mb19jYWxsYmFjKW8oa1woKW8gRmQoYylsKGFsKXQobGIpbChhY2spOQotYiBGbShcKSkyMDggMjIwNyB5IEZyKFNldCkzMyBiKHRoZSlmKGluZm9ybWF0aW9uKWcoY2FsbGJhYyluKGspZih0bylpCisobW9yZSlmKGluZm9ybWF0aW9uKWcoXChlLmcuKTIwOCAyMTA3IHkoY2lwaGVyc1woMVwpXCkpMAorMjI1NCB5IEZtKHNldF9pbmZvX2NhbGxiYWMpbyhrXCgpbyBGZChjKWwoYWwpdChsYilsKGFjayk5CitiIEZtKFwpKTIwOCAyMzU0IHkgRnIoU2V0KTMzIGIodGhlKWYoaW5mb3JtYXRpb24pZyhjYWxsYmFjKW4oaylmKHRvKWkKIEZkKGMpbChhbCl0KGxiKWwoYWNrKTkgYiBGciguKTU0IGIoVGhpcykzMiBiKGZ1bmN0aW9uKWgod2lsbClnKGIpcihlKWcKIChjYWxsZWQpZihmcm9tKWcodGltZSloKHRvKWcodGltZSlnKGR1cmluZylmKFNTTCkyMDgKLTIzMDcgeShoYW5kc2hhayluKGVzLik0OSBiIEZkKGMpbChhbCl0KGxiKWwoYWNrKTQzIGIKKzI0NTQgeShoYW5kc2hhayluKGVzLik0OSBiIEZkKGMpbChhbCl0KGxiKWwoYWNrKTQzIGIKIEZyKHNob3VsZCkzMiBiKHRhayluKGUpZyh0aHJlZSlnKGFyZ3VtZW4pbih0czopNDUgYihhKTMyCiBiKENvbm5lY3Rpb24pZyhvYik1IGIoamVjdCkzMiBiKGFuZClnKHQpbih3KW4obylnKGluKW4odGVnZXJzLik1MAotYihUaGUpMzIgYihcMDM0cnN0KTIwOCAyNDA2IHkoaW4pbih0ZWdlcilmKHNwKXIoZWNpXDAzNGVzKWcod2hlcmUpaChpbikKK2IoVGhlKTMyIGIoXDAzNHJzdCkyMDggMjU1MyB5KGluKW4odGVnZXIpZihzcClyKGVjaVwwMzRlcylnKHdoZXJlKWgoaW4pCiBnKHRoZSlnKFNTTClnKGhhbmRzaGFrKW4oZSlmKHRoZSloKGZ1bmN0aW9uKWgodyluKGFzKWUoY2FsbGVkLCloKGFuZClnCi0odGhlKWcob3RoZXIpZyh0aGUpZyhyZXR1cm4pZihjbylyKGRlKTIwOCAyNTA2IHkoZnJvbSljKGEpZyhcKHApcgorKHRoZSlnKG90aGVyKWcodGhlKWcocmV0dXJuKWYoY28pcihkZSkyMDggMjY1MyB5KGZyb20pYyhhKWcoXChwKXIKIChvc3NpYmx5KWcoZmFpbGVkXCkpaChpbiluKHRlcm5hbClmKGZ1bmN0aW9uKWgoY2FsbC4pMAotMjY1MyB5IEZtKHNldF9vcHRpb25zXCgpcCBGZChvcHRpb25zKTcgYiBGbShcKSkyMDggMjc1MgorMjgwMCB5IEZtKHNldF9vcHRpb25zXCgpcCBGZChvcHRpb25zKTcgYiBGbShcKSkyMDggMjg5OQogeSBGcihBKW4oZGQpMjggYihTU0wpaChvcHRpb25zLikzOCBiKE9wdGlvbnMpMjggYih5KW4ob3UpZihoYSluKHYpbihlKWcKIChzZXQpaShiKXIoZWZvcmUpZihhcmUpZihub3QpaChjbGVhcmVkISkzOCBiKFRoaXMpMjgKIGIobWV0aG8pcihkKWgoc2hvdWxkKWYoYilyKGUpaCh1c2VkKWYod2l0aCloKHRoZSkyMDgKLTI4NTIgeSBGbShPUF8qKWQgRnIoY29uc3RhbiluKHRzLikwIDI5OTkgeSBGbShzZXRfcGFzc3dkX2NiXCgpcAorMjk5OSB5IEZtKE9QXyopZCBGcihjb25zdGFuKW4odHMuKTAgMzE0NiB5IEZtKHNldF9wYXNzd2RfY2JcKClwCiBGZChjKWwoYWwpdChsYilsKGFjayk5IGIgRmMoWylwIEZkKCwpMjUgYih1c2VyKWwoZGF0YSkxOQotYiBGYyhdKXAgRm0oXCkpMjA4IDMwOTkgeSBGcihTZXQpNDIgYih0aGUpZyhwYXNzcGhyYXNlKWYoY2FsbGJhYyluKGspZgorYiBGYyhdKXAgRm0oXCkpMjA4IDMyNDUgeSBGcihTZXQpNDIgYih0aGUpZyhwYXNzcGhyYXNlKWYoY2FsbGJhYyluKGspZgogKHRvKWkgRmQoYylsKGFsKXQobGIpbChhY2spOSBiIEZyKC4pODIgYihUaGlzKTQyIGIoZnVuY3Rpb24paCh3aWxsKWYoYikKIHIoZSlnKGNhbGxlZClnKHdoZW4pZyhhKWcocHJpdiktNSBiKGF0ZSk0MiBiKGspbihleSlmKHdpdGgpaChhKTIwOAotMzE5OCB5KHBhc3NwaHJhc2UpMzcgYihpcylpKGxvYWRlZC4pNzAgYiBGZChjKWwoYWwpdChsYilsKGFjayk1MAorMzM0NSB5KHBhc3NwaHJhc2UpMzcgYihpcylpKGxvYWRlZC4pNzAgYiBGZChjKWwoYWwpdChsYilsKGFjayk1MAogYiBGcihzaG91bGQpMzkgYih0YWspbihlKWYoYSlnKGIpcihvKXIob2xlYW4paChhcmd1bWVuKW4odClmCiBGZChyKWwoZXApbChlKWwoYXQpNDcgYiBGcihhbmQpMzkgYihhbilmKGFyYml0cmFyeSlmKGFyZ3VtZW4pbih0KTIwOAotMzI5OCB5IEZkKGRhdGEpZiBGcihhbmQpMjggYihyZXR1cm4pZyh0aGUpaChwYXNzcGhyYXNlKWUoZW4pbih0ZXJlZCloCiszNDQ1IHkgRmQoZGF0YSlmIEZyKGFuZCkyOCBiKHJldHVybilnKHRoZSloKHBhc3NwaHJhc2UpZShlbiluKHRlcmVkKWgKIChiKW4oeSlnKHRoZSloKHVzZXIuKTQwIGIoSWYpMzUgYiBGZChyKWwoZXApbChlKWwoYXQpaQogRnIoaXMpMjggYih0cnVlKWgodGhlbilnIEZkKGMpbChhbCl0KGxiKWwoYWNrKTM5IGIgRnIoc2hvdWxkKTI5Ci1iKGFzaylmKGZvcilnKHRoZSkyMDggMzM5NyB5KHBhc3NwaHJhc2Upaih0KW4od2ljZSlqKGFuZClnKG1hayluKGUpZgorYihhc2spZihmb3IpZyh0aGUpMjA4IDM1NDQgeShwYXNzcGhyYXNlKWoodCluKHdpY2UpaihhbmQpZyhtYWspbihlKWYKIChzdXJlKWcodGhhdCloKHRoZSlnKHQpbih3KW4obylmKGVuKW4odHJpZXMpZyhhcmUpZyhlcXVhbC4pNTUKIGIoVGhlKTM0IGIgRmQoZGF0YSk0MSBiIEZyKGFyZ3VtZW4pbih0KTMzIGIoaXMpaCh0aGUpZwotRmQodXNlcilsKGRhdGEpMjA4IDM0OTcgeSBGcih2KS01IGIoYXJpYWJsZSkyNSBiKHBhc3NlZCloKHRvKWgodGhlKWcKK0ZkKHVzZXIpbChkYXRhKTIwOCAzNjQ0IHkgRnIodiktNSBiKGFyaWFibGUpMjUgYihwYXNzZWQpaCh0byloKHRoZSlnCiBGbShzZXRfcGFzc3dkX2NiKTIyIGIgRnIobWV0aG8pcihkLikzNyBiKElmKTI3IGIoYW4pZyhlcnJvcillKG8pcgogKGNjdXJzLCloIEZkKGMpbChhbCl0KGxiKWwoYWNrKTM3IGIgRnIoc2hvdWxkKTI3IGIocmV0dXJuKWYoYSloKGZhbHNlKWYKLSh2KS01IGIoYWx1ZSkyMDggMzU5NyB5KFwoZS5nLikzNiBiKGFuKTI4IGIoZW1wdCluKHkpZihzdHJpbmdcKS4pMAotMzc0NCB5IEZtKHNldF9zZXNzaW9uX2lkXCgpcCBGZChuKW8oYW1lKTYgYiBGbShcKSkyMDgKLTM4NDMgeSBGcihTZXQpMzMgYih0aGUpaChjb24pbih0ZXh0KWYgRmQobmFtZSkzOSBiIEZyKHdpdGhpbikzNAorKHYpLTUgYihhbHVlKTIwOCAzNzQ0IHkoXChlLmcuKTM2IGIoYW4pMjggYihlbXB0KW4oeSlmKHN0cmluZ1wpLikwCiszODkwIHkgRm0oc2V0X3Nlc3Npb25faWRcKClwIEZkKG4pbyhhbWUpNiBiIEZtKFwpKTIwOAorMzk5MCB5IEZyKFNldCkzMyBiKHRoZSloKGNvbiluKHRleHQpZiBGZChuYW1lKTM5IGIgRnIod2l0aGluKTM0CiBiKHdoaWMpbihoKWYoYSlnKHNlc3Npb24pZihjYW4paChiKXIoZSloKHJldXNlZCllKGZvciloKHRoaXMpZyhDb24pbgotKHRleHQpZyhvYik1IGIoamVjdC4pNTQgYihUaGlzKTMzIGIoaXMpZyhuZWVkZWQpMjA4IDM5NDMKKyh0ZXh0KWcob2IpNSBiKGplY3QuKTU0IGIoVGhpcykzMyBiKGlzKWcobmVlZGVkKTIwOCA0MDkwCiB5KHdoZW4pZShkb2luZylnKHNlc3Npb24pZyhyZXN1bXB0aW9uLCloKGIpcihlY2F1c2UpZyh0aGVyZSlmKGlzKWgobm8pZgogKHcpbihhKW4oeSlnKGZvcilnKGEpZyhzdG9yZWQpZyhzZXNzaW9uKWYodG8paShrbm8pbih3KWYod2hpYyluKGgpZwotKENvbiluKHRleHQpMjA4IDQwNDIgeShvYik1IGIoamVjdCkyNyBiKGl0KWgoaXMpZihhc3NvKXIoY2lhdGVkKWcKKyhDb24pbih0ZXh0KTIwOCA0MTg5IHkob2IpNSBiKGplY3QpMjcgYihpdCloKGlzKWYoYXNzbylyKGNpYXRlZClnCiAod2l0aC4pMzcgYiBGZChuYW1lKWQgRnIobWEpbih5KTI3IGIoYilyKGUpaChhbiluKHkpZShiaW5hcnkpaChkYXRhLikwCi00MTg5IHkgRm0oc2V0X3RpbWVvdXRcKClwIEZkKHRpbWUpbChvdXQpOCBiIEZtKFwpKTIwOAotNDI4OSB5IEZyKFNldCkyOSBiKHRoZSlnKHRpbWVvdXQpaChmb3IpZShuZXdseSloKGNyZWF0ZWQpZihzZXNzaW9ucylnCis0MzM2IHkgRm0oc2V0X3RpbWVvdXRcKClwIEZkKHRpbWUpbChvdXQpOCBiIEZtKFwpKTIwOAorNDQzNiB5IEZyKFNldCkyOSBiKHRoZSlnKHRpbWVvdXQpaChmb3IpZShuZXdseSloKGNyZWF0ZWQpZihzZXNzaW9ucylnCiAoZm9yKWgodGhpcylnKENvbiluKHRleHQpZyhvYik1IGIoamVjdCkyOCBiKHRvKWggRmQodGltZSlsKG91dCk4CiBiIEZyKC4pNDEgYiBGZCh0aW1lKWwob3V0KTM2IGIgRnIobSluKHVzdCkyOSBiKGIpcihlKWgoZ2l2KW4oZW4pMjA4Ci00Mzg5IHkoaW4pZihcKHdob2xlXCkpZihzZWNvbmRzLik0MCBiKFRoZSkyOSBiKGRlZmF1bHQpZyh2KS01Cis0NTM1IHkoaW4pZihcKHdob2xlXCkpZihzZWNvbmRzLik0MCBiKFRoZSkyOSBiKGRlZmF1bHQpZyh2KS01CiBiKGFsdWUpMjggYihpcyloKDMwMCllKHNlY29uZHMuKTQwIGIoU2VlKTI5IGIodGhlKWcoT3ApcihlblNTTClnKG1hbiluCi0odWFsKWYoZm9yKWcobW9yZSlnKGluZm9ybWF0aW9uKTIwOCA0NDg4IHkoXChlLmcuKTM2Ci1iKFNTTF9DVFhfc2V0X3RpbWVvdXRcKDNcKVwpLikwIDQ2MzUgeSBGbShzZXRfdmVyaWZ5XCgpcAotRmQobW8pbChkZSwpMjYgYihjKWwoYWwpdChsYilsKGFjayk5IGIgRm0oXCkpMjA4IDQ3MzUKKyh1YWwpZihmb3IpZyhtb3JlKWcoaW5mb3JtYXRpb24pMjA4IDQ2MzUgeShcKGUuZy4pMzYKK2IoU1NMX0NUWF9zZXRfdGltZW91dFwoM1wpXCkuKTAgNDc4MiB5IEZtKHNldF92ZXJpZnlcKClwCitGZChtbylsKGRlLCkyNiBiKGMpbChhbCl0KGxiKWwoYWNrKTkgYiBGbShcKSkyMDggNDg4MgogeSBGcihTZXQpMzYgYih0aGUpaCh2KW4oZXJpXDAzNGNhdGlvbillKFwwMzVhZ3MpZyhmb3IpaCh0aGlzKWgoQ29uKW4KICh0ZXh0KWYob2IpNSBiKGplY3QpMzYgYih0bylnIEZkKG1vKWwoZGUpNDQgYiBGcihhbmQpMzYKIGIoc3ApcihlY2lmeSlnKHRoYXQpaCBGZChjKWwoYWwpdChsYilsKGFjayk0NyBiIEZyKHNob3VsZCkzNgotYihiKXIoZSloKHVzZWQpMjA4IDQ4MzQgeShmb3IpMzAgYih2KW4oZXJpXDAzNGNhdGlvbilnKGNhbGxiYWMpbihrcy4pNDUKK2IoYilyKGUpaCh1c2VkKTIwOCA0OTgxIHkoZm9yKTMwIGIodiluKGVyaVwwMzRjYXRpb24pZyhjYWxsYmFjKW4oa3MuKTQ1CiBiIEZkKG1vKWwoZGUpMzggYiBGcihzaG91bGQpMzEgYihiKXIoZSloKG9uZSllKG9mKTM4CiBiIEZtKFZFUklGWV9OT05FKTI2IGIgRnIoYW5kKTMxIGIgRm0oVkVSSUZZX1BFRVIpcCBGciguKWMoSWYpMzgKLWIgRm0oVkVSSUZZX1BFRVIpMjYgYiBGcihpcykyMDggNDkzNCB5KHVzZWQsKWogRmQobW8pbChkZSkzNgorYiBGbShWRVJJRllfUEVFUikyNiBiIEZyKGlzKTIwOCA1MDgxIHkodXNlZCwpaiBGZChtbylsKGRlKTM2CiBiIEZyKGNhbikyOSBiKGIpcihlKWcoT1I6ZWQpZyh3aXRoKWcgRm0oVkVSSUZZX0ZBSUxfSUZfTk8pbyhfUClvKEVFKW8KIChSX0MpbyhFUilvKFQpMjMgYiBGcihhbmQpMjkgYiBGbShWRVJJRllfQ0xJRU5UX08pbyhOQ0UpMjIKLWIgRnIodG8pMjkgYihmdXJ0aGVyKTIwOCA1MDM0IHkoY29uKW4odHJvbCkyMyBiKHRoZSlqKGIpcihlaGEpbih2aW91ci4pCitiIEZyKHRvKTI5IGIoZnVydGhlcikyMDggNTE4MCB5KGNvbiluKHRyb2wpMjMgYih0aGUpaihiKXIoZWhhKW4odmlvdXIuKQogMzQgYiBGZChjKWwoYWwpdChsYilsKGFjaylpIEZyKHNob3VsZCkyNSBiKHRhayluKGUpZihcMDM0diluKGUpaAogKGFyZ3VtZW4pbih0czopMzQgYihBKTI1IGIoQ29ubmVjdGlvbilnKG9iKTUgYihqZWN0LCkyNQotYihhbilnKFg1MDkpZihvYik1IGIoamVjdCwpMjUgYihhbmQpMjA4IDUxMzMgeSh0aHJlZSllKGluKW4odGVnZXIpZyh2KQorYihhbilnKFg1MDkpZihvYik1IGIoamVjdCwpMjUgYihhbmQpMjA4IDUyODAgeSh0aHJlZSllKGluKW4odGVnZXIpZyh2KQogLTUgYihhcmlhYmxlcywpMjMgYih3aGljKW4oaCloKGFyZSlmKGluKWgodHVybilnKHApcihvdGVuKW4odGlhbClnCiAoZXJyb3IpZChuKW4odW0pbihiKXIoZXIsKWsoZXJyb3IpYyhkZXB0aClrKGFuZClmKHJldHVybilmKGNvKXIoZGUuKTM1Ci1iIEZkKGMpbChhbCl0KGxiKWwoYWNrKTIwOCA1MjMzIHkgRnIoc2hvdWxkKTI3IGIocmV0dXJuKWcodHJ1ZSlnKGlmKWgKLSh2KW4oZXJpXDAzNGNhdGlvbilmKHBhc3NlcylmKGFuZCloKGZhbHNlKWgob3RoZXJ3aXNlLikwCi01MzgwIHkgRm0oc2V0X3ZlcmlmeV9kZXB0aClvKFwoKXAgRmQoZGVwdGgpNiBiIEZtKFwpKXAKK2IgRmQoYylsKGFsKXQobGIpbChhY2spMjA4IDUzODAgeSBGcihzaG91bGQpMjcgYihyZXR1cm4pZyh0cnVlKWcoaWYpaAorKHYpbihlcmlcMDM0Y2F0aW9uKWYocGFzc2VzKWYoYW5kKWgoZmFsc2UpaChvdGhlcndpc2UuKXAKIDAgNTU0OSAzOTAxIDQgdiAwIDU2NDkgYSBGZygzLjMpODIgYiBGbShTU0wpMjYgYiBGZyhcMDI2KWkoQW4pZwogKGludGVyZmFjZSlnKHRvKWYodGhlKWcoU1NMLXNwKXIoZWNpXDAzNGMpaChwYSluKHJ0cylmKG9mKWgoT3ApcihlblNTTCkKIDE2MTEgYigxMSlwIGVvcCBlbmQKICUlUGFnZTogMTIgMTIKLVRlWERpY3QgYmVnaW4gMTIgMTEgYm9wIDIwOCA4MyBhIEZyKFNldCkzNiBiKHRoZSlnKG1heGltKW4odW0pZihkZXB0aCloCitUZVhEaWN0IGJlZ2luIDEyIDExIGJvcCAwIDgzIGEgRm0oc2V0X3ZlcmlmeV9kZXB0aClvKFwoKXAKK0ZkKGRlcHRoKTYgYiBGbShcKSkyMDggMTgzIHkgRnIoU2V0KTM2IGIodGhlKWcobWF4aW0pbih1bSlmKGRlcHRoKWgKIChmb3IpZyh0aGUpZyhjZXJ0aVwwMzRjYXRlKWYoYyluKGhhaW4pZyh2KW4oZXJpXDAzNGNhdGlvbilmKHRoYXQpaQogKHNoYWxsKWYoYilyKGUpaChhbGxvKW4odyluKGVkKWUoZm9yKWkodGhpcylmKENvbiluKHRleHQpMjA4Ci0xODMgeShvYik1IGIoamVjdC4pMCAzMzAgeSBGbSh1c2VfY2VydGlmaWNhdGVcKClvIEZkKGMpbChlcnQpagotRm0oXCkpMjA4IDQyOSB5IEZyKFVzZSkyNyBiKHRoZSloKGNlcnRpXDAzNGNhdGUpZiBGZChjKWwoZXJ0KTM1CisyODIgeShvYik1IGIoamVjdC4pMCA0MjkgeSBGbSh1c2VfY2VydGlmaWNhdGVcKClvIEZkKGMpbChlcnQpagorRm0oXCkpMjA4IDUyOSB5IEZyKFVzZSkyNyBiKHRoZSloKGNlcnRpXDAzNGNhdGUpZiBGZChjKWwoZXJ0KTM1CiBiIEZyKHdoaWMpbihoKTI4IGIoaGFzKWYodG8pZyhiKXIoZSloKGEpZihYNTA5KWcob2IpNQotYihqZWN0LikwIDU3NiB5IEZtKGFkZF9leHRyYV9jaGFpbl8pbyhjZSlvKHJ0XCgpbyBGZChjKWwoZXJ0KWoKLUZtKFwpKTIwOCA2NzYgeSBGcihBKW4oZGRzKTMyIGIodGhlKWgoY2VydGlcMDM0Y2F0ZSlmCitiKGplY3QuKTAgNjc2IHkgRm0oYWRkX2V4dHJhX2NoYWluXylvKGNlKW8ocnRcKClvIEZkKGMpbChlcnQpagorRm0oXCkpMjA4IDc3NSB5IEZyKEEpbihkZHMpMzIgYih0aGUpaChjZXJ0aVwwMzRjYXRlKWYKIEZkKGMpbChlcnQpOCBiIEZyKCwpMzQgYih3aGljKW4oaClmKGhhcylmKHRvKWcoYilyKGUpaShhKWUoWDUwOSlmKG9iKTUKIGIoamVjdCwpMzQgYih0bylmKHRoZSlnKGNlcnRpXDAzNGNhdGUpZihjKW4oaGFpbilnKHByZXNlbiluKHRlZClnCi0odG9nZXRoZXIpMjA4IDc3NSB5KHdpdGgpYyh0aGUpZyhjZXJ0aVwwMzRjYXRlLikwIDkyMgorKHRvZ2V0aGVyKTIwOCA4NzUgeSh3aXRoKWModGhlKWcoY2VydGlcMDM0Y2F0ZS4pMCAxMDIyCiB5IEZtKHVzZV9jZXJ0aWZpY2F0ZV8pbyhjaClvKGFpbilvKF9mKW8oaWwpbyhlXCgpcCBGZChcMDM0KW8obGUpNgotYiBGbShcKSkyMDggMTAyMiB5IEZyKExvYWQpMjYgYihhKWgoY2VydGlcMDM0Y2F0ZSlnKGMpbihoYWluKWcoZnJvbSloCitiIEZtKFwpKTIwOCAxMTIxIHkgRnIoTG9hZCkyNiBiKGEpaChjZXJ0aVwwMzRjYXRlKWcoYyluKGhhaW4pZyhmcm9tKWgKIEZkKFwwMzRsZSkzNCBiIEZyKHdoaWMpbihoKTI3IGIobSluKHVzdCloKGIpcihlKWcoUEVNKWcoZW5jbylyKGRlZC4pMAotMTE2OSB5IEZtKHVzZV9wcml2YXRla2V5XCgpcCBGZChwa2V5KTcgYiBGbShcKSkyMDggMTI2OAorMTI2OCB5IEZtKHVzZV9wcml2YXRla2V5XCgpcCBGZChwa2V5KTcgYiBGbShcKSkyMDggMTM2OAogeSBGcihVc2UpMjcgYih0aGUpaChwcml2KS01IGIoYXRlKTI3IGIoayluKGV5KWggRmQocGtleSkzNgogYiBGcih3aGljKW4oaCkyOCBiKGhhcylmKHRvKWcoYilyKGUpaChhKWYoUEtleSloKG9iKTUKLWIoamVjdC4pMCAxNDMwIHkgRm0odXNlX2NlcnRpZmljYXRlXylvKGZpKW8obGVcKClvIEZkKFwwMzRsZSloCi1GYyhbKXAgRmQoLCkyNCBiKGZvcm1hdClkIEZjKF0pcCBGbShcKSkyMDggMTUyOSB5IEZyKExvYWQpaSh0aGUpaAorYihqZWN0LikwIDE1MjkgeSBGbSh1c2VfY2VydGlmaWNhdGVfKW8oZmkpbyhsZVwoKW8gRmQoXDAzNGxlKWgKK0ZjKFspcCBGZCgsKTI0IGIoZm9ybWF0KWQgRmMoXSlwIEZtKFwpKTIwOCAxNjI5IHkgRnIoTG9hZClpKHRoZSloCiAoXDAzNHJzdClnKGNlcnRpXDAzNGNhdGUpZihmb3VuZCloKGluKWggRmQoXDAzNGxlKTYgYgogRnIoLikzNiBiKFRoZSkyNCBiKGNlcnRpXDAzNGNhdGUpZihtKW4odXN0KWgoYilyKGUpaChpbilmKHRoZSlnKGZvcm1hdCkKIGcoc3ApcihlY2lcMDM0ZWQpZyhiKW4oeSloIEZkKGZvcm1hdCk4IGIgRnIoLCkyNSBiKHdoaWMpbihoKTIwOAotMTYyOSB5KGlzKWkoZWl0aGVyKWcgRm0oRklMRVRZUEVfUEVNKWMgRnIob3IpayBGbShGSUxFVFlQRV9BU04xKXAKKzE3MjggeShpcylpKGVpdGhlcilnIEZtKEZJTEVUWVBFX1BFTSljIEZyKG9yKWsgRm0oRklMRVRZUEVfQVNOMSlwCiBGciguKWsoVGhlKWQoZGVmYXVsdClnKGlzKWYgRm0oRklMRVRZUEVfUEVNKXAgRnIoLikwCi0xNzc2IHkgRm0odXNlX3ByaXZhdGVrZXlfZilvKGlsKW8oZVwoKXAgRmQoXDAzNClvKGxlKTYKLWIgRmMoWylwIEZkKCwpMjUgYihmb3JtYXQpMjAgYiBGYyhdKXAgRm0oXCkpMjA4IDE4NzUKKzE4NzUgeSBGbSh1c2VfcHJpdmF0ZWtleV9mKW8oaWwpbyhlXCgpcCBGZChcMDM0KW8obGUpNgorYiBGYyhbKXAgRmQoLCkyNSBiKGZvcm1hdCkyMCBiIEZjKF0pcCBGbShcKSkyMDggMTk3NQogeSBGcihMb2FkKTMxIGIodGhlKWgoXDAzNHJzdClnKHByaXYpLTUgYihhdGUpMzEgYihrKW4oZXkpZyhmb3VuZClpKGluKWYKIEZkKFwwMzRsZSk2IGIgRnIoLik1MCBiKFRoZSkzMiBiKHByaXYpLTUgYihhdGUpMzIgYihrKW4oZXkpZihtKW4odXN0KWgKIChiKXIoZSlnKGluKWgodGhlKWYoZm9ybWF0KWYoc3ApcihlY2lcMDM0ZWQpaShiKW4oeSlmCi1GZChmb3JtYXQpOCBiIEZyKCwpMjA4IDE5NzUgeSh3aGljKW4oaCkyNyBiKGlzKWcoZWl0aGVyKWgKK0ZkKGZvcm1hdCk4IGIgRnIoLCkyMDggMjA3NSB5KHdoaWMpbihoKTI3IGIoaXMpZyhlaXRoZXIpaAogRm0oRklMRVRZUEVfUEVNKTIyIGIgRnIob3IpMjcgYiBGbShGSUxFVFlQRV9BU04xKXAgRnIoLikzMgotYihUaGUpMjcgYihkZWZhdWx0KWgoaXMpZyBGbShGSUxFVFlQRV9QRU0pcCBGciguKTAgMjIzOAoteSBGZyhDb25uZWN0aW9uKWUob2JqZWN0cykwIDI0MzggeSBGcihDb25uZWN0aW9uKWgob2IpNQorYihUaGUpMjcgYihkZWZhdWx0KWgoaXMpZyBGbShGSUxFVFlQRV9QRU0pcCBGciguKTAgMjMzOAoreSBGZyhDb25uZWN0aW9uKWUob2JqZWN0cykwIDI1MzggeSBGcihDb25uZWN0aW9uKWgob2IpNQogYihqZWN0cykyNyBiKGhhKW4odiluKGUpZih0aGUpaShmb2xsbyluKHdpbmcpZihtZXRobylyKGRzOikwCi0yNTg1IHkgRm0oYWNjZXB0XChcKSkyMDggMjY4NSB5IEZyKENhbGwpMzMgYih0aGUpZyBGbShhY2NlcHQpZQorMjY4NSB5IEZtKGFjY2VwdFwoXCkpMjA4IDI3ODQgeSBGcihDYWxsKTMzIGIodGhlKWcgRm0oYWNjZXB0KWUKIEZyKG1ldGhvKXIoZClqKG9mKWYodGhlKWgodW5kZXJseWluZylmKHNvKXIoYyluKGspbihldClmKGFuZCloKHNldCloCiAodXApZyhTU0wpZihvbilnKHRoZSloKHJldHVybmVkKWYoc28pcihjKW4oayluKGV0LCloKHVzaW5nKWYodGhlKTIwOAotMjc4NCB5KENvbiluKHRleHQpMjIgYihvYik1IGIoamVjdCkyMiBiKHN1cHBsaWVkKWgodG8pZih0aGlzKWgKKzI4ODQgeShDb24pbih0ZXh0KTIyIGIob2IpNSBiKGplY3QpMjIgYihzdXBwbGllZCloKHRvKWYodGhpcyloCiAoQ29ubmVjdGlvbilmKG9iKTUgYihqZWN0KTIyIGIoYXQpaChjcmVhdGlvbi4pMzQgYihSZXR1cm5zKTIyCiBiKGEpZyhwYWlyKWcgRm0oXCgpcCBGZChjKWwob25uKTYgYiBGbSgsKTQzIGIgRmQoYWRkcilsKGVzcyk3Ci1iIEZtKFwpKXAgRnIoLikzNiBiKHdoZXJlKTIwOCAyODg0IHkgRmQoYylsKG9ubilkIEZyKGlzKTI4CitiIEZtKFwpKXAgRnIoLikzNiBiKHdoZXJlKTIwOCAyOTg0IHkgRmQoYylsKG9ubilkIEZyKGlzKTI4CiBiKHRoZSlnKG5ldylmKENvbm5lY3Rpb24pZyhvYik1IGIoamVjdCkyOCBiKGNyZWF0ZWQsKWUoYW5kKWkKIEZkKGFkZHIpbChlc3MpMzUgYiBGcihpcykyOCBiKGFzKWYocmV0dXJuZWQpZyhiKW4oeSlnKHRoZSloKHNvKXIoYyluKGspCi1uKGV0J3MpZSBGbShhY2NlcHQpcCBGciguKTAgMzAzMSB5IEZtKGJpbmRcKClwIEZkKGFkZHIpbChlc3MpNwotYiBGbShcKSkyMDggMzEzMSB5IEZyKENhbGwpMjcgYih0aGUpaCBGbShiaW5kKWUgRnIobWV0aG8pcihkKWkob2YpZgotKHRoZSloKHVuZGVybHlpbmcpZihzbylyKGMpbihrKW4oZXQuKTAgMzI3NyB5IEZtKGNsb3NlXChcKSkyMDgKLTMzNzcgeSBGcihDYWxsKWkodGhlKWggRm0oY2xvc2UpZSBGcihtZXRobylyKGQpaShvZilnKHRoZSlnKHVuZGVybHlpbmcpCituKGV0J3MpZSBGbShhY2NlcHQpcCBGciguKTAgMzEzMSB5IEZtKGJpbmRcKClwIEZkKGFkZHIpbChlc3MpNworYiBGbShcKSkyMDggMzIzMCB5IEZyKENhbGwpMjcgYih0aGUpaCBGbShiaW5kKWUgRnIobWV0aG8pcihkKWkob2YpZgorKHRoZSloKHVuZGVybHlpbmcpZihzbylyKGMpbihrKW4oZXQuKTAgMzM3NyB5IEZtKGNsb3NlXChcKSkyMDgKKzM0NzcgeSBGcihDYWxsKWkodGhlKWggRm0oY2xvc2UpZSBGcihtZXRobylyKGQpaShvZilnKHRoZSlnKHVuZGVybHlpbmcpCiBmKHNvKXIoYyluKGspbihldC4pNDMgYihOb3RlOillKElmKTMxIGIoeSluKG91KWUodyluKGFuKW4odClnKGNvcnJlY3QpZgotKFNTTClpKGNsb3N1cmUsKWYoeSluKG91KWcobmVlZCloKHRvKTIwOCAzNDc3IHkoY2FsbClkKHRoZSloCi1GbShzaHV0ZG93biljIEZyKG1ldGhvKXIoZClrKFwwMzRyc3QuKTAgMzYyNCB5IEZtKGNvbm5lY3RcKClwCi1GZChhZGRyKWwoZXNzKTcgYiBGbShcKSkyMDggMzcyMyB5IEZyKENhbGwpMzEgYih0aGUpaAorKFNTTClpKGNsb3N1cmUsKWYoeSluKG91KWcobmVlZCloKHRvKTIwOCAzNTc2IHkoY2FsbClkKHRoZSloCitGbShzaHV0ZG93biljIEZyKG1ldGhvKXIoZClrKFwwMzRyc3QuKTAgMzcyMyB5IEZtKGNvbm5lY3RcKClwCitGZChhZGRyKWwoZXNzKTcgYiBGbShcKSkyMDggMzgyMyB5IEZyKENhbGwpMzEgYih0aGUpaAogRm0oY29ubmVjdCllIEZyKG1ldGhvKXIoZClpKG9mKWcodGhlKWcodW5kZXJseWluZylnKHNvKXIoYyluKGspbihldCllCiAoYW5kKWkoc2V0KWcodXApZyhTU0wpaChvbillKHRoZSlpKHNvKXIoYyluKGspbihldCwpZih1c2luZylmKHRoZSloCi0oQ29uKW4odGV4dCkyMDggMzgyMyB5KG9iKTUgYihqZWN0KTI3IGIoc3VwcGxpZWQpaCh0bylmKHRoaXMpaAotKENvbm5lY3Rpb24pZihvYik1IGIoamVjdCkyNyBiKGF0KWgoY3JlYXRpb24uKTAgMzk3MAoteSBGbShjb25uZWN0X2V4XCgpcCBGZChhZGRyKWwoZXNzKTcgYiBGbShcKSkyMDggNDA2OQorKENvbiluKHRleHQpMjA4IDM5MjIgeShvYik1IGIoamVjdCkyNyBiKHN1cHBsaWVkKWgodG8pZih0aGlzKWgKKyhDb25uZWN0aW9uKWYob2IpNSBiKGplY3QpMjcgYihhdCloKGNyZWF0aW9uLikwIDQwNjkKK3kgRm0oY29ubmVjdF9leFwoKXAgRmQoYWRkcilsKGVzcyk3IGIgRm0oXCkpMjA4IDQxNjkKIHkgRnIoQ2FsbCkyNCBiKHRoZSlnIEZtKGNvbm5lY3RfZXgpYyBGcihtZXRobylyKGQpMjUKIGIob2YpZih0aGUpaCh1bmRlcmx5aW5nKWYoc28pcihjKW4oayluKGV0KWYoYW5kKWgoc2V0KWcodXApaChTU0wpZihvbilnCiAodGhlKWgoc28pcihjKW4oayluKGV0LClmKHVzaW5nKWcodGhlKWcoQ29uKW4odGV4dCkyMDgKLTQxNjkgeShvYik1IGIoamVjdCkzNSBiKHN1cHBsaWVkKWcodG8paCh0aGlzKWYoQ29ubmVjdGlvbilnKG9iKTUKKzQyNjkgeShvYik1IGIoamVjdCkzNSBiKHN1cHBsaWVkKWcodG8paCh0aGlzKWYoQ29ubmVjdGlvbilnKG9iKTUKIGIoamVjdCkzNiBiKGF0KWYoY3JlYXRpb24uKTU5IGIoTm90ZSkzNiBiKHRoYXQpZihpZiloKHRoZSlnCi1GbShjb25uZWN0X2V4KTMxIGIgRnIobWV0aG8pcihkKTM2IGIob2YpZyh0aGUpMjA4IDQyNjkKK0ZtKGNvbm5lY3RfZXgpMzEgYiBGcihtZXRobylyKGQpMzYgYihvZilnKHRoZSkyMDggNDM2OAogeShzbylyKGMpbihrKW4oZXQpMjYgYihkbylyKGVzbid0KWkocmV0dXJuKWYoMCwpZyhTU0wpaCh3KW4ob24ndClmKGIpcgotKGUpaChpbml0aWFsaXplZC4pMCA0NDE1IHkgRm0oZG9faGFuZHNoYWtlXChcKSkyMDggNDUxNQorKGUpaChpbml0aWFsaXplZC4pMCA0NTE1IHkgRm0oZG9faGFuZHNoYWtlXChcKSkyMDggNDYxNQogeSBGcihQKW4oZXJmb3JtKTQ5IGIoYW4paChTU0wpZyhoYW5kc2hhayluKGUpZihcKHVzdWFsbHkpaChjYWxsZWQpZwogKGFmdGVyKWYgRm0ocmVuZWdvdGlhdGUpZCBGcihvcilqKG9uZSloKG9mKTU3IGIgRm0oc2V0X2FjY2VwdF9zdGF0KW8oZSkKLTQ0IGIgRnIob3IpMjA4IDQ2MTUgeSBGbShzZXRfYWNjZXB0X3N0YXQpbyhlKXAgRnIoXCkuKTMxCis0NCBiIEZyKG9yKTIwOCA0NzE0IHkgRm0oc2V0X2FjY2VwdF9zdGF0KW8oZSlwIEZyKFwpLikzMQogYihUaGlzKWQoY2FuKWYocmFpc2UpZih0aGUpaShzYW1lKWYoZXhjZXB0aW9ucylnKGFzKWcKLUZtKHNlbmQpZiBGcihhbmQpaCBGbShyZWN2KXAgRnIoLikwIDQ3NjIgeSBGbShmaWxlbm9cKFwpKTIwOAotNDg2MSB5IEZyKFJldHJpZXYpbihlKWYodGhlKWkoXDAzNGxlKWcoZGVzY3JpcHRvcillKG4pbih1bSluKGIpcihlcilpCi0oZm9yKWYodGhlKWgodW5kZXJseWluZyllKHNvKXIoYyluKGspbihldC4pMCA1MDA4IHkgRm0obGlzdGVuXCgpcAotRmQoYilsKGFja2xvKWwoZyk3IGIgRm0oXCkpMjA4IDUxMDggeSBGcihDYWxsKTI3IGIodGhlKWgKK0ZtKHNlbmQpZiBGcihhbmQpaCBGbShyZWN2KXAgRnIoLikwIDQ4NjEgeSBGbShmaWxlbm9cKFwpKTIwOAorNDk2MSB5IEZyKFJldHJpZXYpbihlKWYodGhlKWkoXDAzNGxlKWcoZGVzY3JpcHRvcillKG4pbih1bSluKGIpcihlcilpCisoZm9yKWYodGhlKWgodW5kZXJseWluZyllKHNvKXIoYyluKGspbihldC4pMCA1MTA4IHkgRm0obGlzdGVuXCgpcAorRmQoYilsKGFja2xvKWwoZyk3IGIgRm0oXCkpMjA4IDUyMDcgeSBGcihDYWxsKTI3IGIodGhlKWgKIEZtKGxpc3RlbilkIEZyKG1ldGhvKXIoZClqKG9mKWYodGhlKWgodW5kZXJseWluZylmKHNvKXIoYyluKGspbihldC4pMAotNTI1NSB5IEZtKGdldF9hcHBfZGF0YVwoXCkpMjA4IDUzNTQgeSBGcihSZXRyaWV2KW4oZSlmKGFwcGxpY2F0aW9uKWgKLShkYXRhKWcoYXMpZyhzZXQpaChiKW4oeSlnIEZtKHNldF9hcHBfZGF0YSlwIEZyKC4pcCAwCi01NTQ5IDM5MDEgNCB2IDAgNTY0OSBhIEZnKDEyKTIxOTcgYigzKTgzIGIgRm0oT3BlblNTTCkyNAotYiBGZyhcMDI2KWsoUHl0aG9uKWYoaW50ZXJmYWNlKWgodG8pZihPcClyKGVuU1NMKXAgZW9wCi1lbmQKKzUzNTQgeSBGbShnZXRfYXBwX2RhdGFcKFwpKXAgMCA1NTQ5IDM5MDEgNCB2IDAgNTY0OSBhCitGZygxMikyMTk3IGIoMyk4MyBiIEZtKE9wZW5TU0wpMjQgYiBGZyhcMDI2KWsoUHl0aG9uKWYoaW50ZXJmYWNlKWgodG8pZgorKE9wKXIoZW5TU0wpcCBlb3AgZW5kCiAlJVBhZ2U6IDEzIDEzCi1UZVhEaWN0IGJlZ2luIDEzIDEyIGJvcCAwIDgzIGEgRm0oZ2V0X2NpcGhlcl9saXN0XCgpbyhcKSkyMDgKLTE4MyB5IEZyKFJldHJpZXYpbihlKTIzIGIodGhlKWgobGlzdClnKG9mKWcoY2lwaGVycylnKHVzZWQpZyhiKW4oeSlmCi0odGhlKWkoQ29ubmVjdGlvbillKG9iKTUgYihqZWN0LikzNiBiKFcpLTkgYihBUk5JTkc6KTI1Ci1iKFRoaXMpZihBUEkpaChoYXMpZShjKW4oaGFuZ2VkLikzNSBiKEl0KTI0IGIodXNlZCkyMDgKLTI4MiB5KHRvKWoodGFrKW4oZSlnKGFuKWcob3B0aW9uYWwpZyhwYXJhbWV0ZXIpZihhbmQpaChqdXN0KWgocmV0dXJuKWcKLShhKWYoc3RyaW5nLClnKGJ1dCloKG5vdClmKGl0KWgocmV0dXJucylmKHRoZSloKGVuKW4odGlyZSlmKGxpc3QpaChpbilnCi0ob25lKWYoZ28uKTAgNDI5IHkgRm0oZ2V0X2NvbnRleHRcKFwpKTIwOCA1MjkgeSBGcihSZXRyaWV2KW4oZSlmKHRoZSlpCi0oQ29uKW4odGV4dClmKG9iKTUgYihqZWN0KTI4IGIoYXNzbylyKGNpYXRlZCllKHdpdGgpaSh0aGlzKWcKLShDb25uZWN0aW9uLikwIDY3NiB5IEZtKGdldF9wZWVyX2NlcnRpZmkpbyhjYSlvKHRlXCgpbyhcKSkyMDgKLTc3NSB5IEZyKFJldHJpZXYpbihlKWUodGhlKWkob3RoZXIpZihzaWRlJ3MpZyhjZXJ0aVwwMzRjYXRlKWcoXChpZilpCi0oYW4pbih5XCkpMCA5MjIgeSBGbShnZXRwZWVybmFtZVwoXCkpMjA4IDEwMjIgeSBGcihDYWxsKWUodGhlKWgKLUZtKGdldHBlZXJuYW1lKTIzIGIgRnIobWV0aG8pcihkKTI4IGIob2YpZih0aGUpaCh1bmRlcmx5aW5nKWYoc28pcihjKW4KLShrKW4oZXQuKTAgMTE2OSB5IEZtKGdldHNvY2tuYW1lXChcKSkyMDggMTI2OCB5IEZyKENhbGwpZyh0aGUpaAorVGVYRGljdCBiZWdpbiAxMyAxMiBib3AgMjA4IDgzIGEgRnIoUmV0cmlldiluKGUpMjYgYihhcHBsaWNhdGlvbiloCisoZGF0YSlnKGFzKWcoc2V0KWgoYiluKHkpZyBGbShzZXRfYXBwX2RhdGEpcCBGciguKTAgMjMwCit5IEZtKGdldF9jaXBoZXJfbGlzdFwoKW8oXCkpMjA4IDMzMCB5IEZyKFJldHJpZXYpbihlKTIzCitiKHRoZSloKGxpc3QpZyhvZilnKGNpcGhlcnMpZyh1c2VkKWcoYiluKHkpZih0aGUpaShDb25uZWN0aW9uKWUob2IpNQorYihqZWN0LikzNiBiKFcpLTkgYihBUk5JTkc6KTI1IGIoVGhpcylmKEFQSSloKGhhcyllKGMpbihoYW5nZWQuKTM1CitiKEl0KTI0IGIodXNlZCkyMDggNDI5IHkodG8paih0YWspbihlKWcoYW4pZyhvcHRpb25hbClnKHBhcmFtZXRlcilmCisoYW5kKWgoanVzdCloKHJldHVybilnKGEpZihzdHJpbmcsKWcoYnV0KWgobm90KWYoaXQpaChyZXR1cm5zKWYodGhlKWgKKyhlbiluKHRpcmUpZihsaXN0KWgoaW4pZyhvbmUpZihnby4pMCA1NzYgeSBGbShnZXRfY29udGV4dFwoXCkpMjA4Cis2NzYgeSBGcihSZXRyaWV2KW4oZSlmKHRoZSlpKENvbiluKHRleHQpZihvYik1IGIoamVjdCkyOAorYihhc3NvKXIoY2lhdGVkKWUod2l0aClpKHRoaXMpZyhDb25uZWN0aW9uLikwIDgyMyB5IEZtCisoZ2V0X3BlZXJfY2VydGlmaSlvKGNhKW8odGVcKClvKFwpKTIwOCA5MjIgeSBGcihSZXRyaWV2KW4oZSllKHRoZSlpCisob3RoZXIpZihzaWRlJ3MpZyhjZXJ0aVwwMzRjYXRlKWcoXChpZilpKGFuKW4oeVwpKTAgMTA2OQoreSBGbShnZXRwZWVybmFtZVwoXCkpMjA4IDExNjkgeSBGcihDYWxsKWUodGhlKWggRm0oZ2V0cGVlcm5hbWUpMjMKK2IgRnIobWV0aG8pcihkKTI4IGIob2YpZih0aGUpaCh1bmRlcmx5aW5nKWYoc28pcihjKW4oayluKGV0LikwCisxMzE2IHkgRm0oZ2V0c29ja25hbWVcKFwpKTIwOCAxNDE1IHkgRnIoQ2FsbClnKHRoZSloCiBGbShnZXRzb2NrbmFtZSkyMyBiIEZyKG1ldGhvKXIoZCkyOCBiKG9mKWYodGhlKWgodW5kZXJseWluZylmKHNvKXIoYyluCi0oayluKGV0LikwIDE0MzIgeSBGbShnZXRzb2Nrb3B0XCgpcCBGZChsZXZlbCwpZihvcHRuYW1lKTYKLWIgRmMoWylwIEZkKCwpMzEgYihidVwwMzVlbikxOCBiIEZjKF0pcCBGbShcKSkyMDggMTUzMQorKGspbihldC4pMCAxNTc5IHkgRm0oZ2V0c29ja29wdFwoKXAgRmQobGV2ZWwsKWYob3B0bmFtZSk2CitiIEZjKFspcCBGZCgsKTMxIGIoYnVcMDM1ZW4pMTggYiBGYyhdKXAgRm0oXCkpMjA4IDE2NzgKIHkgRnIoQ2FsbCkyNyBiKHRoZSloIEZtKGdldHNvY2tvcHQpMjMgYiBGcihtZXRobylyKGQpMjgKLWIob2YpZyh0aGUpZyh1bmRlcmx5aW5nKWYoc28pcihjKW4oayluKGV0LikwIDE2NzggeSBGbShwZW5kaW5nXChcKSkyMDgKLTE3NzggeSBGcihSZXRyaWV2KW4oZSkyMiBiKHRoZSloKG4pbih1bSluKGIpcihlcilnKG9mKWcoYiluKHl0ZXMpZworYihvZilnKHRoZSlnKHVuZGVybHlpbmcpZihzbylyKGMpbihrKW4oZXQuKTAgMTgyNSB5IEZtKHBlbmRpbmdcKFwpKTIwOAorMTkyNSB5IEZyKFJldHJpZXYpbihlKTIyIGIodGhlKWgobiluKHVtKW4oYilyKGVyKWcob2YpZyhiKW4oeXRlcylnCiAodGhhdCloKGNhbillKGIpcihlKWkoc2FmZWx5KWYocmVhZClmKGZyb20paCh0aGUpZyhTU0wpaChidVwwMzNlcilmKFwoKQotcCBGZChub3QpZyBGcih0aGUpaCh1bmRlcmx5aW5nKWUodHJhbnNwKXIob3J0KTIwOCAxODc4Ci15KGJ1XDAzM2VyXCkuKTAgMjAyNCB5IEZtKHJlY3ZcKClwIEZkKGJ1ZnNpemUpNiBiIEZtKFwpKTIwOAotMjEyNCB5IEZyKFJlY2VpdiluKGUpMzAgYihkYXRhKWgoZnJvbSlnKHRoZSloKENvbm5lY3Rpb24uKTQ3CitwIEZkKG5vdClnIEZyKHRoZSloKHVuZGVybHlpbmcpZSh0cmFuc3ApcihvcnQpMjA4IDIwMjQKK3koYnVcMDMzZXJcKS4pMCAyMTcxIHkgRm0ocmVjdlwoKXAgRmQoYnVmc2l6ZSk2IGIgRm0oXCkpMjA4CisyMjcxIHkgRnIoUmVjZWl2KW4oZSkzMCBiKGRhdGEpaChmcm9tKWcodGhlKWgoQ29ubmVjdGlvbi4pNDcKIGIoVGhlKTMxIGIocmV0dXJuKWcodiktNSBiKGFsdWUpMzEgYihpcyloKGEpZShzdHJpbmcpaChyZXByZXNlbiluKHRpbmcpCi1mKHRoZSloKGRhdGEpZyhyZWNlaXYpbihlZC4pNDcgYihUaGUpMjA4IDIyMjQgeShtYXhpbSluKHVtKTI3CitmKHRoZSloKGRhdGEpZyhyZWNlaXYpbihlZC4pNDcgYihUaGUpMjA4IDIzNzEgeShtYXhpbSluKHVtKTI3CiBiKGFtb3VuKW4odClnKG9mKWcoZGF0YSloKHRvKWYoYilyKGUpaChyZWNlaXYpbihlZCllKGF0KWkob25jZSwpZihpcylnCi0oc3ApcihlY2lcMDM0ZWQpaChiKW4oeSloIEZkKGJ1ZnNpemUpNiBiIEZyKC4pMCAyMzcxCi15IEZtKHJlbmVnb3RpYXRlXChcKSkyMDggMjQ3MCB5IEZyKFJlbmVnb3RpYXRlKTI2IGIodGhlKWkoU1NMKWcKKyhzcClyKGVjaVwwMzRlZCloKGIpbih5KWggRmQoYnVmc2l6ZSk2IGIgRnIoLikwIDI1MTcKK3kgRm0ocmVuZWdvdGlhdGVcKFwpKTIwOCAyNjE3IHkgRnIoUmVuZWdvdGlhdGUpMjYgYih0aGUpaShTU0wpZwogKHNlc3Npb24uKTM2IGIoQ2FsbCkyNyBiKHRoaXMpaChpZilnKHkpbihvdSlmKHdpc2gpZyh0byloKGMpbihoYW5nZSllCiAoY2lwaGVyKWgoc3VpdGVzKWgob3IpZShhbiluKHl0aGluZyloKGxpayluKGUpZyh0aGF0LikwCi0yNjE3IHkgRm0oc2VuZFwoKXAgRmQoc3RyaW5nKTcgYiBGbShcKSkyMDggMjcxNyB5IEZyKFNlbmQpMjcKKzI3NjQgeSBGbShzZW5kXCgpcCBGZChzdHJpbmcpNyBiIEZtKFwpKTIwOCAyODY0IHkgRnIoU2VuZCkyNwogYih0aGUpaCBGZChzdHJpbmcpMzUgYiBGcihkYXRhKTI3IGIodG8paCh0aGUpZyhDb25uZWN0aW9uLikwCi0yODY0IHkgRm0oc2VuZGFsbFwoKXAgRmQoc3RyaW5nKTcgYiBGbShcKSkyMDggMjk2MyB5CiszMDEwIHkgRm0oc2VuZGFsbFwoKXAgRmQoc3RyaW5nKTcgYiBGbShcKSkyMDggMzExMCB5CiBGcihTZW5kKTMwIGIoYWxsKWYob2YpaCh0aGUpZyBGZChzdHJpbmcpMzcgYiBGcihkYXRhKTI5CiBiKHRvKWcodGhlKWgoQ29ubmVjdGlvbi4pNDMgYihUaGlzKTMwIGIoY2FsbHMpZiBGbShzZW5kKWYKIEZyKHJlcClyKGVhdGVkbHkpaCh1biluKHRpbCloKGFsbClmKGRhdGEpaChpcylmKHNlbiluKHQuKTQzCi1iKElmKTMwIGIoYW4pMjA4IDMwNjMgeShlcnJvcikyNSBiKG8pcihjY3VycywpaShpdCdzKWgoaW1wKXIob3NzaWJsZSlmCitiKElmKTMwIGIoYW4pMjA4IDMyMTAgeShlcnJvcikyNSBiKG8pcihjY3VycywpaShpdCdzKWgoaW1wKXIob3NzaWJsZSlmCiAodG8pZyh0ZWxsKWgoaG8pbih3KWYobSluKHVjKW4oaCloKGRhdGEpZihoYXMpZyhiKXIoZWVuKWgoc2VuKW4odC4pMAotMzIxMCB5IEZtKHNldF9hY2NlcHRfc3RhdGUpbyhcKFwpKTIwOCAzMzA5IHkgRnIoU2V0KTIwCiszMzU3IHkgRm0oc2V0X2FjY2VwdF9zdGF0ZSlvKFwoXCkpMjA4IDM0NTYgeSBGcihTZXQpMjAKIGIodGhlKWcoY29ubmVjdGlvbilmKHRvKWgodyluKG9yayllKGluKWkoc2VydiluKGVyKWUobW8pcihkZS4pMzQKIGIoVGhlKTIwIGIoaGFuZHNoYWspbihlKWYod2lsbCloKGIpcihlKWcoaGFuZGxlZClnKGF1dG9tYXRpY2FsbHkpZShiKW4KLSh5KWkocmVhZC93cml0ZS4pMCAzNDU2IHkgRm0oc2V0X2FwcF9kYXRhXCgpcCBGZChkYXRhKTYKLWIgRm0oXCkpMjA4IDM1NTYgeSBGcihBc3NvKXIoY2lhdGUpMzkgYiBGZChkYXRhKTQ3IGIKKyh5KWkocmVhZC93cml0ZS4pMCAzNjAzIHkgRm0oc2V0X2FwcF9kYXRhXCgpcCBGZChkYXRhKTYKK2IgRm0oXCkpMjA4IDM3MDMgeSBGcihBc3NvKXIoY2lhdGUpMzkgYiBGZChkYXRhKTQ3IGIKIEZyKHdpdGgpNDAgYih0aGlzKWcoQ29ubmVjdGlvbilnKG9iKTUgYihqZWN0Lik3MyBiIEZkKGRhdGEpNDcKIGIgRnIoY2FuKTM5IGIoYilyKGUpaShyZXRyaWV2KW4oZWQpZChsYXRlciloKHVzaW5nKWgodGhlKWcKLUZtKGdldF9hcHBfZGF0YSkyMDggMzY1NSB5IEZyKG1ldGhvKXIoZC4pMCAzODAyIHkgRm0oc2V0X2Nvbm5lY3Rfc3RhdClvCi0oZVwoKW8oXCkpMjA4IDM5MDIgeSBGcihTZXQpMjEgYih0aGUpZyhjb25uZWN0aW9uKWcodG8pZyh3KW4ob3JrKWUoaW4paQorRm0oZ2V0X2FwcF9kYXRhKTIwOCAzODAyIHkgRnIobWV0aG8pcihkLikwIDM5NDkgeSBGbShzZXRfY29ubmVjdF9zdGF0KW8KKyhlXCgpbyhcKSkyMDggNDA0OSB5IEZyKFNldCkyMSBiKHRoZSlnKGNvbm5lY3Rpb24pZyh0bylnKHcpbihvcmspZShpbilpCiAoY2xpZW4pbih0KWcobW8pcihkZS4pMzUgYihUaGUpMjEgYihoYW5kc2hhayluKGUpZih3aWxsKWgoYilyKGUpZwotKGhhbmRsZWQpZyhhdXRvbWF0aWNhbGx5KWYoYiluKHkpaChyZWFkL3dyaXRlLikwIDQwNDkKLXkgRm0oc2V0YmxvY2tpbmdcKClwIEZkKFwwMzVhZyk3IGIgRm0oXCkpMjA4IDQxNDggeSBGcihDYWxsKTI3CisoaGFuZGxlZClnKGF1dG9tYXRpY2FsbHkpZihiKW4oeSloKHJlYWQvd3JpdGUuKTAgNDE5NgoreSBGbShzZXRibG9ja2luZ1woKXAgRmQoXDAzNWFnKTcgYiBGbShcKSkyMDggNDI5NSB5IEZyKENhbGwpMjcKIGIodGhlKWggRm0oc2V0YmxvY2tpbmcpMjMgYiBGcihtZXRobylyKGQpMjggYihvZilmKHRoZSloKHVuZGVybHlpbmcpZgotKHNvKXIoYyluKGspbihldC4pMCA0Mjk1IHkgRm0oc2V0c29ja29wdFwoKXAgRmQobGV2ZWwsKWYob3B0bmFtZSwpMzEKLWIodmFsdWUpNiBiIEZtKFwpKTIwOCA0Mzk1IHkgRnIoQ2FsbCkyNyBiKHRoZSloIEZtKHNldHNvY2tvcHQpMjMKKyhzbylyKGMpbihrKW4oZXQuKTAgNDQ0MiB5IEZtKHNldHNvY2tvcHRcKClwIEZkKGxldmVsLClmKG9wdG5hbWUsKTMxCitiKHZhbHVlKTYgYiBGbShcKSkyMDggNDU0MiB5IEZyKENhbGwpMjcgYih0aGUpaCBGbShzZXRzb2Nrb3B0KTIzCiBiIEZyKG1ldGhvKXIoZCkyOCBiKG9mKWcodGhlKWcodW5kZXJseWluZylmKHNvKXIoYyluKGspbihldC4pMAotNDU0MiB5IEZtKHNodXRkb3duXChcKSkyMDggNDY0MSB5IEZyKFNlbmQpMzUgYih0aGUpaChzaCluKHV0ZG8pbih3bilmCis0Njg5IHkgRm0oc2h1dGRvd25cKFwpKTIwOCA0Nzg4IHkgRnIoU2VuZCkzNSBiKHRoZSloKHNoKW4odXRkbyluKHduKWYKIChtZXNzYWdlKWYodG8paCh0aGUpaChDb25uZWN0aW9uLik2MCBiKFJldHVybnMpMzUgYih0cnVlKWcoaWYpaCh0aGUpZwotKHNoKW4odXRkbyluKHduKWUobWVzc2FnZSlnKGV4YyluKGhhbmdlKWcoaXMpMjA4IDQ3NDEKKyhzaCluKHV0ZG8pbih3billKG1lc3NhZ2UpZyhleGMpbihoYW5nZSlnKGlzKTIwOCA0ODg4CiB5KGNvbXBsZXRlZCkyNSBiKGFuZClnKGZhbHNlKWgob3RoZXJ3aXNlKWUoXChpbilpKHdoaWMpbihoKWcoY2FzZSllKHkpbgogKG91KWgoY2FsbClnIEZtKHJlY3ZcKFwpKWUgRnIob3IpaSBGbShzZW5kXChcKSllIEZyKHdoZW4paih0aGUpZwotKGNvbm5lY3Rpb24pZihiKXIoZWNvbWVzKTIwOCA0ODQxIHkocmVhZGFibGUvd3JpdGVhYmxlLikwCi00OTg4IHkgRm0oZ2V0X3NodXRkb3duXChcKSkyMDggNTA4NyB5IEZyKEdldCk3MCBiKHRoZSlnKHNoKW4odXRkbyluKHduKQorKGNvbm5lY3Rpb24pZihiKXIoZWNvbWVzKTIwOCA0OTg4IHkocmVhZGFibGUvd3JpdGVhYmxlLikwCis1MTM0IHkgRm0oZ2V0X3NodXRkb3duXChcKSkyMDggNTIzNCB5IEZyKEdldCk3MCBiKHRoZSlnKHNoKW4odXRkbyluKHduKQogZihzdGF0ZSlnKG9mKWgodGhlKWcoQ29ubmVjdGlvbi4pMTYyIGIoUmV0dXJucyk2OSBiKGEpaChiaXR2KW4oZWN0b3IpZQotKG9mKWkoZWl0aGVyKWYob3IpZyhiKXIob3RoKWgob2YpMjA4IDUxODcgeSBGZChTRU5UX1NIVVRETyluKFdOKTM5Ci1iIEZyKGFuZCkyNyBiIEZkKFJFQ0VJVkVEX1NIVVRETyluKFdOKTE0IGIgRnIoLikwIDUzMzQKLXkgRm0oc2V0X3NodXRkb3duXCgpcCBGZChzdGF0ZSk2IGIgRm0oXCkpcCAwIDU1NDkgMzkwMQotNCB2IDAgNTY0OSBhIEZnKDMuMyk4MiBiIEZtKFNTTCkyNiBiIEZnKFwwMjYpaShBbilnKGludGVyZmFjZSlnKHRvKWYKLSh0aGUpZyhTU0wtc3ApcihlY2lcMDM0YyloKHBhKW4ocnRzKWYob2YpaChPcClyKGVuU1NMKTE2MTEKKyhvZilpKGVpdGhlcilmKG9yKWcoYilyKG90aCloKG9mKTIwOCA1MzM0IHkgRmQoU0VOVF9TSFVURE8pbihXTikzOQorYiBGcihhbmQpMjcgYiBGZChSRUNFSVZFRF9TSFVURE8pbihXTikxNCBiIEZyKC4pcCAwIDU1NDkKKzM5MDEgNCB2IDAgNTY0OSBhIEZnKDMuMyk4MiBiIEZtKFNTTCkyNiBiIEZnKFwwMjYpaShBbilnKGludGVyZmFjZSlnCisodG8pZih0aGUpZyhTU0wtc3ApcihlY2lcMDM0YyloKHBhKW4ocnRzKWYob2YpaChPcClyKGVuU1NMKTE2MTEKIGIoMTMpcCBlb3AgZW5kCiAlJVBhZ2U6IDE0IDE0Ci1UZVhEaWN0IGJlZ2luIDE0IDEzIGJvcCAyMDggODMgYSBGcihTZXQpMjEgYih0aGUpZyhzaCluKHV0ZG8pbih3bilnCi0oc3RhdGUpZyhvZilnKHRoZSlnKENvbm5lY3Rpb24uKTM0IGIgRmQoc3RhdGUpMjcgYiBGcihpcykyMQotYihhKWcoYml0diluKGVjdG9yKWYob2YpaChlaXRoZXIpZyhvcilmKGIpcihvdGgpaShvZikyNwotYiBGZChTRU5UX1NIVVRETyluKFdOKTIwOCAxODMgeSBGcihhbmQpZyBGZChSRUNFSVZFRF9TSFVURE8pbihXTikxNAotYiBGciguKTAgMzMwIHkgRm0oc29ja19zaHV0ZG93blwoKXAgRmQoaG93KTkgYiBGbShcKSkyMDgKLTQyOSB5IEZyKENhbGwpMjcgYih0aGUpaCBGbShzaHV0ZG93biljIEZyKG1ldGhvKXIoZClrKG9mKWcodGhlKWcKLSh1bmRlcmx5aW5nKWUoc28pcihjKW4oayluKGV0LikwIDU3NiB5IEZtKHN0YXRlX3N0cmluZ1woXCkpMjA4Ci02NzYgeSBGcihSZXRyaWV2KW4oZSlnKGEpaSh2KW4oZXJiKXIob3NlKWUoc3RyaW5nKWcoZGV0YWlsaW5nKWkodGhlKWcKLShzdGF0ZSlmKG9mKWgodGhlKWYoQ29ubmVjdGlvbi4pMCA4MjMgeSBGbSh3YW50X3JlYWRcKFwpKTIwOAotOTIyIHkgRnIoQ2hlYyluKGtzKWYoaWYpaShtb3JlKWYoZGF0YSlnKGhhcylnKHRvKWgoYilyKGUpZyhyZWFkKWUoZnJvbSkKLWkodGhlKWYodHJhbnNwKXIob3J0KWcobGEpbih5KW4oZXIpZih0byloKGNvbXBsZXRlKWgoYW4pZihvcClyCi0oZXJhdGlvbi4pMCAxMDY5IHkgRm0od2FudF93cml0ZVwoXCkpMjA4IDExNjkgeSBGcihDaGVjKW4oa3MpZihpZilpCi0odGhlcmUpZyhpcylmKGRhdGEpZyh0byloKHdyaXRlKWYodG8pZyh0aGUpaCh0cmFuc3ApcihvcnQpZihsYSluKHkpbgotKGVyKWYodG8paChjb21wbGV0ZSloKGFuKWYob3ApcihlcmF0aW9uLikwIDE0OTAgeSBGcyg0KTExNAotYihJbnRlcm5hbHMpMCAxNzE5IHkgRnIoVyktNyBiKGUpMjUgYihyYW4pZyhpbiluKHRvKWYodGhyZWUpaChtYWluKWcKLShwcm9ibGVtcylmKGRldiluKGVsb3BpbmcpZyh0aGlzOikzNiBiKEV4Y2VwdGlvbnMsKTI1CitUZVhEaWN0IGJlZ2luIDE0IDEzIGJvcCAwIDgzIGEgRm0oc2V0X3NodXRkb3duXCgpcCBGZChzdGF0ZSk2CitiIEZtKFwpKTIwOCAxODMgeSBGcihTZXQpMjEgYih0aGUpZyhzaCluKHV0ZG8pbih3bilnKHN0YXRlKWcob2YpZyh0aGUpZworKENvbm5lY3Rpb24uKTM0IGIgRmQoc3RhdGUpMjcgYiBGcihpcykyMSBiKGEpZyhiaXR2KW4oZWN0b3IpZihvZiloCisoZWl0aGVyKWcob3IpZihiKXIob3RoKWkob2YpMjcgYiBGZChTRU5UX1NIVVRETyluKFdOKTIwOAorMjgyIHkgRnIoYW5kKWcgRmQoUkVDRUlWRURfU0hVVERPKW4oV04pMTQgYiBGciguKTAgNDI5Cit5IEZtKHNvY2tfc2h1dGRvd25cKClwIEZkKGhvdyk5IGIgRm0oXCkpMjA4IDUyOSB5IEZyKENhbGwpMjcKK2IodGhlKWggRm0oc2h1dGRvd24pYyBGcihtZXRobylyKGQpayhvZilnKHRoZSlnKHVuZGVybHlpbmcpZShzbylyKGMpbgorKGspbihldC4pMCA2NzYgeSBGbShzdGF0ZV9zdHJpbmdcKFwpKTIwOCA3NzUgeSBGcihSZXRyaWV2KW4oZSlnKGEpaSh2KW4KKyhlcmIpcihvc2UpZShzdHJpbmcpZyhkZXRhaWxpbmcpaSh0aGUpZyhzdGF0ZSlmKG9mKWgodGhlKWYoQ29ubmVjdGlvbi4pCiswIDkyMiB5IEZtKHdhbnRfcmVhZFwoXCkpMjA4IDEwMjIgeSBGcihDaGVjKW4oa3MpZihpZilpKG1vcmUpZihkYXRhKWcKKyhoYXMpZyh0byloKGIpcihlKWcocmVhZCllKGZyb20paSh0aGUpZih0cmFuc3ApcihvcnQpZyhsYSluKHkpbihlcilmCisodG8paChjb21wbGV0ZSloKGFuKWYob3ApcihlcmF0aW9uLikwIDExNjkgeSBGbSh3YW50X3dyaXRlXChcKSkyMDgKKzEyNjggeSBGcihDaGVjKW4oa3MpZihpZilpKHRoZXJlKWcoaXMpZihkYXRhKWcodG8paCh3cml0ZSlmKHRvKWcodGhlKWgKKyh0cmFuc3ApcihvcnQpZihsYSluKHkpbihlcilmKHRvKWgoY29tcGxldGUpaChhbilmKG9wKXIoZXJhdGlvbi4pMAorMTU5MCB5IEZzKDQpMTE0IGIoSW50ZXJuYWxzKTAgMTgxOSB5IEZyKFcpLTcgYihlKTI1IGIocmFuKWcoaW4pbih0bylmCisodGhyZWUpaChtYWluKWcocHJvYmxlbXMpZihkZXYpbihlbG9waW5nKWcodGhpczopMzYgYihFeGNlcHRpb25zLCkyNQogYihjYWxsYmFjKW4oa3MpZihhbmQpaChhY2Nlc3NpbmcpZShzbylyKGMpbihrKW4oZXQpaChtZXRobylyKGRzLikzNgotYihUaGlzKTAgMTgxOSB5KGlzKTI3IGIod2hhdCloKHRoaXMpZyhjKW4oaGFwdGVyKWUoaXMpaShhYilyKG91dC4pMAotMjA5OSB5IEZrKDQuMSk5NyBiKEV4Y2VwdGlvbnMpMCAyMjk5IHkgRnIoVyktNyBiKGUpNTIKK2IoVGhpcykwIDE5MTkgeShpcykyNyBiKHdoYXQpaCh0aGlzKWcoYyluKGhhcHRlcillKGlzKWkoYWIpcihvdXQuKTAKKzIxOTggeSBGayg0LjEpOTcgYihFeGNlcHRpb25zKTAgMjM5OSB5IEZyKFcpLTcgYihlKTUyCiBiKHJlYWxpemVkKWYoZWFybHkpZyh0aGF0KWgobW9zdClnKG9mKWcodGhlKWcoZXhjZXB0aW9ucylmKHcpbihvdWxkKWgKIChiKXIoZSlnKHJhaXNlZClmKGIpbih5KWgodGhlKWcoSS9PKWYoZnVuY3Rpb25zKWgob2YpZyhPcClyKGVuU1NMLCkwCi0yMzk5IHkoc28pZChpdClpKGZlbHQpZihuYXR1cmFsKWYodG8paChtaW1pYylnKE9wKXIoZW5TU0wncylnKGVycm9yKWUKKzI0OTggeShzbylkKGl0KWkoZmVsdClmKG5hdHVyYWwpZih0byloKG1pbWljKWcoT3ApcihlblNTTCdzKWcoZXJyb3IpZQogKGNvKXIoZGUpaShzeXN0ZW0sKTU1IGIodHJhbnNsYXRpbmcpNDggYih0aGVtKWooaW4pbih0byllKFB5dGhvbilpCi0oZXhjZXB0aW9ucy4pMCAyNDk4IHkoVGhpcykzMCBiKG5hdHVyYWxseSllKGdpdiluKGVzKWgodXMpaCh0aGUpZworKGV4Y2VwdGlvbnMuKTAgMjU5OCB5KFRoaXMpMzAgYihuYXR1cmFsbHkpZShnaXYpbihlcyloKHVzKWgodGhlKWcKIChleGNlcHRpb25zKWYgRm0oU1NMLlplcm9SZXR1cm5FcilvKHJvKW8ocilwIEZyKCwpMjQKIGIgRm0oU1NMLldhbnRSZWFkRXJyb3IpbyBGcigsKWggRm0oU1NMLldhbnRXcml0ZUVyKW8ocm8pbyhyKXAKLUZyKCwpMCAyNTk4IHkgRm0oU1NMLldhbnRYNTA5TG9vaylvKHVwKW8oRXJyKW8ob3IpYyBGcihhbmQpMjcKLWIgRm0oU1NMLlN5c0NhbGxFcnJvcilwIEZyKC4pMCAyNzQ1IHkoRiktNyBiKG9yKTI3IGIobW9yZSlnCitGcigsKTAgMjY5OCB5IEZtKFNTTC5XYW50WDUwOUxvb2spbyh1cClvKEVycilvKG9yKWMgRnIoYW5kKTI3CitiIEZtKFNTTC5TeXNDYWxsRXJyb3IpcCBGciguKTAgMjg0NSB5KEYpLTcgYihvcikyNyBiKG1vcmUpZwogKGluZm9ybWF0aW9uKWcoYWIpcihvdXQpZyh0aGlzLCloKHNlZSlmKHNlY3Rpb24pZygzLjMuKTAKLTMwMjUgeSBGayg0LjIpOTcgYihDYWxsYmFja3MpMCAzMjI1IHkgRnIoVGhlcmUpMzQgYihhcmUpZihhKWgobiluKHVtKW4KKzMxMjQgeSBGayg0LjIpOTcgYihDYWxsYmFja3MpMCAzMzI1IHkgRnIoVGhlcmUpMzQgYihhcmUpZihhKWgobiluKHVtKW4KIChiKXIoZXIpZyhvZiloKHByb2JsZW1zKWUod2l0aClpKGNhbGxiYWMpbihrcy4pNTYgYihGaXJzdCkzNAogYihvZilnKGFsbCwpaShPcClyKGVuU1NMKWYoaXMpZih3cml0dGVuKWgoYXMpZShhKWgoQyloKGxpYnJhcnkpLTcKLWIoLCkzNCBiKGl0J3MpaChub3QpMCAzMzI1IHkobWVhbiluKHQpMjYgYih0bylnKGhhKW4odiluKGUpZShQeXRob24pagorYigsKTM0IGIoaXQncyloKG5vdCkwIDM0MjQgeShtZWFuKW4odCkyNiBiKHRvKWcoaGEpbih2KW4oZSllKFB5dGhvbilqCiAoY2FsbGJhYyluKGtzLClkKHNvKWkoYSlmKHcpbihhKW4oeSlnKGFyb3VuZClnKHRoYXQpaChpcylnKG5lZWRlZC4pMzYKIGIoQW5vdGhlcikyNiBiKHByb2JsZW0pZihpcyloKHRocmVhZClnKHN1cHApcihvcnQuKTM2Ci1iKEEpMjYgYihsb3QpMCAzNDI0IHkob2YpaCh0aGUpZyhPcClyKGVuU1NMKWcoSS9PKWUoZnVuY3Rpb25zKWkoY2FuKWcKK2IoQSkyNiBiKGxvdCkwIDM1MjQgeShvZiloKHRoZSlnKE9wKXIoZW5TU0wpZyhJL08pZShmdW5jdGlvbnMpaShjYW4pZwogKGJsbylyKGMpbihrKWYoaWYpaCh0aGUpZyhzbylyKGMpbihrKW4oZXQpZihpcylnKGluKWgoYmxvKXIoYyluKGtpbmcpZgogKG1vKXIoZGUsKWgoYW5kKWcodGhlbilnKHkpbihvdSlmKHcpbihhbiluKHQpZyhvdGhlcilnKFB5dGhvbikwCi0zNTI0IHkodGhyZWFkcyljKHRvKWcoYilyKGUpaChhYmxlKWYodG8pZyhkbylnKG90aGVyKWcodGhpbmdzLikzNQorMzYyNCB5KHRocmVhZHMpYyh0bylnKGIpcihlKWgoYWJsZSlmKHRvKWcoZG8pZyhvdGhlcilnKHRoaW5ncy4pMzUKIGIoVGhlKTIyIGIocmVhbClnKHRyb3VibGUpZyhpcylnKGlmKWgoeSluKG91J3YpbihlKWUocmVsZWFzZWQpZyh0aGUpaAogKHRocmVhZClnKGxvKXIoYyluKGspZyh0bylnKGRvKWcoYSlnKHApcihvdGVuKW4odGlhbGx5KTAKLTM2MjQgeShibG8pcihjKW4oa2luZykyNyBiKG9wKXIoZXJhdGlvbiwpZihhbmQpaSh0aGUpZyhvcClyKGVyYXRpb24pZQorMzcyMyB5KGJsbylyKGMpbihraW5nKTI3IGIob3ApcihlcmF0aW9uLClmKGFuZClpKHRoZSlnKG9wKXIoZXJhdGlvbillCiAoY2FsbHMpaChhKWcoY2FsbGJhYyluKGsuKTM1IGIoVGhlbikyOCBiKHcpbihlKWYobSluKHVzdCloKHRhayluKGUpZgotKHRoZSloKHRocmVhZClmKGxvKXIoYyluKGspZyhiYWMpbihrKTM0NzUgMzU5MyB5IEZsKDUpMzUxMQotMzYyNCB5IEZyKC4pMCAzNzcwIHkoVGhlcmUpZChhcmUpZih0KW4odyluKG8pZyhzb2x1dGlvbnMpaCh0bylnKHRoZSloCisodGhlKWgodGhyZWFkKWYobG8pcihjKW4oaylnKGJhYyluKGspMzQ3NSAzNjkzIHkgRmwoNSkzNTExCiszNzIzIHkgRnIoLikwIDM4NzAgeShUaGVyZSlkKGFyZSlmKHQpbih3KW4obylnKHNvbHV0aW9ucyloKHRvKWcodGhlKWgKIChcMDM0cnN0KWYocHJvYmxlbSwpZyhiKXIob3RoKWgob2YpZih3aGljKW4oaClnKGFyZSlmKG5lY2Vzc2FyeSktNwogYiguKTM0IGIoVGhlKTI1IGIoXDAzNHJzdClmKHNvbHV0aW9uKWYodG8paCh1c2UpaChpcylmKGlmKWcodGhlKWgoQykwCi0zODcwIHkoY2FsbGJhYyluKGspaShhbGxvKW4od3MpZihcMDIxdXNlcmRhdGFcMDIxKTMzCiszOTcwIHkoY2FsbGJhYyluKGspaShhbGxvKW4od3MpZihcMDIxdXNlcmRhdGFcMDIxKTMzCiBiKHRvKTI4IGIoYilyKGUpaChwYXNzZWQpZSh0byloKGl0KWcoXChhbilnKGFyYml0cmFyeSllKHApcihvaW4pbih0ZXIpaQogKG5vcm1hbGx5XCkuKTM3IGIoVGhpcykyOCBiKGlzKWcoZ3JlYXQhKTM3IGIoVyktNyBiKGUpMjgKLWIoY2FuKWcoc2V0KWcob3VyKTAgMzk3MCB5KFB5dGhvbilpKGZ1bmN0aW9uKWcob2IpNSBiKGplY3QpMjkKK2IoY2FuKWcoc2V0KWcob3VyKTAgNDA2OSB5KFB5dGhvbilpKGZ1bmN0aW9uKWcob2IpNSBiKGplY3QpMjkKIGIoYXMpZih0aGUpaShyZWFsKWYodXNlcmRhdGEpZihhbmQpaChlbSluKHVsYXRlKWcodXNlcmRhdGEpZihmb3IpaCh0aGUpCiBoKFB5dGhvbilmKGZ1bmN0aW9uKWgoaW4pZyhhbm90aGVyKWUodyluKGEpbih5KS03IGIoLikwCi00MDY5IHkoVGhlKTI0IGIob3RoZXIpZyhzb2x1dGlvbilnKGNhbilnKGIpcihlKWgodXNlZClnKGlmKWcoYW4pZihvYik1Cis0MTY5IHkoVGhlKTI0IGIob3RoZXIpZyhzb2x1dGlvbilnKGNhbilnKGIpcihlKWgodXNlZClnKGlmKWcoYW4pZihvYik1CiBiKGplY3QpMjQgYih3aXRoKWgoYW4pZihcMDIxYXBwX2RhdGFcMDIxKTI5IGIoc3lzdGVtKWMoYWx3KW4oYSluKHlzKWQKIChpcylqKHBhc3NlZCllKHRvKWgodGhlKWgoY2FsbGJhYyluKGsuKTM1IGIoRiktNyBiKG9yKTAKLTQxNjkgeShleGFtcGxlLCkyNiBiKHRoZSloKFNTTClmKG9iKTUgYihqZWN0KTI2IGIoaW4paChPcClyKGVuU1NMKWYKKzQyNjkgeShleGFtcGxlLCkyNiBiKHRoZSloKFNTTClmKG9iKTUgYihqZWN0KTI2IGIoaW4paChPcClyKGVuU1NMKWYKIChoYXMpZyhhcHBfZGF0YSlmKGZ1bmN0aW9ucylpKGFuZClmKGluKWgoZS5nLikzNiBiKHRoZSkyNgogYih2KW4oZXJpXDAzNGNhdGlvbilmKGNhbGxiYWMpbihrcywpZyh5KW4ob3UpZyhjYW4pMAotNDI2OSB5KHJldHJpZXYpbihlKWkodGhlKWkocmVsYXRlZClmKFNTTCloKG9iKTUgYihqZWN0LikzOQorNDM2OCB5KHJldHJpZXYpbihlKWkodGhlKWkocmVsYXRlZClmKFNTTCloKG9iKTUgYihqZWN0LikzOQogYihXaGF0KTI5IGIodyluKGUpZyhkbylmKGlzKWcodG8paChzZXQpZihvdXIpZyh3cmFwcClyKGVyKWcKIEZtKENvbm5lY3Rpb24pYyBGcihvYik1IGIoamVjdCkyOCBiKGFzKWcoYXBwX2RhdGEpZyhmb3IpZyh0aGUpMAotNDM2OCB5KFNTTClnKG9iKTUgYihqZWN0LCkyNyBiKGFuZCloKHcpbihlKWYoY2FuKWcoZWFzaWx5KWcoXDAzNG5kKWgKLSh0aGUpZyhQeXRob24pZyhjYWxsYmFjKW4oay4pMCA0NTE1IHkoVGhlKTQyIGIob3RoZXIpZyhwcm9ibGVtKWcoaXMpZworNDQ2OCB5KFNTTClnKG9iKTUgYihqZWN0LCkyNyBiKGFuZCloKHcpbihlKWYoY2FuKWcoZWFzaWx5KWcoXDAzNG5kKWgKKyh0aGUpZyhQeXRob24pZyhjYWxsYmFjKW4oay4pMCA0NjE1IHkoVGhlKTQyIGIob3RoZXIpZyhwcm9ibGVtKWcoaXMpZwogKGFsc28pZihwYXJ0aWFsbHkpaChzb2x2KW4oZWQpZihiKW4oeSloKGFwcF9kYXRhLik4MAogYihTaW5jZSk0MyBiKHcpbihlJ3JlKWUoYXNzbylyKGNpYXRpbmcpZyhvdXIpZyh3cmFwcClyKGVyKWgob2IpNQotYihqZWN0cykwIDQ2MTUgeSh3aXRoKTQ0IGIodGhlKWYoXDAyMXJlYWxcMDIxKTQ5IGIob2IpNQorYihqZWN0cykwIDQ3MTQgeSh3aXRoKTQ0IGIodGhlKWYoXDAyMXJlYWxcMDIxKTQ5IGIob2IpNQogYihqZWN0cywpNDYgYih3KW4oZSlkKGNhbilnKGVhc2lseSlmKGFjY2VzcylnKGRhdGEpZyhmcm9tKWgodGhlKWgKIEZtKENvbm5lY3Rpb24pMzkgYiBGcihvYik1IGIoamVjdC4pODMgYihUaGUpNDMgYihzb2x1dGlvbilnKHRoZW4pZyhpcykwCi00NzE0IHkodG8pMzUgYihzaW1wbHkpaChpbmNsdWRlKWcoYSlmIEZtKFB5VGhyZWFkU3RhdGUpYworNDgxNCB5KHRvKTM1IGIoc2ltcGx5KWgoaW5jbHVkZSlnKGEpZiBGbShQeVRocmVhZFN0YXRlKWMKIEZyKHYpLTUgYihhcmlhYmxlKTM0IGIoaW4paSh0aGUpZyBGbShDb25uZWN0aW9uKTMxIGIKIEZyKGRlY2xhcmF0aW9uLCkzNyBiKGFuZCllKHdyaXRlKWcobWFjcm9zKWYoc2ltaWxhciloKHRvKTAKLTQ4MTQgeSBGbShQeV9CRUdJTl9BTExPV19UKW8oSFIpbyhFQUQpbyhTKTI2IGIgRnIoYW5kKTMzCis0OTE0IHkgRm0oUHlfQkVHSU5fQUxMT1dfVClvKEhSKW8oRUFEKW8oUykyNiBiIEZyKGFuZCkzMwogYiBGbShQeV9FTkRfQUxMT1dfVEgpbyhSRUEpbyhEUykyNiBiIEZyKHRoYXQpMzMgYihhbGxvKW4od3MpZShzcClyCiAoZWNpZnlpbmcpaChvZiloKHRoZSlnIEZtKFB5VGhyZWFkU3RhdGUpMjcgYiBGcih2KS01Ci1iKGFyaS0pMCA0OTE0IHkoYWJsZSkyMyBiKHRvKWcodXNlLikzNSBiKE5vKW4odykyMyBiKHcpbihlKWcoY2FuKWcKK2IoYXJpLSkwIDUwMTMgeShhYmxlKTIzIGIodG8pZyh1c2UuKTM1IGIoTm8pbih3KTIzIGIodyluKGUpZyhjYW4pZwogKHNpbXBseSlnKFwwMjFiKXIoZWdpbilnKGFsbG8pbih3KWYodGhyZWFkc1wwMjEpMjkgYihiKXIoZWZvcmUpMjMKIGIoYSlnKHApcihvdGVuKW4odGlhbGx5KWcoYmxvKXIoYyluKGtpbmcpZihvcClyKGVyYXRpb24sKWgoYW5kKWcKLShcMDIxZW5kKWcoYWxsbyluKHcpMCA1MDEzIHkodGhyZWFkc1wwMjEpMzMgYihiKXIoZWZvcmUpMjgKLWIoY2FsbGluZyllKGEpaShjYWxsYmFjKW4oay4pcCAwIDUwODIgMTU2MCA0IHYgOTIgNTEzNgotYSBGaSg1KTEyNyA1MTU5IHkgRmgoSSdtKTIyIGIobm90KWooc3VyZSlmKHdoKW4oeSlnKHRoaXMpZyhpcylmCisoXDAyMWVuZClnKGFsbG8pbih3KTAgNTExMyB5KHRocmVhZHNcMDIxKTMzIGIoYilyKGVmb3JlKTI4CitiKGNhbGxpbmcpZShhKWkoY2FsbGJhYyluKGsuKXAgMCA1MTgyIDE1NjAgNCB2IDkyIDUyMzYKK2EgRmkoNSkxMjcgNTI1OSB5IEZoKEknbSkyMiBiKG5vdClqKHN1cmUpZih3aCluKHkpZyh0aGlzKWcoaXMpZgogKG5lY2Vzc2FyeSktNiBiKCwpMjUgYihidXQpZihvdGhlcndpc2UpaChJKWYoZ2V0KWgoYSllKHNlZ21lbiluKHRhdGlvbikKIGkodmlvbGF0aW9uKWYob24pZyBGYShQeUV2YWxfQ2FsbE9iamVjdClwIDAgNTU0OSAzOTAxCiA0IHYgMCA1NjQ5IGEgRmcoMTQpMzM2OCBiKDQpODMgYihJbnRlcm5hbHMpcCBlb3AgZW5kCmRpZmYgLS1naXQgYS9kb2MvcHlPcGVuU1NMLnRleCBiL2RvYy9weU9wZW5TU0wudGV4CmluZGV4IDdlMmIxZjkuLjAzZWM3MjUgMTAwNjQ0Ci0tLSBhL2RvYy9weU9wZW5TU0wudGV4CisrKyBiL2RvYy9weU9wZW5TU0wudGV4CkBAIC0yNjQsNyArMjY0LDYgQEAKIGVuY3J5cHRlZCwgYSBcdmFye3Bhc3NwaHJhc2V9IG11c3QgYmUgaW5jbHVkZWQuCiBcZW5ke2Z1bmNkZXNjfQogCi0KIFxzdWJzdWJzZWN0aW9ue1g1MDkgb2JqZWN0cyBcbGFiZWx7b3BlbnNzbC14NTA5fX0KIAogWDUwOSBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgpAQCAtMzgzLDYgKzM4MiwxMyBAQAogCiBcc3Vic3Vic2VjdGlvbntYNTA5TmFtZSBvYmplY3RzIFxsYWJlbHtvcGVuc3NsLXg1MDluYW1lfX0KIAorWDUwOU5hbWUgb2JqZWN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKKworXGJlZ2lue21ldGhvZGRlc2N9W1g1MDlOYW1lXXtoYXNofXt9CitSZXR1cm4gYW4gaW50ZWdlciBnaXZpbmcgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgb2YgdGhlIE1ENSBkaWdlc3Qgb2YgdGhlIERFUgorcmVwcmVzZW50YXRpb24gb2YgdGhlIG5hbWUuCitcZW5ke21ldGhvZGRlc2N9CisKIFg1MDlOYW1lIG9iamVjdHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1lbWJlcnM6CiAKIFxiZWdpbnttZW1iZXJkZXNjfVtYNTA5TmFtZV17Y291bnRyeU5hbWV9CmRpZmYgLS1naXQgYS9kb2MvcHlPcGVuU1NMLnR4dCBiL2RvYy9weU9wZW5TU0wudHh0CmluZGV4IGZmMjM1YWQuLjNlNWM5YzIgMTAwNjQ0Ci0tLSBhL2RvYy9weU9wZW5TU0wudHh0CisrKyBiL2RvYy9weU9wZW5TU0wudHh0CkBAIC0zMzYsNiArMzM2LDEyIEBACiAKICAgMy4xLjIgWDUwOU5hbWUgb2JqZWN0cwogCisgICBYNTA5TmFtZSBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCisgICBoYXNoKCkKKyAgICAgICAgICBSZXR1cm4gYW4gaW50ZWdlciBnaXZpbmcgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgb2YgdGhlIE1ENSBkaWdlc3QKKyAgICAgICAgICBvZiB0aGUgREVSIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW1lLgorCiAgICBYNTA5TmFtZSBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZW1iZXJzOgogCiAgICBjb3VudHJ5TmFtZQo=