PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9mY2dpZCAtIEFwYWNoZSBIVFRQIFNlcnZlcjwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+CjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi4zPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuMzwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUgTW9kdWxlIG1vZF9mY2dpZDwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9mY2dpZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlByb3ZpZGVzIGZvciBleGVjdXRpb24gb2YgRmFzdENHSSBhcHBsaWNhdGlvbnM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+ZmNnaWRfbW9kdWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU291cmNlRmlsZSI+U291cmNloEZpbGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZC5jPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjQ29tcGF0aWJpbGl0eSI+Q29tcGF0aWJpbGl0eTo8L2E+PC90aD48dGQ+QXBhY2hlIDIuMCBhbmQgaGlnaGVyPC90ZD48L3RyPjwvdGFibGU+CjxoMz5TdW1tYXJ5PC9oMz4KCiAgICA8cD5BbnkgcHJvZ3JhbSBhc3NpZ25lZCB0byB0aGUgaGFuZGxlciA8Y29kZT5mY2dpZC1zY3JpcHQ8L2NvZGU+IGlzIHByb2Nlc3NlZAogICAgdXNpbmcgdGhlIEZhc3RDR0kgcHJvdG9jb2w7IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmNnaWQuaHRtbCI+bW9kX2ZjZ2lkPC9hPjwvY29kZT4gc3RhcnRzIGEgc3VmZmljaWVudAogICAgbnVtYmVyIGluc3RhbmNlcyBvZiB0aGUgcHJvZ3JhbSB0byBoYW5kbGUgY29uY3VycmVudCByZXF1ZXN0cywgYW5kIHRoZXNlCiAgICBwcm9ncmFtcyByZW1haW4gcnVubmluZyB0byBoYW5kbGUgZnVydGhlciBpbmNvbWluZyByZXF1ZXN0cy4gIFRoaXMgaXMKICAgIHNpZ25pZmljYW50bHkgZmFzdGVyIHRoYW4gdXNpbmcgdGhlIGRlZmF1bHQgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+IG9yCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPiBtb2R1bGVzIHRvIGxhdW5jaCB0aGUgcHJvZ3JhbSB1cG9uIGVhY2ggcmVxdWVzdC4KICAgIEhvd2V2ZXIsIHRoZSBwcm9ncmFtcyBpbnZva2VkIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmNnaWQuaHRtbCI+bW9kX2ZjZ2lkPC9hPjwvY29kZT4gY29udGludWUgdG8KICAgIGNvbnN1bWUgcmVzb3VyY2VzLCBzbyB0aGUgYWRtaW5pc3RyYXRvciBtdXN0IHdlaWdoIHRoZSBpbXBhY3Qgb2YgaW52b2tpbmcKICAgIGEgcGFydGljdWxhciBwcm9ncmFtIG9uY2UgcGVyIHJlcXVlc3QgYWdhaW5zdCB0aGUgcmVzb3VyY2VzIHJlcXVpcmVkIHRvCiAgICBsZWF2ZSBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGluc3RhbmNlcyBydW5uaW5nIGNvbnRpbnVvdXNseS48L3A+CgogICAgPHA+VGhlIHBvb2wgb2YgZmNnaWQtaW52b2tlZCBwcm9ncmFtcyBpcyBzaGFyZWQgYmV0d2VlbiBhbGwgaHR0cGQgd29ya2Vycy4KICAgIENvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBiZWxvdyBsZXQgdGhlIGFkbWluaXN0cmF0b3IgdHVuZSB0aGUgbnVtYmVyIG9mCiAgICBpbnN0YW5jZXMgb2YgdGhlIHByb2dyYW0gdGhhdCB3aWxsIHJ1biBjb25jdXJyZW50bHkuPC9wPgoKICAgIDxwPlNwZWNpZmljIGV4ZWN1dGFibGVzIGFyZSBhc3NpZ25lZCB0aGlzIGhhbmRsZXIgZWl0aGVyIGJ5IGhhdmluZyBhIG5hbWUgCiAgICBjb250YWluaW5nIGFuIGV4dGVuc2lvbiBkZWZpbmVkIGJ5IHRoZSAKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbWltZS5odG1sI2FkZGhhbmRsZXIiPkFkZEhhbmRsZXI8L2E+PC9jb2RlPiBkaXJlY3RpdmUsIG9yIHdpdGggYW4KICAgIG92ZXJyaWRlIHVzaW5nIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX21pbWUuaHRtbCNzZXRoYW5kbGVyIj5TZXRIYW5kbGVyPC9hPjwvY29kZT4gCiAgICBkaXJlY3RpdmUgKGUuZy4sIGZvciBhbGwgZmlsZXMgaW4gYSBzcGVjaWZpYyBkaXJlY3Rvcnkgc3VjaCBhcyBjZ2ktYmluKS48L3A+CgogICAgPHA+U29tZSBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBBU0YgcmVsZWFzZSBvZiBtb2RfZmNnaWQgd2hpY2gKICAgIGNhbiBhZmZlY3QgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuICBBbGwgZG9jdW1lbnRhdGlvbiByZWZlcnMgdG8gbmV3CiAgICBuYW1lcyBmb3IgdGhlIGRpcmVjdGl2ZXMuICAoVGhlIG9sZCBuYW1lcyBzdGlsbCB3b3JrIGJ1dCBhcmUgbm93IAogICAgZGVwcmVjYXRlZC4pICBQbGVhc2UgcmVhZCB0aGUgPGEgaHJlZj0iI3VwZ3JhZGUiPlVwZ3JhZGUgTm90ZXM8L2E+IGZvcgogICAgZGV0YWlscy48L3A+CgogICAgPHA+Rm9yIGFuIGludHJvZHVjdGlvbiB0byB1c2luZyBDR0kgc2NyaXB0cyB3aXRoIEFwYWNoZSwgc2VlCiAgICB0aGUgZ2VuZXJpYyB0dXRvcmlhbCBvbiA8YSBocmVmPSIuLi9ob3d0by9jZ2kuaHRtbCI+RHluYW1pYyBDb250ZW50CiAgICBXaXRoIENHSTwvYT4uPC9wPgoKICA8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDMgY2xhc3M9ImRpcmVjdGl2ZXMiPkRpcmVjdGl2ZXM8L2gzPgo8dWwgaWQ9InRvYyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYWNjZXNzY2hlY2tlciI+RmNnaWRBY2Nlc3NDaGVja2VyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYWNjZXNzY2hlY2tlcmF1dGhvcml0YXRpdmUiPkZjZ2lkQWNjZXNzQ2hlY2tlckF1dGhvcml0YXRpdmU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRhdXRoZW50aWNhdG9yIj5GY2dpZEF1dGhlbnRpY2F0b3I8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRhdXRoZW50aWNhdG9yYXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGF1dGhvcml6ZXIiPkZjZ2lkQXV0aG9yaXplcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGF1dGhvcml6ZXJhdXRob3JpdGF0aXZlIj5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYnVzeXNjYW5pbnRlcnZhbCI+RmNnaWRCdXN5U2NhbkludGVydmFsPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkYnVzeXRpbWVvdXQiPkZjZ2lkQnVzeVRpbWVvdXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRjbWRvcHRpb25zIj5GY2dpZENtZE9wdGlvbnM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRjb25uZWN0dGltZW91dCI+RmNnaWRDb25uZWN0VGltZW91dDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGVycm9yc2NhbmludGVydmFsIj5GY2dpZEVycm9yU2NhbkludGVydmFsPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkZml4cGF0aGluZm8iPkZjZ2lkRml4UGF0aGluZm88L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRpZGxlc2NhbmludGVydmFsIj5GY2dpZElkbGVTY2FuSW50ZXJ2YWw8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRpZGxldGltZW91dCI+RmNnaWRJZGxlVGltZW91dDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGluaXRpYWxlbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZGlvdGltZW91dCI+RmNnaWRJT1RpbWVvdXQ8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRpcGNkaXIiPkZjZ2lkSVBDRGlyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG1heHByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdGlubWVtIj5GY2dpZE1heFJlcXVlc3RJbk1lbTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RsZW4iPkZjZ2lkTWF4UmVxdWVzdExlbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRtaW5wcm9jZXNzZXNwZXJjbGFzcyI+RmNnaWRNaW5Qcm9jZXNzZXNQZXJDbGFzczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZG91dHB1dGJ1ZmZlcnNpemUiPkZjZ2lkT3V0cHV0QnVmZmVyU2l6ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZHBhc3NoZWFkZXIiPkZjZ2lkUGFzc0hlYWRlcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZHByb2Nlc3NsaWZldGltZSI+RmNnaWRQcm9jZXNzTGlmZVRpbWU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRwcm9jZXNzdGFibGVmaWxlIj5GY2dpZFByb2Nlc3NUYWJsZUZpbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JlIj5GY2dpZFNwYXduU2NvcmU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZHRlcm1pbmF0aW9uc2NvcmUiPkZjZ2lkVGVybWluYXRpb25TY29yZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmY2dpZHRpbWVzY29yZSI+RmNnaWRUaW1lU2NvcmU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWR3cmFwcGVyIj5GY2dpZFdyYXBwZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZmNnaWR6b21iaWVzY2FuaW50ZXJ2YWwiPkZjZ2lkWm9tYmllU2NhbkludGVydmFsPC9hPjwvbGk+CjwvdWw+CjxoMz5Ub3BpY3M8L2gzPgo8dWwgaWQ9InRvcGljcyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3VwZ3JhZGUiPlVwZ3JhZGUgTm90ZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3Byb2Nlc3MtbWdtdCI+UHJvY2VzcyBNYW5hZ2VtZW50PC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz4KPHVsIGNsYXNzPSJzZWVhbHNvIj4KPGxpPjxhIGhyZWY9Ii4uL2hvd3RvL2NnaS5odG1sIj5EeW5hbWljIENvbnRlbnQgV2l0aCBDR0k8L2E+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPjwvbGk+CjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVwZ3JhZGUiIGlkPSJ1cGdyYWRlIj5VcGdyYWRlIE5vdGVzPC9hPjwvaDI+CiAgICAKICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSBpbiB0aGUgQVNGIHJlbGVhc2Ugb2YgbW9kX2ZjZ2lkCiAgICBhbmQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgd2hlbiB1cGdyYWRpbmcgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbiBieQogICAgUnlhbiBQYW4gKFBhbiBRaW5nZmVuZykuCiAgICA8dWw+CiAgICAgIDxsaT5BbGwgZGlyZWN0aXZlcyBoYXZlIGJlZW4gcmVuYW1lZCBpbiBvcmRlciB0byB1c2UgYSBjb21tb24gcHJlZml4ICJGY2dpZCIuCiAgICAgIFVuZGVyc2NvcmVzIGluIGRpcmVjdGl2ZSBuYW1lcyBoYXZlIGJlZW4gZWxpbWluYXRlZCBpbiBmYXZvciBvZgogICAgICBDYW1lbENhc2UuIFRoZSBvbGQgZGlyZWN0aXZlIG5hbWVzIHdpbGwgc3RpbGwgd29yayBidXQgYXJlIGRlcHJlY2F0ZWQuCiAgICAgIFRvIGZpeCB5b3VyIGNvbmZpZ3VyYXRpb24geW91IGNhbiB1c2UgdGhlIHNlZCBzY3JpcHQgYnVpbGQvZml4Y29uZi5zZWQuCiAgICAgIFRoZSBmb2xsb3dpbmcgdGFibGUgY29udGFpbnMgb2xkIGFuZCBuZXcgZGlyZWN0aXZlIG5hbWVzOgogICAgICA8dGFibGUgY2xhc3M9ImJvcmRlcmVkIj48dHIgY2xhc3M9ImhlYWRlciI+PHRoPk9sZCBOYW1lPC90aD48dGg+TmV3IE5hbWU8L3RoPjwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5CdXN5U2NhbkludGVydmFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYnVzeXNjYW5pbnRlcnZhbCI+RmNnaWRCdXN5U2NhbkludGVydmFsPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5CdXN5VGltZW91dDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGJ1c3l0aW1lb3V0Ij5GY2dpZEJ1c3lUaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5EZWZhdWx0SW5pdEVudjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGluaXRpYWxlbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RGVmYXVsdE1heENsYXNzUHJvY2Vzc0NvdW50PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkRlZmF1bHRNaW5DbGFzc1Byb2Nlc3NDb3VudDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1pbnByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5FcnJvclNjYW5JbnRlcnZhbDwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGVycm9yc2NhbmludGVydmFsIj5GY2dpZEVycm9yU2NhbkludGVydmFsPC9hPjwvY29kZT48L3RkPiAKICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmFzdENnaUFjY2Vzc0NoZWNrZXI8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRhY2Nlc3NjaGVja2VyIj5GY2dpZEFjY2Vzc0NoZWNrZXI8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZhc3RDZ2lBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGFjY2Vzc2NoZWNrZXJhdXRob3JpdGF0aXZlIj5GY2dpZEFjY2Vzc0NoZWNrZXJBdXRob3JpdGF0aXZlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GYXN0Q2dpQXV0aGVudGljYXRvcjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGF1dGhlbnRpY2F0b3IiPkZjZ2lkQXV0aGVudGljYXRvcjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmFzdENnaUF1dGhlbnRpY2F0b3JBdXRob3JpdGF0aXZlPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYXV0aGVudGljYXRvcmF1dGhvcml0YXRpdmUiPkZjZ2lkQXV0aGVudGljYXRvckF1dGhvcml0YXRpdmU8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZhc3RDZ2lBdXRob3JpemVyPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkYXV0aG9yaXplciI+RmNnaWRBdXRob3JpemVyPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0ciBjbGFzcz0ib2RkIj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GYXN0Q2dpQXV0aG9yaXplckF1dGhvcml0YXRpdmU8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRhdXRob3JpemVyYXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RkNHSVdyYXBwZXI8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWR3cmFwcGVyIj5GY2dpZFdyYXBwZXI8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPklkbGVTY2FuSW50ZXJ2YWw8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxlc2NhbmludGVydmFsIj5GY2dpZElkbGVTY2FuSW50ZXJ2YWw8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPklkbGVUaW1lb3V0PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaWRsZXRpbWVvdXQiPkZjZ2lkSWRsZVRpbWVvdXQ8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPklQQ0NvbW1UaW1lb3V0PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW90aW1lb3V0Ij5GY2dpZElPVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+SVBDQ29ubmVjdFRpbWVvdXQ8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRjb25uZWN0dGltZW91dCI+RmNnaWRDb25uZWN0VGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+TWF4UHJvY2Vzc0NvdW50PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+TWF4UmVxdWVzdEluTWVtPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdGlubWVtIj5GY2dpZE1heFJlcXVlc3RJbk1lbTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+TWF4UmVxdWVzdExlbjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RsZW4iPkZjZ2lkTWF4UmVxdWVzdExlbjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+TWF4UmVxdWVzdHNQZXJQcm9jZXNzPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdHNwZXJwcm9jZXNzIj5GY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzczwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+T3V0cHV0QnVmZmVyU2l6ZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG91dHB1dGJ1ZmZlcnNpemUiPkZjZ2lkT3V0cHV0QnVmZmVyU2l6ZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+UGFzc0hlYWRlcjwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHBhc3NoZWFkZXIiPkZjZ2lkUGFzc0hlYWRlcjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+UEhQX0ZpeF9QYXRoaW5mb19FbmFibGU8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRmaXhwYXRoaW5mbyI+RmNnaWRGaXhQYXRoaW5mbzwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+UHJvY2Vzc0xpZmVUaW1lPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2hhcmVtZW1QYXRoPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc3RhYmxlZmlsZSI+RmNnaWRQcm9jZXNzVGFibGVGaWxlPC9hPjwvY29kZT48L3RkPgogICAgICAgIDwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Tb2NrZXRQYXRoPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaXBjZGlyIj5GY2dpZElQQ0RpcjwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U3Bhd25TY29yZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmUiPkZjZ2lkU3Bhd25TY29yZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U3Bhd25TY29yZVVwTGltaXQ8L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+VGVybWluYXRpb25TY29yZTwvY29kZT48L3RkPgogICAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHRlcm1pbmF0aW9uc2NvcmUiPkZjZ2lkVGVybWluYXRpb25TY29yZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+VGltZVNjb3JlPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkdGltZXNjb3JlIj5GY2dpZFRpbWVTY29yZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+Wm9tYmllU2NhbkludGVydmFsPC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkem9tYmllc2NhbmludGVydmFsIj5GY2dpZFpvbWJpZVNjYW5JbnRlcnZhbDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8L3RhYmxlPgogICAgICA8L2xpPgogICAgPC91bD4KICAgIDwvcD4KCiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXhhbXBsZXMiIGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9oMj4KICAgIAoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgIDxwPlRoZSBleGFtcGxlcyBhc3N1bWUgdGhhdCBtb2RfZmNnaWQgYW5kIG90aGVyIG5lY2Vzc2FyeQogICAgbW9kdWxlcyBhcmUgbG9hZGVkIGludG8gdGhlIHNlcnZlciBhbHJlYWR5LCBlaXRoZXIgYnVpbHQtaW4gb3IgCiAgICB2aWEgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT4KICAgIGRpcmVjdGl2ZS48L3A+CgogICAgPHA+QWRkaXRpb25hbGx5LCB0aGUgZXhhbXBsZSBjb25maWd1cmF0aW9ucyBwcm92aWRlIGZ1bGwgYWNjZXNzCiAgICB0byB0aGUgYXBwbGljYXRpb25zIHVzaW5nIGFjY2VzcyBjb250cm9sIGRpcmVjdGl2ZXMgd2hpY2ggd29yayAKICAgIHdpdGggQXBhY2hlIDIuMCBhbmQgMi4yLiAgVGhlc2UgZGlyZWN0aXZlcyBhcmUgbm90IGFwcHJvcHJpYXRlCiAgICBmb3IgYWxsIGVudmlyb25tZW50cywgYW5kIHRoZXkgZG8gbm90IHdvcmsgZm9yIGRldmVsb3BtZW50CiAgICBsZXZlbHMgb2YgQXBhY2hlIEhUVFAgU2VydmVyIChTdWJ2ZXJzaW9uIHRydW5rKS48L3A+CiAgICA8L2Rpdj4KCiAgICA8cD5UaGUgZmlyc3QgZXhhbXBsZSBpcyBhIHZlcnkgc2ltcGxlIFBlcmwgRmFzdENHSSBhcHBsaWNhdGlvbiwKICAgIGFuZCBpdHMgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzLiAgVGhpcyBpcyB0eXBpY2FsIGZvciBGYXN0Q0dJCiAgICBhcHBsaWNhdGlvbnMgd2hpY2ggcmVxdWlyZSBubyBzcGVjaWFsIGNvbmZpZ3VyYXRpb24uPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5QZXJsIEZhc3RDR0kgYXBwbGljYXRpb24gLSAvdXNyL2xvY2FsL2FwYWNoZS9mY2dpLWJpbi9mb28ucGw8L2gzPjxwPjxjb2RlPgogICAgIyEvdXNyL2Jpbi9wZXJsPGJyIC8+CiAgICB1c2UgQ0dJOjpGYXN0OzxiciAvPgogICAgPGJyIC8+CiAgICB3aGlsZSAobXkgJHEgPSBDR0k6OkZhc3QtJmd0O25ldykgezxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgcHJpbnQoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxuXG4iKTs8YnIgLz4KICAgICAgICBmb3JlYWNoICR2YXIgKHNvcnQoa2V5cyglRU5WKSkpIHs8YnIgLz4KICAgICAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICAgICAgJHZhbCA9ICRFTlZ7JHZhcn07PGJyIC8+CiAgICAgICAgICAgICR2YWwgPX4gc3xcbnxcXG58Zzs8YnIgLz4KICAgICAgICAgICAgJHZhbCA9fiBzfCJ8XFwifGc7PGJyIC8+CiAgICAgICAgICAgIHByaW50ICIke3Zhcn09XCIke3ZhbH1cIlxuIjs8YnIgLz4KICAgICAgICA8L3NwYW4+CiAgICAgICAgfTxiciAvPgogICAgPC9zcGFuPgogICAgfTxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+Q29uZmlndXJhdGlvbiBkaXJlY3RpdmVzPC9oMz48cD48Y29kZT4KICAgICZsdDtEaXJlY3RvcnkgL3Vzci9sb2NhbC9hcGFjaGUvZmNnaS1iaW4vJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgIFNldEhhbmRsZXIgZmNnaWQtc2NyaXB0PGJyIC8+CiAgICAgIE9wdGlvbnMgK0V4ZWNDR0k8YnIgLz4KICAgICAgPGJyIC8+CiAgICAgICMgQ3VzdG9taXplIHRoZSBuZXh0IHR3byBkaXJlY3RpdmVzIGZvciB5b3VyIHJlcXVpcmVtZW50cy48YnIgLz4KICAgICAgT3JkZXIgYWxsb3csZGVueTxiciAvPgogICAgICBBbGxvdyBmcm9tIGFsbDxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9EaXJlY3RvcnkmZ3Q7PGJyIC8+CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPlBIUCBhcHBsaWNhdGlvbnMgYXJlIHVzdWFsbHkgY29uZmlndXJlZCB1c2luZyB0aGUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHdyYXBwZXIiPkZjZ2lkV3JhcHBlcjwvYT48L2NvZGU+IGRpcmVjdGl2ZQogICAgYW5kIGEgY29ycmVzcG9uZGluZyB3cmFwcGVyIHNjcmlwdC4gIFRoZSB3cmFwcGVyIHNjcmlwdCBjYW4gYmUgCiAgICBhbiBhcHByb3ByaWF0ZSBwbGFjZSB0byBkZWZpbmUgYW55IGVudmlyb25tZW50IHZhcmlhYmxlcyByZXF1aXJlZAogICAgYnkgdGhlIGFwcGxpY2F0aW9uLCBzdWNoIGFzIDxjb2RlPlBIUF9GQ0dJX01BWF9SRVFVRVNUUzwvY29kZT4KICAgIG9yIGFueXRoaW5nIGVsc2UuICAoRW52aXJvbm1lbnQgdmFyaWFibGVzIGNhbiBhbHNvIGJlIHNldCB3aXRoCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9jb2RlPiwKICAgIGJ1dCB0aGV5IHRoZW4gYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucy4pPC9wPgoKICAgIDxwPkhlcmUgaXMgYW4gZXhhbXBsZSB0aGF0IHVzZXMgYSB3cmFwcGVyIHNjcmlwdCB0byBpbnZva2UgUEhQOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UEhQIGFwcGxpY2F0aW9uIC0gL3Vzci9sb2NhbC9waHBhcHAvcGhwaW5mby5waHA8L2gzPjxwPjxjb2RlPgogICAgJmx0Oz9waHA8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICBwaHBpbmZvKCk7PGJyIC8+CiAgICA8L3NwYW4+CiAgICA/Jmd0OzxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+Q29uZmlndXJhdGlvbiBkaXJlY3RpdmVzPC9oMz48cD48Y29kZT4KICAgICMgRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3Mgc2hvdWxkIGJlICZsdDs9IFBIUF9GQ0dJX01BWF9SRVFVRVNUUzxiciAvPgogICAgIyBUaGUgZXhhbXBsZSBQSFAgd3JhcHBlciBzY3JpcHQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IFBIUCBzZXR0aW5nLjxiciAvPgogICAgRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MgMTAwMDA8YnIgLz4KICAgIDxiciAvPgogICAgIyBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIGNnaS5maXhfcGF0aGluZm8gaXMgc2V0IHRvIDEgaW48YnIgLz4KICAgICMgcGhwLmluaTo8YnIgLz4KICAgICMgRmNnaWRGaXhQYXRoaW5mbyAxPGJyIC8+CiAgICA8YnIgLz4KICAgIEFsaWFzIC9waHBhcHAvIC91c3IvbG9jYWwvcGhwYXBwLzxiciAvPgogICAgJmx0O0xvY2F0aW9uIC9waHBhcHAvJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgIEFkZEhhbmRsZXIgZmNnaWQtc2NyaXB0IC5waHA8YnIgLz4KICAgICAgT3B0aW9ucyArRXhlY0NHSTxiciAvPgogICAgICBGY2dpZFdyYXBwZXIgL3Vzci9sb2NhbC9iaW4vcGhwLXdyYXBwZXIgLnBocDxiciAvPgogICAgICA8YnIgLz4KICAgICAgIyBDdXN0b21pemUgdGhlIG5leHQgdHdvIGRpcmVjdGl2ZXMgZm9yIHlvdXIgcmVxdWlyZW1lbnRzLjxiciAvPgogICAgICBPcmRlciBhbGxvdyxkZW55PGJyIC8+CiAgICAgIEFsbG93IGZyb20gYWxsPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L0xvY2F0aW9uJmd0OzxiciAvPgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+UEhQIHdyYXBwZXIgc2NyaXB0IC0gL3Vzci9sb2NhbC9iaW4vcGhwLXdyYXBwZXI8L2gzPjxwPjxjb2RlPgogICAgIyEvYmluL3NoPGJyIC8+CiAgICAjIFNldCBkZXNpcmVkIFBIUF9GQ0dJXyogZW52aXJvbm1lbnQgdmFyaWFibGVzLjxiciAvPgogICAgIyBFeGFtcGxlOjxiciAvPgogICAgIyBQSFAgRmFzdENHSSBwcm9jZXNzZXMgZXhpdCBhZnRlciA1MDAgcmVxdWVzdHMgYnkgZGVmYXVsdC48YnIgLz4KICAgIFBIUF9GQ0dJX01BWF9SRVFVRVNUUz0xMDAwMDxiciAvPgogICAgZXhwb3J0IFBIUF9GQ0dJX01BWF9SRVFVRVNUUzxiciAvPgogICAgPGJyIC8+CiAgICAjIFJlcGxhY2Ugd2l0aCB0aGUgcGF0aCB0byB5b3VyIEZhc3RDR0ktZW5hYmxlZCBQSFAgZXhlY3V0YWJsZTxiciAvPgogICAgZXhlYyAvdXNyL2xvY2FsL2Jpbi9waHAtY2dpPGJyIC8+CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5TcGVjaWFsIFBIUCBjb25zaWRlcmF0aW9uczwvaDM+CiAgICA8cD5CeSBkZWZhdWx0LCBQSFAgRmFzdENHSSBwcm9jZXNzZXMgZXhpdCBhZnRlciBoYW5kbGluZyA1MDAKICAgIHJlcXVlc3RzLCBhbmQgdGhleSBtYXkgZXhpdCBhZnRlciB0aGlzIG1vZHVsZSBoYXMgYWxyZWFkeQogICAgY29ubmVjdGVkIHRvIHRoZSBhcHBsaWNhdGlvbiBhbmQgc2VudCB0aGUgbmV4dCByZXF1ZXN0LiAgV2hlbiB0aGF0CiAgICBvY2N1cnMsIGFuIGVycm9yIHdpbGwgYmUgbG9nZ2VkIGFuZCA8Y29kZT41MDAgSW50ZXJuYWwgU2VydmVyCiAgICBFcnJvcjwvY29kZT4gd2lsbCBiZSByZXR1cm5lZCB0byB0aGUgY2xpZW50LiAgVGhpcyBQSFAgYmVoYXZpb3IKICAgIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIDxjb2RlPlBIUF9GQ0dJX01BWF9SRVFVRVNUUzwvY29kZT4gdG8KICAgIDAsIGJ1dCB0aGF0IGNhbiBiZSBhIHByb2JsZW0gaWYgdGhlIFBIUCBhcHBsaWNhdGlvbiBsZWFrcwogICAgcmVzb3VyY2VzLiAgQWx0ZXJuYXRpdmVseSwgPGNvZGU+UEhQX0ZDR0lfTUFYX1JFUVVFU1RTPC9jb2RlPiBjYW4KICAgIGJlIHNldCB0byBhIG11Y2ggaGlnaGVyIHZhbHVlIHRoYW4gdGhlIGRlZmF1bHQgdG8gcmVkdWNlIHRoZQogICAgZnJlcXVlbmN5IG9mIHRoaXMgcHJvYmxlbS4KICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+PC9jb2RlPgogICAgY2FuIGJlIHNldCB0byBhIHZhbHVlIGxlc3MgdGhhbiBvciBlcXVhbCB0bwogICAgPGNvZGU+UEhQX0ZDR0lfTUFYX1JFUVVFU1RTPC9jb2RlPiB0byByZXNvbHZlIHRoZSBwcm9ibGVtLjwvcD4KCiAgICA8cD5QSFAgY2hpbGQgcHJvY2VzcyBtYW5hZ2VtZW50ICg8Y29kZT5QSFBfRkNHSV9DSElMRFJFTjwvY29kZT4pCiAgICBzaG91bGQgYWx3YXlzIGJlIGRpc2FibGVkIHdpdGggbW9kX2ZjZ2lkLCB3aGljaCB3aWxsIG9ubHkgcm91dGUKICAgIHJlcXVlc3RzIHRvIGFwcGxpY2F0aW9uIHByb2Nlc3NlcyBpdCBoYXMgc3Bhd25lZC4gIEFueSBjaGlsZAogICAgcHJvY2Vzc2VzIGNyZWF0ZWQgYnkgUEhQIHdpbGwgYmUgdW51c2VkIGFuZCBtYXkgbm90IGJlIHRlcm1pbmF0ZWQKICAgIHByb3Blcmx5LiAgQnkgZGVmYXVsdCwgYW5kIHdpdGggdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHNldHRpbmcgCiAgICA8Y29kZT5QSFBfRkNHSV9DSElMRFJFTj0wPC9jb2RlPiwgUEhQIGNoaWxkIHByb2Nlc3MgbWFuYWdlbWVudCBpcwogICAgZGlzYWJsZWQuPC9wPgogICAgPC9kaXY+CgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb2Nlc3MtbWdtdCIgaWQ9InByb2Nlc3MtbWdtdCI+UHJvY2VzcyBNYW5hZ2VtZW50PC9hPjwvaDI+CiAgICAKCiAgICA8cD5tb2RfZmNnaWQgaGFzIHNldmVyYWwgdHlwZXMgb2YgY29udHJvbHMgd2hpY2ggYWZmZWN0IHRoZSBjcmVhdGlvbgogICAgb2YgYWRkaXRpb25hbCBhcHBsaWNhdGlvbiBwcm9jZXNzZXM6PC9wPgoKICAgIDx0YWJsZSBjbGFzcz0iYm9yZGVyZWQiPjx0ciBjbGFzcz0iaGVhZGVyIj48dGg+VHlwZSBvZiBjb250cm9sPC90aD48dGg+RGlyZWN0aXZlPC90aD48L3RyPgo8dHI+CiAgICAgICAgPHRkPmdsb2JhbCBsaW1pdCBvbiBudW1iZXIgb2YgcHJvY2Vzc2VzPC90ZD4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT48L2NvZGU+PC90ZD4KICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgIDx0ZD5saW1pdCBvbiBudW1iZXIgb2YgcHJvY2Vzc2VzIHBlciBhcHBsaWNhdGlvbjwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHByb2Nlc3Nlc3BlcmNsYXNzIj5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzPC9hPjwvY29kZT48L3RkPgogICAgICA8L3RyPgo8dHI+CiAgICAgICAgPHRkPmxpbWl0IG9uIHJhdGUgb2Ygc3Bhd25pbmcgbmV3IGFwcGxpY2F0aW9uIHByb2Nlc3NlczwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT4gYW5kCiAgICAgICAgb3RoZXIgc2NvcmUtcmVsYXRlZCBkaXJlY3RpdmVzPC90ZD4KICAgICAgPC90cj4KPC90YWJsZT4KCiAgICA8cD5tb2RfZmNnaWQgaGFzIHNldmVyYWwgdHlwZXMgb2YgY29udHJvbHMgd2hpY2ggYWZmZWN0IHRoZSB0ZXJtaW5hdGlvbgogICAgb2YgZXhpc3RpbmcgYXBwbGljYXRpb24gcHJvY2Vzc2VzOjwvcD4KCiAgICA8dGFibGUgY2xhc3M9ImJvcmRlcmVkIj48dHIgY2xhc3M9ImhlYWRlciI+PHRoPlR5cGUgb2YgY29udHJvbDwvdGg+PHRoPkRpcmVjdGl2ZTwvdGg+PC90cj4KPHRyPgogICAgICAgIDx0ZD50ZXJtaW5hdGlvbiBhZnRlciBhbiBpZGxlIHBlcmlvZDwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT48L3RkPgogICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgPHRkPnRlcm1pbmF0aW9uIGFmdGVyIGl0IGhhbmRsZXMgYSBjZXJ0YWluIG51bWJlciBvZiByZXF1ZXN0czwvdGQ+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyI+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgIDwvdHI+Cjx0cj4KICAgICAgICA8dGQ+dGVybWluYXRpb24gYWZ0ZXIgYSBjZXJ0YWluIGxpZmV0aW1lPC90ZD4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZldGltZTwvYT48L2NvZGU+PC90ZD4KICAgICAgPC90cj4KPC90YWJsZT4KCiAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90ZTwvaDM+CiAgICA8cD5DZXJ0YWluIHNldHRpbmdzIG9yIG90aGVyIGNvbmNlcHRzIHRoYXQgZGVwZW5kIG9uIHRoZSB2aXJ0dWFsIGhvc3QsCiAgICBzdWNoIGFzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGluaXRpYWxlbnYiPkZjZ2lkSW5pdGlhbEVudjwvYT48L2NvZGU+CiAgICBvciBwcm9jZXNzIGNsYXNzZXMsIGRpc3Rpbmd1aXNoIGJldHdlZW4gdmlydHVhbCBob3N0cyBvbmx5IGlmIHRoZXkKICAgIGhhdmUgZGlzdGluY3Qgc2VydmVyIG5hbWVzLiAgKFNlZSB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2VydmVyTmFtZTwvY29kZT4KICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uKSBJbiB0aGUgY2FzZSBvZgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW5pdGlhbGVudiI+RmNnaWRJbml0aWFsRW52PC9hPjwvY29kZT4sIGlmIHR3bwogICAgdmlydHVhbCBob3N0cyBoYXZlIHRoZSBzYW1lIHNlcnZlciBuYW1lIGJ1dCBkaWZmZXJlbnQgZW52aXJvbm1lbnRzIGFzCiAgICBkZWZpbmVkIGJ5IAogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW5pdGlhbGVudiI+RmNnaWRJbml0aWFsRW52PC9hPjwvY29kZT4sIHRoZSAKICAgIGVudmlyb25tZW50IHVzZWQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IHdpbGwgYmUgdGhhdCBkZWZpbmVkIGZvciB0aGUKICAgIHZpcnR1YWwgaG9zdCBvZiB0aGUgcmVxdWVzdCB0aGF0IGNhdXNlZCB0aGUgRmFzdENHSSBwcm9jZXNzIHRvIGJlIAogICAgc3RhcnRlZC48L3A+CiAgICA8L2Rpdj4KCiAgPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkQWNjZXNzQ2hlY2tlciIgaWQ9IkZjZ2lkQWNjZXNzQ2hlY2tlciI+RmNnaWRBY2Nlc3NDaGVja2VyPC9hPiA8YSBuYW1lPSJmY2dpZGFjY2Vzc2NoZWNrZXIiIGlkPSJmY2dpZGFjY2Vzc2NoZWNrZXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmZ1bGwgcGF0aCB0byBGYXN0Q0dJIGFjY2VzcyBjaGVja2VyPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQWNjZXNzQ2hlY2tlciA8ZW0+Y29tbWFuZDwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPjxlbT5ub25lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QWNjZXNzIGNoZWNraW5nIG9yLCBtb3JlIGZvcm1hbGx5LCBhY2Nlc3MgY29udHJvbCwgaXMgYSBwcm9jZWR1cmUgCiAgICAgIHdoaWNoIHZlcmlmaWVzIHRoYXQgdGhlIGNsaWVudCBpcyBhbGxvd2VkIHRvIGFjY2VzcyBhIHJlc291cmNlLCB1c2luZyAKICAgICAgc29tZSBtZWNoYW5pc20gb3RoZXIgdGhhbiBhdXRoZW50aWNhdGlvbiBhbmQgYXV0aG9yaXphdGlvbi48L3A+CgogICAgICA8cD5LZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gZm9yIGFjY2VzcwogICAgICBjaGVja2luZyBhcmU6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT5GQ0dJX0FQQUNIRV9ST0xFPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byA8Y29kZT5BQ0NFU1NfQ0hFQ0tFUjwvY29kZT47IGJ5IGNoZWNraW5nIHRoZSBjdXJyZW50IHJvbGUsCiAgICAgICAgdGhlIHNhbWUgRmFzdENHSSBhcHBsaWNhdGlvbiBjYW4gaGFuZGxlIG11bHRpcGxlIHN0YWdlcyBvZiByZXF1ZXN0CiAgICAgICAgcHJvY2Vzc2luZzwvZGQ+CiAgICAgIDwvZGw+CgogICAgICA8cD5UaGUgYXBwbGljYXRpb24gbXVzdCBvdXRwdXQgYSA8Y29kZT5TdGF0dXM8L2NvZGU+IGxpbmUgdG8gaW5kaWNhdGUKICAgICAgdGhlIHJlc3VsdCBvZiB0aGUgY2hlY2suPC9wPgoKICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPldhcm5pbmc8L2gzPgogICAgICA8cD5DdXJyZW50bHksIG9ubHkgb25lIEZhc3RDR0kgYXBwbGljYXRpb24gb2YgYW55IHR5cGUgKEFBQSBvciBoYW5kbGVyKQogICAgICBjYW4gYmUgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgVVJJLiAgT3RoZXJ3aXNlLCB0aGUgd3JvbmcgRmFzdENHSQogICAgICBhcHBsaWNhdGlvbiBtYXkgYmUgaW52b2tlZCBmb3Igb25lIG9yIG1vcmUgcGhhc2VzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZy48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEFjY2Vzc0NoZWNrZXJBdXRob3JpdGF0aXZlIiBpZD0iRmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSI+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iZmNnaWRhY2Nlc3NjaGVja2VyYXV0aG9yaXRhdGl2ZSIgaWQ9ImZjZ2lkYWNjZXNzY2hlY2tlcmF1dGhvcml0YXRpdmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCB0byAnb2ZmJyB0byBhbGxvdyBhY2Nlc3MgY29udHJvbCB0byBiZSBwYXNzZWQgYWxvbmcgdG8gbG93ZXIgbW9kdWxlcyB1cG9uIGZhaWx1cmU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSA8ZW0+T258T2ZmPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBY2Nlc3NDaGVja2VyQXV0aG9yaXRhdGl2ZSBPbjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBvdGhlciBhY2Nlc3MgY2hlY2tlcnMKICAgICAgYXJlIGFsbG93ZWQgdG8gcnVuIHdoZW4gdGhpcyBtb2R1bGUgaGFzIGFuIGFjY2VzcyBjaGVja2VyIGNvbmZpZ3VyZWQgCiAgICAgIGFuZCBpdCBmYWlscyBhIHJlcXVlc3QuICBJZiB0aGlzIGRpcmVjdGl2ZSBpcyA8Y29kZT5PbjwvY29kZT4gKGRlZmF1bHQpCiAgICAgIGFuZCBhIEZhc3RDR0kgYWNjZXNzIGNoZWNrZXIgcmV0dXJucyBhIGZhaWx1cmUgc3RhdHVzLCBhIGZhaWx1cmUgaXMKICAgICAgcmV0dXJuZWQgdG8gdGhlIGNsaWVudCB3aXRob3V0IGdpdmluZyBvdGhlciBhY2Nlc3MgY2hlY2tlcnMgYSBjaGFuY2UgdG8KICAgICAgYWxsb3cgYWNjZXNzLiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T2ZmPC9jb2RlPiwgb3RoZXIgYWNjZXNzCiAgICAgIGNoZWNrZXJzIHdpbGwgYmUgY2FsbGVkLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRBdXRoZW50aWNhdG9yIiBpZD0iRmNnaWRBdXRoZW50aWNhdG9yIj5GY2dpZEF1dGhlbnRpY2F0b3I8L2E+IDxhIG5hbWU9ImZjZ2lkYXV0aGVudGljYXRvciIgaWQ9ImZjZ2lkYXV0aGVudGljYXRvciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+ZnVsbCBwYXRoIHRvIEZhc3RDR0kgYXV0aGVudGljYXRvcjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhlbnRpY2F0b3IgPGVtPmNvbW1hbmQ8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT48ZW0+bm9uZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5GaWxlSW5mbzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkF1dGhlbnRpY2F0aW9uIGlzIHRoZSBwcm9jZWR1cmUgd2hpY2ggdmVyaWZpZXMgdGhhdCB0aGUgdXNlciBpcwogICAgICB3aG8gdGhleSBjbGFpbSB0aGV5IGFyZS4gIFRoaXMgZGlyZWN0aXZlIHNwZWNpZmllcyB0aGUgZnVsbCBwYXRoIHRvIAogICAgICBhIEZhc3RDR0kgYXBwbGljYXRpb24gd2hpY2ggd2lsbCBoYW5kbGUgYXV0aGVudGljYXRpb24gZm9yIGEgcGFydGljdWxhcgogICAgICBjb250ZXh0LCBzdWNoIGFzIGEgZGlyZWN0b3J5LjwvcD4KCiAgICAgIDxwPktleSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFzc2VkIHRvIHRoZSBhcHBsaWNhdGlvbiBvbiBhdXRoZW50aWNhdGlvbgogICAgICBhcmU6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT5SRU1PVEVfVVNFUjwvY29kZT48L2R0PgogICAgICAgIDxkZD5zZXQgdG8gdGhlIHVzZXIgaWQgb2YgdGhlIGNsaWVudDwvZGQ+CgogICAgICAgIDxkdD48Y29kZT5SRU1PVEVfUEFTU1dEPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPnNldCB0byB0aGUgcGxhaW4gdGV4dCBwYXNzd29yZCBwcm92aWRlZCBieSB0aGUgY2xpZW50PC9kZD4KCiAgICAgICAgPGR0Pjxjb2RlPkZDR0lfQVBBQ0hFX1JPTEU8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+c2V0IHRvIDxjb2RlPkFVVEhFTlRJQ0FUT1I8L2NvZGU+OyBieSBjaGVja2luZyB0aGUgY3VycmVudCByb2xlLAogICAgICAgIHRoZSBzYW1lIEZhc3RDR0kgYXBwbGljYXRpb24gY2FuIGhhbmRsZSBtdWx0aXBsZSBzdGFnZXMgb2YgcmVxdWVzdAogICAgICAgIHByb2Nlc3Npbmc8L2RkPgogICAgICA8L2RsPgoKICAgICAgPHA+VGhlIGFwcGxpY2F0aW9uIG11c3Qgb3V0cHV0IGEgPGNvZGU+U3RhdHVzPC9jb2RlPiBsaW5lIHRvIGluZGljYXRlCiAgICAgIHRoZSByZXN1bHQgb2YgYXV0aGVudGljYXRpb24uPC9wPgoKICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPldhcm5pbmc8L2gzPgogICAgICA8cD5DdXJyZW50bHksIG9ubHkgb25lIEZhc3RDR0kgYXBwbGljYXRpb24gb2YgYW55IHR5cGUgKEFBQSBvciBoYW5kbGVyKQogICAgICBjYW4gYmUgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgVVJJLiAgT3RoZXJ3aXNlLCB0aGUgd3JvbmcgRmFzdENHSQogICAgICBhcHBsaWNhdGlvbiBtYXkgYmUgaW52b2tlZCBmb3Igb25lIG9yIG1vcmUgcGhhc2VzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZy48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEF1dGhlbnRpY2F0b3JBdXRob3JpdGF0aXZlIiBpZD0iRmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iZmNnaWRhdXRoZW50aWNhdG9yYXV0aG9yaXRhdGl2ZSIgaWQ9ImZjZ2lkYXV0aGVudGljYXRvcmF1dGhvcml0YXRpdmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCB0byAnb2ZmJyB0byBhbGxvdyBhdXRoZW50aWNhdGlvbiB0byBiZSBwYXNzZWQgYWxvbmcgdG8gbG93ZXIgbW9kdWxlcyB1cG9uIGZhaWx1cmU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZSA8ZW0+T258T2ZmPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRBdXRoZW50aWNhdG9yQXV0aG9yaXRhdGl2ZSBPbjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBvdGhlciBhdXRoZW50aWNhdG9ycwogICAgICBhcmUgYWxsb3dlZCB0byBydW4gd2hlbiB0aGlzIG1vZHVsZSBoYXMgYW4gYXV0aGVudGljYXRvciBjb25maWd1cmVkIAogICAgICBhbmQgaXQgZmFpbHMgYSByZXF1ZXN0LiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T248L2NvZGU+IChkZWZhdWx0KQogICAgICBhbmQgYSBGYXN0Q0dJIGF1dGhlbnRpY2F0b3IgcmV0dXJucyBhIGZhaWx1cmUgc3RhdHVzLCBhIGZhaWx1cmUgaXMKICAgICAgcmV0dXJuZWQgdG8gdGhlIGNsaWVudCB3aXRob3V0IGdpdmluZyBvdGhlciBhdXRoZW50aWNhdG9ycyBhIGNoYW5jZSB0bwogICAgICB2YWxpZGF0ZSB0aGUgY2xpZW50IGlkZW50aXR5LiAgSWYgdGhpcyBkaXJlY3RpdmUgaXMgPGNvZGU+T2ZmPC9jb2RlPiwgCiAgICAgIG90aGVyIGF1dGhlbnRpY2F0b3JzIHdpbGwgYmUgY2FsbGVkLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRBdXRob3JpemVyIiBpZD0iRmNnaWRBdXRob3JpemVyIj5GY2dpZEF1dGhvcml6ZXI8L2E+IDxhIG5hbWU9ImZjZ2lkYXV0aG9yaXplciIgaWQ9ImZjZ2lkYXV0aG9yaXplciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+ZnVsbCBwYXRoIHRvIEZhc3RDR0kgYXV0aG9yaXplcjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhvcml6ZXIgPGVtPmNvbW1hbmQ8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT48ZW0+bm9uZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5GaWxlSW5mbzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkF1dGhvcml6YXRpb24gaXMgdGhlIHByb2NlZHVyZSB3aGljaCB2ZXJpZmllcyB0aGF0IHRoZSB1c2VyIGlzCiAgICAgIGFsbG93ZWQgdG8gYWNjZXNzIGEgcGFydGljdWxhciByZXNvdXJjZS4gIFRoaXMgZGlyZWN0aXZlIHNwZWNpZmllcwogICAgICB0aGUgZnVsbCBwYXRoIHRvIGEgRmFzdENHSSBhcHBsaWNhdGlvbiB3aGljaCB3aWxsIGhhbmRsZSBhdXRob3JpemF0aW9uCiAgICAgIGZvciBhIHBhcnRpY3VsYXIgY29udGV4dCwgc3VjaCBhcyBhIGRpcmVjdG9yeS48L3A+CgogICAgICA8cD5LZXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIHBhc3NlZCB0byB0aGUgYXBwbGljYXRpb24gb24gYXV0aG9yaXphdGlvbgogICAgICBhcmU6PC9wPgoKICAgICAgPGRsPgogICAgICAgIDxkdD48Y29kZT5SRU1PVEVfVVNFUjwvY29kZT48L2R0PgogICAgICAgIDxkZD5zZXQgdG8gdGhlIHVzZXIgaWQgb2YgdGhlIGNsaWVudCwgd2hpY2ggaGFzIGFscmVhZHkgYmVlbiAKICAgICAgICBhdXRoZW50aWNhdGVkPC9kZD4KCiAgICAgICAgPGR0Pjxjb2RlPkZDR0lfQVBBQ0hFX1JPTEU8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+c2V0IHRvIDxjb2RlPkFVVEhPUklaRVI8L2NvZGU+OyBieSBjaGVja2luZyB0aGUgY3VycmVudCByb2xlLCB0aGUgCiAgICAgICAgc2FtZSBGYXN0Q0dJIGFwcGxpY2F0aW9uIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3RhZ2VzIG9mIHJlcXVlc3QKICAgICAgICBwcm9jZXNzaW5nPC9kZD4KICAgICAgPC9kbD4KCiAgICAgIDxwPlRoZSBhcHBsaWNhdGlvbiBtdXN0IG91dHB1dCBhIDxjb2RlPlN0YXR1czwvY29kZT4gbGluZSB0byBpbmRpY2F0ZQogICAgICB0aGUgcmVzdWx0IG9mIGF1dGhvcml6YXRpb24uPC9wPgoKICAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPldhcm5pbmc8L2gzPgogICAgICA8cD5DdXJyZW50bHksIG9ubHkgb25lIEZhc3RDR0kgYXBwbGljYXRpb24gb2YgYW55IHR5cGUgKEFBQSBvciBoYW5kbGVyKQogICAgICBjYW4gYmUgdXNlZCBmb3IgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgVVJJLiAgT3RoZXJ3aXNlLCB0aGUgd3JvbmcgRmFzdENHSQogICAgICBhcHBsaWNhdGlvbiBtYXkgYmUgaW52b2tlZCBmb3Igb25lIG9yIG1vcmUgcGhhc2VzIG9mIHJlcXVlc3QgcHJvY2Vzc2luZy48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIiBpZD0iRmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZSI+RmNnaWRBdXRob3JpemVyQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iZmNnaWRhdXRob3JpemVyYXV0aG9yaXRhdGl2ZSIgaWQ9ImZjZ2lkYXV0aG9yaXplcmF1dGhvcml0YXRpdmUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCB0byAnb2ZmJyB0byBhbGxvdyBhdXRob3JpemF0aW9uIHRvIGJlIHBhc3NlZCBhbG9uZyB0byBsb3dlciBtb2R1bGVzIHVwb24gZmFpbHVyZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIDxlbT5PbnxPZmY8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEF1dGhvcml6ZXJBdXRob3JpdGF0aXZlIE9uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5GaWxlSW5mbzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgZGlyZWN0aXZlIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IG90aGVyIGF1dGhvcml6ZXJzCiAgICAgIGFyZSBhbGxvd2VkIHRvIHJ1biB3aGVuIHRoaXMgbW9kdWxlIGhhcyBhbiBhdXRob3JpemVyIGNvbmZpZ3VyZWQgCiAgICAgIGFuZCBpdCBmYWlscyBhIHJlcXVlc3QuICBJZiB0aGlzIGRpcmVjdGl2ZSBpcyA8Y29kZT5PbjwvY29kZT4gKGRlZmF1bHQpCiAgICAgIGFuZCBhIEZhc3RDR0kgYXV0aG9yaXplciByZXR1cm5zIGEgZmFpbHVyZSBzdGF0dXMsIGEgZmFpbHVyZSBpcwogICAgICByZXR1cm5lZCB0byB0aGUgY2xpZW50IHdpdGhvdXQgZ2l2aW5nIG90aGVyIGF1dGhvcml6ZXIgYSBjaGFuY2UgdG8KICAgICAgYWNjZXNzIHRoZSByZXNvdXJjZS4gIElmIHRoaXMgZGlyZWN0aXZlIGlzIDxjb2RlPk9mZjwvY29kZT4sIG90aGVyCiAgICAgIGF1dGhvcml6ZXJzIHdpbGwgYmUgY2FsbGVkLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRCdXN5U2NhbkludGVydmFsIiBpZD0iRmNnaWRCdXN5U2NhbkludGVydmFsIj5GY2dpZEJ1c3lTY2FuSW50ZXJ2YWw8L2E+IDxhIG5hbWU9ImZjZ2lkYnVzeXNjYW5pbnRlcnZhbCIgaWQ9ImZjZ2lkYnVzeXNjYW5pbnRlcnZhbCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+c2NhbiBpbnRlcnZhbCBmb3IgYnVzeSB0aW1lb3V0IHByb2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRCdXN5U2NhbkludGVydmFsIDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRCdXN5U2NhbkludGVydmFsIDEyMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhlIG1vZHVsZSBwZXJmb3JtcyB0aGUgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGJ1c3l0aW1lb3V0Ij5GY2dpZEJ1c3lUaW1lb3V0PC9hPjwvY29kZT4gY2hlY2sgYXQgdGhpcyAKICAgICAgaW50ZXJ2YWwuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZEJ1c3lUaW1lb3V0IiBpZD0iRmNnaWRCdXN5VGltZW91dCI+RmNnaWRCdXN5VGltZW91dDwvYT4gPGEgbmFtZT0iZmNnaWRidXN5dGltZW91dCIgaWQ9ImZjZ2lkYnVzeXRpbWVvdXQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmEgRmFzdENHSSBhcHBsaWNhdGlvbiB3aWxsIGJlIGtpbGxlZCBhZnRlciBoYW5kbGluZyBhIHJlcXVlc3QgZm9yIEZjZ2lkQnVzeVRpbWVvdXQ8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRCdXN5VGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkQnVzeVRpbWVvdXQgMzAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIG1heGltdW0gdGltZSBsaW1pdCBmb3IgcmVxdWVzdCBoYW5kbGluZy4gIElmIGEgRmFzdENHSQogICAgICByZXF1ZXN0IGRvZXMgbm90IGNvbXBsZXRlIHdpdGhpbiBGY2dpZEJ1c3lUaW1lb3V0IHNlY29uZHMsIGl0IHdpbGwgYmUKICAgICAgc3ViamVjdCB0byB0ZXJtaW5hdGlvbi4gIEJlY2F1c2UgdGhlIGNoZWNrIGlzIHBlcmZvcm1lZCBhdCB0aGUKICAgICAgaW50ZXJ2YWwgZGVmaW5lZCBieSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRidXN5c2NhbmludGVydmFsIj5GY2dpZEJ1c3lTY2FuSW50ZXJ2YWw8L2E+PC9jb2RlPiwKICAgICAgcmVxdWVzdCBoYW5kbGluZyBtYXkgYmUgYWxsb3dlZCB0byBwcm9jZWVkIGZvciBhIGxvbmdlciBwZXJpb2Qgb2YgdGltZS48L3A+CgogICAgICA8cD5UaGUgcHVycG9zZSBvZiB0aGlzIGRpcmVjdGl2ZSBpcyB0byB0ZXJtaW5hdGUgaHVuZyBhcHBsaWNhdGlvbnMuCiAgICAgIFRoZSBkZWZhdWx0IHRpbWVvdXQgbWF5IG5lZWQgdG8gYmUgaW5jcmVhc2VkIGZvciBhcHBsaWNhdGlvbnMgdGhhdAogICAgICBjYW4gdGFrZSBsb25nZXIgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdC48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkQ21kT3B0aW9ucyIgaWQ9IkZjZ2lkQ21kT3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPiA8YSBuYW1lPSJmY2dpZGNtZG9wdGlvbnMiIGlkPSJmY2dpZGNtZG9wdGlvbnMiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNldCBwcm9jZXNzaW5nIG9wdGlvbnMgZm9yIGEgRmFzdENHSQogICAgY29tbWFuZDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZENtZE9wdGlvbnMgPGVtPmNvbW1hbmQ8L2VtPiA8ZW0+b3B0aW9uPC9lbT4KICAgIFs8ZW0+b3B0aW9uPC9lbT5dIC4uLjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBhbGxvd3MgcHJvY2Vzc2luZyBvcHRpb25zIHRvIGJlIHNwZWNpZmllZCBmb3IKICAgICAgYSBzcGVjaWZpYyBjb21tYW5kIHNwYXduZWQgYnkgbW9kX2ZjZ2lkLiAgRWFjaCBvcHRpb24gZm9yIHRoZQogICAgICBjb21tYW5kIGNvcnJlc3BvbmRzIHRvIGFub3RoZXIgZGlyZWN0aXZlIHRoYXQgbm9ybWFsbHkgYXBwbGllcyB0bwogICAgICBhbGwgY29tbWFuZHMgc3RhcnRlZCB3aXRoaW4gYSBwYXJ0aWN1bGFyIGNvbnRleHQuICBJZiBhCiAgICAgIHBhcnRpY3VsYXIgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQgb24gdGhpcyBkaXJlY3RpdmUsIHRoZQogICAgICBkZWZhdWx0IHdpbGwgYmUgdXNlZC48L3A+CgogICAgICA8cD5UaGUgZm9sbG93aW5nIHRhYmxlIHByb3ZpZGVzIGEgbGlzdCBvZiBvcHRpb25zIGFuZAogICAgICBjb3JyZXNwb25kaW5nIGRpcmVjdGl2ZXM6PC9wPgoKICAgICAgPHRhYmxlIGNsYXNzPSJib3JkZXJlZCI+PHRyIGNsYXNzPSJoZWFkZXIiPjx0aD5PcHRpb24gbmFtZSBhbmQgc3ludGF4PC90aD48dGg+Q29ycmVzcG9uZGluZyBkaXJlY3RpdmU8L3RoPjwvdHI+Cjx0cj4KICAgICAgICAgIDx0ZD48Y29kZT5Db25uZWN0VGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY29ubmVjdHRpbWVvdXQiPkZjZ2lkQ29ubmVjdFRpbWVvdXQ8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPklkbGVUaW1lb3V0IDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxldGltZW91dCI+RmNnaWRJZGxlVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+SW5pdGlhbEVudiA8ZW0+bmFtZVs9dmFsdWVdPC9lbT48L2NvZGU+PC90ZD4KICAgICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpbml0aWFsZW52Ij5GY2dpZEluaXRpYWxFbnY8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPklPVGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkaW90aW1lb3V0Ij5GY2dpZElPVGltZW91dDwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWF4UHJvY2Vzc2VzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPHRyIGNsYXNzPSJvZGQiPgogICAgICAgICAgPHRkPjxjb2RlPk1heFByb2Nlc3NMaWZlVGltZSA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWF4UmVxdWVzdHNQZXJQcm9jZXNzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWF4cmVxdWVzdHNwZXJwcm9jZXNzIj5GY2dpZE1heFJlcXVlc3RzUGVyUHJvY2VzczwvYT48L2NvZGU+PC90ZD4KICAgICAgICA8L3RyPgo8dHIgY2xhc3M9Im9kZCI+CiAgICAgICAgICA8dGQ+PGNvZGU+TWluUHJvY2Vzc2VzIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+CiAgICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWlucHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPjwvdGQ+CiAgICAgICAgPC90cj4KPC90YWJsZT4KCiAgICAgIDxwPk11bHRpcGxlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgZGVmaW5lZCBieSByZXBlYXRpbmcKICAgICAgdGhlIDxjb2RlPkluaXRpYWxFbnY8L2NvZGU+IG9wdGlvbi48L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+RXhhbXBsZTwvaDM+PHA+PGNvZGU+CiAgICAgIEZjZ2lkQ21kT3B0aW9ucyAvdXNyL2xvY2FsL2Jpbi93cmFwcGVyIFw8YnIgLz4KICAgICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgIEluaXRpYWxFbnYgTUFYX1JFUVVFU1RTPTIwMDAgXDxiciAvPgogICAgICBNYXhSZXF1ZXN0c1BlclByb2Nlc3MgMjAwMCBcPGJyIC8+CiAgICAgIElPVGltZW91dCA5MDxiciAvPgogICAgICA8L3NwYW4+CiAgICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgICA8cD5XaGVuIDxjb2RlPi91c3IvbG9jYWwvYmluL3dyYXBwZXI8L2NvZGU+IGlzIHNwYXduZWQsIGl0cyBpbml0aWFsCiAgICAgIGVudmlyb25tZW50IGNvbnRhaW5zIHRoZSA8Y29kZT5NQVhfUkVRVUVTVFM9MjAwMDwvY29kZT4KICAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0dGluZzsgYWRkaXRpb25hbGx5LCBtb2RfZmNnaWQgd2lsbAogICAgICB0ZXJtaW5hdGUgaXQgYWZ0ZXIgaXQgaGFzIGhhbmRsZWQgMjAwMCByZXF1ZXN0cywgYW5kIEkvTwogICAgICBvcGVyYXRpb25zIHdpbGwgdGltZSBvdXQgYWZ0ZXIgOTAgc2Vjb25kcy4gIERpcmVjdGl2ZXMKICAgICAgY29ycmVzcG9uZGluZyB0byBvdGhlciBvcHRpb25zLCBzdWNoIGFzIAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRpZGxldGltZW91dCI+RmNnaWRJZGxlVGltZW91dDwvYT48L2NvZGU+IG9yCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHByb2Nlc3NsaWZldGltZSI+RmNnaWRQcm9jZXNzTGlmZVRpbWU8L2E+PC9jb2RlPiwKICAgICAgd2lsbCBiZSBpZ25vcmVkIGZvciB0aGlzIGNvbW1hbmQ7IGRlZmF1bHRzIHdpbGwgYmUgdXNlZCBmb3Igb3B0aW9ucwogICAgICBub3Qgc3BlY2lmaWVkIG9uIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZjZ2lkQ21kT3B0aW9uczwvY29kZT4uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZENvbm5lY3RUaW1lb3V0IiBpZD0iRmNnaWRDb25uZWN0VGltZW91dCI+RmNnaWRDb25uZWN0VGltZW91dDwvYT4gPGEgbmFtZT0iZmNnaWRjb25uZWN0dGltZW91dCIgaWQ9ImZjZ2lkY29ubmVjdHRpbWVvdXQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkNvbm5lY3QgdGltZW91dCB0byBGYXN0Q0dJIHNlcnZlcjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZENvbm5lY3RUaW1lb3V0IDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRDb25uZWN0VGltZW91dCAzPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIG1heGltdW0gcGVyaW9kIG9mIHRpbWUgdGhlIG1vZHVsZSB3aWxsIHdhaXQKICAgICAgd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdG8gYSBGYXN0Q0dJIGFwcGxpY2F0aW9uIG9uIFdpbmRvd3MuCiAgICAgIChUaGlzIGRpcmVjdGl2ZSBpcyBub3QgcmVzcGVjdGVkIG9uIFVuaXgsIHdoZXJlIEFGX1VOSVggZGVmYXVsdHMKICAgICAgd2lsbCBhcHBseS4pPC9wPgoKICAgICAgPHA+VGhpcyBzZXR0aW5nIHdpbGwgYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucyBzcGF3bmVkIGZvciB0aGlzCiAgICAgIHNlcnZlciBvciB2aXJ0dWFsIGhvc3QuICBVc2UgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkRXJyb3JTY2FuSW50ZXJ2YWwiIGlkPSJGY2dpZEVycm9yU2NhbkludGVydmFsIj5GY2dpZEVycm9yU2NhbkludGVydmFsPC9hPiA8YSBuYW1lPSJmY2dpZGVycm9yc2NhbmludGVydmFsIiBpZD0iZmNnaWRlcnJvcnNjYW5pbnRlcnZhbCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+c2NhbiBpbnRlcnZhbCBmb3IgZXhpdGVkIHByb2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRFcnJvclNjYW5JbnRlcnZhbCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkRXJyb3JTY2FuSW50ZXJ2YWwgMzwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBpcyB0aGUgaW50ZXJ2YWwgYXQgd2hpY2ggdGhlIG1vZHVsZSB3aWxsIGhhbmRsZQogICAgICBwZW5kaW5nIHByb2Nlc3MgdGVybWluYXRpb24uICBUZXJtaW5hdGlvbiBpcyBwZW5kaW5nIGZvcgogICAgICBhbnkgcHJvY2Vzc2VzIHdoaWNoIGhhdmUgZXhjZWVkZWQgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT4gb3IKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+LjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRGaXhQYXRoaW5mbyIgaWQ9IkZjZ2lkRml4UGF0aGluZm8iPkZjZ2lkRml4UGF0aGluZm88L2E+IDxhIG5hbWU9ImZjZ2lkZml4cGF0aGluZm8iIGlkPSJmY2dpZGZpeHBhdGhpbmZvIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5NaXJyb3IgdGhlIFBIUCA8Y29kZT5jZ2kuZml4X3BhdGhpbmZvPC9jb2RlPgogICAgc2V0dGluZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZEZpeFBhdGhpbmZvIDE8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRGaXhQYXRoaW5mbyAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5UaGlzIGRpcmVjdGl2ZSBlbmFibGVzIHNwZWNpYWwgPGNvZGU+U0NSSVBUX05BTUU8L2NvZGU+IAogICAgICBwcm9jZXNzaW5nIHdoaWNoIGFsbG93cyBQSFAgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHBhdGggaW5mb3JtYXRpb24uCiAgICAgIFRoZSBzZXR0aW5nIG9mIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZjZ2lkRml4UGF0aGluZm88L2NvZGU+CiAgICAgIHNob3VsZCBtaXJyb3IgdGhlIDxjb2RlPmNnaS5maXhfcGF0aGluZm88L2NvZGU+IHNldHRpbmcgaW4gCiAgICAgIDxjb2RlPnBocC5pbmk8L2NvZGU+LjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJZGxlU2NhbkludGVydmFsIiBpZD0iRmNnaWRJZGxlU2NhbkludGVydmFsIj5GY2dpZElkbGVTY2FuSW50ZXJ2YWw8L2E+IDxhIG5hbWU9ImZjZ2lkaWRsZXNjYW5pbnRlcnZhbCIgaWQ9ImZjZ2lkaWRsZXNjYW5pbnRlcnZhbCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+c2NhbiBpbnRlcnZhbCBmb3IgaWRsZSB0aW1lb3V0IHByb2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJZGxlU2NhbkludGVydmFsIDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJZGxlU2NhbkludGVydmFsIDEyMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBpcyB0aGUgaW50ZXJ2YWwgYXQgd2hpY2ggdGhlIG1vZHVsZSB3aWxsIHNlYXJjaCBmb3IKICAgICAgcHJvY2Vzc2VzIHdoaWNoIGhhdmUgZXhjZWVkZWQgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGlkbGV0aW1lb3V0Ij5GY2dpZElkbGVUaW1lb3V0PC9hPjwvY29kZT4gb3IKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkcHJvY2Vzc2xpZmV0aW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT48L2NvZGU+LjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJZGxlVGltZW91dCIgaWQ9IkZjZ2lkSWRsZVRpbWVvdXQiPkZjZ2lkSWRsZVRpbWVvdXQ8L2E+IDxhIG5hbWU9ImZjZ2lkaWRsZXRpbWVvdXQiIGlkPSJmY2dpZGlkbGV0aW1lb3V0Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5BbiBpZGxlIEZhc3RDR0kgYXBwbGljYXRpb24gd2lsbCBiZSBraWxsZWQgYWZ0ZXIgRmNnaWRJZGxlVGltZW91dDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZElkbGVUaW1lb3V0IDxlbT5zZWNvbmRzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJZGxlVGltZW91dCAzMDA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QXBwbGljYXRpb24gcHJvY2Vzc2VzIHdoaWNoIGhhdmUgbm90IGhhbmRsZWQgYSByZXF1ZXN0IGZvciB0aGlzIAogICAgICBwZXJpb2Qgb2YgdGltZSB3aWxsIGJlIHRlcm1pbmF0ZWQsIGlmIHRoZSBudW1iZXIgb2YgcHJvY2Vzc3NlcyBmb3IgdGhlCiAgICAgIGNsYXNzIGV4Y2VlZHMKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWlucHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPi4KICAgICAgQSB2YWx1ZSBvZiA8Y29kZT4wPC9jb2RlPiBkaXNhYmxlcyB0aGUgY2hlY2suPC9wPgoKICAgICAgPHA+VGhpcyBzZXR0aW5nIHdpbGwgYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucyBzcGF3bmVkIGZvciB0aGlzCiAgICAgIHNlcnZlciBvciB2aXJ0dWFsIGhvc3QuICBVc2UgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkSW5pdGlhbEVudiIgaWQ9IkZjZ2lkSW5pdGlhbEVudiI+RmNnaWRJbml0aWFsRW52PC9hPiA8YSBuYW1lPSJmY2dpZGluaXRpYWxlbnYiIGlkPSJmY2dpZGluaXRpYWxlbnYiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgYW5kIG9wdGlvbmFsIHZhbHVlIHRvIHBhc3MgdG8gRmFzdENHSS48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJbml0aWFsRW52IDxlbT5uYW1lPC9lbT4gWyA8ZW0+dmFsdWU8L2VtPiBdPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPjxlbT5ub25lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VXNlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZjZ2lkSW5pdGlhbEVudjwvY29kZT4gdG8gZGVmaW5lIGVudmlyb25tZW50IAogICAgICB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgRmFzdENHSSBhcHBsaWNhdGlvbi4gIFRoaXMgZGlyZWN0aXZlIGNhbiAKICAgICAgYmUgdXNlZCBtdWx0aXBsZSB0aW1lcy48L3A+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZSAKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY21kb3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPjwvY29kZT4gdG8gYXBwbHkKICAgICAgdGhpcyBzZXR0aW5nIHRvIGEgc2luZ2xlIGFwcGxpY2F0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJT1RpbWVvdXQiIGlkPSJGY2dpZElPVGltZW91dCI+RmNnaWRJT1RpbWVvdXQ8L2E+IDxhIG5hbWU9ImZjZ2lkaW90aW1lb3V0IiBpZD0iZmNnaWRpb3RpbWVvdXQiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkNvbW11bmljYXRpb24gdGltZW91dCB0byBGYXN0Q0dJIHNlcnZlcjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZElPVGltZW91dCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkSU9UaW1lb3V0IDQwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIG1heGltdW0gcGVyaW9kIG9mIHRpbWUgdGhlIG1vZHVsZSB3aWxsIHdhaXQKICAgICAgd2hpbGUgdHJ5aW5nIHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0byBhIEZhc3RDR0kgYXBwbGljYXRpb24uPC9wPgoKICAgICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU8L2gzPgogICAgICA8cD5UaGUgRmFzdENHSSBhcHBsaWNhdGlvbiBtdXN0IGJlZ2luIGdlbmVyYXRpbmcgdGhlIHJlc3BvbnNlIHdpdGhpbgogICAgICB0aGlzIHBlcmlvZCBvZiB0aW1lLiAgSW5jcmVhc2UgdGhpcyBkaXJlY3RpdmUgYXMgbmVjZXNzYXJ5IHRvIGhhbmRsZQogICAgICBhcHBsaWNhdGlvbnMgd2hpY2ggdGFrZSBhIHJlbGF0aXZlbHkgbG9uZyBwZXJpb2Qgb2YgdGltZSB0byByZXNwb25kLjwvcD4KICAgICAgPC9kaXY+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZSAKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY21kb3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPjwvY29kZT4gdG8gYXBwbHkKICAgICAgdGhpcyBzZXR0aW5nIHRvIGEgc2luZ2xlIGFwcGxpY2F0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRJUENEaXIiIGlkPSJGY2dpZElQQ0RpciI+RmNnaWRJUENEaXI8L2E+IDxhIG5hbWU9ImZjZ2lkaXBjZGlyIiBpZD0iZmNnaWRpcGNkaXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSBmb3IgQUZfVU5JWCBzb2NrZXRzIChVbml4KSBvciBwaXBlcyAoV2luZG93cyk8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJUENEaXIgPGVtPnBhdGhuYW1lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRJUENEaXIgbG9ncy9mY2dpZHNvY2s8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgbW9kdWxlIHVzZXMgQUZfVU5JWCBzb2NrZXRzIG9yIG5hbWVkIHBpcGVzLCBkZXBlbmRpbmcgb24gdGhlCiAgICAgIHBsYXRmb3JtLCB0byBjb21tdW5pY2F0ZSB3aXRoIEZhc3RDR0kgYXBwbGljYXRpb25zLiAgVGhpcyBkaXJlY3RpdmUKICAgICAgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhvc2Ugc29ja2V0cyBvciBuYW1lZCBwaXBlcyB3aWxsIGJlCiAgICAgIGNyZWF0ZWQuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZE1heFByb2Nlc3NlcyIgaWQ9IkZjZ2lkTWF4UHJvY2Vzc2VzIj5GY2dpZE1heFByb2Nlc3NlczwvYT4gPGEgbmFtZT0iZmNnaWRtYXhwcm9jZXNzZXMiIGlkPSJmY2dpZG1heHByb2Nlc3NlcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+bWF4aW11bSBudW1iZXIgb2YgRmFzdENHSSBhcHBsaWNhdGlvbiBwcm9jZXNzZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXMgPGVtPnZhbHVlPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXMgMTAwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBkaXJlY3RpdmUgc2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgRmFzdENHSSBhcHBsaWNhdGlvbgogICAgICBwcm9jZXNzZXMgd2hpY2ggY2FuIGJlIGFjdGl2ZSBhdCBvbmUgdGltZS48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWF4UHJvY2Vzc2VzUGVyQ2xhc3MiIGlkPSJGY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzIj5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzPC9hPiA8YSBuYW1lPSJmY2dpZG1heHByb2Nlc3Nlc3BlcmNsYXNzIiBpZD0iZmNnaWRtYXhwcm9jZXNzZXNwZXJjbGFzcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWF4IHByb2Nlc3MgY291bnQgb2Ygb25lIGNsYXNzIG9mIEZhc3RDR0kgYXBwbGljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhQcm9jZXNzZXNQZXJDbGFzcyA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1heFByb2Nlc3Nlc1BlckNsYXNzIDEwMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5BIHByb2Nlc3MgY2xhc3MgaXMgdGhlIHNldCBvZiBwcm9jZXNzZXMgd2hpY2ggd2VyZSBzdGFydGVkIGJ5IHRoZSBzYW1lCiAgICAgIGNvbW1hbmQsIGFuZCBzaGFyZSBjZXJ0YWluIG90aGVyIGNoYXJhY3RlcmlzdGljcyBzdWNoIGFzIHZpcnR1YWwgaG9zdCBhbmQKICAgICAgaWRlbnRpdHkuICBUaGlzIGRpcmVjdGl2ZSBzZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwcm9jZXNzZXMgaW4gYSBjbGFzcwogICAgICB0aGF0IGNhbiBiZSBzdGFydGVkLjwvcD4KCiAgICAgIDxwPlRoaXMgc2V0dGluZyB3aWxsIGFwcGx5IHRvIGFsbCBhcHBsaWNhdGlvbnMgc3Bhd25lZCBmb3IgdGhpcwogICAgICBzZXJ2ZXIgb3IgdmlydHVhbCBob3N0LiAgVXNlIAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRjbWRvcHRpb25zIj5GY2dpZENtZE9wdGlvbnM8L2E+PC9jb2RlPiB0byBhcHBseQogICAgICB0aGlzIHNldHRpbmcgdG8gYSBzaW5nbGUgYXBwbGljYXRpb24uPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZE1heFJlcXVlc3RJbk1lbSIgaWQ9IkZjZ2lkTWF4UmVxdWVzdEluTWVtIj5GY2dpZE1heFJlcXVlc3RJbk1lbTwvYT4gPGEgbmFtZT0iZmNnaWRtYXhyZXF1ZXN0aW5tZW0iIGlkPSJmY2dpZG1heHJlcXVlc3Rpbm1lbSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+bWF4aW11bSBzaXplIG9mIGEgcmVxdWVzdCB3aGljaCB3aWxsIGJlIGhlbGQgaW4gbWVtb3J5PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkTWF4UmVxdWVzdEluTWVtIDxlbT5ieXRlczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkTWF4UmVxdWVzdEluTWVtIDY1NTM2PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgbW9kdWxlIHJlYWRzIHRoZSBlbnRpcmUgcmVxdWVzdCBib2R5IGZyb20gdGhlIGNsaWVudAogICAgICBiZWZvcmUgc2VuZGluZyBpdCB0byB0aGUgYXBwbGljYXRpb24uICBOb3JtYWxseSB0aGUgcmVxdWVzdCBib2R5CiAgICAgIHdpbGwgYmUgc3RvcmVkIGluIG1lbW9yeS4gIE9uY2UgdGhlIGFtb3VudCBvZiByZXF1ZXN0IGJvZHkgcmVhZAogICAgICBmcm9tIHRoZSBjbGllbnQgZXhjZWVkcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GY2dpZE1heFJlcXVlc3RJbk1lbTwvY29kZT4KICAgICAgYnl0ZXMsIHRoZSByZW1haW5kZXIgb2YgdGhlIHJlcXVlc3QgYm9keSB3aWxsIGJlIHN0b3JlZCBpbiBhIAogICAgICB0ZW1wb3JhcnkgZmlsZS48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWF4UmVxdWVzdExlbiIgaWQ9IkZjZ2lkTWF4UmVxdWVzdExlbiI+RmNnaWRNYXhSZXF1ZXN0TGVuPC9hPiA8YSBuYW1lPSJmY2dpZG1heHJlcXVlc3RsZW4iIGlkPSJmY2dpZG1heHJlcXVlc3RsZW4iPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPm1heGltdW0gSFRUUCByZXF1ZXN0IGxlbmd0aDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1heFJlcXVlc3RMZW4gPGVtPmJ5dGVzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0TGVuIDEwNzM3NDE4MjQ8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+SWYgdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYm9keSBleGNlZWRzIHRoaXMgYW1vdW50LCB0aGUKICAgICAgcmVxdWVzdCB3aWxsIGZhaWwgd2l0aCA8Y29kZT41MDAgU2VydmVyIEVycm9yPC9jb2RlPi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWF4UmVxdWVzdHNQZXJQcm9jZXNzIiBpZD0iRmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MiPkZjZ2lkTWF4UmVxdWVzdHNQZXJQcm9jZXNzPC9hPiA8YSBuYW1lPSJmY2dpZG1heHJlcXVlc3RzcGVycHJvY2VzcyIgaWQ9ImZjZ2lkbWF4cmVxdWVzdHNwZXJwcm9jZXNzIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5NYXggcmVxdWVzdHMgaGFuZGxlZCBieSBlYWNoIEZhc3RDR0kgYXBwbGljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MgPGVtPnZhbHVlPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNYXhSZXF1ZXN0c1BlclByb2Nlc3MgMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5GYXN0Q0dJIGFwcGxpY2F0aW9uIHByb2Nlc3NlcyB3aWxsIGJlIHRlcm1pbmF0ZWQgYWZ0ZXIgaGFuZGxpbmcKICAgICAgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmVxdWVzdHMuICBBIHZhbHVlIG9mIDxjb2RlPjA8L2NvZGU+CiAgICAgIGRpc2FibGVzIHRoZSBjaGVjay48L3A+CiAgICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgICAgPHA+QSB2YWx1ZSBvZiA8Y29kZT4tMTwvY29kZT4gaXMgY3VycmVudGx5IGFjY2VwdGVkIGZvciBlYXNlIG9mCiAgICAgIG1pZ3JhdGlvbiBmb3IgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuICBJdCBpcyB0cmVhdGVkIHRoZSBzYW1lIGFzCiAgICAgIDxjb2RlPjA8L2NvZGU+LjwvcD4KICAgICAgPC9kaXY+CiAgICAgIDxwPkNlcnRhaW4gYXBwbGljYXRpb25zLCBub3RhYmx5IFBIUCBhcyBGYXN0Q0dJLCBoYXZlIHRoZWlyIG93bgogICAgICBmYWNpbGl0eSBmb3IgdGVybWluYXRpbmcgYWZ0ZXIgaGFuZGxpbmcgYSBjZXJ0YWluIG51bWJlciBvZgogICAgICByZXF1ZXN0cy4gIFRoaXMgZGlyZWN0aXZlIGNhbiBiZSB1c2VkIHRvIGF2b2lkIHNlbmRpbmcKICAgICAgYWRkaXRpb25hbCByZXF1ZXN0cyB0byB0aGUgYXBwbGljYXRpb24gYWZ0ZXIgaXQgaGFzIGhhbmRsZWQgaXRzCiAgICAgIGxpbWl0LjwvcD4KICAgICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU8L2gzPgogICAgICA8cD5JZiB0aGlzIGlzIHNldCBzdWNoIHRoYXQgZnJlcXVlbnQgcHJvY2VzcyBjcmVhdGlvbiB3aWxsIGJlCiAgICAgIHJlcXVpcmVkLCB5b3Ugd2lsbCBsaWtlbHkgbmVlZCB0byBhZGp1c3QgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT4KICAgICAgb3Igb3RoZXIgc2NvcmUtcmVsYXRlZCBkaXJlY3RpdmVzIHRvIGFsbG93IG1vcmUgZnJlcXVlbnQgcHJvY2VzcwogICAgICBjcmVhdGlvbi48L3A+CiAgICAgIDwvZGl2PgoKICAgICAgPHA+VGhpcyBzZXR0aW5nIHdpbGwgYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucyBzcGF3bmVkIGZvciB0aGlzCiAgICAgIHNlcnZlciBvciB2aXJ0dWFsIGhvc3QuICBVc2UgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3MiIGlkPSJGY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzIj5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzPC9hPiA8YSBuYW1lPSJmY2dpZG1pbnByb2Nlc3Nlc3BlcmNsYXNzIiBpZD0iZmNnaWRtaW5wcm9jZXNzZXNwZXJjbGFzcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+TWluIHByb2Nlc3MgY291bnQgb2Ygb25lIGNsYXNzIG9mIEZhc3RDR0kgYXBwbGljYXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRNaW5Qcm9jZXNzZXNQZXJDbGFzcyA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE1pblByb2Nlc3Nlc1BlckNsYXNzIDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+QSBwcm9jZXNzIGNsYXNzIGlzIHRoZSBzZXQgb2YgcHJvY2Vzc2VzIHdoaWNoIHdlcmUgc3RhcnRlZCBieSB0aGUgc2FtZQogICAgICBjb21tYW5kLCBhbmQgc2hhcmUgY2VydGFpbiBvdGhlciBjaGFyYWN0ZXJpc3RpY3Mgc3VjaCBhcyB2aXJ0dWFsIGhvc3QgYW5kCiAgICAgIGlkZW50aXR5LiAgVGhpcyBkaXJlY3RpdmUgc2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgcHJvY2Vzc2VzIGluIGEgY2xhc3MKICAgICAgdGhhdCB3aWxsIGJlIHJldGFpbmVkIGFmdGVyIGZpbmlzaGluZyByZXF1ZXN0cy48L3A+CgogICAgICA8cD5UaGlzIHNldHRpbmcgd2lsbCBhcHBseSB0byBhbGwgYXBwbGljYXRpb25zIHNwYXduZWQgZm9yIHRoaXMKICAgICAgc2VydmVyIG9yIHZpcnR1YWwgaG9zdC4gIFVzZSAKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkY21kb3B0aW9ucyI+RmNnaWRDbWRPcHRpb25zPC9hPjwvY29kZT4gdG8gYXBwbHkKICAgICAgdGhpcyBzZXR0aW5nIHRvIGEgc2luZ2xlIGFwcGxpY2F0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRPdXRwdXRCdWZmZXJTaXplIiBpZD0iRmNnaWRPdXRwdXRCdWZmZXJTaXplIj5GY2dpZE91dHB1dEJ1ZmZlclNpemU8L2E+IDxhIG5hbWU9ImZjZ2lkb3V0cHV0YnVmZmVyc2l6ZSIgaWQ9ImZjZ2lkb3V0cHV0YnVmZmVyc2l6ZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+Q0dJIG91dHB1dCBidWZmZXIgc2l6ZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZE91dHB1dEJ1ZmZlclNpemUgPGVtPmJ5dGVzPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRPdXRwdXRCdWZmZXJTaXplIDY1NTM2PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgaXMgdGhlIG1heGltdW0gYW1vdW50IG9mIHJlc3BvbnNlIGRhdGEgdGhlIG1vZHVsZSB3aWxsIHJlYWQKICAgICAgZnJvbSB0aGUgRmFzdENHSSBhcHBsaWNhdGlvbiBiZWZvcmUgZmx1c2hpbmcgdGhlIGRhdGEgdG8gdGhlIGNsaWVudC48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkUGFzc0hlYWRlciIgaWQ9IkZjZ2lkUGFzc0hlYWRlciI+RmNnaWRQYXNzSGVhZGVyPC9hPiA8YSBuYW1lPSJmY2dpZHBhc3NoZWFkZXIiIGlkPSJmY2dpZHBhc3NoZWFkZXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkhlYWRlciBuYW1lIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIEZhc3RDR0kgYXMgZW52aXJvbm1lbnQgdmFyaWFibGUuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkUGFzc0hlYWRlciA8ZW0+bmFtZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPjxlbT5ub25lPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhpcyBkaXJlY3RpdmUgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgcmVxdWVzdCBoZWFkZXIgd2hpY2gKICAgICAgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIEZhc3RDR0kgYXBwbGljYXRpb24gYXMgYW4gZW52aXJvbm1lbnQKICAgICAgdmFyaWFibGUuICBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSB3aWxsIG1hdGNoIHRoZSBuYW1lIAogICAgICBzcGVjaWZpZWQgb24gdGhpcyBkaXJlY3RpdmUsIHdpdGggaHlwaGVucyBjb252ZXJ0ZWQgdG8gCiAgICAgIHVuZGVyc2NvcmVzLCBhbmQgbm8gY2FzZSBjb252ZXJzaW9uIHBlcmZvcm1lZC48L3A+CgogICAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90ZTwvaDM+CiAgICAgIDxwPk1vc3QgcmVxdWVzdCBoZWFkZXJzIGFyZSBhbHJlYWR5IGF2YWlsYWJsZSB0byB0aGUgYXBwbGljYXRpb24KICAgICAgYXMgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQgZ2VuZXJhbGx5IGFyZSBwcmVmaXhlZCB3aXRoIAogICAgICA8Y29kZT5IVFRQXzwvY29kZT4uICAoTm90YWJsZSBleGNlcHRpb25zIGFyZSA8Y29kZT5Db250ZW50LXR5cGU8L2NvZGU+CiAgICAgIGFuZCA8Y29kZT5Db250ZW50LWxlbmd0aDwvY29kZT4sIHdoaWNoIGRvIG5vdCBoYXZlIHRoZQogICAgICA8Y29kZT5IVFRQXzwvY29kZT4gcHJlZml4LikgIFRodXMsIHRoaXMgZGlyZWN0aXZlIGlzIG9ubHkgcmVxdWlyZWQKICAgICAgZm9yIHJlcXVlc3QgaGVhZGVycyB0aGF0IGFyZSBwdXJwb3NlZnVsbHkgb21pdHRlZCwgc3VjaCBhcwogICAgICA8Y29kZT5BdXRob3JpemF0aW9uPC9jb2RlPiBhbmQgPGNvZGU+UHJveHktQXV0aG9yaXphdGlvbjwvY29kZT4uCiAgICAgIE9ubHkgcGFzcyB0aGVzZSByZXF1ZXN0IGhlYWRlcnMgaWYgYWJzb2x1dGVseSByZXF1aXJlZC48L3A+CiAgICAgIDwvZGl2PgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJGY2dpZFByb2Nlc3NMaWZlVGltZSIgaWQ9IkZjZ2lkUHJvY2Vzc0xpZmVUaW1lIj5GY2dpZFByb2Nlc3NMaWZlVGltZTwvYT4gPGEgbmFtZT0iZmNnaWRwcm9jZXNzbGlmZXRpbWUiIGlkPSJmY2dpZHByb2Nlc3NsaWZldGltZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+bWF4aW11bSBGYXN0Q0dJIGFwcGxpY2F0aW9uIHByb2Nlc3MgbGlmZXRpbWU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRQcm9jZXNzTGlmZVRpbWUgPGVtPnNlY29uZHM8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFByb2Nlc3NMaWZlVGltZSAzNjAwPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPklkbGUgYXBwbGljYXRpb24gcHJvY2Vzc2VzIHdoaWNoIGhhdmUgZXhpc3RlZCBmb3IgZ3JlYXRlcgogICAgICB0aGFuIHRoaXMgdGltZSB3aWxsIGJlIHRlcm1pbmF0ZWQsIGlmIHRoZSBudW1iZXIgb2YgcHJvY2Vzc3NlcyBmb3IgdGhlCiAgICAgIGNsYXNzIGV4Y2VlZHMKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkbWlucHJvY2Vzc2VzcGVyY2xhc3MiPkZjZ2lkTWluUHJvY2Vzc2VzUGVyQ2xhc3M8L2E+PC9jb2RlPi4KICAgICAgQSB2YWx1ZSBvZiA8Y29kZT4wPC9jb2RlPiBkaXNhYmxlcyB0aGUgY2hlY2suPC9wPgoKICAgICAgPHA+VGhpcyBzZXR0aW5nIHdpbGwgYXBwbHkgdG8gYWxsIGFwcGxpY2F0aW9ucyBzcGF3bmVkIGZvciB0aGlzCiAgICAgIHNlcnZlciBvciB2aXJ0dWFsIGhvc3QuICBVc2UgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZGNtZG9wdGlvbnMiPkZjZ2lkQ21kT3B0aW9uczwvYT48L2NvZGU+IHRvIGFwcGx5CiAgICAgIHRoaXMgc2V0dGluZyB0byBhIHNpbmdsZSBhcHBsaWNhdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkUHJvY2Vzc1RhYmxlRmlsZSIgaWQ9IkZjZ2lkUHJvY2Vzc1RhYmxlRmlsZSI+RmNnaWRQcm9jZXNzVGFibGVGaWxlPC9hPiA8YSBuYW1lPSJmY2dpZHByb2Nlc3N0YWJsZWZpbGUiIGlkPSJmY2dpZHByb2Nlc3N0YWJsZWZpbGUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPnNoYXJlZCBtZW1vcnkgZmlsZSBwYXRoPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkUHJvY2Vzc1RhYmxlRmlsZSA8ZW0+cGF0aG5hbWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFByb2Nlc3NUYWJsZUZpbGUgbG9ncy9mY2dpZF9zaG08L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoaXMgbW9kdWxlIHVzZXMgc2hhcmVkIG1lbW9yeSBvbiBVbml4IHRvIG1haW50YWluIHN0YXRlIHdoaWNoCiAgICAgIGlzIHNoYXJlZCBiZXR3ZWVuIGh0dHBkIHByb2Nlc3Nlcy4gIFRoaXMgZGlyZWN0aXZlIHNwZWNpZmllcyB0aGUKICAgICAgbmFtZSBvZiB0aGUgc2hhcmVkIG1lbW9yeSBmaWxlLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRTcGF3blNjb3JlIiBpZD0iRmNnaWRTcGF3blNjb3JlIj5GY2dpZFNwYXduU2NvcmU8L2E+IDxhIG5hbWU9ImZjZ2lkc3Bhd25zY29yZSIgaWQ9ImZjZ2lkc3Bhd25zY29yZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+RWFjaCBzcGF3biBhZGRzIHRoaXMgdmFsdWUgdG8gdGhlIHByb2Nlc3MgYWN0aXZpdHkgc2NvcmUuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkU3Bhd25TY29yZSA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFNwYXduU2NvcmUgMTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+TG93ZXIgdmFsdWVzIG9mIHRoaXMgZGlyZWN0aXZlIGluY3JlYXNlIHRoZSBhbGxvd2VkIHNwYXduIHJhdGUuPC9wPgoKICAgICAgPHA+UmVmZXIgdG8gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT4KICAgICAgZGlyZWN0aXZlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRTcGF3blNjb3JlVXBMaW1pdCIgaWQ9IkZjZ2lkU3Bhd25TY29yZVVwTGltaXQiPkZjZ2lkU3Bhd25TY29yZVVwTGltaXQ8L2E+IDxhIG5hbWU9ImZjZ2lkc3Bhd25zY29yZXVwbGltaXQiIGlkPSJmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5NYXhpbXVtIHZhbHVlIG9mIHRoZSBwcm9jZXNzIGFjdGl2aXR5IHNjb3JlIHdoaWNoIGFsbG93cwogICAgYSBzcGF3biB0byBvY2N1cjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFNwYXduU2NvcmVVcExpbWl0IDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkU3Bhd25TY29yZVVwTGltaXQgMTA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPkEgcHJvY2VzcyBhY3Rpdml0eSBzY29yZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIEZhc3RDR0kgYXBwbGljYXRpb247CiAgICAgIHRoZSBzY29yZSBpcyB1c2VkIHRvIGNvbnRyb2wgdGhlIHJhdGUgb2Ygc3Bhd25pbmcgaW4gb3JkZXIgdG8gYXZvaWQgCiAgICAgIHBsYWNpbmcgdG9vIG11Y2ggbG9hZCBvbiB0aGUgc3lzdGVtLCBwYXJ0aWN1bGFybHkgZm9yIGFwcGxpY2F0aW9ucyB0aGF0CiAgICAgIGFyZSByZXBlYXRlZGx5IGV4aXRpbmcgYWJub3JtYWxseS48L3A+CgogICAgICA8cD5UaGUgdmFsdWUgb2YgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkc3Bhd25zY29yZSI+RmNnaWRTcGF3blNjb3JlPC9hPjwvY29kZT4KICAgICAgaXMgYWRkZWQgdG8gdGhlIHNjb3JlIGZvciBldmVyeSBzcGF3bmVkIGFwcGxpY2F0aW9uIHByb2Nlc3MuICBUaGUgdmFsdWUgb2YgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHRlcm1pbmF0aW9uc2NvcmUiPkZjZ2lkVGVybWluYXRpb25TY29yZTwvYT48L2NvZGU+IGlzIGFkZGVkCiAgICAgIHRvIHRoZSBzY29yZSBmb3IgZXZlcnkgdGVybWluYXRlZCBhcHBsaWNhdGlvbiBwcm9jZXNzLiAgVGhlIHZhbHVlIG9mCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHRpbWVzY29yZSI+RmNnaWRUaW1lU2NvcmU8L2E+PC9jb2RlPiBpcyBzdWJ0cmFjdGVkCiAgICAgIGZyb20gdGhlIHNjb3JlIGV2ZXJ5IHNlY29uZC48L3A+CgogICAgICA8cD5XaGVuIHRoZSBjdXJyZW50IHNjb3JlIGlzIGhpZ2hlciB0aGFuIHRoZSB2YWx1ZSBvZgogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9jb2RlPiwgbm8gYWRkaXRpb25hbCBhcHBsaWNhdGlvbgogICAgICBwcm9jZXNzZXMgd2lsbCBiZSBzcGF3bmVkOyBzdWJzZXF1ZW50IHJlcXVlc3RzIG11c3Qgd2FpdCB1bnRpbCBhbiBleGlzdGluZyAKICAgICAgcHJvY2VzcyBpcyBmcmVlIG9yIHVudGlsIHRoZSBzY29yZSBkZWNyZWFzZXMgYmVsb3cgdGhlIGxpbWl0LjwvcD4KCiAgICAgIDxwPklmIHRoZSBsaW1pdCBpcyByZWFjaGVkIHVuZGVyIG5vcm1hbCBsb2FkLCBpdCBtYXkgbm90IGJlIHN1ZmZpY2llbnQgdG8KICAgICAgc2ltcGx5IGluY3JlYXNlIHRoZSBsaW1pdCwgYXMgdGhhdCB3b3VsZCBvbmx5IGRlbGF5IHRoZSBhbW91bnQgb2YgdGltZSAKICAgICAgYmVmb3JlIHRoZSBsaW1pdCBpcyByZWFjaGVkIGFnYWluLiAgRGVjcmVhc2UgdGhlIHZhbHVlIG9mIAogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JlIj5GY2dpZFNwYXduU2NvcmU8L2E+PC9jb2RlPiBhbmQvb3IgCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHRlcm1pbmF0aW9uc2NvcmUiPkZjZ2lkVGVybWluYXRpb25TY29yZTwvYT48L2NvZGU+LCBvcgogICAgICBpbmNyZWFzZSB0aGUgdmFsdWUgb2YgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2ZjZ2lkdGltZXNjb3JlIj5GY2dpZFRpbWVTY29yZTwvYT48L2NvZGU+LAogICAgICB0byBhbGxvdyBhIGhpZ2hlciByYXRlIG9mIHNwYXduaW5nLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRUZXJtaW5hdGlvblNjb3JlIiBpZD0iRmNnaWRUZXJtaW5hdGlvblNjb3JlIj5GY2dpZFRlcm1pbmF0aW9uU2NvcmU8L2E+IDxhIG5hbWU9ImZjZ2lkdGVybWluYXRpb25zY29yZSIgaWQ9ImZjZ2lkdGVybWluYXRpb25zY29yZSI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+RWFjaCB0ZXJtaW5hdGVkIHByb2Nlc3MgYWRkcyB0aGlzIHZhbHVlIHRvIHRoZSBwcm9jZXNzIGFjdGl2aXR5CiAgICBzY29yZS48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRUZXJtaW5hdGlvblNjb3JlIDxlbT52YWx1ZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkVGVybWluYXRpb25TY29yZSAyPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5Mb3dlciB2YWx1ZXMgb2YgdGhpcyBkaXJlY3RpdmUgaW5jcmVhc2UgdGhlIGFsbG93ZWQgc3Bhd24gcmF0ZS4gIE5lZ2F0aXZlCiAgICAgIHZhbHVlcyBjYW4gYmUgdXNlZnVsIGluIHNvbWUgY2lyY3Vtc3RhbmNlcywgc3VjaCBhcyBhbGxvd2luZyBwcm9jZXNzIAogICAgICByZXBsYWNlbWVudCB3aXRob3V0IGluY3JlYXNpbmcgdGhlIHNjb3JlLjwvcD4KCiAgICAgIDxwPlJlZmVyIHRvIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjZmNnaWRzcGF3bnNjb3JldXBsaW1pdCI+RmNnaWRTcGF3blNjb3JlVXBMaW1pdDwvYT48L2NvZGU+CiAgICAgIGRpcmVjdGl2ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkVGltZVNjb3JlIiBpZD0iRmNnaWRUaW1lU2NvcmUiPkZjZ2lkVGltZVNjb3JlPC9hPiA8YSBuYW1lPSJmY2dpZHRpbWVzY29yZSIgaWQ9ImZjZ2lkdGltZXNjb3JlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5BbW91bnQgc3VidHJhY3RlZCBmcm9tIHByb2Nlc3MgYWN0aXZpdHkgc2NvcmUgZWFjaCAKICAgIHNlY29uZDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFRpbWVTY29yZSA8ZW0+dmFsdWU8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFRpbWVTY29yZSAxPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZXJuYWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2ZjZ2lkPC90ZD48L3RyPgo8L3RhYmxlPgogICAgICA8cD5IaWdoZXIgdmFsdWVzIG9mIHRoaXMgZGlyZWN0aXZlIGluY3JlYXNlIHRoZSBhbGxvd2VkIHNwYXduIHJhdGUuPC9wPgoKICAgICAgPHA+UmVmZXIgdG8gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNmY2dpZHNwYXduc2NvcmV1cGxpbWl0Ij5GY2dpZFNwYXduU2NvcmVVcExpbWl0PC9hPjwvY29kZT4KICAgICAgZGlyZWN0aXZlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KICAgIAo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iRmNnaWRXcmFwcGVyIiBpZD0iRmNnaWRXcmFwcGVyIj5GY2dpZFdyYXBwZXI8L2E+IDxhIG5hbWU9ImZjZ2lkd3JhcHBlciIgaWQ9ImZjZ2lkd3JhcHBlciI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+VGhlIENHSSB3cmFwcGVyIHNldHRpbmc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+RmNnaWRXcmFwcGVyIDxlbT5jb21tYW5kPC9lbT4gWyA8ZW0+c3VmZml4PC9lbT4gXSBbIHZpcnR1YWwgXTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT48ZW0+bm9uZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdCwgZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVybmFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9mY2dpZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgICAgPHA+VGhlIGdpdmVuIGNvbW1hbmQgaXMgdXNlZCB0byBzcGF3biBGQ0dJIHNlcnZlciBwcm9jZXNzZXMuIElmIHRoaXMgZGlyZWN0aXZlCiAgICAgIGlzIG5vdCB1c2VkLCB0aGUgZmlsZSBwb2ludGVkIHRvIGJ5IHRoZSByZXF1ZXN0IFVSTCB3aWxsIGJlIHVzZWQgaW5zdGVhZC4KICAgICAgT3B0aW9ucyBmb3IgdGhlIGNvbW1hbmQgY2FuIGJlIGluY2x1ZGVkIHVzaW5nIHF1b3RhdGlvbiBtYXJrcyBzdXJyb3VuZGluZwogICAgICB0aGUgY29tbWFuZCBhbmQgb3B0aW9ucy48L3A+CiAgICAgIDxwPlRoZSBvcHRpb25hbCA8Y29kZT5zdWZmaXg8L2NvZGU+IGFyZ3VtZW50IHJlc3RyaWN0cyB0aGUgdXNlIG9mIHRoaXMgRkNHSQogICAgICBzZXJ2ZXIgdG8gYWxsIFVSTHMgd2l0aCB0aGUgZ2l2ZW4gZXhhY3QgcGF0aCBzdWZmaXguIEEgc3VmZml4IG5lZWRzIHRvIHN0YXJ0CiAgICAgIHdpdGggJzxjb2RlPi48L2NvZGU+Jy48L3A+CiAgICAgIDxwPlRoZSA8Y29kZT52aXJ0dWFsPC9jb2RlPiBmbGFnIHNpZ25hbHMgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIGNoZWNrCiAgICAgIHdoZXRoZXIgdGhlIHJlcXVlc3QgVVJMIGFjdHVhbGx5IHBvaW50cyB0byBhbiBleGlzdGluZyBmaWxlLiBUaGUgb25seQogICAgICBmaWxlIHdoaWNoIG5lZWRzIHRvIGV4aXN0IGlzIHRoZSB3cmFwcGVyIGl0c2VsZi48L3A+CiAgICAgIDxwPlRoZSBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMuIEEgd3JhcHBlciBkZWZpbmVkIHdpdGhvdXQgYSBzdWZmaXgKICAgICAgaXMgdXNlZCBhcyBhIGRlZmF1bHQgaW4gY2FzZSBubyBzdWZmaXggbWF0Y2hlcy48L3A+CiAgICAKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkZjZ2lkWm9tYmllU2NhbkludGVydmFsIiBpZD0iRmNnaWRab21iaWVTY2FuSW50ZXJ2YWwiPkZjZ2lkWm9tYmllU2NhbkludGVydmFsPC9hPiA8YSBuYW1lPSJmY2dpZHpvbWJpZXNjYW5pbnRlcnZhbCIgaWQ9ImZjZ2lkem9tYmllc2NhbmludGVydmFsIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5zY2FuIGludGVydmFsIGZvciB6b21iaWUgcHJvY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5GY2dpZFpvbWJpZVNjYW5JbnRlcnZhbCA8ZW0+c2Vjb25kczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkZjZ2lkWm9tYmllU2NhbkludGVydmFsIDM8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlcm5hbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmNnaWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICAgIDxwPlRoZSBtb2R1bGUgY2hlY2tzIGZvciBleGl0ZWQgRmFzdENHSSBhcHBsaWNhdGlvbnMgYXQgdGhpcyBpbnRlcnZhbC4KICAgICAgRHVyaW5nIHRoaXMgcGVyaW9kIG9mIHRpbWUsIHRoZSBhcHBsaWNhdGlvbiBtYXkgZXhpc3QgaW4gdGhlIHByb2Nlc3MKICAgICAgdGFibGUgYXMgYSB6b21iaWUgKG9uIFVuaXgpLjwvcD4KICAgIAo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9mY2dpZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAwOSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+