iwillwen / blobimage Goto Github PK
View Code? Open in Web Editor NEWLoad images as blob and store them in buffer of the bowser
License: Other
Load images as blob and store them in buffer of the bowser
License: Other
Test case:
var blob = blobImage('http://weknowyourdreams.com/images/cheese/cheese-02.jpg');
blob.onload = function() {
blob.toDataURL(function(err, dataURL) {
console.log(dataURL);
});
};
Resultant dataURL:
data:text/html;base64,77u/PCFkb2N0eXBlIGh0bWw+DQo8aGVhZD4NCgk8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQoJCQ0KCTx0aXRsZT5JbnRlcnByZXRhdGlvbiBvZiBhIGRyZWFtIGluIHdoaWNoIHlvdSBzYXcgwqtDaGVlc2XCuzwvdGl0bGU+DQoJPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1lYW5pbmcgb2YgdGhlIGRyZWFtIGluIHdoaWNoIHlvdSBzZWUgdGhlIENoZWVzZS4gRGV0YWlsZWQgZGVzY3JpcHRpb24gYWJvdXQgZHJlYW0gQ2hlZXNlLiIgLz4NCgk8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0ibWVhbmluZyBvZiBkcmVhbXMsIGRyZWFtIGludGVycHJldGVyLCBkcmVhbSBpbnRlcnByZXRhdGlvbnMsZHJlYW0gaW50ZXJwcmV0YXRpb24gQ2hlZXNlIiAvPg0KCQ0KCTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPg0KCQ0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InNjcmVlbiIgaHJlZj0iY3NzL3N1cGVyZmlzaC5jc3MiIC8+IA0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL25pdm8tc2xpZGVyLmNzcyIgbWVkaWE9ImFsbCIgIC8+IA0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3R3ZWV0LmNzcyIgbWVkaWE9ImFsbCIgIC8+DQoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc3R5bGUuY3NzIj4NCgk8bGluayByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIGhyZWY9ImNzcy9sZXNzZnJhbWV3b3JrLmNzcyIvPg0KDQoJPHNjcmlwdCBzcmM9ImpzL21vZGVybml6ci0yLjUuMy5taW4uanMiPjwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHk+DQoJDQoJPCEtLSBXUkFQUEVSIC0tPg0KCTxkaXYgY2xhc3M9IndyYXBwZXIgY2YiPg0KCQk8aGVhZGVyIGNsYXNzPSJjZiI+DQoJCQkNCgkJCTxkaXYgaWQ9ImxvZ28iIGNsYXNzPSJjZiI+DQoJCQkJPGEgaHJlZj0iLyIgPjxpbWcgc3JjPSJsb2dvMi5wbmciLz48L2E+DQoJCQk8L2Rpdj4NCgkJCQ0KCQkJPCEtLSBuYXYgLS0+DQoJCQk8bmF2IGNsYXNzPSJjZiI+DQoJCQkJPHVsIGlkPSJuYXYiIGNsYXNzPSJzZi1tZW51Ij4NCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC9hLmh0bWwiPjxzcGFuPkE8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSIvbHQvYi5odG1sIj48c3Bhbj5CPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iL2x0L2MuaHRtbCI+PHNwYW4+Qzwvc3Bhbj48L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC9kLmh0bWwiPjxzcGFuPkQ8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSIvbHQvZS5odG1sIj48c3Bhbj5FPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iL2x0L2YuaHRtbCI+PHNwYW4+Rjwvc3Bhbj48L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC9nLmh0bWwiPjxzcGFuPkc8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSIvbHQvaC5odG1sIj48c3Bhbj5IPC9zcGFuPjwvYT48L2xpPg0KDQoJCQkJCTxsaT48YSBocmVmPSIvbHQvai5odG1sIj48c3Bhbj5KPC9zcGFuPjwvYT48L2xpPg0KDQoJCQkJCTxsaT48YSBocmVmPSIvbHQvbC5odG1sIj48c3Bhbj5MPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iL2x0L20uaHRtbCI+PHNwYW4+TTwvc3Bhbj48L2E+PC9saT4NCg0KCQkJCQk8bGk+PGEgaHJlZj0iL2x0L28uaHRtbCI+PHNwYW4+Tzwvc3Bhbj48L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC9wLmh0bWwiPjxzcGFuPlA8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSIvbHQvci5odG1sIj48c3Bhbj5SPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iL2x0L3MuaHRtbCI+PHNwYW4+Uzwvc3Bhbj48L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC90Lmh0bWwiPjxzcGFuPlQ8L3NwYW4+PC9hPjwvbGk+DQoNCgkJCQkJPGxpPjxhIGhyZWY9Ii9sdC93Lmh0bWwiPjxzcGFuPlc8L3NwYW4+PC9hPjwvbGk+DQoNCgkJCQk8L3VsPg0KCQkJCTxkaXYgaWQ9ImNvbWJvLWhvbGRlciI+PC9kaXY+DQoJCQk8L25hdj4NCgkJCTwhLS0gZW5kcyBuYXYgLS0+DQoJCQkNCgkJPC9oZWFkZXI+DQoJCQ0KCQkNCgkJPCEtLSBNQUlOIC0tPg0KCQk8ZGl2IHJvbGU9Im1haW4iIGlkPSJtYWluIiBjbGFzcz0iY2YiPg0KCQkJDQoJCQk8IS0tIHBvc3RzIGxpc3QgLS0+DQoJCQk8ZGl2IGlkPSJwb3N0cy1saXN0IiBjbGFzcz0iY2YiPiANCgkJCQ0KCQkJCTxhcnRpY2xlIGNsYXNzPSJjZiI+DQoJCQkJCTxkaXYgY2xhc3M9ImVudHJ5LWNvbnRlbnQgY2YiPg0KCQkJCQkJPGgyIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAyMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg4ODsiPkRyZWFtcyBJbnRlcnByZXRhdGlvbiAtIENoZWVzZTwvaDI+DQo8c2NyaXB0IGFzeW5jIHNyYz0iLy9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvanMvYWRzYnlnb29nbGUuanMiPjwvc2NyaXB0Pg0KPCEtLSBXZV9rbm93bl95b3VyX2RyZWFtcyAtLT4NCjxpbnMgY2xhc3M9ImFkc2J5Z29vZ2xlIg0KICAgICBzdHlsZT0iZGlzcGxheTpibG9jayINCiAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi0yNTg1NDA1NDgzOTE4Mzg2Ig0KICAgICBkYXRhLWFkLXNsb3Q9IjU2MDI5MDU3NDIiDQogICAgIGRhdGEtYWQtZm9ybWF0PSJhdXRvIj48L2lucz4NCjxzY3JpcHQ+DQooYWRzYnlnb29nbGUgPSB3aW5kb3cuYWRzYnlnb29nbGUgfHwgW10pLnB1c2goe30pOw0KPC9zY3JpcHQ+CQkJCQkJPGRpdiBjbGFzcz0ibWV0YSI+DQoJCQkJCQkJPHNwYW4gY2xhc3M9InVzZXIiPkFkZGVkOiAyIFNlcHRlbWJlcjwvc3Bhbj4NCgkJCQkJCQk8L2Rpdj4NCjxkaXYgc3R5bGU9InBhZGRpbmc6MHB4IDE1cHggMTBweCAwcHg7IGZsb2F0OmxlZnQ7Ij4NCjxpbWcgc3JjPSIvaW1hZ2VzL2NoZWVzZS9jaGVlc2UtMDkuanBnIiBzdHlsZT0id2lkdGg6IDMyMHB4OyI+DQo8L2Rpdj4NCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5OyBmb250LXNpemU6IGxhcmdlOyI+DQpDaGVlc2UgaXMgbm90IHNvbWV0aGluZyB0aGF0IGV2ZXJ5IGluZGl2aWR1YWwgY2FuIGFmZm9yZC4gRHJlYW1pbmcgb2YgY2hlZXNlIGNhbiBlaXRoZXIgYmUgZ29vZCBvciBiYWQsIGRlcGVuZGluZyBvbiBpdHMgcXVhbGl0eS4gV2hpbGUgZ29vZCBxdWFsaXR5IGNoZWVzZSBkZXBpY3RzIGdvb2QgYW5kIHBvc2l0aXZlIG5ld3MsIGl0IGlzIHRvdGFsbHkgb3Bwb3NpdGUgaWYgeW91IGRyZWFtIG9mIHVnbHkgYW5kIHJvdHRlbiBjaGVlc2UuIEFsc28sIHdoZW4geW91IGRyZWFtIG9mIGNoZWVzZSwgdHJ5IHJlbWVtYmVyaW5nIG90aGVyIHRoaW5ncyB0aGF0IHlvdSBlYXQgaXQgd2l0aC4gPGJyPg0KQ2hlZXNlIGRlcGljdHMgcmljaG5lc3MsIGx1eHVyeSwgb3Bwb3J0dW5pdHksIGZhbWUsIGZhdHMsIGV0Yy4gSSBhbSBzdXJlIGl0IGFsbCBzb3VuZHMgcG9zaXRpdmUgdG8geW91LiBCdXQgZG9u4oCZdCBmb3JnZXQ7IGNoZWVzZSBpcyBhbHNvIHVzZWQgYXMgYSBiYWl0IHRvIHRyYXAgcGVvcGxlLiA8YnI+DQpHZW5lcmFsbHksIGlmIGFuIHVubWFycmllZCB3b21hbiBzZWVzIGNoZWVzZSBpbiBoZXIgZHJlYW0sIGl0IGluZGljYXRlcyBhIG1hcnJpYWdlIHByb3Bvc2FsLCB3aGljaCBtYXkgY29tZSBmcm9tIGEgd2VhbHRoeSBhbmQgcG9wdWxhciBtYW4uIDxicj4NCklmIGFuIHVubWFycmllZCBtYW4gc2VlcyBjaGVlc2UgaW4gaGlzIGRyZWFtLCBpdCBpbmRpY2F0ZXMgcHJvcG9zYWwgZnJvbSBhIHdlYWx0aHkgd29tYW4sIHdobyBtYXkgYmUgZmFyIG1vcmUgc3VjY2Vzc2Z1bCB0aGFuIGhpcyBwb3NpdGlvbiBpbiBsaWZlLiA8YnI+PGJyPg0KU3ltYm9saXNtOiA8YnI+DQpJZiBzb21lb25lIG9mZmVycyB5b3UgYSBjdWJlIG9yIGNoZWVzZSBpbiB5b3VyIGRyZWFtLCBpdCBpbmRpY2F0ZXMgb3Bwb3J0dW5pdHkuIEJ1dCBpZiBzb21lb25lIG9mZmVycyB5b3Ugcm90dGVuIG9yIHN0YWxlIGNoZWVzZSwgaXQgaW5kaWNhdGVzIGEgdHJhcCB0aGF0IGlzIGJlaW5nIHNldCB0byBmb29sIHlvdS4gUGF5IGF0dGVudGlvbiB0byB0aGUgcGVyc29uIHdobyBvZmZlcnMgc3VjaCBhIGN1YmUgb2YgY2hlZXNlIHRvIHlvdS4gPGJyPg0KSWYgYSBzdHJhbmdlciBtYW4gb3Igd29tYW4gZ2l2ZXMgeW91IGNoZWVzZSBpbiB5b3VyIGRyZWFtLCBpdCBpbmRpY2F0ZXMgbmV3IG9wcG9ydHVuaXRpZXMgYW5kIHBhcnRuZXJzaGlwcy4gPGJyPg0KRWF0aW5nIHRhc3R5IGNoZWVzZSBpbiBhIGRyZWFtIGluZGljYXRlcyBsdXh1cnksIHdoaWNoIGlzIHNvb24gZ29pbmcgdG8ga25vY2sgb24gdGhlIGRvb3Igb2YgeW91ciBsaWZlLiBLZWVwIHlvdXIgZXllcyBvcGVuOyB0aGVyZSBtYXkgYmUgc2V2ZXJhbCBvcHBvcnR1bml0aWVzIGZvciB5b3UhIDxicj4NCklmIHlvdSBlYXQgY2hlZXNlIHdpdGggd2luZSBpbiB5b3VyIGRyZWFtLCBpdCBpbmRpY2F0ZXMgc3BlY2lhbCBjaGFuZ2VzIGluIHlvdXIgbG92ZSBsaWZlLiBJZiB5b3UgYXJlIHBsYW5uaW5nIHRvIHRha2UgYSBkaXZvcmNlIGluIHlvdXIgd2FraW5nIGxpZmUsIHRoaW5ncyBhcmUgZ29pbmcgdG8gaW1wcm92ZSBhbmQgeW91IHdpbGwgbm90IGVuZCB1cCBiZWluZyBkaXZvcmNlZC4gU3VjaCBhIGNvbWJpbmF0aW9uIChjaGVlc2UgYW5kIHdpbmUpIGlzIGVuam95ZWQgdGhlIG1vc3Qgd2hlbiB5b3UgaGF2ZSBpdCB3aXRoIHlvdXIgbG92ZXIuIDxicj48YnI+DQpNb3N0IENvbW1vbiBDaGVlc2UgRHJlYW1zOiA8YnI+DQrigKIgRWF0aW5nIG1lbHRlZCBjaGVlc2UgLSBFYXRpbmcgbWVsdGVkIGNoZWVzZSByZXByZXNlbnRzIHNvbHV0aW9ucyBvZiB5b3VyIHByb2JsZW1zLiBTaW5jZSB0aGVyZSBhcmUgbm8gbHVtcHMgaW4gbWVsdGVkIGNoZWVzZSwgeW91IGFyZSBnb2luZyB0byBoYXZlIGEgc21vb3RoIHRpbWUgc29sdmluZyB0aGUgcHJvYmxlbXMuIDxicj4NCuKAoiBFYXRpbmcgYSBjdWJlIG9mIGZyZXNoIGNoZWVzZSAtIEdvb2QgbmV3cyBhbmQgb3Bwb3J0dW5pdGllcyBhcmUgY29taW5nIHlvdXIgd2F5ISA8YnI+DQrigKIgTWFraW5nIGNoZWVzZSAtIFRoZSBwcm9qZWN0IHRoYXQgeW91IGFyZSB3b3JraW5nIG9uIGlzIGdvaW5nIHRvIGdvaW5nIHRvIGZsb3VyaXNoIHZlcnkgd2VsbC4NCjwvcD4JDQoJCQkJCQkNCjxoMiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMjBweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4ODg7Ij5QaG90byBHYWxsZXJ5IG9mIERyZWFtIC0gQ2hlZXNlPC9oMj4NCjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcyI+PC9zY3JpcHQ+DQo8IS0tIFdlX2tub3duX3lvdXJfZHJlYW1zIC0tPg0KPGlucyBjbGFzcz0iYWRzYnlnb29nbGUiDQogICAgIHN0eWxlPSJkaXNwbGF5OmJsb2NrIg0KICAgICBkYXRhLWFkLWNsaWVudD0iY2EtcHViLTI1ODU0MDU0ODM5MTgzODYiDQogICAgIGRhdGEtYWQtc2xvdD0iNTYwMjkwNTc0MiINCiAgICAgZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPg0KPHNjcmlwdD4NCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7DQo8L3NjcmlwdD4NCg0KCQkJCQk8YnI+PGRpdiBjbGFzcz0ib25lLWZvdXJ0aCI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy9jaGVlc2UvY2hlZXNlLTAxLmpwZyIgc3R5bGU9IndpZHRoOiAxMDAlOyI+DQoJCQkJCTwvZGl2Pg0KCQkJCQkNCgkJCQkJPGRpdiBjbGFzcz0ib25lLWZvdXJ0aCI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy9jaGVlc2UvY2hlZXNlLTAyLmpwZyIgc3R5bGU9IndpZHRoOiAxMDAlOyI+DQoJCQkJCTwvZGl2Pg0KCQkJCQkNCgkJCQkJPGRpdiBjbGFzcz0ib25lLWZvdXJ0aCI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy9jaGVlc2UvY2hlZXNlLTAzLmpwZyIgc3R5bGU9IndpZHRoOiAxMDAlOyI+DQoJCQkJCTwvZGl2Pg0KCQkJCQkNCgkJCQkJPGRpdiBjbGFzcz0ib25lLWZvdXJ0aCBsYXN0Ij4NCgkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL2NoZWVzZS9jaGVlc2UtMDQuanBnIiBzdHlsZT0id2lkdGg6IDEwMCU7Ij4NCgkJCQkJPC9kaXY+DQoJCQkJCTwvZGl2Pg0KCQkJCQk8ZGl2IGNsYXNzPSJlbnRyeS1jb250ZW50IGNmIj4NCgkJCQkJDQoJCQkJCTxkaXYgY2xhc3M9Im9uZS1mb3VydGgiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvY2hlZXNlL2NoZWVzZS0wNS5qcGciIHN0eWxlPSJ3aWR0aDogMTAwJTsiPg0KCQkJCQk8L2Rpdj4NCgkJCQkJDQoJCQkJCTxkaXYgY2xhc3M9Im9uZS1mb3VydGgiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvY2hlZXNlL2NoZWVzZS0wNi5qcGciIHN0eWxlPSJ3aWR0aDogMTAwJTsiPg0KCQkJCQk8L2Rpdj4NCgkJCQkJDQoJCQkJCTxkaXYgY2xhc3M9Im9uZS1mb3VydGgiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvY2hlZXNlL2NoZWVzZS0wNy5qcGciIHN0eWxlPSJ3aWR0aDogMTAwJTsiPg0KCQkJCQk8L2Rpdj4NCgkJCQkJDQoJCQkJCTxkaXYgY2xhc3M9Im9uZS1mb3VydGggbGFzdCI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy9jaGVlc2UvY2hlZXNlLTA4LmpwZyIgc3R5bGU9IndpZHRoOiAxMDAlOyI+DQoJCQkJCTwvZGl2Pg0KCQkJCQk8ZGl2IGNsYXNzPSJjZiI+PC9kaXY+DQoNCgkJCQkJPC9kaXY+DQoJCQkJPC9hcnRpY2xlPg0KDQoNCg0KDQoNCg0KDQoJCQkJDQoJCQkJDQoJCQkJPCEtLSBDb21tZW50cyB3cmFwLS0+DQoJCQkJPGRpdiBpZD0iY29tbWVudHMtd3JhcCI+DQoJCQkJCTxoNCBjbGFzcz0iaGVhZGluZyI+Q29tbWVudHM8L2g0Pg0KPGRpdiBjbGFzcz0iZmItY29tbWVudHMiIGRhdGEtaHJlZj0iaHR0cDovL3dla25vd3lvdXJkcmVhbXMuY29tL2NoZWVzZS5odG1sIiBkYXRhLXdpZHRoPSI3MDAiIGRhdGEtbnVtcG9zdHM9IjUiPjwvZGl2PgkJCQkJCQkJDQoJCQkJCQ0KCQkJCQk8IS0tIEVORFMgY29tbWVudHMgbGlzdCAtLT4NCgkJCQk8L2Rpdj4NCgkJCQk8IS0tIEVORFMgQ29tbWVudHMgd3JhcCAtLT4NCgkJCQkNCg0KCQkNCgkJCQkJCQ0KCQkgICAgPC9kaXY+DQoJCQk8IS0tIEVORFMgcG9zdHMgbGlzdCAtLT4JCQkNCgkJCQ0KCQkJPCEtLSBzaWRlYmFyIC0tPg0KICAgICAgICAJPGFzaWRlIGlkPSJzaWRlYmFyIj4NCiAgICAgICAgCQkNCiAgICAgICAgCQk8dWw+DQoJICAgICAgICAJCQ0KCSAgICAgICAgCQk8bGkgY2xhc3M9ImJsb2NrIj4NCgkgICAgICAgIAkJCTxkaXYgY2xhc3M9InNpZGViYXItdG9wIj48L2Rpdj4NCgkJICAgICAgICAJCTxkaXYgY2xhc3M9InNpZGViYXItY29udGVudCI+DQoJCQkgICAgICAgIAkJPGg0IGNsYXNzPSJoZWFkaW5nIj5Ib3Jvc2NvcGUgb24gMjAxNTwvaDQ+DQoNCgkJCTx1bCBjbGFzcz0id29yay1saXN0IGNmIj4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9ImFyaWVzLmh0bWwiIGNsYXNzPSJ0aHVtYiIgc3R5bGU9IndpZHRoOiA0OHB4O2JhY2tncm91bmQ6IGF6dXJlOyI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy96b2RpYWMtMDEtYXJpZXMtcmFtLWljb24ucG5nIiBhbHQ9ImFyaWVzIj4NCgkJCQkJPC9hPg0KCQkJCTwvbGk+DQoJCQkJPGxpPg0KCQkJCQk8YSBocmVmPSJ0YXVydXMuaHRtbCIgY2xhc3M9InRodW1iIiBzdHlsZT0id2lkdGg6IDQ4cHg7YmFja2dyb3VuZDogYXp1cmU7Ij4NCgkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL3pvZGlhYy0wMi10YXVydXMtYnVsbC1pY29uLnBuZyIgYWx0PSJ0YXVydXMiPg0KCQkJCQk8L2E+DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9ImdlbWluaS5odG1sIiBjbGFzcz0idGh1bWIiIHN0eWxlPSJ3aWR0aDogNDhweDtiYWNrZ3JvdW5kOiBhenVyZTsiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvem9kaWFjLTAzLWdlbWluaS10d2lucy1pY29uLnBuZyIgYWx0PSJnZW1pbmkiPg0KCQkJCQk8L2E+DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9ImNhbmNlci5odG1sIiBjbGFzcz0idGh1bWIiIHN0eWxlPSJ3aWR0aDogNDhweDtiYWNrZ3JvdW5kOiBhenVyZTsiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvem9kaWFjLTA0LWNhbmNlci1jcmFiLWljb24ucG5nIiBhbHQ9ImNhbmNlciI+DQoJCQkJCTwvYT4NCgkJCQk8L2xpPg0KCQkJCTxsaT4NCgkJCQkJPGEgaHJlZj0ibGVvLmh0bWwiIGNsYXNzPSJ0aHVtYiIgc3R5bGU9IndpZHRoOiA0OHB4O2JhY2tncm91bmQ6IGF6dXJlOyI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy96b2RpYWMtMDUtbGVvLWxpb24taWNvbi5wbmciIGFsdD0ibGVvIj4NCgkJCQkJPC9hPg0KCQkJCTwvbGk+DQoJCQkJPGxpPg0KCQkJCQk8YSBocmVmPSJ2aXJnby5odG1sIiBjbGFzcz0idGh1bWIiIHN0eWxlPSJ3aWR0aDogNDhweDtiYWNrZ3JvdW5kOiBhenVyZTsiPg0KCQkJCQkJPGltZyBzcmM9Ii9pbWFnZXMvem9kaWFjLTA2LXZpcmdvLXZpcmdpbi1pY29uLnBuZyIgYWx0PSJ2aXJnbyI+DQoJCQkJCTwvYT4NCgkJCQk8L2xpPg0KCQkJCTxsaT4NCgkJCQkJPGEgaHJlZj0ibGlicmEuaHRtbCIgY2xhc3M9InRodW1iIiBzdHlsZT0id2lkdGg6IDQ4cHg7YmFja2dyb3VuZDogYXp1cmU7Ij4NCgkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL3pvZGlhYy0wNy1saWJyYS1zY2FsZXMtaWNvbi5wbmciIGFsdD0ibGlicmEiPg0KCQkJCQk8L2E+DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9InNjb3JwaW8uaHRtbCIgY2xhc3M9InRodW1iIiBzdHlsZT0id2lkdGg6IDQ4cHg7YmFja2dyb3VuZDogYXp1cmU7Ij4NCgkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL3pvZGlhYy0wOC1zY29ycGlvLXNjb3JwaW9uLWljb24ucG5nIiBhbHQ9InNjb3JwaW8iPg0KCQkJCQk8L2E+DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9InNhZ2l0dGFyaXVzLmh0bWwiIGNsYXNzPSJ0aHVtYiIgc3R5bGU9IndpZHRoOiA0OHB4O2JhY2tncm91bmQ6IGF6dXJlOyI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy96b2RpYWMtMDktc2FnaXR0YXJpdXMtYXJjaGVyLWljb24ucG5nIiBhbHQ9InNhZ2l0dGFyaXVzIj4NCgkJCQkJPC9hPg0KCQkJCTwvbGk+DQoJCQkJPGxpPg0KCQkJCQk8YSBocmVmPSJjYXByaWNvcm4uaHRtbCIgY2xhc3M9InRodW1iIiBzdHlsZT0id2lkdGg6IDQ4cHg7YmFja2dyb3VuZDogYXp1cmU7Ij4NCgkJCQkJCTxpbWcgc3JjPSIvaW1hZ2VzL3pvZGlhYy0xMC1jYXByaWNvcm4tc2VhZ29hdC1pY29uLnBuZyIgYWx0PSJjYXByaWNvcm4iPg0KCQkJCQk8L2E+DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTxhIGhyZWY9ImFxdWFyaXVzLmh0bWwiIGNsYXNzPSJ0aHVtYiIgc3R5bGU9IndpZHRoOiA0OHB4O2JhY2tncm91bmQ6IGF6dXJlOyI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy96b2RpYWMtMTEtYXF1YXJpdXMtd2F0ZXItY2Fycmllci1pY29uLnBuZyIgYWx0PSJhcXVhcml1cyI+DQoJCQkJCTwvYT4NCgkJCQk8L2xpPg0KCQkJCTxsaT4NCgkJCQkJPGEgaHJlZj0icGlzY2VzLmh0bWwiIGNsYXNzPSJ0aHVtYiIgc3R5bGU9IndpZHRoOiA0OHB4O2JhY2tncm91bmQ6IGF6dXJlOyI+DQoJCQkJCQk8aW1nIHNyYz0iL2ltYWdlcy96b2RpYWMtMTItcGlzY2VzLWZpc2gtaWNvbi5wbmciIGFsdD0icGlzY2VzIj4NCgkJCQkJPC9hPg0KCQkJCTwvbGk+DQoJCQk8L3VsPg0KDQoJCQkgICAgICAgIAkJDQoJCQkJCQk8L2Rpdj4NCgkJCQkJCTxkaXYgY2xhc3M9InNpZGViYXItYm90dG9tIj48L2Rpdj4NCgkgICAgICAgIAkJPC9saT4NCgkgICAgICAgIAkJDQoJICAgICAgICAJCTxsaSBjbGFzcz0iYmxvY2siPg0KCQkJICAgICAgICAJPGRpdiBjbGFzcz0ic2lkZWJhci10b3AiPjwvZGl2Pg0KCQkgICAgICAgIAkJPGRpdiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4NCgkJICAgICAgICAJCQk8aDQgY2xhc3M9ImhlYWRpbmciPkludGVyZXN0aW5nIEZhY3Q8L2g0Pg0KSW4gY29tcGFyaXNvbiB3aXRoIGEgbW9kZXJuIGRyZWFtIGludGVycHJldGF0aW9uIHRoYXQgY2VudGVycyBpbiB0aGUgcHN5Y2hvbG9naWNhbCBtb21lbnRzLCB0aGUgYW5jaWVudCBleHBsYW5hdGlvbnMgd2VyZSBjb25uZWN0ZWQgd2l0aCB0aGUga2V5IHNlYXJjaCB0aGF0IHdvdWxkIG9wZW4gdGhlIGZ1dHVyZS4NCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0ic2lkZWJhci1ib3R0b20iPjwvZGl2Pg0KCSAgICAgICAgCQk8L2xpPg0KCSAgICAgICAgCQkNCgkgICAgICAgIAkJCSAgICAgICAgCQk8bGkgY2xhc3M9ImJsb2NrIj4NCgkgICAgICAgIAkJCTxkaXYgY2xhc3M9InNpZGViYXItdG9wIj48L2Rpdj4NCgkJICAgICAgICAJCTxkaXYgY2xhc3M9InNpZGViYXItY29udGVudCI+DQoJCQkgICAgICAgIAkJPGg0IGNsYXNzPSJoZWFkaW5nIj5DZWxlYnJpdHkgSG9yb3Njb3BlPC9oND4NCgkJCQkJCQk8dWw+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJhYW1pci1raGFuLmh0bWwiID5BYW1pciBLaGFuPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJzaGFocnVraC1raGFuLmh0bWwiID5TaGFocnVraCBLaGFuPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJzYWxtYW4ta2hhbi5odG1sIiA+U2FsbWFuIEtoYW48L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9InNlbGVuYS1nb21lei5odG1sIiA+U2VsZW5hIEdvbWV6PC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJ0YXlsb3Itc3dpZnQuaHRtbCIgPlRheWxvciBTd2lmdDwvYT48L2xpPgkJCQkJCQk8L3VsPg0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLWJvdHRvbSI+PC9kaXY+DQoJCSAgICAgICAgCTwvbGk+DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KCSAgICAgICAgCQkNCgkgICAgICAgIAkJPGxpIGNsYXNzPSJibG9jayI+DQoJICAgICAgICAJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLXRvcCI+PC9kaXY+DQoJCSAgICAgICAgCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLWNvbnRlbnQiPg0KCQkJICAgICAgICAJCTxoNCBjbGFzcz0iaGVhZGluZyI+UG9wdWxhciBEcmVhbXM8L2g0Pg0KCQkJCQkJCTx1bD4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9InJpY2UuaHRtbCIgPlJpY2U8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9Im1hcnJ5Lmh0bWwiID5NYXJyeTwvYT48L2xpPg0KPGxpIGNsYXNzPSJjYXQtaXRlbSI+PGEgaHJlZj0icG9saWNlLmh0bWwiID5Qb2xpY2U8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9ImJpbGxpYXJkcy5odG1sIiA+QmlsbGlhcmRzPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJjcmF3ZmlzaC5odG1sIiA+Q3Jhd2Zpc2g8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9InNwYXJyb3cuaHRtbCIgPlNwYXJyb3c8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9InJhaWx3YXkuaHRtbCIgPlJhaWx3YXk8L2E+PC9saT4NCgkJCQkJCQk8L3VsPg0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLWJvdHRvbSI+PC9kaXY+DQoJCSAgICAgICAgCTwvbGk+DQogICAgICAgIAkJPC91bD4NCiAgICAgICAgCQkNCiAgICAgICAgCTwvYXNpZGU+DQoJCQk8IS0tIEVORFMgc2lkZWJhciAtLT4NCgkJCQ0KCQk8L2Rpdj4NCgkJPCEtLSBFTkRTIE1BSU4gLS0+DQoJCQ0KCQk8Zm9vdGVyPg0KCQkNCgkJCTwhLS0gdHdpdHRlciAtLT4NCgkJCTxkaXYgaWQ9InR3aXR0ZXItaG9sZGVyIj4NCgkJCQk8ZGl2IGNsYXNzPSJyaWJib24iPg0KCQkJCQk8ZGl2IGlkPSJ0d2VldHMtYmFyIiBjbGFzcz0idHdlZXQiPjwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQk8IS0tIEVORFMgdHdpdHRlciAtLT4NCgkJCQ0KCQkJDQoJCQk8IS0tIHdpZGdldHMgLS0+DQoJCQk8dWwgIGNsYXNzPSJ3aWRnZXQtY29scyBjZiI+DQoJCQkJPGxpIGNsYXNzPSJmaXJzdC1jb2wiPg0KCQkJCQkNCgkJCQkJPGRpdiBjbGFzcz0id2lkZ2V0LWJsb2NrIj4NCgkJCQkJCTxoND5MYXN0IEFkZGVkIERyZWFtczwvaDQ+DQoJCQkJCQk8dWw+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJsaW9uLmh0bWwiID5MaW9uPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJsb3ZlLmh0bWwiID5Mb3ZlPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJmbG93ZXJzLmh0bWwiID5GbG93ZXJzPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJnaXJsLmh0bWwiID5HaXJsPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJob3JzZS5odG1sIiA+SG9yc2U8L2E+PC9saT48bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJyb3NlLmh0bWwiID5Sb3NlPC9hPjwvbGk+DQoJCQkJCQk8L3VsPg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2xpPg0KCQkJCQ0KCQkJCTxsaSBjbGFzcz0ic2Vjb25kLWNvbCI+DQoJCQkJCQ0KCQkJCQk8ZGl2IGNsYXNzPSJ3aWRnZXQtYmxvY2siPg0KCQkJCQkJPGg0PkNvbnRhY3QgaW5mbzwvaDQ+DQoJCQkJCQk8cD5JZiB5b3UgaGF2ZSBhbnkgcXVlc3Rpb25zIG9yIHN1Z2dlc3Rpb25zIHBsZWFzZSBjb250YWN0IHVzOjxicj48YnI+bWFnaXNkcmVhbXNib29rQGdtYWlsLmNvbTwvcD4gDQoJCQkJCQk8YSBocmVmPSJjb29raWVzX3BvbGljeS5odG1sIj5Db29raWVzIFBvbGljeTwvYT48YnI+PGJyPg0KCQkJCQkJPGEgaHJlZj0idGVybXNfb2Zfc2VydmljZS5odG1sIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPg0KCQkJCQk8L2Rpdj4NCgkJCQkJDQoJCQkJPC9saT4NCgkJCQkNCgkJCQk8bGkgY2xhc3M9InRoaXJkLWNvbCI+DQoJCQkJCQ0KCQkJCQk8ZGl2IGNsYXNzPSJ3aWRnZXQtYmxvY2siPg0KCQkJCQkJPGg0PkFib3V0IFByb2plY3Q8L2g0Pg0KCQkJCQkJPHA+V2hhdCBjb3VsZCBiZSBtb3JlIGJlYXV0aWZ1bCB0aGFuIHRvIGtub3cgdGhlIGZ1dHVyZT8gRHJlYW1zIGNhbiBoZWxwIHlvdSBpbiB0aGlzLiBUaGUgYWltIG9mIG91ciBwcm9qZWN0IGlzIHRoZSBhYmlsaXR5IHRvIG9wZW4gdGhlIGRvb3IgZm9yIHlvdSB0byBhIG5ldyB3b3JsZCBmdWxsIG9mIG15c3RlcmllcyBhbmQgc2VjcmV0cy4gV2hhdCB0byBkbyB3aXRoIHRoaXMga25vd2xlZGdlIGlzIHVwIHRvIHlvdS4gSWYgeW91IGFyZSBub3QgcmVhZHkgZm9yIHRoZSBrbm93bGVkZ2Ugb2YgZHJlYW1zIC0gZ28gYXdheS48L3A+DQoJCSAgICAgCQk8L2Rpdj4NCgkJICAgICAJCQ0KCQkJCTwvbGk+DQoJCQkJDQoJCQkJPGxpIGNsYXNzPSJmb3VydGgtY29sIj4NCgkJCQkJDQoJCQkJCTxkaXYgY2xhc3M9IndpZGdldC1ibG9jayI+DQoJCQkJCQk8aDQ+VG9wIERyZWFtczwvaDQ+DQoJCQkJCQk8dWw+DQo8bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJqZXN1cy5odG1sIiA+SmVzdXM8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9ImRhaXN5Lmh0bWwiID5EYWlzeTwvYT48L2xpPg0KPGxpIGNsYXNzPSJjYXQtaXRlbSI+PGEgaHJlZj0iZHJhZ29uLmh0bWwiID5EcmFnb248L2E+PC9saT48bGkgY2xhc3M9ImNhdC1pdGVtIj48YSBocmVmPSJjYXIuaHRtbCIgPkNhcjwvYT48L2xpPg0KPGxpIGNsYXNzPSJjYXQtaXRlbSI+PGEgaHJlZj0iYmFyYmllLmh0bWwiID5CYXJiaWU8L2E+PC9saT4NCjxsaSBjbGFzcz0iY2F0LWl0ZW0iPjxhIGhyZWY9IndvbGYuaHRtbCIgPldvbGY8L2E+PC9saT4NCgkJCQkJCTwvdWw+DQoJCQkJCTwvZGl2Pg0KCQkgICAgIAkJDQoJCQkJPC9saT4JDQoJCQk8L3VsPg0KCQkJPCEtLSBFTkRTIHdpZGdldHMgLS0+DQoJCQkNCgkJCTwhLS0gYm90dG9tIC0tPg0KCQkJPGRpdiBpZD0iYm90dG9tIj4NCgkJCQk8ZGl2IGlkPSJ3aWRnZXQtdHJpZ2dlci1ob2xkZXIiPjxhIGlkPSJ3aWRnZXQtdHJpZ2dlciIgaHJlZj0iIyIgdGl0bGU9Ik1vcmUgRHJlYW1zIiBjbGFzcz0icG9zaHl0aXAiPjwvYT48L2Rpdj4NCgkJCQk8ZGl2IGlkPSJjb250ZW50Ij5Db3B5cmlnaHRzICZjb3B5IDIwMTUgfCBXZSBrbm93biBhbGwgYWJvdXQgRHJlYW1zIDwvZGl2Pg0KDQo8ZGl2IHN0eWxlPSJmbG9hdDpyaWdodDsiPg0KPCEtLUxpdmVJbnRlcm5ldCBjb3VudGVyLS0+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0NCmRvY3VtZW50LndyaXRlKCI8YSBocmVmPScvL3d3dy5saXZlaW50ZXJuZXQucnUvY2xpY2snICIrDQoidGFyZ2V0PV9ibGFuaz48aW1nIHNyYz0nLy9jb3VudGVyLnlhZHJvLnJ1L2hpdD90MzguMTtyIisNCmVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikrKCh0eXBlb2Yoc2NyZWVuKT09InVuZGVmaW5lZCIpPyIiOg0KIjtzIitzY3JlZW4ud2lkdGgrIioiK3NjcmVlbi5oZWlnaHQrIioiKyhzY3JlZW4uY29sb3JEZXB0aD8NCnNjcmVlbi5jb2xvckRlcHRoOnNjcmVlbi5waXhlbERlcHRoKSkrIjt1Iitlc2NhcGUoZG9jdW1lbnQuVVJMKSsNCiI7IitNYXRoLnJhbmRvbSgpKw0KIicgYWx0PScnIHRpdGxlPSdMaXZlSW50ZXJuZXQnICIrDQoiYm9yZGVyPScwJyB3aWR0aD0nMzEnIGhlaWdodD0nMzEnPjwvYT4iKQ0KLy8tLT48L3NjcmlwdD48IS0tL0xpdmVJbnRlcm5ldC0tPgkgICAgIAkJDQo8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPCEtLSBFTkRTIGJvdHRvbSAtLT4NCgkJCQ0KCQk8L2Zvb3Rlcj4NCgkJDQoJCQ0KCTwvZGl2Pg0KCTwhLS0gRU5EUyBXUkFQUEVSIC0tPg0KCQ0KCTwhLS0gSmF2YVNjcmlwdCBhdCB0aGUgYm90dG9tIGZvciBmYXN0IHBhZ2UgbG9hZGluZyAtLT4NCgkNCgk8IS0tIEdyYWIgR29vZ2xlIENETidzIGpRdWVyeSwgd2l0aCBhIHByb3RvY29sIHJlbGF0aXZlIFVSTDsgZmFsbCBiYWNrIHRvIGxvY2FsIGlmIG9mZmxpbmUgLS0+DQoJPHNjcmlwdCBzcmM9Ii8vYWpheC5nb29nbGVhcGlzLmNvbS9hamF4L2xpYnMvanF1ZXJ5LzEuNy4xL2pxdWVyeS5taW4uanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQ+d2luZG93LmpRdWVyeSB8fCBkb2N1bWVudC53cml0ZSgnPHNjcmlwdCBzcmM9ImpzL2pxdWVyeS0xLjcuMS5taW4uanMiPjxcL3NjcmlwdD4nKTwvc2NyaXB0Pg0KCQ0KCTwhLS0gc2NyaXB0cyBjb25jYXRlbmF0ZWQgYW5kIG1pbmlmaWVkIHZpYSBidWlsZCBzY3JpcHQgLS0+DQoJPHNjcmlwdCBzcmM9ImpzL2N1c3RvbS5qcyI+PC9zY3JpcHQ+DQoJDQoJPCEtLSBzdXBlcmZpc2ggLS0+DQoJPHNjcmlwdCAgc3JjPSJqcy9zdXBlcmZpc2gtMS40LjgvanMvaG92ZXJJbnRlbnQuanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgIHNyYz0ianMvc3VwZXJmaXNoLTEuNC44L2pzL3N1cGVyZmlzaC5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCAgc3JjPSJqcy9zdXBlcmZpc2gtMS40LjgvanMvc3VwZXJzdWJzLmpzIj48L3NjcmlwdD4NCgk8IS0tIEVORFMgc3VwZXJmaXNoIC0tPg0KCQ0KCTxzY3JpcHQgc3JjPSJqcy90d2VldC9qcXVlcnkudHdlZXQuanMiID48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0ianMvanF1ZXJ5Lmlzb3RvcGUubWluLmpzIj48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0ianMvanF1ZXJ5Lm5pdm8uc2xpZGVyLmpzIiA+PC9zY3JpcHQ+DQoJPHNjcmlwdCBzcmM9ImpzL2NzczMtbWVkaWFxdWVyaWVzLmpzIj48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0ianMvdGFicy5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCAgc3JjPSJqcy9wb3NoeXRpcC0xLjEvc3JjL2pxdWVyeS5wb3NoeXRpcC5taW4uanMiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgc3JjPSJqcy9tb3ZlZm9ybS5qcyI+PC9zY3JpcHQ+DQoJPCEtLSBlbmQgc2NyaXB0cyAtLT4NCg0KPGRpdiBpZD0iZmItcm9vdCI+PC9kaXY+DQo8c2NyaXB0PihmdW5jdGlvbihkLCBzLCBpZCkgew0KICB2YXIganMsIGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07DQogIGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuOw0KICBqcyA9IGQuY3JlYXRlRWxlbWVudChzKTsganMuaWQgPSBpZDsNCiAganMuc3JjID0gIi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fRU4vc2RrLmpzI3hmYm1sPTEmdmVyc2lvbj12Mi40IjsNCiAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOw0KfShkb2N1bWVudCwgJ3NjcmlwdCcsICdmYWNlYm9vay1qc3NkaycpKTs8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg0K
CORS will block that request in the browser, but you can use something like cors-anywhere to get around that. A similar library, to-data-url, passes a callback error for the same test case.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.