1const boot_log=["Welcome to Yuki I, a low power consumption and low noise server.",
  2"それぞれの雪の結晶は異なります。",
  3"vm_page_bootstrap: 987323 free pages and 53061 wired pages",
  4"kext submap [0xffffff7f8072e000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff800072e000]",
  5"zone leak detection enabled",
  6"standard timeslicing quantum is 10000 us",
  7"mig_table_max_displ = 72",
  8"TSC Deadline Timer supported and enabled",
  9"YukiACPICPU: ProcessorId=1 LocalApicId=0 Enabled",
 10"YukiACPICPU: ProcessorId=2 LocalApicId=2 Enabled",
 11"YukiACPICPU: ProcessorId=3 LocalApicId=1 Enabled",
 12"YukiACPICPU: ProcessorId=4 LocalApicId=3 Enabled",
 13"YukiACPICPU: ProcessorId=5 LocalApicId=255 Disabled",
 14"YukiACPICPU: ProcessorId=6 LocalApicId=255 Disabled",
 15"YukiACPICPU: ProcessorId=7 LocalApicId=255 Disabled",
 16"YukiACPICPU: ProcessorId=8 LocalApicId=255 Disabled",
 17"calling mpo_policy_init for TMSafetyNet",
 18"Security policy loaded: Safety net for Rollback (TMSafetyNet)",
 19"calling mpo_policy_init for Sandbox",
 20"Security policy loaded: Seatbelt sandbox policy (Sandbox)",
 21"calling mpo_policy_init for Quarantine",
 22"Security policy loaded: Quarantine policy (Quarantine)",
 23"Copyright (c) 1982, 1986, 1989, 1991, 1993, 2015",
 24"The Regents of the University of Adelaide. All rights reserved.",
 25"",
 26"HN_ Framework successfully initialized",
 27"using 16384 buffer headers and 10240 cluster IO buffer headers",
 28"IOAPIC: Version 0x20 Vectors 64:87",
 29"ACPI: System State [S0 S3 S4 S5] (S3)",
 30"PFM64 0xf10000000, 0xf0000000",
 31"[ PCI configuration begin ]",
 32"YukiIntelCPUPowerManagement: Turbo Ratios 0046",
 33"YukiIntelCPUPowerManagement: (built 13:08:12 Jun 18 2011) initialization complete",
 34"console relocated to 0xf10000000",
 35"PCI configuration changed (bridge=16 device=4 cardbus=0)",
 36"[ PCI configuration end, bridges 12 devices 16 ]",
 37"mbinit: done [64 MB total pool size, (42/21) split]",
 38"Pthread support ABORTS when sync kernel primitives misused",
 39"com.Yuki.YukiFSCompressionTypeZlib kmod start",
 40"com.Yuki.YukiTrololoBootScreen kmod start",
 41"com.Yuki.YukiFSCompressionTypeZlib load succeeded",
 42"com.Yuki.YukiFSCompressionTypeDataless load succeeded",
 43"",
 44"YukiAMDCPUPowerManagementClient: ready",
 45"BTCOEXIST off",
 46"wl0: Broadcom BCM4331 802.11 Wireless Controller",
 47"5.100.98.75",
 48"",
 49"FireWire (OHCI) Lucent ID 5901 built-in now active, GUID c82a14fffee4a086; max speed s800.",
 50"rooting via boot-uuid from /chosen: F5670083-AC74-33D3-8361-AC1977EE4AA2",
 51"Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">",
 52"IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>",
 53"Got boot device = IOService:/YukiACPIPlatformExpert/PCI0@0/YukiACPIPCI/SATA@1F,2/",
 54"YukiIntelPchSeriesAHCI/PRT0@0/IOAHCIDevice@0/YukiAHCIDiskDriver/SarahI@sTheBestDriverIOAHCIBlockStorageDevice/IOBlockStorageDriver/",
 55"Yuki SSD TS128C Media/IOGUIDPartitionScheme/Customer@2",
 56"BSD root: disk0s2, major 14, minor 2",
 57"Kernel is LP64",
 58"IOThunderboltSwitch::i2cWriteDWord - status = 0xe00002ed",
 59"IOThunderboltSwitch::i2cWriteDWord - status = 0x00000000",
 60"IOThunderboltSwitch::i2cWriteDWord - status = 0xe00002ed",
 61"IOThunderboltSwitch::i2cWriteDWord - status = 0xe00002ed",
 62"YukiUSBMultitouchDriver::checkStatus - received Status Packet, Payload 2: device was reinitialized",
 63"MottIsAScrub::checkstatus - true, Mott::Scrub",
 64"[IOBluetoothHCIController::setConfigState] calling registerService",
 65"AirPort_Brcm4331: Ethernet address e4:ce:8f:46:18:d2",
 66"IO80211Controller::dataLinkLayerAttachComplete():  adding YukiEFINVRAM notification",
 67"IO80211Interface::efiNVRAMPublished():",
 68"Created virtif 0xffffff800c32ee00 p2p0",
 69"BCM5701Enet: Ethernet address c8:2a:14:57:a4:7a",
 70"Previous Shutdown Cause: 3",
 71"NTFS driver 3.8 [Flags: R/W].",
 72"NTFS volume name BOOTCAMP, version 3.1.",
 73"DSMOS has arrived",
 74"en1: 802.11d country code set to 'US'.",
 75"en1: Supported channels 1 2 3 4 5 6 7 8 9 10 11 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165",
 76"m_thebest",
 77"MacAuthEvent en1   Auth result for: 00:60:64:1e:e9:e4  MAC AUTH succeeded",
 78"MacAuthEvent en1   Auth result for: 00:60:64:1e:e9:e4 Unsolicited  Auth",
 79"wlEvent: en1 en1 Link UP",
 80"AirPort: Link Up on en1",
 81"en1: BSSID changed to 00:60:64:1e:e9:e4",
 82"virtual bool IOHIDEventSystemUserClient::initWithTask(task*, void*, UInt32):",
 83"Client task not privileged to open IOHIDSystem for mapping memory (e00002c1)",
 84"System Integrity Check: 100% Success ",
 85"[OK] Linux Yuki-I 5.10.60-v7l+ #1449 SMP Wed Aug 25 15:00:44 BST 2021 armv7l GNU/Linux ",
 86"[OK] CPU Cores",
 87"[OK] Random Access Memory",
 88"[OK] USB Interfaces",
 89"[OK] Network Interfaces",
 90"",
 91"",
 92"Boot Complete."];
 93function updatelog(){
 94    if (progress>boot_log_progress/(boot_log.length-1)){
 95        document.getElementById("loading-console").innerHTML+=boot_log[boot_log_progress].replaceAll(" ","&nbsp;")+"<br>";
 96        boot_log_progress++;
 97        document.getElementById("loading-console").scrollTop = document.getElementById("loading-console").scrollHeight;
 98        updatelog();
 99    }
100}
101
102boot_log_progress = 0;
103progress = 0;
104state = true;
105rgb = [143, 223, 255];
106basergb = [255, 255, 255];
107document.getElementById("loading-icon").style.strokeDasharray = "27.5% 100% 100%";
108setTimeout(function() {document.getElementById("loading-icon").style.fill = "rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ")";},1000);
109var timer = setInterval(function() {
110    if (progress < 1.02) {
111        document.getElementById("loading-progress").innerHTML = Math.round(progress * 100) + "%";
112        document.getElementById("loading-progressbar-inner").style.width = "calc((100vw - 200px) * " + progress + ")";
113        avgcolor = [(rgb[0] * progress + basergb[0] * (1 - progress)), (rgb[1] * progress + basergb[1] * (1 - progress)), (rgb[2] * progress + basergb[2] * (1 - progress))]
114        document.getElementById("connection-status").style.color = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
115        document.getElementById("loading-progressbar-inner").style.backgroundColor = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
116        document.getElementById("loading-progressbar").style.borderColor = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
117        document.getElementById("loading-progress").style.color = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
118        document.getElementById("loading-icon").style.stroke = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
119        document.getElementById("Yuki-I-text").style.color = "rgb(" + avgcolor[0] + "," + avgcolor[1] + "," + avgcolor[2] + ")";
120        progress += 0.02;
121    } else {
122        if (state) {
123            setTimeout(function() {
124                document.getElementById("connection-status").style.opacity = "0";
125            }, 200)
126            setTimeout(function() {
127                document.getElementById("connection-status").innerHTML = "&lt; connected &gt;";
128                document.getElementById("connection-status").style.color = "rgb(145, 255, 143)";
129                document.getElementById("connection-status").style.opacity = "1";
130            }, 400)
131            setTimeout(function() {
132                document.getElementById("loading-screen").style.opacity = "0";
133            }, 1000)
134            setTimeout(function() {
135                document.getElementById("loading-screen").remove();
136            }, 1500)
137            state = false;
138        }
139        clearInterval(timer);
140    }
141    updatelog();
142}, 20)