summaryrefslogtreecommitdiff
path: root/Base
diff options
context:
space:
mode:
authorAli Mohammad Pur <ali.mpfard@gmail.com>2021-05-22 15:34:51 +0430
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2021-05-26 15:34:13 +0430
commit814e35902e37d22bd56095a3e7c553337c5a628b (patch)
tree787e5cfad009c8cfe30c3757dab8a50c6018ae9b /Base
parent6af596d9e8a0dfd9c175b7e56b848b969af191ae (diff)
downloadserenity-814e35902e37d22bd56095a3e7c553337c5a628b.zip
Base: Add a WebAssembly mandelbrot demo
This is now good enough to make a showcase of :P
Diffstat (limited to 'Base')
-rw-r--r--Base/res/html/misc/mandelbrot-wasm.html451
-rw-r--r--Base/res/html/misc/welcome.html1
2 files changed, 452 insertions, 0 deletions
diff --git a/Base/res/html/misc/mandelbrot-wasm.html b/Base/res/html/misc/mandelbrot-wasm.html
new file mode 100644
index 0000000000..c549fd7691
--- /dev/null
+++ b/Base/res/html/misc/mandelbrot-wasm.html
@@ -0,0 +1,451 @@
+<html>
+ <body>
+ <span id="timer"></span>
+ <canvas id="canvas" style="width: 240px; height: 160px"></canvas>
+ <script>
+ const height = 160;
+ const width = 240;
+ let colors = new Uint32Array([
+ 4284745472, 4284745472, 4284811264, 4284811264, 4284811264, 4284877057, 4284877057,
+ 4284877057, 4284942849, 4284942849, 4284942849, 4285008385, 4285008641, 4285008641,
+ 4285074177, 4285074434, 4285074434, 4285139970, 4285139970, 4285140226, 4285140226,
+ 4285205762, 4285206018, 4285206018, 4285271554, 4285271810, 4285271811, 4285337347,
+ 4285337347, 4285337603, 4285403139, 4285403139, 4285403395, 4285468931, 4285468931,
+ 4285469187, 4285469188, 4285534724, 4285534724, 4285534980, 4285600516, 4285600516,
+ 4285600772, 4285666308, 4285666308, 4285666308, 4285732101, 4285732101, 4285732101,
+ 4285797893, 4285797893, 4285797893, 4285863685, 4285863685, 4285863685, 4285863685,
+ 4285929478, 4285929478, 4285929478, 4285995270, 4285995270, 4285995270, 4286061062,
+ 4286061062, 4286061062, 4286126598, 4286126854, 4286126855, 4286192391, 4286192647,
+ 4286192647, 4286192647, 4286258183, 4286258439, 4286258439, 4286323975, 4286324231,
+ 4286324232, 4286389768, 4286390024, 4286390024, 4286455560, 4286455560, 4286455816,
+ 4286521352, 4286521352, 4286521608, 4286587145, 4286587145, 4286587145, 4286587401,
+ 4286652937, 4286652937, 4286653193, 4286718729, 4286718729, 4286718985, 4286784522,
+ 4286784522, 4286784522, 4286850314, 4286850314, 4286850314, 4286916106, 4286916106,
+ 4286916106, 4286916362, 4286981898, 4286981899, 4286981899, 4287047691, 4287047691,
+ 4287047691, 4287113483, 4287113483, 4287113483, 4287179019, 4287179275, 4287179276,
+ 4287244812, 4287245068, 4287245068, 4287310604, 4287310860, 4287310860, 4287310860,
+ 4287376396, 4287376652, 4287376653, 4287442189, 4287442445, 4287442445, 4287507981,
+ 4287508237, 4287508237, 4287573773, 4287573773, 4287574029, 4287639566, 4287639566,
+ 4287639822, 4287639822, 4287705358, 4287705358, 4287705614, 4287771150, 4287771150,
+ 4287771406, 4287836943, 4287836943, 4287837199, 4287902735, 4287902735, 4287902735,
+ 4287968527, 4287968527, 4287968527, 4288034319, 4288034319, 4288034320, 4288034576,
+ 4288100112, 4288100112, 4288100112, 4288165904, 4288165904, 4288165904, 4288231696,
+ 4288231696, 4288231697, 4288297233, 4288297489, 4288297489, 4288363025, 4288363281,
+ 4288363281, 4288363281, 4288429073, 4288429073, 4288429074, 4288494610, 4288494866,
+ 4288494866, 4288560402, 4288560658, 4288560658, 4288626194, 4288626450, 4288626450,
+ 4288691987, 4288691987, 4288692243, 4288757779, 4288757779, 4288758035, 4288758035,
+ 4288823571, 4288823571, 4288823827, 4288889363, 4288889364, 4288889620, 4288955156,
+ 4288955156, 4288955412, 4289020948, 4289020948, 4289020948, 4289086740, 4289086740,
+ 4289086741, 4289086997, 4289152533, 4289152533, 4289152533, 4289218325, 4289218325,
+ 4289218325, 4289284117, 4289284117, 4289284118, 4289349910, 4289349910, 4289349910,
+ 4289415446, 4289415702, 4289415702, 4289481238, 4289481494, 4289481494, 4289481495,
+ 4289547287, 4289547287, 4289547287, 4289612823, 4289613079, 4289613079, 4289678615,
+ 4289678871, 4289678871, 4289744407, 4289744408, 4289744664, 4289810200, 4289810200,
+ 4289810456, 4289810456, 4289875992, 4289876248, 4289876248, 4289941784, 4289941785,
+ 4289942041, 4290007577, 4290007577, 4290007833, 4290073369, 4290073369, 4290073625,
+ 4290139161, 4290139161, 4290139162, 4290204954, 4290204954, 4290204954, 4290205210,
+ 4290270746, 4290270746, 4290270746, 4290336538, 4290336538, 4290336539, 4290402331,
+ 4290402331, 4290402331, 4290468123, 4290468123, 4290468123, 4290533659, 4290533915,
+ 4290533915, 4290533915, 4290599708, 4290599708, 4290599708, 4290665500, 4290665500,
+ 4290665500, 4290731036, 4290731292, 4290731292, 4290796828, 4290797085, 4290797085,
+ 4290862621, 4290862621, 4290862877, 4290928413, 4290928413, 4290928669, 4290928669,
+ 4290994205, 4290994462, 4290994462, 4291059998, 4291059998, 4291060254, 4291125790,
+ 4291125790, 4291126046, 4291191582, 4291191582, 4291191839, 4291257375, 4291257375,
+ 4291257375, 4291257631, 4291323167, 4291323167, 4291323423, 4291388959, 4291388959,
+ 4291388959, 4291454752, 4291454752, 4291454752, 4291520544, 4291520544, 4291520544,
+ 4291520801, 4291520801, 4291520801, 4291520802, 4291586594, 4291586595, 4291586595,
+ 4291586851, 4291586852, 4291586852, 4291586853, 4291587109, 4291587109, 4291587110,
+ 4291652646, 4291652902, 4291652903, 4291652903, 4291653160, 4291653160, 4291653160,
+ 4291653161, 4291653417, 4291653418, 4291718954, 4291719210, 4291719211, 4291719211,
+ 4291719211, 4291719468, 4291719468, 4291719469, 4291719725, 4291719725, 4291719726,
+ 4291785262, 4291785519, 4291785519, 4291785519, 4291785776, 4291785776, 4291785776,
+ 4291785777, 4291786033, 4291786034, 4291851570, 4291851826, 4291851827, 4291851827,
+ 4291851828, 4291852084, 4291852084, 4291852085, 4291852341, 4291852341, 4291917878,
+ 4291917878, 4291918135, 4291918135, 4291918135, 4291918392, 4291918392, 4291918393,
+ 4291918393, 4291918649, 4291984186, 4291984186, 4291984442, 4291984443, 4291984443,
+ 4291984444, 4291984700, 4291984700, 4291984701, 4291984957, 4292050494, 4292050494,
+ 4292050494, 4292050751, 4292050751, 4292050751, 4292050752, 4292051008, 4292051009,
+ 4292051009, 4292051265, 4292116802, 4292116802, 4292116803, 4292117059, 4292117059,
+ 4292117060, 4292117316, 4292117317, 4292117317, 4292117317, 4292183110, 4292183110,
+ 4292183110, 4292183367, 4292183367, 4292183368, 4292183368, 4292183624, 4292183625,
+ 4292183625, 4292249418, 4292249418, 4292249418, 4292249419, 4292249675, 4292249675,
+ 4292249676, 4292249932, 4292249933, 4292249933, 4292315469, 4292315726, 4292315726,
+ 4292315727, 4292315983, 4292315983, 4292315984, 4292315984, 4292316240, 4292316241,
+ 4292316241, 4292382034, 4292382034, 4292382034, 4292382035, 4292382291, 4292382292,
+ 4292382292, 4292382548, 4292382549, 4292382549, 4292448085, 4292448342, 4292448342,
+ 4292448343, 4292448599, 4292448599, 4292448600, 4292448600, 4292448857, 4292448857,
+ 4292514393, 4292514394, 4292514650, 4292514650, 4292514651, 4292514907, 4292514908,
+ 4292514908, 4292514908, 4292515165, 4292580701, 4292580702, 4292580958, 4292580958,
+ 4292580959, 4292580959, 4292581215, 4292581216, 4292581216, 4292581473, 4292581473,
+ 4292647009, 4292647010, 4292647266, 4292647267, 4292647267, 4292647523, 4292647524,
+ 4292647524, 4292647524, 4292647781, 4292713317, 4292713318, 4292713574, 4292713574,
+ 4292713575, 4292713575, 4292713832, 4292713832, 4292713832, 4292714089, 4292779625,
+ 4292779625, 4292779626, 4292779882, 4292779883, 4292779883, 4292780139, 4292780140,
+ 4292780140, 4292780141, 4292845933, 4292845933, 4292845934, 4292846190, 4292846190,
+ 4292846191, 4292846191, 4292846448, 4292846448, 4292846448, 4292846705, 4292912241,
+ 4292912242, 4292912242, 4292912498, 4292912499, 4292912499, 4292912499, 4292912756,
+ 4292912756, 4292912757, 4292978549, 4292978549, 4292978550, 4292978550, 4292978807,
+ 4292978807, 4292978807, 4292979064, 4292979064, 4292979064, 4293044601, 4293044857,
+ 4293044858, 4293044858, 4293045114, 4293045115, 4293045115, 4293045116, 4293045372,
+ 4293045372, 4293110909, 4293111165, 4293111165, 4293111166, 4293111166, 4293111423,
+ 4293111423, 4293111423, 4293111680, 4293111680, 4293111681, 4293177217, 4293177473,
+ 4293177474, 4293177474, 4293177730, 4293177731, 4293177731, 4293177732, 4293177988,
+ 4293177988, 4293243525, 4293243781, 4293243782, 4293243782, 4293243782, 4293244039,
+ 4293244039, 4293244039, 4293244296, 4293244296, 4293309833, 4293309833, 4293310089,
+ 4293310090, 4293310090, 4293310347, 4293310347, 4293310347, 4293310348, 4293310604,
+ 4293376140, 4293376141, 4293376141, 4293376398, 4293376398, 4293376398, 4293376655,
+ 4293376655, 4293376656, 4293376656, 4293376912, 4293442449, 4293442449, 4293442706,
+ 4293442706, 4293442706, 4293442707, 4293442963, 4293442963, 4293442964, 4293443220,
+ 4293508757, 4293508757, 4293508757, 4293509014, 4293509014, 4293509015, 4293509271,
+ 4293509271, 4293509272, 4293509272, 4293575064, 4293575065, 4293575065, 4293575322,
+ 4293575322, 4293575322, 4293575323, 4293575579, 4293575580, 4293575580, 4293641372,
+ 4293641373, 4293641373, 4293641373, 4293641630, 4293641630, 4293641631, 4293641887,
+ 4293641887, 4293641888, 4293707424, 4293707681, 4293707681, 4293707681, 4293707938,
+ 4293707938, 4293707938, 4293707939, 4293708195, 4293708196, 4293708196, 4293773732,
+ 4293773989, 4293773989, 4293773990, 4293774246, 4293774246, 4293774247, 4293774247,
+ 4293774503, 4293774504, 4293840040, 4293840297, 4293840297, 4293840297, 4293840298,
+ 4293840554, 4293840555, 4293840555, 4293840811, 4293840812, 4293906348, 4293906348,
+ 4293906605, 4293906605, 4293906606, 4293906862, 4293906862, 4293906863, 4293906863,
+ 4293907120, 4293972656, 4293972656, 4293972913, 4293972913, 4293972913, 4293972914,
+ 4293973170, 4293973171, 4293973171, 4293973427, 4293973428, 4294038964, 4294038965,
+ 4294039221, 4294039221, 4294039222, 4294039478, 4294039478, 4294039479, 4294039479,
+ 4294039736, 4294105272, 4294105272, 4294105529, 4294105529, 4294105530, 4294105530,
+ 4294105786, 4294105787, 4294105787, 4294106043, 4294171580, 4294171580, 4294171581,
+ 4294171837, 4294171837, 4294171838, 4294171838, 4294172095, 4294172095, 4294172095,
+ 4294237888, 4294237888, 4294237888, 4294237889, 4294238145, 4294238146, 4294238146,
+ 4294238402, 4294238403, 4294238403, 4294238404, 4294304196, 4294304196, 4294304197,
+ 4294304453, 4294304453, 4294304454, 4294304454, 4294304711, 4294304711, 4294304711,
+ 4294370504, 4294370504, 4294370505, 4294370505, 4294370761, 4294370762, 4294370762,
+ 4294371018, 4294371019, 4294371019, 4294436556, 4294436812, 4294436812, 4294436813,
+ 4294437069, 4294437070, 4294437070, 4294437070, 4294437327, 4294437327, 4294502863,
+ 4294503120, 4294503120, 4294503121, 4294503121, 4294503377, 4294503378, 4294503378,
+ 4294503635, 4294503635, 4294503635, 4294569172, 4294569428, 4294569428, 4294569429,
+ 4294569685, 4294569686, 4294569686, 4294569686, 4294569943, 4294569943, 4294635480,
+ 4294635480, 4294635736, 4294635737, 4294635737, 4294635993, 4294635994, 4294635994,
+ 4294635995, 4294636251, 4294701787, 4294701788, 4294702044, 4294702045, 4294702045,
+ 4294702045, 4294702302, 4294702302, 4294702303, 4294702559, 4294768095, 4294768096,
+ 4294768096, 4294768352, 4294768353, 4294768353, 4294768610, 4294768610, 4294768610,
+ 4294768611, 4294768867, 4294834404, 4294834404, 4294834660, 4294834661, 4294834661,
+ 4294834661, 4294834918, 4294834918, 4294834919, 4294835175, 4294900711, 4294900712,
+ 4294900712, 4294900969, 4294900969, 4294900969, 4294901226, 4294901226, 4294901226,
+ 4294901227, 4294967019, 4294967020, 4294967020, 4294967276, 4294967277, 4294967277,
+ 4294901741, 4294901741, 4294835949, 4294835949, 4294770413, 4294704877, 4294704877,
+ 4294639085, 4294639085, 4294573549, 4294573549, 4294508013, 4294508014, 4294442222,
+ 4294376686, 4294376686, 4294311150, 4294311150, 4294245358, 4294245358, 4294179822,
+ 4294114286, 4294114286, 4294048494, 4294048494, 4293982958, 4293982958, 4293917422,
+ 4293917422, 4293851630, 4293786094, 4293786094, 4293720558, 4293720558, 4293654766,
+ 4293654766, 4293589230, 4293589231, 4293523695, 4293457903, 4293457903, 4293392367,
+ 4293392367, 4293326831, 4293326831, 4293261039, 4293261039, 4293195503, 4293129967,
+ 4293129967, 4293064175, 4293064175, 4292998639, 4292998639, 4292933103, 4292867311,
+ 4292867311, 4292801775, 4292801775, 4292736239, 4292736239, 4292670447, 4292670448,
+ 4292604912, 4292539376, 4292539376, 4292473584, 4292473584, 4292408048, 4292408048,
+ 4292342512, 4292342512, 4292276720, 4292211184, 4292211184, 4292145648, 4292145648,
+ 4292079856, 4292079856, 4292014320, 4291948784, 4291948784, 4291882992, 4291882992,
+ 4291817456, 4291817456, 4291751920, 4291751920, 4291686129, 4291620593, 4291620593,
+ 4291555057, 4291555057, 4291489265, 4291489265, 4291423729, 4291423729, 4291358193,
+ 4291292401, 4291292401, 4291226865, 4291226865, 4291161329, 4291161329, 4291095537,
+ 4291030001, 4291030001, 4290964465, 4290964465, 4290898673, 4290898673, 4290833137,
+ 4290833137, 4290767602, 4290701810, 4290701810, 4290636274, 4290636274, 4290570738,
+ 4290570738, 4290504946, 4290504946, 4290439410, 4290373874, 4290373874, 4290308082,
+ 4290308082, 4290242546, 4290242546, 4290177010, 4290177010, 4290111218, 4290045682,
+ 4290045682, 4289980146, 4289980146, 4289914354, 4289914354, 4289848819, 4289783283,
+ 4289783283, 4289717491, 4289717491, 4289651955, 4289651955, 4289586419, 4289586419,
+ 4289520627, 4289455091, 4289455091, 4289389555, 4289389555, 4289323763, 4289323763,
+ 4289258227, 4289258227, 4289192691, 4289126899, 4289126899, 4289061363, 4289061363,
+ 4288995827, 4288995827, 4288930035, 4288864500, 4288864500, 4288798964, 4288798964,
+ 4288733172, 4288733172, 4288667636, 4288667636, 4288602100, 4288536308, 4288536308,
+ 4288470772, 4288470772, 4288405236, 4288405236, 4288339444, 4288339444, 4288273908,
+ 4288208372, 4288208372, 4288142580, 4288142580, 4288077044, 4288077044, 4288011508,
+ 4287945717, 4287945717, 4287880181, 4287880181, 4287814645, 4287814645, 4287748853,
+ 4287748853, 4287683317, 4287617781, 4287617781, 4287551989, 4287551989, 4287486453,
+ 4287486453, 4287420917, 4287420917, 4287355125, 4287289589, 4287289589, 4287224053,
+ 4287224053, 4287158261, 4287158261, 4287092725, 4287027190, 4287027190, 4286961398,
+ 4286961398, 4286895862, 4286895862, 4286830326, 4286830326, 4286764534, 4286698998,
+ 4286698998, 4286633462, 4286633462, 4286567670, 4286567670, 4286502134, 4286502134,
+ 4286436598, 4286370806, 4286370806, 4286305270, 4286305270, 4286239734, 4286239734,
+ 4286173942, 4286173942, 4286108407, 4286042871, 4286042871, 4285977079, 4285977079,
+ 4285911543, 4285911543, 4285846007, 4285780215, 4285780215, 4285714679, 4285714679,
+ 4285649143, 4285649143, 4285583351, 4285583351, 4285517815, 4285452279, 4285452279,
+ 4285386487, 4285386487, 4285320951, 4285320951, 4285255415, 4285255415, 4285189624,
+ 4285124088, 4285124088, 4285058552, 4285058552, 4284992760, 4284992760, 4284927224,
+ 4284861688, 4284861688, 4284795896, 4284795896, 4284730360, 4284730360, 4284664824,
+ 4284664824, 4284599032, 4284533496, 4284533496, 4284467960, 4284467960, 4284402168,
+ 4284402168, 4284336632, 4284336632, 4284271097, 4284205305, 4284205305, 4284139769,
+ 4284139769, 4284074233, 4284074233, 4284008441, 4283942905, 4283942905, 4283877369,
+ 4283877369, 4283811577, 4283811577, 4283746041, 4283746041, 4283680505, 4283614713,
+ 4283614713, 4283549177, 4283549177, 4283483641, 4283483641, 4283417849, 4283417849,
+ 4283352313, 4283286778, 4283286778, 4283220986, 4283220986, 4283155450, 4283155450,
+ 4283089914, 4283024122, 4283024122, 4282958586, 4282958586, 4282893050, 4282893050,
+ 4282827258, 4282827258, 4282761722, 4282696186, 4282696186, 4282630394, 4282630394,
+ 4282564858, 4282564858, 4282499322, 4282499322, 4282433530, 4282367995, 4282367995,
+ 4282302459, 4282302459, 4282236667, 4282236667, 4282171131, 4282171131, 4282105595,
+ 4282039803, 4282039803, 4281974267, 4281974267, 4281908731, 4281908731, 4281842939,
+ 4281777403, 4281777403, 4281711867, 4281711867, 4281646075, 4281646075, 4281580539,
+ 4281580539, 4281515003, 4281449212, 4281449212, 4281383676, 4281383676, 4281318140,
+ 4281318140, 4281252348, 4281252348, 4281186812, 4281121276, 4281121276, 4281055484,
+ 4281055484, 4280989948, 4280989948, 4280924412, 4280858620, 4280858620, 4280793084,
+ 4280793084, 4280727548, 4280727548, 4280661756, 4280661756, 4280596220, 4280530684,
+ 4280530685, 4280464893, 4280464893, 4280399357, 4280399357, 4280333821, 4280333821,
+ 4280268029, 4280202493, 4280202493, 4280136957, 4280136957, 4280071165, 4280071165,
+ 4280005629, 4279940093, 4279940093, 4279874301, 4279874301, 4279808765, 4279808765,
+ 4279743229, 4279743229, 4279677437, 4279611901, 4279611902, 4279546366, 4279546366,
+ 4279480574, 4279480574, 4279415038, 4279415038, 4279349502, 4279283710, 4279283710,
+ 4279218174, 4279218174, 4279152638, 4279152638, 4279086846, 4279086846, 4279021310,
+ 4278955774, 4278955774, 4278889982, 4278889982, 4278824446, 4278824446, 4278758910,
+ 4278693118, 4278693119, 4278627583, 4278627583, 4278562047, 4278562047, 4278496255,
+ 4278496255, 4278430719, 4278365183, 4278365183, 4278299391, 4278299391, 4278233855,
+ 4278233855, 4278233598, 4278233597, 4278233597, 4278233340, 4278233340, 4278233083,
+ 4278233083, 4278233082, 4278232825, 4278232825, 4278232824, 4278232568, 4278232567,
+ 4278232311, 4278232310, 4278232309, 4278232053, 4278232052, 4278231796, 4278231795,
+ 4278231794, 4278231538, 4278231537, 4278231537, 4278231280, 4278231280, 4278231023,
+ 4278231022, 4278231022, 4278230765, 4278230765, 4278230764, 4278230508, 4278230507,
+ 4278230250, 4278230250, 4278230249, 4278229993, 4278229992, 4278229735, 4278229735,
+ 4278229734, 4278229478, 4278229477, 4278229477, 4278229220, 4278229219, 4278228963,
+ 4278228962, 4278228962, 4278228705, 4278228705, 4278228704, 4278228447, 4278228447,
+ 4278228190, 4278228190, 4278228189, 4278227932, 4278227932, 4278227675, 4278227675,
+ 4278227674, 4278227418, 4278227417, 4278227416, 4278227160, 4278227159, 4278226903,
+ 4278226902, 4278226901, 4278226645, 4278226644, 4278226644, 4278226387, 4278226387,
+ 4278226130, 4278226129, 4278226129, 4278225872, 4278225872, 4278225615, 4278225615,
+ 4278225614, 4278225357, 4278225357, 4278225356, 4278225100, 4278225099, 4278224842,
+ 4278224842, 4278224841, 4278224585, 4278224584, 4278224584, 4278224327, 4278224326,
+ 4278224070, 4278224069, 4278224069, 4278223812, 4278223812, 4278223555, 4278223554,
+ 4278223554, 4278223297, 4278223297, 4278223296, 4278223039, 4278223039, 4278222782,
+ 4278222782, 4278222781, 4278222525, 4278222524, 4278222267, 4278222267, 4278222266,
+ 4278222010, 4278222009, 4278222009, 4278221752, 4278221751, 4278221495, 4278221494,
+ 4278221494, 4278221237, 4278221236, 4278221236, 4278220979, 4278220979, 4278220722,
+ 4278220722, 4278220721, 4278220464, 4278220464, 4278220207, 4278220207, 4278220206,
+ 4278219950, 4278219949, 4278219948, 4278219692, 4278219691, 4278219435, 4278219434,
+ 4278219433, 4278219177, 4278219176, 4278219176, 4278218919, 4278218919, 4278218662,
+ 4278218661, 4278218661, 4278218404, 4278218404, 4278218147, 4278218147, 4278218146,
+ 4278217889, 4278217889, 4278217888, 4278217632, 4278217631, 4278217374, 4278217374,
+ 4278217373, 4278217117, 4278217116, 4278217116, 4278216859, 4278216858, 4278216602,
+ 4278216601, 4278216601, 4278216344, 4278216344, 4278216087, 4278216086, 4278216086,
+ 4278215829, 4278215829, 4278215828, 4278215571, 4278215571, 4278215314, 4278215314,
+ 4278215313, 4278215057, 4278215056, 4278214799, 4278214799, 4278214798, 4278214542,
+ 4278214541, 4278214541, 4278214284, 4278214283, 4278214027, 4278214026, 4278214026,
+ 4278213769, 4278213768, 4278213768, 4278213511, 4278213511, 4278213254, 4278213254,
+ 4278213253, 4278212996, 4278212996, 4278212739, 4278212739, 4278212738, 4278212482,
+ 4278212481, 4278212480, 4278212224, 4278212223, 4278211967, 4278211966, 4278211965,
+ 4278211709, 4278211708, 4278211708, 4278211451, 4278211451, 4278211194, 4278211193,
+ 4278211193, 4278210936, 4278210936, 4278210679, 4278210679, 4278210678, 4278210421,
+ 4278210421, 4278210420, 4278210164, 4278210163, 4278209906, 4278209906, 4278209905,
+ 4278209649, 4278209648, 4278209648, 4278209391, 4278209390, 4278209134, 4278209133,
+ 4278209133, 4278208876, 4278208876, 4278208619, 4278208618, 4278208618, 4278208361,
+ 4278208361, 4278208360, 4278208103, 4278208103, 4278207846, 4278207846, 4278207845,
+ 4278207589, 4278207588, 4278207331, 4278207331, 4278207330, 4278207074, 4278207073,
+ 4278207073, 4278206816, 4278206815, 4278206559, 4278206558, 4278206558, 4278206301,
+ 4278206300, 4278206300, 4278206043, 4278206043, 4278205786, 4278205786, 4278205785,
+ 4278205528, 4278205528, 4278205271, 4278205271, 4278205270, 4278205014, 4278205013,
+ 4278205012, 4278204756, 4278204755, 4278204499, 4278204498, 4278204497, 4278204241,
+ 4278204240, 4278204240, 4278203983, 4278203983, 4278203726, 4278203725, 4278203725,
+ 4278203468, 4278203468, 4278203211, 4278203211, 4278203210, 4278202953, 4278202953,
+ 4278202952, 4278202696, 4278202695, 4278202438, 4278202438, 4278202437, 4278202181,
+ 4278202180, 4278202180, 4278201923, 4278201922, 4278201666, 4278201665, 4278201665,
+ 4278201408, 4278201408, 4278201151, 4278201150, 4278201150, 4278200893, 4278200893,
+ 4278200892, 4278200635, 4278200635, 4278200378, 4278200378, 4278200377, 4278200121,
+ 4278200120, 4278199863, 4278199863, 4278199862, 4278199606, 4278199605, 4278199605,
+ 4278199348, 4278199347, 4278199091, 4278199090, 4278199090, 4278198833, 4278198832,
+ 4278198832, 4278198575, 4278198575, 4278198318, 4278198318, 4278198317, 4278198060,
+ 4278198060, 4278197803, 4278197803, 4278197802, 4278197546, 4278197545, 4278197544,
+ 4278197288, 4278197287, 4278197031, 4278197030, 4278197029, 4278196773, 4278196772,
+ 4278196772, 4278196515, 4278196515, 4278196258, 4278196257, 4278196257, 4278196000,
+ 4278196000, 4278195743, 4278195742, 4278195742, 4278195485, 4278195485, 4278195484,
+ 4278195228, 4278195227, 4278194970, 4278194970, 4278194969, 4278194713, 4278194712,
+ 4278194712, 4278194455, 4278194454, 4278194198, 4278194197, 4278194197, 4278193940,
+ 4278193939, 4278193683, 4278193682, 4278193682, 4278193425, 4278193425, 4278193424,
+ 4278193167, 4278193167, 4278192910, 4278192910, 4278192909, 4278192653, 4278192652,
+ 4278192651, 4278192395, 4278192394, 4278192138, 4278192137, 4278192136, 4278191880,
+ 4278191879, 4278191623, 4278191622, 4278191622, 4278191365, 4278191364, 4278191364,
+ 4278191107, 4278191107, 4278190850, 4278190850, 4278190849, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592, 4278190592,
+ 4278190592, 4278190592, 4278190592, 4278190592,
+ ]);
+ const canvas = document.getElementById("canvas");
+ const ctx = canvas.getContext("2d");
+ const imageData = ctx.createImageData(width, height);
+ const rgba = new Uint32Array(imageData.data.buffer);
+ const timer = document.getElementById("timer");
+ new Promise((res, rej) => {
+ res(
+ new Uint8Array([
+ 0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x11, 0x03, 0x60,
+ 0x01, 0x7c, 0x01, 0x7c, 0x60, 0x03, 0x7f, 0x7f, 0x7f, 0x00, 0x60, 0x01,
+ 0x7f, 0x01, 0x7f, 0x03, 0x05, 0x04, 0x00, 0x00, 0x01, 0x02, 0x05, 0x03,
+ 0x01, 0x00, 0x00, 0x07, 0x1e, 0x03, 0x0a, 0x6d, 0x61, 0x6e, 0x64, 0x65,
+ 0x6c, 0x62, 0x72, 0x6f, 0x74, 0x00, 0x02, 0x04, 0x72, 0x65, 0x61, 0x64,
+ 0x00, 0x03, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x02, 0x00, 0x0a,
+ 0xc4, 0x09, 0x04, 0x83, 0x03, 0x03, 0x02, 0x7f, 0x01, 0x7e, 0x02, 0x7c,
+ 0x41, 0x01, 0x20, 0x00, 0xbd, 0x22, 0x03, 0x42, 0x20, 0x88, 0xa7, 0x22,
+ 0x01, 0x41, 0x1f, 0x76, 0x20, 0x01, 0x41, 0x80, 0x80, 0xc0, 0x00, 0x49,
+ 0x1b, 0x04, 0x40, 0x20, 0x03, 0x42, 0x01, 0x86, 0x50, 0x04, 0x40, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xbf, 0x20, 0x00, 0x20, 0x00,
+ 0xa2, 0xa3, 0x0f, 0x0b, 0x20, 0x01, 0x41, 0x1f, 0x76, 0x04, 0x40, 0x20,
+ 0x00, 0x20, 0x00, 0xa1, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xa3, 0x0f, 0x0b, 0x41, 0x4a, 0x21, 0x02, 0x20, 0x00, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43, 0xa2, 0xbd, 0x22, 0x03, 0x42,
+ 0x20, 0x88, 0xa7, 0x21, 0x01, 0x05, 0x20, 0x01, 0x41, 0x80, 0x80, 0xc0,
+ 0xff, 0x07, 0x4f, 0x04, 0x40, 0x20, 0x00, 0x0f, 0x05, 0x20, 0x03, 0x42,
+ 0x20, 0x86, 0x50, 0x41, 0x00, 0x20, 0x01, 0x41, 0x80, 0x80, 0xc0, 0xff,
+ 0x03, 0x46, 0x1b, 0x04, 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x0f, 0x0b, 0x0b, 0x0b, 0x20, 0x03, 0x42, 0xff, 0xff, 0xff,
+ 0xff, 0x0f, 0x83, 0x20, 0x01, 0x41, 0xe2, 0xbe, 0x25, 0x6a, 0x22, 0x01,
+ 0x41, 0xff, 0xff, 0x3f, 0x71, 0x41, 0x9e, 0xc1, 0x9a, 0xff, 0x03, 0x6a,
+ 0xad, 0x42, 0x20, 0x86, 0x84, 0xbf, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xf0, 0x3f, 0xa1, 0x22, 0x04, 0x20, 0x04, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xa3, 0x22, 0x05, 0x20, 0x05, 0xa2,
+ 0x21, 0x00, 0x20, 0x05, 0x20, 0x04, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xe0, 0x3f, 0xa2, 0x20, 0x04, 0xa2, 0x22, 0x05, 0x20, 0x00, 0x20,
+ 0x00, 0x20, 0x00, 0xa2, 0x22, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44, 0x44,
+ 0x52, 0x3e, 0xdf, 0x12, 0xf1, 0xc2, 0x3f, 0xa2, 0x44, 0xde, 0x03, 0xcb,
+ 0x96, 0x64, 0x46, 0xc7, 0x3f, 0xa0, 0xa2, 0x44, 0x59, 0x93, 0x22, 0x94,
+ 0x24, 0x49, 0xd2, 0x3f, 0xa0, 0xa2, 0x44, 0x93, 0x55, 0x55, 0x55, 0x55,
+ 0x55, 0xe5, 0x3f, 0xa0, 0xa2, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44,
+ 0x9f, 0xc6, 0x78, 0xd0, 0x09, 0x9a, 0xc3, 0x3f, 0xa2, 0x44, 0xaf, 0x78,
+ 0x8e, 0x1d, 0xc5, 0x71, 0xcc, 0x3f, 0xa0, 0xa2, 0x44, 0x04, 0xfa, 0x97,
+ 0x99, 0x99, 0x99, 0xd9, 0x3f, 0xa0, 0xa2, 0xa0, 0xa0, 0xa2, 0x20, 0x02,
+ 0x20, 0x01, 0x41, 0x14, 0x75, 0x41, 0xff, 0x07, 0x6b, 0x6a, 0xb7, 0x22,
+ 0x00, 0x44, 0x76, 0x3c, 0x79, 0x35, 0xef, 0x39, 0xea, 0x3d, 0xa2, 0xa0,
+ 0x20, 0x05, 0xa1, 0x20, 0x04, 0xa0, 0x20, 0x00, 0x44, 0x00, 0x00, 0xe0,
+ 0xfe, 0x42, 0x2e, 0xe6, 0x3f, 0xa2, 0xa0, 0x0b, 0xb5, 0x03, 0x03, 0x02,
+ 0x7f, 0x01, 0x7e, 0x07, 0x7c, 0x41, 0x01, 0x20, 0x00, 0xbd, 0x22, 0x03,
+ 0x42, 0x20, 0x88, 0xa7, 0x22, 0x01, 0x41, 0x1f, 0x76, 0x20, 0x01, 0x41,
+ 0x80, 0x80, 0xc0, 0x00, 0x49, 0x1b, 0x04, 0x40, 0x20, 0x03, 0x42, 0x01,
+ 0x86, 0x50, 0x04, 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+ 0xbf, 0x20, 0x00, 0x20, 0x00, 0xa2, 0xa3, 0x0f, 0x0b, 0x20, 0x01, 0x41,
+ 0x1f, 0x76, 0x04, 0x40, 0x20, 0x00, 0x20, 0x00, 0xa1, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x0f, 0x0b, 0x41, 0x4a, 0x21,
+ 0x02, 0x20, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x43,
+ 0xa2, 0xbd, 0x22, 0x03, 0x42, 0x20, 0x88, 0xa7, 0x21, 0x01, 0x05, 0x20,
+ 0x01, 0x41, 0x80, 0x80, 0xc0, 0xff, 0x07, 0x4f, 0x04, 0x40, 0x20, 0x00,
+ 0x0f, 0x05, 0x20, 0x03, 0x42, 0x20, 0x86, 0x50, 0x41, 0x00, 0x20, 0x01,
+ 0x41, 0x80, 0x80, 0xc0, 0xff, 0x03, 0x46, 0x1b, 0x04, 0x40, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0b, 0x0b, 0x0b, 0x20,
+ 0x03, 0x42, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x83, 0x20, 0x01, 0x41, 0xe2,
+ 0xbe, 0x25, 0x6a, 0x22, 0x01, 0x41, 0xff, 0xff, 0x3f, 0x71, 0x41, 0x9e,
+ 0xc1, 0x9a, 0xff, 0x03, 0x6a, 0xad, 0x42, 0x20, 0x86, 0x84, 0xbf, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0xa1, 0x22, 0x00, 0x20,
+ 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xa3,
+ 0x22, 0x05, 0x20, 0x05, 0xa2, 0x21, 0x04, 0x20, 0x02, 0x20, 0x01, 0x41,
+ 0x14, 0x76, 0x41, 0xff, 0x07, 0x6b, 0x6a, 0xb7, 0x22, 0x09, 0x20, 0x00,
+ 0x20, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xa2,
+ 0x20, 0x00, 0xa2, 0x22, 0x06, 0xa1, 0xbd, 0x42, 0x80, 0x80, 0x80, 0x80,
+ 0x70, 0x83, 0xbf, 0x22, 0x07, 0x44, 0x00, 0x00, 0x20, 0x65, 0x47, 0x15,
+ 0xf7, 0x3f, 0xa2, 0x22, 0x0a, 0xa0, 0x21, 0x08, 0x20, 0x00, 0x20, 0x07,
+ 0xa1, 0x20, 0x06, 0xa1, 0x20, 0x05, 0x20, 0x06, 0x20, 0x04, 0x20, 0x04,
+ 0x20, 0x04, 0xa2, 0x22, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44, 0x44, 0x52,
+ 0x3e, 0xdf, 0x12, 0xf1, 0xc2, 0x3f, 0xa2, 0x44, 0xde, 0x03, 0xcb, 0x96,
+ 0x64, 0x46, 0xc7, 0x3f, 0xa0, 0xa2, 0x44, 0x59, 0x93, 0x22, 0x94, 0x24,
+ 0x49, 0xd2, 0x3f, 0xa0, 0xa2, 0x44, 0x93, 0x55, 0x55, 0x55, 0x55, 0x55,
+ 0xe5, 0x3f, 0xa0, 0xa2, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44, 0x9f,
+ 0xc6, 0x78, 0xd0, 0x09, 0x9a, 0xc3, 0x3f, 0xa2, 0x44, 0xaf, 0x78, 0x8e,
+ 0x1d, 0xc5, 0x71, 0xcc, 0x3f, 0xa0, 0xa2, 0x44, 0x04, 0xfa, 0x97, 0x99,
+ 0x99, 0x99, 0xd9, 0x3f, 0xa0, 0xa2, 0xa0, 0xa0, 0xa2, 0xa0, 0x22, 0x00,
+ 0x20, 0x07, 0xa0, 0x44, 0x00, 0xa2, 0xef, 0x2e, 0xfc, 0x05, 0xe7, 0x3d,
+ 0xa2, 0x20, 0x00, 0x44, 0x00, 0x00, 0x20, 0x65, 0x47, 0x15, 0xf7, 0x3f,
+ 0xa2, 0xa0, 0x20, 0x09, 0x20, 0x08, 0xa1, 0x20, 0x0a, 0xa0, 0xa0, 0x20,
+ 0x08, 0xa0, 0x0b, 0xfd, 0x02, 0x02, 0x0a, 0x7c, 0x04, 0x7f, 0x20, 0x00,
+ 0x20, 0x01, 0x6c, 0x41, 0x01, 0x74, 0x41, 0xff, 0xff, 0x03, 0x6e, 0x41,
+ 0x01, 0x6a, 0x40, 0x00, 0x1a, 0x20, 0x01, 0xb8, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xa2, 0x21, 0x06, 0x20, 0x00, 0xb8, 0x44,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x3f, 0xa2, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, 0x20, 0x00, 0x41, 0x03, 0x6c, 0x22,
+ 0x0d, 0x20, 0x01, 0x41, 0x02, 0x74, 0x22, 0x0e, 0x20, 0x0d, 0x20, 0x0e,
+ 0x48, 0x1b, 0xb7, 0xa3, 0x22, 0x05, 0xa2, 0x21, 0x07, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x20, 0x02, 0xb8, 0xa3, 0x21, 0x08,
+ 0x41, 0x00, 0x21, 0x0d, 0x03, 0x40, 0x20, 0x01, 0x20, 0x0d, 0x4b, 0x04,
+ 0x40, 0x20, 0x0d, 0xb8, 0x20, 0x06, 0xa1, 0x20, 0x05, 0xa2, 0x21, 0x09,
+ 0x20, 0x00, 0x20, 0x0d, 0x6c, 0x41, 0x01, 0x74, 0x21, 0x10, 0x41, 0x00,
+ 0x21, 0x0e, 0x03, 0x40, 0x20, 0x00, 0x20, 0x0e, 0x4b, 0x04, 0x40, 0x20,
+ 0x0e, 0xb8, 0x20, 0x05, 0xa2, 0x20, 0x07, 0xa1, 0x21, 0x0a, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x03, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x04, 0x41, 0x00, 0x21, 0x0f,
+ 0x03, 0x40, 0x20, 0x03, 0x20, 0x03, 0xa2, 0x22, 0x0b, 0x20, 0x04, 0x20,
+ 0x04, 0xa2, 0x22, 0x0c, 0xa0, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x40, 0x65, 0x04, 0x40, 0x02, 0x40, 0x20, 0x03, 0x20, 0x03, 0xa0,
+ 0x20, 0x04, 0xa2, 0x20, 0x09, 0xa0, 0x21, 0x04, 0x20, 0x0b, 0x20, 0x0c,
+ 0xa1, 0x20, 0x0a, 0xa0, 0x21, 0x03, 0x20, 0x02, 0x20, 0x0f, 0x4d, 0x0d,
+ 0x00, 0x20, 0x0f, 0x41, 0x01, 0x6a, 0x21, 0x0f, 0x0c, 0x02, 0x0b, 0x0b,
+ 0x0b, 0x20, 0x10, 0x20, 0x0e, 0x41, 0x01, 0x74, 0x6a, 0x20, 0x03, 0x20,
+ 0x03, 0xa2, 0x20, 0x04, 0x20, 0x04, 0xa2, 0xa0, 0x22, 0x03, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x64, 0x04, 0x7f, 0x20, 0x0f,
+ 0x41, 0x01, 0x6a, 0xb8, 0x20, 0x03, 0x10, 0x00, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xa2, 0x10, 0x01, 0xa1, 0x20, 0x08, 0xa2,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x44, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0xa4, 0x44, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xfc, 0x9f, 0x40, 0xa2, 0xab, 0x05, 0x41, 0xff, 0x0f, 0x0b,
+ 0x3b, 0x01, 0x00, 0x20, 0x0e, 0x41, 0x01, 0x6a, 0x21, 0x0e, 0x0c, 0x01,
+ 0x0b, 0x0b, 0x20, 0x0d, 0x41, 0x01, 0x6a, 0x21, 0x0d, 0x0c, 0x01, 0x0b,
+ 0x0b, 0x0b, 0x07, 0x00, 0x20, 0x00, 0x2f, 0x01, 0x00, 0x0b, 0x00, 0x17,
+ 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69,
+ 0x6e, 0x67, 0x55, 0x52, 0x4c, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65,
+ ])
+ );
+ })
+ .then(bytes => WebAssembly.compile(bytes))
+ .then(module => WebAssembly.instantiate(module))
+ .then(instance => {
+ let start = performance.now();
+ instance.exports.mandelbrot(width, height, 40);
+ let end = performance.now();
+ return {
+ time: end - start,
+ exports: instance.exports,
+ };
+ })
+ .then(result => {
+ timer.innerText = `Render took ${result.time}ms`;
+ const buffer = new Uint16Array(result.exports.memory.buffer);
+ for (let y = 0; y < height; y++) {
+ const yx = y * width;
+ for (let x = 0; x < width; x++) {
+ rgba[yx + x] = colors[buffer[yx + x]];
+ }
+ }
+ })
+ .then(() => {
+ ctx.putImageData(imageData, 0, 0);
+ })
+ .catch(err => console.log(err.message));
+ </script>
+ </body>
+</html>
diff --git a/Base/res/html/misc/welcome.html b/Base/res/html/misc/welcome.html
index 60d3fea30d..26ed468e6f 100644
--- a/Base/res/html/misc/welcome.html
+++ b/Base/res/html/misc/welcome.html
@@ -38,6 +38,7 @@ span#loadtime {
<p>This page loaded in <b><span id="loadtime"></span></b> ms</p>
<p>Some small test pages:</p>
<ul>
+ <li><a href="mandelbrot-wasm.html">WebAssembly Mandelbrot Rendering Demo</a></li>
<li><a href="ddssuite.html">DDS test suite</a></li>
<li><a href="websocket.html">WebSocket API Test</a></li>
<li><a href="cookie.html">document.cookie</a></li>