Gleam Lustre Fullstack Atproto Demo App w/Slices.Network GraphQL API

add project edit page, form, and location input

+16033 -231
+1
client/.gitignore
··· 6 6 #Added automatically by Lustre Dev Tools 7 7 /.lustre 8 8 /dist 9 + /node_modules
-1
client/gleam.toml
··· 17 17 shared = { path = "../shared" } 18 18 gleam_stdlib = ">= 0.44.0 and < 2.0.0" 19 19 lustre = ">= 5.3.5 and < 6.0.0" 20 - rsvp = ">= 1.1.3 and < 2.0.0" 21 20 modem = ">= 2.0.1 and < 3.0.0" 22 21 gleam_json = ">= 3.0.2 and < 4.0.0" 23 22 gleam_http = ">= 4.3.0 and < 5.0.0"
+1 -4
client/manifest.toml
··· 12 12 { name = "gleam_community_colour", version = "2.0.2", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], otp_app = "gleam_community_colour", source = "hex", outer_checksum = "E34DD2C896AC3792151EDA939DA435FF3B69922F33415ED3C4406C932FBE9634" }, 13 13 { name = "gleam_crypto", version = "1.5.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_crypto", source = "hex", outer_checksum = "50774BAFFF1144E7872814C566C5D653D83A3EBF23ACC3156B757A1B6819086E" }, 14 14 { name = "gleam_erlang", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "1124AD3AA21143E5AF0FC5CF3D9529F6DB8CA03E43A55711B60B6B7B3874375C" }, 15 - { name = "gleam_fetch", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "gleam_fetch", source = "hex", outer_checksum = "2CBF9F2E1C71AEBBFB13A9D5720CD8DB4263EB02FE60C5A7A1C6E17B0151C20C" }, 16 15 { name = "gleam_http", version = "4.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "82EA6A717C842456188C190AFB372665EA56CE13D8559BF3B1DD9E40F619EE0C" }, 17 16 { name = "gleam_httpc", version = "5.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gleam_httpc", source = "hex", outer_checksum = "C545172618D07811494E97AAA4A0FB34DA6F6D0061FDC8041C2F8E3BE2B2E48F" }, 18 17 { name = "gleam_javascript", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "EF6C77A506F026C6FB37941889477CD5E4234FCD4337FF0E9384E297CB8F97EB" }, ··· 39 38 { name = "platform", version = "1.0.0", build_tools = ["gleam"], requirements = [], otp_app = "platform", source = "hex", outer_checksum = "8339420A95AD89AAC0F82F4C3DB8DD401041742D6C3F46132A8739F6AEB75391" }, 40 39 { name = "plinth", version = "0.7.2", build_tools = ["gleam"], requirements = ["gleam_javascript", "gleam_json", "gleam_stdlib"], otp_app = "plinth", source = "hex", outer_checksum = "3D70AF096A6F46DC71023C28B16BCCC6D7FAB9A467711426DAEB05902022B08F" }, 41 40 { name = "polly", version = "2.1.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib", "simplifile"], otp_app = "polly", source = "hex", outer_checksum = "1BA4D0ACE9BCF52AEA6AD9DE020FD8220CCA399A379E50A1775FC5C1204FCF56" }, 42 - { name = "rsvp", version = "1.1.3", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_fetch", "gleam_http", "gleam_httpc", "gleam_javascript", "gleam_json", "gleam_stdlib", "lustre"], otp_app = "rsvp", source = "hex", outer_checksum = "4A582C9C49B4EC3197631E78FDB4D0A8703F14043EC12EAAC608E7B9347C2211" }, 43 41 { name = "shared", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], source = "local", path = "../shared" }, 44 42 { name = "simplifile", version = "2.3.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "0A868DAC6063D9E983477981839810DC2E553285AB4588B87E3E9C96A7FB4CB4" }, 45 43 { name = "snag", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "snag", source = "hex", outer_checksum = "7E9F06390040EB5FAB392CE642771484136F2EC103A92AE11BA898C8167E6E17" }, ··· 50 48 51 49 [requirements] 52 50 gleam_http = { version = ">= 4.3.0 and < 5.0.0" } 51 + gleam_javascript = { version = ">= 1.0.0 and < 2.0.0" } 53 52 gleam_json = { version = ">= 3.0.2 and < 4.0.0" } 54 53 gleam_stdlib = { version = ">= 0.44.0 and < 2.0.0" } 55 54 gleeunit = { version = ">= 1.0.0 and < 2.0.0" } ··· 57 56 lustre_dev_tools = { version = ">= 2.1.3 and < 3.0.0" } 58 57 modem = { version = ">= 2.0.1 and < 3.0.0" } 59 58 plinth = { version = ">= 0.7.2 and < 1.0.0" } 60 - rsvp = { version = ">= 1.1.3 and < 2.0.0" } 61 59 shared = { path = "../shared" } 62 - gleam_javascript = { version = ">= 1.0.0 and < 2.0.0" }
+26
client/package-lock.json
··· 1 + { 2 + "name": "lustre-fullstack-client", 3 + "version": "1.0.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "lustre-fullstack-client", 9 + "version": "1.0.0", 10 + "dependencies": { 11 + "h3-js": "^4.1.0" 12 + } 13 + }, 14 + "node_modules/h3-js": { 15 + "version": "4.3.0", 16 + "resolved": "https://registry.npmjs.org/h3-js/-/h3-js-4.3.0.tgz", 17 + "integrity": "sha512-zgvyHZz5bEKeuyYGh0bF9/kYSxJ2SqroopkXHqKnD3lfjaZawcxulcI9nWbNC54gakl/2eObRLHWueTf1iLSaA==", 18 + "license": "Apache-2.0", 19 + "engines": { 20 + "node": ">=4", 21 + "npm": ">=3", 22 + "yarn": ">=1.3.0" 23 + } 24 + } 25 + } 26 + }
+8
client/package.json
··· 1 + { 2 + "name": "lustre-fullstack-client", 3 + "version": "1.0.0", 4 + "type": "module", 5 + "dependencies": { 6 + "h3-js": "^4.1.0" 7 + } 8 + }
+186 -7
client/src/client.gleam
··· 13 13 import modem 14 14 import pages/home 15 15 import pages/profile as profile_page 16 + import pages/profile_edit 16 17 import plinth/browser/document 18 + import ui/location_input 17 19 import plinth/browser/element as plinth_element 18 20 import shared/profile.{type Profile} 19 21 import ui/layout ··· 30 32 pub type Route { 31 33 Home 32 34 Profile(handle: String) 35 + ProfileEdit(handle: String) 33 36 NotFound(uri: Uri) 34 37 } 35 38 ··· 41 44 } 42 45 43 46 type Model { 44 - Model(route: Route, profile_state: ProfileState) 47 + Model( 48 + route: Route, 49 + profile_state: ProfileState, 50 + edit_form_data: profile_edit.FormData, 51 + ) 45 52 } 46 53 47 54 fn init(_flags) -> #(Model, Effect(Msg)) { ··· 59 66 // Use prerendered data if available, otherwise show loading 60 67 case prerendered_profile { 61 68 Some(profile_data) -> { 62 - let model = Model(route: route, profile_state: Loaded(profile_data)) 69 + let model = 70 + Model( 71 + route: route, 72 + profile_state: Loaded(profile_data), 73 + edit_form_data: profile_edit.init_form_data(None), 74 + ) 75 + #(model, effect.none()) 76 + } 77 + None -> { 78 + let model = 79 + Model( 80 + route: route, 81 + profile_state: Failed("Profile not found"), 82 + edit_form_data: profile_edit.init_form_data(None), 83 + ) 84 + #(model, effect.none()) 85 + } 86 + } 87 + } 88 + ProfileEdit(handle: _handle) -> { 89 + // Use prerendered data if available 90 + case prerendered_profile { 91 + Some(profile_data) -> { 92 + let model = 93 + Model( 94 + route: route, 95 + profile_state: Loaded(profile_data), 96 + edit_form_data: profile_edit.init_form_data(Some(profile_data)), 97 + ) 63 98 #(model, effect.none()) 64 99 } 65 100 None -> { 66 101 let model = 67 - Model(route: route, profile_state: Failed("Profile not found")) 102 + Model( 103 + route: route, 104 + profile_state: Failed("Profile not found"), 105 + edit_form_data: profile_edit.init_form_data(None), 106 + ) 68 107 #(model, effect.none()) 69 108 } 70 109 } 71 110 } 72 111 _ -> { 73 - let model = Model(route: route, profile_state: NotAsked) 112 + let model = 113 + Model( 114 + route: route, 115 + profile_state: NotAsked, 116 + edit_form_data: profile_edit.init_form_data(None), 117 + ) 74 118 #(model, effect.none()) 75 119 } 76 120 } ··· 103 147 case uri.path_segments(uri.path) { 104 148 [] | [""] -> Home 105 149 ["profile", handle] -> Profile(handle: handle) 150 + ["profile", handle, "edit"] -> ProfileEdit(handle: handle) 106 151 _ -> NotFound(uri: uri) 107 152 } 108 153 } ··· 112 157 type Msg { 113 158 UserNavigatedTo(route: Route) 114 159 ProfileFetched(Result(option.Option(Profile), String)) 160 + ProfileEditMsg(profile_edit.Msg) 115 161 } 116 162 117 163 fn update(model: Model, msg: Msg) -> #(Model, Effect(Msg)) { ··· 123 169 case route { 124 170 Profile(handle: handle) -> { 125 171 io.println("Navigating to profile: " <> handle) 126 - let model = Model(..model, profile_state: Loading) 127 - #(model, fetch_profile(handle)) 172 + // Check if we have the correct profile loaded 173 + case model.profile_state { 174 + Loaded(p) -> { 175 + // Check if loaded profile matches the requested handle 176 + case p.handle { 177 + option.Some(loaded_handle) if loaded_handle == handle -> { 178 + // Already have the correct profile loaded 179 + #(model, effect.none()) 180 + } 181 + _ -> { 182 + // Profile doesn't match, fetch the correct one 183 + let model = Model(..model, profile_state: Loading) 184 + #(model, fetch_profile(handle)) 185 + } 186 + } 187 + } 188 + _ -> { 189 + // No profile loaded, fetch it 190 + let model = Model(..model, profile_state: Loading) 191 + #(model, fetch_profile(handle)) 192 + } 193 + } 194 + } 195 + ProfileEdit(handle: handle) -> { 196 + io.println("Navigating to profile edit: " <> handle) 197 + // Check if we have the correct profile loaded 198 + case model.profile_state { 199 + Loaded(p) -> { 200 + // Check if loaded profile matches the requested handle 201 + case p.handle { 202 + option.Some(loaded_handle) if loaded_handle == handle -> { 203 + let form_data = profile_edit.init_form_data(Some(p)) 204 + #( 205 + Model(..model, edit_form_data: form_data), 206 + effect.none(), 207 + ) 208 + } 209 + _ -> { 210 + // Profile doesn't match, fetch the correct one 211 + let model = Model(..model, profile_state: Loading) 212 + #(model, fetch_profile(handle)) 213 + } 214 + } 215 + } 216 + _ -> { 217 + // No profile loaded, fetch it 218 + let model = Model(..model, profile_state: Loading) 219 + #(model, fetch_profile(handle)) 220 + } 221 + } 128 222 } 129 223 _ -> #(model, effect.none()) 130 224 } ··· 137 231 Ok(None) -> Failed("Profile not found") 138 232 Error(error) -> Failed(error) 139 233 } 140 - #(Model(..model, profile_state: profile_state), effect.none()) 234 + 235 + // If we're on the edit page and profile was loaded, initialize form data 236 + let edit_form_data = case model.route, profile_state { 237 + ProfileEdit(_), Loaded(profile_data) -> 238 + profile_edit.init_form_data(Some(profile_data)) 239 + _, _ -> model.edit_form_data 240 + } 241 + 242 + #( 243 + Model(..model, profile_state: profile_state, edit_form_data: edit_form_data), 244 + effect.none(), 245 + ) 246 + } 247 + 248 + ProfileEditMsg(edit_msg) -> { 249 + case edit_msg { 250 + profile_edit.DisplayNameUpdated(value) -> { 251 + let form_data = 252 + profile_edit.FormData(..model.edit_form_data, display_name: value) 253 + #(Model(..model, edit_form_data: form_data), effect.none()) 254 + } 255 + profile_edit.DescriptionUpdated(value) -> { 256 + let form_data = 257 + profile_edit.FormData(..model.edit_form_data, description: value) 258 + #(Model(..model, edit_form_data: form_data), effect.none()) 259 + } 260 + profile_edit.LocationInputMsg(location_msg) -> { 261 + let #(location_model, location_effect) = 262 + location_input.update(model.edit_form_data.location_input, location_msg) 263 + 264 + let form_data = 265 + profile_edit.FormData(..model.edit_form_data, location_input: location_model) 266 + 267 + #( 268 + Model(..model, edit_form_data: form_data), 269 + location_effect |> effect.map(fn(msg) { ProfileEditMsg(profile_edit.LocationInputMsg(msg)) }), 270 + ) 271 + } 272 + profile_edit.InterestsUpdated(value) -> { 273 + let form_data = 274 + profile_edit.FormData(..model.edit_form_data, interests: value) 275 + #(Model(..model, edit_form_data: form_data), effect.none()) 276 + } 277 + profile_edit.AvatarFileSelected(_file_url) -> { 278 + // TODO: Handle avatar file selection 279 + #(model, effect.none()) 280 + } 281 + profile_edit.FormSubmitted -> { 282 + // TODO: Handle form submission 283 + io.println("Profile form submitted") 284 + #(model, effect.none()) 285 + } 286 + profile_edit.CancelClicked -> { 287 + // Navigate back to profile page 288 + case model.route { 289 + ProfileEdit(handle: handle) -> { 290 + #(model, modem.push("/profile/" <> handle, None, None)) 291 + } 292 + _ -> #(model, effect.none()) 293 + } 294 + } 295 + } 141 296 } 142 297 } 143 298 } ··· 202 357 ]), 203 358 ]) 204 359 Loaded(p) -> profile_page.view(p) 360 + Failed(error: error) -> 361 + html.div([attribute.class("text-center py-12")], [ 362 + html.h2([attribute.class("text-2xl font-bold text-white mb-4")], [ 363 + html.text("Error"), 364 + ]), 365 + html.p([attribute.class("text-zinc-400")], [html.text(error)]), 366 + ]) 367 + } 368 + } 369 + ProfileEdit(handle: handle) -> { 370 + case model.profile_state { 371 + NotAsked | Loading -> 372 + html.div([attribute.class("text-center py-12")], [ 373 + html.p([attribute.class("text-zinc-400")], [ 374 + html.text("Loading profile..."), 375 + ]), 376 + ]) 377 + Loaded(p) -> 378 + profile_edit.view( 379 + Some(p), 380 + model.edit_form_data, 381 + handle, 382 + ProfileEditMsg, 383 + ) 205 384 Failed(error: error) -> 206 385 html.div([attribute.class("text-center py-12")], [ 207 386 html.h2([attribute.class("text-2xl font-bold text-white mb-4")], [
+86 -1
client/src/client_ffi.mjs
··· 1 - import { Error, Ok } from "./gleam.mjs"; 1 + import { Error, Ok, Empty, NonEmpty } from "./gleam.mjs"; 2 + import { latLngToCell } from "h3-js"; 3 + 4 + // Convert JavaScript array to Gleam List 5 + function toList(array) { 6 + let list = new Empty(); 7 + for (let i = array.length - 1; i >= 0; i--) { 8 + list = new NonEmpty(array[i], list); 9 + } 10 + return list; 11 + } 2 12 3 13 export function fetchUrl(url) { 4 14 return fetch(url) ··· 13 23 return new Error(error.message || "Network error"); 14 24 }); 15 25 } 26 + 27 + /** 28 + * Search for locations using the Nominatim OpenStreetMap geocoding API 29 + * Returns a Promise that resolves to Result(List(NominatimResult), String) 30 + */ 31 + export function searchLocations(query) { 32 + if (!query || query.trim().length < 2) { 33 + return Promise.resolve(new Ok(toList([]))); 34 + } 35 + 36 + const url = new URL("https://nominatim.openstreetmap.org/search"); 37 + url.searchParams.set("format", "json"); 38 + url.searchParams.set("q", query.trim()); 39 + url.searchParams.set("limit", "5"); 40 + url.searchParams.set("addressdetails", "1"); 41 + 42 + return fetch(url.toString(), { 43 + headers: { 44 + // Nominatim requires a User-Agent header 45 + "User-Agent": "lustre-fullstack-app/1.0", 46 + }, 47 + }) 48 + .then((response) => { 49 + if (!response.ok) { 50 + throw new Error(`Nominatim API error: ${response.statusText}`); 51 + } 52 + return response.json(); 53 + }) 54 + .then((results) => { 55 + // Convert JavaScript array to Gleam List 56 + return new Ok(toList(results)); 57 + }) 58 + .catch((error) => { 59 + console.error("Error fetching locations from Nominatim:", error); 60 + return new Error(error.message || "Failed to fetch locations"); 61 + }); 62 + } 63 + 64 + /** 65 + * Convert latitude/longitude coordinates to an H3 index 66 + * @param lat Latitude 67 + * @param lon Longitude 68 + * @param resolution H3 resolution (0-15). Default is 5 (~5km hexagons, city-level) 69 + * @returns H3 index string 70 + */ 71 + export function latLonToH3(lat, lon, resolution = 5) { 72 + return latLngToCell(lat, lon, resolution); 73 + } 74 + 75 + /** 76 + * Debounce helper - executes callback after delay 77 + * Returns a function that can be called to cancel the timeout 78 + */ 79 + let debounceTimer = null; 80 + 81 + export function debounce(callback, delay) { 82 + // Clear any existing timer 83 + if (debounceTimer !== null) { 84 + clearTimeout(debounceTimer); 85 + } 86 + 87 + // Set new timer 88 + debounceTimer = setTimeout(() => { 89 + callback(); 90 + debounceTimer = null; 91 + }, delay); 92 + 93 + // Return cancel function 94 + return () => { 95 + if (debounceTimer !== null) { 96 + clearTimeout(debounceTimer); 97 + debounceTimer = null; 98 + } 99 + }; 100 + }
+13 -2
client/src/pages/profile.gleam
··· 5 5 import lustre/element/html 6 6 import shared/profile.{type Profile} 7 7 import ui/avatar 8 - import ui/button 9 8 10 9 pub fn view(p: Profile) -> Element(msg) { 11 10 html.div([attribute.class("space-y-8")], [ ··· 47 46 ]), 48 47 49 48 // Edit button 50 - button.button([], button.Default, button.Md, [html.text("Edit Profile")]), 49 + html.a( 50 + [ 51 + attribute.href( 52 + "/profile/" 53 + <> option.unwrap(p.handle, p.did) 54 + <> "/edit", 55 + ), 56 + attribute.class( 57 + "px-4 py-2 text-sm text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded transition-colors cursor-pointer", 58 + ), 59 + ], 60 + [html.text("Edit Profile")], 61 + ), 51 62 ]), 52 63 53 64 // Profile sections
+214
client/src/pages/profile_edit.gleam
··· 1 + import gleam/option.{type Option} 2 + import gleam/string 3 + import lustre/attribute 4 + import lustre/element.{type Element} 5 + import lustre/element/html 6 + import lustre/event 7 + import shared/profile.{type Profile} 8 + import ui/avatar 9 + import ui/button 10 + import ui/input 11 + import ui/location_input 12 + import ui/textarea 13 + 14 + pub type Msg { 15 + DisplayNameUpdated(String) 16 + DescriptionUpdated(String) 17 + InterestsUpdated(String) 18 + AvatarFileSelected(String) 19 + LocationInputMsg(location_input.Msg) 20 + FormSubmitted 21 + CancelClicked 22 + } 23 + 24 + pub type FormData { 25 + FormData( 26 + display_name: String, 27 + description: String, 28 + location_input: location_input.Model, 29 + interests: String, 30 + avatar_preview_url: Option(String), 31 + ) 32 + } 33 + 34 + pub fn init_form_data(profile: Option(Profile)) -> FormData { 35 + case profile { 36 + option.Some(p) -> { 37 + let interests_str = case p.interests { 38 + option.Some(list) -> string.join(list, ", ") 39 + option.None -> "" 40 + } 41 + 42 + // For now, just use the home_town string as is 43 + // TODO: Parse JSON if needed 44 + let location_data = case p.home_town { 45 + option.Some(_town) -> option.None 46 + option.None -> option.None 47 + } 48 + 49 + FormData( 50 + display_name: option.unwrap(p.display_name, ""), 51 + description: option.unwrap(p.description, ""), 52 + location_input: location_input.init(location_data), 53 + interests: interests_str, 54 + avatar_preview_url: p.avatar_url, 55 + ) 56 + } 57 + option.None -> 58 + FormData( 59 + display_name: "", 60 + description: "", 61 + location_input: location_input.init(option.None), 62 + interests: "", 63 + avatar_preview_url: option.None, 64 + ) 65 + } 66 + } 67 + 68 + pub fn view( 69 + profile: Option(Profile), 70 + form_data: FormData, 71 + handle: String, 72 + on_msg: fn(Msg) -> msg, 73 + ) -> Element(msg) { 74 + html.div([attribute.class("space-y-8")], [ 75 + // Header 76 + html.div([attribute.class("border-b border-zinc-800 pb-6")], [ 77 + html.button( 78 + [ 79 + attribute.class( 80 + "inline-flex items-center gap-2 text-zinc-400 hover:text-zinc-200 transition-colors mb-4", 81 + ), 82 + event.on_click(on_msg(CancelClicked)), 83 + ], 84 + [ 85 + html.text("← Back to Profile"), 86 + ], 87 + ), 88 + html.h2([attribute.class("text-3xl font-bold text-white mb-2")], [ 89 + html.text("Profile Settings"), 90 + ]), 91 + html.p([attribute.class("text-zinc-500 text-sm")], [ 92 + html.text("@" <> handle), 93 + ]), 94 + ]), 95 + // Form 96 + html.form( 97 + [ 98 + attribute.class("space-y-6"), 99 + event.on_submit(fn(_) { on_msg(FormSubmitted) }), 100 + ], 101 + [ 102 + html.div( 103 + [ 104 + attribute.class( 105 + "bg-zinc-900 border border-zinc-800 rounded-lg p-6 space-y-6", 106 + ), 107 + ], 108 + [ 109 + // Avatar Section 110 + html.div([attribute.class("space-y-2")], [ 111 + html.label([attribute.class("text-sm font-medium text-white")], [ 112 + html.text("Avatar"), 113 + ]), 114 + html.div([attribute.class("flex items-center gap-4")], [ 115 + avatar.avatar( 116 + form_data.avatar_preview_url, 117 + option.unwrap( 118 + profile |> option.then(fn(p) { p.display_name }), 119 + handle, 120 + ), 121 + avatar.Lg, 122 + ), 123 + html.label( 124 + [ 125 + attribute.attribute("for", "avatar-upload"), 126 + attribute.class( 127 + "cursor-pointer px-4 py-2 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded text-sm transition-colors", 128 + ), 129 + ], 130 + [html.text("Change Avatar")], 131 + ), 132 + html.input([ 133 + attribute.type_("file"), 134 + attribute.id("avatar-upload"), 135 + attribute.accept(["image/*"]), 136 + attribute.class("hidden"), 137 + // Note: File handling will require FFI 138 + ]), 139 + ]), 140 + ]), 141 + // Display Name 142 + html.div([attribute.class("space-y-2")], [ 143 + html.label([attribute.class("text-sm font-medium text-white")], [ 144 + html.text("Display Name"), 145 + ]), 146 + input.input([ 147 + attribute.type_("text"), 148 + attribute.placeholder("Your display name"), 149 + attribute.value(form_data.display_name), 150 + event.on_input(fn(value) { on_msg(DisplayNameUpdated(value)) }), 151 + ]), 152 + ]), 153 + // Description 154 + html.div([attribute.class("space-y-2")], [ 155 + html.label([attribute.class("text-sm font-medium text-white")], [ 156 + html.text("Description"), 157 + ]), 158 + textarea.textarea( 159 + [ 160 + attribute.placeholder("Tell us about yourself..."), 161 + event.on_input(fn(value) { on_msg(DescriptionUpdated(value)) }), 162 + ], 163 + form_data.description, 164 + ), 165 + ]), 166 + // Home Town 167 + html.div([attribute.class("space-y-2")], [ 168 + html.label([attribute.class("text-sm font-medium text-white")], [ 169 + html.text("Home Town"), 170 + ]), 171 + location_input.view( 172 + form_data.location_input, 173 + "Search for your hometown...", 174 + ) 175 + |> element.map(fn(msg) { on_msg(LocationInputMsg(msg)) }), 176 + ]), 177 + // Interests 178 + html.div([attribute.class("space-y-2")], [ 179 + html.label([attribute.class("text-sm font-medium text-white")], [ 180 + html.text("Interests"), 181 + ]), 182 + html.p([attribute.class("text-xs text-zinc-400")], [ 183 + html.text("Enter your interests, separated by commas"), 184 + ]), 185 + input.input([ 186 + attribute.type_("text"), 187 + attribute.placeholder( 188 + "e.g., web development, photography, hiking", 189 + ), 190 + attribute.value(form_data.interests), 191 + event.on_input(fn(value) { on_msg(InterestsUpdated(value)) }), 192 + ]), 193 + ]), 194 + ], 195 + ), 196 + // Action Buttons 197 + html.div([attribute.class("flex justify-end gap-3")], [ 198 + button.button( 199 + [ 200 + attribute.type_("button"), 201 + event.on_click(on_msg(CancelClicked)), 202 + ], 203 + button.Default, 204 + button.Md, 205 + [html.text("Cancel")], 206 + ), 207 + button.button([attribute.type_("submit")], button.Primary, button.Md, [ 208 + html.text("Save Changes"), 209 + ]), 210 + ]), 211 + ], 212 + ), 213 + ]) 214 + }
+280
client/src/ui/location_input.gleam
··· 1 + import gleam/dynamic/decode 2 + import gleam/float 3 + import gleam/javascript/promise 4 + import gleam/list 5 + import gleam/option.{type Option, None, Some} 6 + import gleam/string 7 + import lustre/attribute 8 + import lustre/effect.{type Effect} 9 + import lustre/element.{type Element} 10 + import lustre/element/html 11 + import lustre/event 12 + import utils/location 13 + 14 + pub type Model { 15 + Model( 16 + input_value: String, 17 + selected_location: Option(location.LocationData), 18 + suggestions: List(location.NominatimResult), 19 + is_loading: Bool, 20 + show_dropdown: Bool, 21 + ) 22 + } 23 + 24 + pub type Msg { 25 + UserTypedQuery(String) 26 + UserClickedSuggestion(location.NominatimResult) 27 + UserFocusedInput 28 + UserBlurredInput 29 + GotSearchResults(Result(List(location.NominatimResult), String)) 30 + } 31 + 32 + pub fn init(initial_value: Option(location.LocationData)) -> Model { 33 + Model( 34 + input_value: case initial_value { 35 + Some(loc) -> loc.name 36 + None -> "" 37 + }, 38 + selected_location: initial_value, 39 + suggestions: [], 40 + is_loading: False, 41 + show_dropdown: False, 42 + ) 43 + } 44 + 45 + pub fn update(model: Model, msg: Msg) -> #(Model, Effect(Msg)) { 46 + case msg { 47 + UserTypedQuery(query) -> { 48 + let model = Model(..model, input_value: query) 49 + 50 + case string.length(query) >= 2 { 51 + True -> { 52 + let model = Model(..model, is_loading: True, show_dropdown: True) 53 + #(model, debounced_search_effect(query)) 54 + } 55 + False -> { 56 + #( 57 + Model( 58 + ..model, 59 + suggestions: [], 60 + show_dropdown: False, 61 + selected_location: None, 62 + ), 63 + effect.none(), 64 + ) 65 + } 66 + } 67 + } 68 + 69 + UserClickedSuggestion(result) -> { 70 + let lat = case float.parse(result.lat) { 71 + Ok(v) -> v 72 + Error(_) -> 0.0 73 + } 74 + let lon = case float.parse(result.lon) { 75 + Ok(v) -> v 76 + Error(_) -> 0.0 77 + } 78 + 79 + let h3_index = location.lat_lon_to_h3(lat, lon) 80 + let formatted_name = format_location_name(result) 81 + 82 + let location_data = 83 + location.LocationData( 84 + name: formatted_name, 85 + lat: lat, 86 + lon: lon, 87 + h3_index: h3_index, 88 + ) 89 + 90 + #( 91 + Model( 92 + ..model, 93 + input_value: formatted_name, 94 + selected_location: Some(location_data), 95 + show_dropdown: False, 96 + suggestions: [], 97 + ), 98 + effect.none(), 99 + ) 100 + } 101 + 102 + UserFocusedInput -> { 103 + case string.length(model.input_value) >= 2 { 104 + True -> { 105 + let model = Model(..model, is_loading: True, show_dropdown: True) 106 + #(model, debounced_search_effect(model.input_value)) 107 + } 108 + False -> #(model, effect.none()) 109 + } 110 + } 111 + 112 + UserBlurredInput -> { 113 + // Delay hiding dropdown to allow click on suggestion 114 + #(model, effect.none()) 115 + } 116 + 117 + GotSearchResults(result) -> { 118 + case result { 119 + Ok(results) -> { 120 + #( 121 + Model( 122 + ..model, 123 + suggestions: results, 124 + is_loading: False, 125 + show_dropdown: results != [], 126 + ), 127 + effect.none(), 128 + ) 129 + } 130 + Error(_err) -> { 131 + #( 132 + Model(..model, suggestions: [], is_loading: False), 133 + effect.none(), 134 + ) 135 + } 136 + } 137 + } 138 + } 139 + } 140 + 141 + // FFI function for debouncing 142 + @external(javascript, "../client_ffi.mjs", "debounce") 143 + fn debounce(callback: fn() -> Nil, delay: Int) -> fn() -> Nil 144 + 145 + fn debounced_search_effect(query: String) -> Effect(Msg) { 146 + effect.from(fn(dispatch) { 147 + // Debounce the search by 300ms 148 + debounce( 149 + fn() { 150 + location.search_locations(query) 151 + |> promise.map(fn(result) { 152 + case result { 153 + Ok(dynamic_list) -> { 154 + // Decode each dynamic result using filter_map which expects Result 155 + let decoded_results = 156 + list.filter_map(dynamic_list, fn(dyn) { 157 + decode.run(dyn, location.nominatim_result_decoder()) 158 + }) 159 + 160 + dispatch(GotSearchResults(Ok(decoded_results))) 161 + } 162 + Error(err) -> { 163 + dispatch(GotSearchResults(Error(err))) 164 + } 165 + } 166 + }) 167 + |> promise.await(fn(_) { promise.resolve(Nil) }) 168 + 169 + Nil 170 + }, 171 + 300, 172 + ) 173 + 174 + Nil 175 + }) 176 + } 177 + 178 + fn format_location_name(result: location.NominatimResult) -> String { 179 + let parts = [] 180 + 181 + // Append items to maintain order: City, State, Country 182 + let parts = case result.address.city { 183 + "" -> parts 184 + city -> list.append(parts, [city]) 185 + } 186 + 187 + let parts = case result.address.state { 188 + "" -> parts 189 + state -> list.append(parts, [state]) 190 + } 191 + 192 + let parts = case result.address.country { 193 + "" -> parts 194 + country -> list.append(parts, [country]) 195 + } 196 + 197 + case parts { 198 + [] -> result.display_name 199 + _ -> string.join(parts, ", ") 200 + } 201 + } 202 + 203 + pub fn view(model: Model, placeholder: String) -> Element(Msg) { 204 + html.div([attribute.class("relative")], [ 205 + html.div([attribute.class("relative")], [ 206 + input_element(model.input_value, placeholder, model.is_loading), 207 + icon_element(), 208 + ]), 209 + dropdown_element(model.show_dropdown, model.suggestions), 210 + ]) 211 + } 212 + 213 + fn input_element( 214 + value: String, 215 + placeholder: String, 216 + _is_loading: Bool, 217 + ) -> Element(Msg) { 218 + html.input([ 219 + attribute.type_("text"), 220 + attribute.value(value), 221 + attribute.placeholder(placeholder), 222 + attribute.class( 223 + "w-full px-3 py-2 pr-10 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700", 224 + ), 225 + event.on_input(UserTypedQuery), 226 + event.on_focus(UserFocusedInput), 227 + event.on_blur(UserBlurredInput), 228 + ]) 229 + } 230 + 231 + fn icon_element() -> Element(Msg) { 232 + html.div( 233 + [ 234 + attribute.class( 235 + "absolute right-3 top-1/2 -translate-y-1/2 text-zinc-500", 236 + ), 237 + ], 238 + [html.text("📍")], 239 + ) 240 + } 241 + 242 + fn dropdown_element( 243 + show: Bool, 244 + suggestions: List(location.NominatimResult), 245 + ) -> Element(Msg) { 246 + case show && suggestions != [] { 247 + True -> 248 + html.div( 249 + [ 250 + attribute.class( 251 + "absolute z-50 w-full mt-1 bg-zinc-900 border border-zinc-800 rounded-lg shadow-lg max-h-60 overflow-y-auto", 252 + ), 253 + ], 254 + list.map(suggestions, suggestion_item), 255 + ) 256 + False -> element.none() 257 + } 258 + } 259 + 260 + fn suggestion_item(result: location.NominatimResult) -> Element(Msg) { 261 + html.button( 262 + [ 263 + attribute.type_("button"), 264 + attribute.class( 265 + "w-full px-4 py-3 text-left hover:bg-zinc-800 transition-colors border-b border-zinc-800 last:border-b-0", 266 + ), 267 + event.on_click(UserClickedSuggestion(result)), 268 + ], 269 + [ 270 + html.div([attribute.class("flex items-start gap-2")], [ 271 + html.div([attribute.class("text-zinc-500 mt-1 flex-shrink-0")], [ 272 + html.text("📍"), 273 + ]), 274 + html.div([attribute.class("text-sm text-zinc-300")], [ 275 + html.text(format_location_name(result)), 276 + ]), 277 + ]), 278 + ], 279 + ) 280 + }
+13
client/src/ui/textarea.gleam
··· 1 + import lustre/attribute.{type Attribute} 2 + import lustre/element.{type Element} 3 + import lustre/element/html 4 + 5 + pub fn textarea( 6 + attributes: List(Attribute(msg)), 7 + value: String, 8 + ) -> Element(msg) { 9 + let classes = 10 + "w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[100px]" 11 + 12 + html.textarea([attribute.class(classes), ..attributes], value) 13 + }
+60
client/src/utils/location.gleam
··· 1 + import gleam/dynamic.{type Dynamic} 2 + import gleam/dynamic/decode 3 + import gleam/javascript/promise.{type Promise} 4 + import gleam/option 5 + 6 + pub type NominatimResult { 7 + NominatimResult( 8 + display_name: String, 9 + lat: String, 10 + lon: String, 11 + place_id: Int, 12 + address: NominatimAddress, 13 + ) 14 + } 15 + 16 + pub type NominatimAddress { 17 + NominatimAddress(city: String, state: String, country: String) 18 + } 19 + 20 + pub type LocationData { 21 + LocationData(name: String, lat: Float, lon: Float, h3_index: String) 22 + } 23 + 24 + /// Search for locations using Nominatim API 25 + @external(javascript, "../client_ffi.mjs", "searchLocations") 26 + pub fn search_locations( 27 + query: String, 28 + ) -> Promise(Result(List(Dynamic), String)) 29 + 30 + /// Convert lat/lon to H3 index 31 + @external(javascript, "../client_ffi.mjs", "latLonToH3") 32 + pub fn lat_lon_to_h3(lat: Float, lon: Float) -> String 33 + 34 + // Decoder for NominatimAddress 35 + pub fn nominatim_address_decoder() -> decode.Decoder(NominatimAddress) { 36 + use city <- decode.field("city", decode.optional(decode.string)) 37 + use state <- decode.field("state", decode.optional(decode.string)) 38 + use country <- decode.field("country", decode.optional(decode.string)) 39 + decode.success(NominatimAddress( 40 + city: option.unwrap(city, ""), 41 + state: option.unwrap(state, ""), 42 + country: option.unwrap(country, ""), 43 + )) 44 + } 45 + 46 + // Decoder for NominatimResult 47 + pub fn nominatim_result_decoder() -> decode.Decoder(NominatimResult) { 48 + use display_name <- decode.field("display_name", decode.string) 49 + use lat <- decode.field("lat", decode.string) 50 + use lon <- decode.field("lon", decode.string) 51 + use place_id <- decode.field("place_id", decode.int) 52 + use address <- decode.field("address", nominatim_address_decoder()) 53 + decode.success(NominatimResult( 54 + display_name: display_name, 55 + lat: lat, 56 + lon: lon, 57 + place_id: place_id, 58 + address: address, 59 + )) 60 + }
+15144 -216
server/priv/static/client.js
··· 194 194 return true; 195 195 } 196 196 } 197 - class Error extends Result { 197 + class Error2 extends Result { 198 198 constructor(detail) { 199 199 super(); 200 200 this[0] = detail; ··· 307 307 return x; 308 308 } else { 309 309 return default$; 310 + } 311 + } 312 + function then$(option, fun) { 313 + if (option instanceof Some) { 314 + let x = option[0]; 315 + return fun(x); 316 + } else { 317 + return option; 310 318 } 311 319 } 312 320 ··· 1512 1520 if (errors instanceof Empty) { 1513 1521 return new Ok(maybe_invalid_data); 1514 1522 } else { 1515 - return new Error(errors); 1523 + return new Error2(errors); 1516 1524 } 1517 1525 } 1518 1526 function success(data) { ··· 1709 1717 function identity(x) { 1710 1718 return x; 1711 1719 } 1720 + function parse_float(value) { 1721 + if (/^[-+]?(\d+)\.(\d+)([eE][-+]?\d+)?$/.test(value)) { 1722 + return new Ok(parseFloat(value)); 1723 + } else { 1724 + return new Error2(Nil); 1725 + } 1726 + } 1712 1727 function to_string(term) { 1713 1728 return term.toString(); 1714 1729 } 1730 + function string_length(string3) { 1731 + if (string3 === "") { 1732 + return 0; 1733 + } 1734 + const iterator = graphemes_iterator(string3); 1735 + if (iterator) { 1736 + let i = 0; 1737 + for (const _ of iterator) { 1738 + i++; 1739 + } 1740 + return i; 1741 + } else { 1742 + return string3.match(/./gsu).length; 1743 + } 1744 + } 1715 1745 function graphemes(string3) { 1716 1746 const iterator = graphemes_iterator(string3); 1717 1747 if (iterator) { ··· 1738 1768 if (first2) { 1739 1769 return new Ok([first2, string3.slice(first2.length)]); 1740 1770 } else { 1741 - return new Error(Nil); 1771 + return new Error2(Nil); 1742 1772 } 1743 1773 } 1744 1774 function uppercase(string3) { ··· 1776 1806 function map_get(map3, key) { 1777 1807 const value = map3.get(key, NOT_FOUND); 1778 1808 if (value === NOT_FOUND) { 1779 - return new Error(Nil); 1809 + return new Error2(Nil); 1780 1810 } 1781 1811 return new Ok(value); 1782 1812 } ··· 2012 2042 return new Ok(new Some(value)); 2013 2043 i++; 2014 2044 } 2015 - return new Error("Indexable"); 2045 + return new Error2("Indexable"); 2016 2046 } 2017 2047 if (key_is_int && Array.isArray(data) || data && typeof data === "object" || data && Object.getPrototypeOf(data) === Object.prototype) { 2018 2048 if (key in data) 2019 2049 return new Ok(new Some(data[key])); 2020 2050 return new Ok(new None); 2021 2051 } 2022 - return new Error(key_is_int ? "Indexable" : "Dict"); 2052 + return new Error2(key_is_int ? "Indexable" : "Dict"); 2023 2053 } 2024 2054 function list(data, decode, pushPath, index4, emptyList) { 2025 2055 if (!(data instanceof List || Array.isArray(data))) { ··· 2042 2072 function int(data) { 2043 2073 if (Number.isInteger(data)) 2044 2074 return new Ok(data); 2045 - return new Error(0); 2075 + return new Error2(0); 2046 2076 } 2047 2077 function string(data) { 2048 2078 if (typeof data === "string") 2049 2079 return new Ok(data); 2050 - return new Error(""); 2080 + return new Error2(""); 2051 2081 } 2052 2082 function is_null(data) { 2053 2083 return data === null || data === undefined; ··· 2099 2129 static unwrap(value) { 2100 2130 return value instanceof PromiseLayer ? value.promise : value; 2101 2131 } 2132 + } 2133 + function resolve(value) { 2134 + return Promise.resolve(PromiseLayer.wrap(value)); 2135 + } 2136 + function then_await(promise, fn) { 2137 + return promise.then((value) => fn(PromiseLayer.unwrap(value))); 2102 2138 } 2103 2139 function map_promise(promise, fn) { 2104 2140 return promise.then((value) => PromiseLayer.wrap(fn(PromiseLayer.unwrap(value)))); ··· 2127 2163 return result; 2128 2164 } else { 2129 2165 let error = result[0]; 2130 - return new Error(fun(error)); 2166 + return new Error2(fun(error)); 2131 2167 } 2132 2168 } 2133 2169 function try$(result, fun) { ··· 2142 2178 if (result instanceof Ok) { 2143 2179 return result; 2144 2180 } else { 2145 - return new Error(error); 2181 + return new Error2(error); 2146 2182 } 2147 2183 } 2184 + function values2(results) { 2185 + return filter_map(results, (result) => { 2186 + return result; 2187 + }); 2188 + } 2148 2189 // build/dev/javascript/gleam_json/gleam_json_ffi.mjs 2190 + function identity2(x) { 2191 + return x; 2192 + } 2149 2193 function decode(string3) { 2150 2194 try { 2151 2195 const result = JSON.parse(string3); 2152 2196 return new Ok(result); 2153 2197 } catch (err) { 2154 - return new Error(getJsonDecodeError(err, string3)); 2198 + return new Error2(getJsonDecodeError(err, string3)); 2155 2199 } 2156 2200 } 2157 2201 function getJsonDecodeError(stdErr, json) { ··· 2260 2304 function parse(json, decoder) { 2261 2305 return do_parse(json, decoder); 2262 2306 } 2307 + function string3(input) { 2308 + return identity2(input); 2309 + } 2263 2310 2264 2311 // build/dev/javascript/gleam_stdlib/gleam/uri.mjs 2265 2312 class Uri extends CustomType { ··· 2312 2359 function path_segments(path) { 2313 2360 return remove_dot_segments(split2(path, "/")); 2314 2361 } 2362 + function to_string2(uri) { 2363 + let _block; 2364 + let $ = uri.fragment; 2365 + if ($ instanceof Some) { 2366 + let fragment = $[0]; 2367 + _block = toList(["#", fragment]); 2368 + } else { 2369 + _block = toList([]); 2370 + } 2371 + let parts = _block; 2372 + let _block$1; 2373 + let $1 = uri.query; 2374 + if ($1 instanceof Some) { 2375 + let query = $1[0]; 2376 + _block$1 = prepend("?", prepend(query, parts)); 2377 + } else { 2378 + _block$1 = parts; 2379 + } 2380 + let parts$1 = _block$1; 2381 + let parts$2 = prepend(uri.path, parts$1); 2382 + let _block$2; 2383 + let $2 = uri.host; 2384 + let $3 = starts_with(uri.path, "/"); 2385 + if ($2 instanceof Some && !$3) { 2386 + let host = $2[0]; 2387 + if (host !== "") { 2388 + _block$2 = prepend("/", parts$2); 2389 + } else { 2390 + _block$2 = parts$2; 2391 + } 2392 + } else { 2393 + _block$2 = parts$2; 2394 + } 2395 + let parts$3 = _block$2; 2396 + let _block$3; 2397 + let $4 = uri.host; 2398 + let $5 = uri.port; 2399 + if ($4 instanceof Some && $5 instanceof Some) { 2400 + let port = $5[0]; 2401 + _block$3 = prepend(":", prepend(to_string(port), parts$3)); 2402 + } else { 2403 + _block$3 = parts$3; 2404 + } 2405 + let parts$4 = _block$3; 2406 + let _block$4; 2407 + let $6 = uri.scheme; 2408 + let $7 = uri.userinfo; 2409 + let $8 = uri.host; 2410 + if ($6 instanceof Some) { 2411 + if ($7 instanceof Some) { 2412 + if ($8 instanceof Some) { 2413 + let s = $6[0]; 2414 + let u = $7[0]; 2415 + let h = $8[0]; 2416 + _block$4 = prepend(s, prepend("://", prepend(u, prepend("@", prepend(h, parts$4))))); 2417 + } else { 2418 + let s = $6[0]; 2419 + _block$4 = prepend(s, prepend(":", parts$4)); 2420 + } 2421 + } else if ($8 instanceof Some) { 2422 + let s = $6[0]; 2423 + let h = $8[0]; 2424 + _block$4 = prepend(s, prepend("://", prepend(h, parts$4))); 2425 + } else { 2426 + let s = $6[0]; 2427 + _block$4 = prepend(s, prepend(":", parts$4)); 2428 + } 2429 + } else if ($7 instanceof None && $8 instanceof Some) { 2430 + let h = $8[0]; 2431 + _block$4 = prepend("//", prepend(h, parts$4)); 2432 + } else { 2433 + _block$4 = parts$4; 2434 + } 2435 + let parts$5 = _block$4; 2436 + return concat2(parts$5); 2437 + } 2315 2438 // build/dev/javascript/gleam_stdlib/gleam/bool.mjs 2316 2439 function guard(requirement, consequence, alternative) { 2317 2440 if (requirement) { ··· 2389 2512 this.message = message; 2390 2513 } 2391 2514 } 2515 + class Never extends CustomType { 2516 + constructor(kind) { 2517 + super(); 2518 + this.kind = kind; 2519 + } 2520 + } 2521 + class Always extends CustomType { 2522 + constructor(kind) { 2523 + super(); 2524 + this.kind = kind; 2525 + } 2526 + } 2392 2527 function merge(loop$attributes, loop$merged) { 2393 2528 while (true) { 2394 2529 let attributes = loop$attributes; ··· 2519 2654 return new Attribute(attribute_kind, name, value); 2520 2655 } 2521 2656 var property_kind = 1; 2657 + function property(name, value) { 2658 + return new Property(property_kind, name, value); 2659 + } 2522 2660 var event_kind = 2; 2661 + function event(name, handler, include, prevent_default, stop_propagation, immediate, debounce, throttle) { 2662 + return new Event2(event_kind, name, handler, include, prevent_default, stop_propagation, immediate, debounce, throttle); 2663 + } 2523 2664 var never_kind = 0; 2665 + var never = /* @__PURE__ */ new Never(never_kind); 2524 2666 var always_kind = 2; 2667 + var always = /* @__PURE__ */ new Always(always_kind); 2525 2668 2526 2669 // build/dev/javascript/lustre/lustre/attribute.mjs 2527 2670 function attribute2(name, value) { 2528 2671 return attribute(name, value); 2529 2672 } 2673 + function property2(name, value) { 2674 + return property(name, value); 2675 + } 2530 2676 function class$(name) { 2531 2677 return attribute2("class", name); 2532 2678 } 2679 + function id(value) { 2680 + return attribute2("id", value); 2681 + } 2533 2682 function href(url) { 2534 2683 return attribute2("href", url); 2535 2684 } ··· 2539 2688 function src(url) { 2540 2689 return attribute2("src", url); 2541 2690 } 2691 + function accept(values3) { 2692 + return attribute2("accept", join(values3, ",")); 2693 + } 2694 + function placeholder(text) { 2695 + return attribute2("placeholder", text); 2696 + } 2697 + function type_(control_type) { 2698 + return attribute2("type", control_type); 2699 + } 2700 + function value(control_value) { 2701 + return attribute2("value", control_value); 2702 + } 2542 2703 2543 2704 // build/dev/javascript/lustre/lustre/effect.mjs 2544 2705 class Effect extends CustomType { ··· 2560 2721 this.provide = provide; 2561 2722 } 2562 2723 } 2724 + function do_comap_select(_, _1, _2) { 2725 + return; 2726 + } 2727 + function do_comap_actions(actions, f) { 2728 + return new Actions((msg) => { 2729 + return actions.dispatch(f(msg)); 2730 + }, actions.emit, (selector) => { 2731 + return do_comap_select(actions, selector, f); 2732 + }, actions.root, actions.provide); 2733 + } 2734 + function do_map(effects, f) { 2735 + return map(effects, (effect) => { 2736 + return (actions) => { 2737 + return effect(do_comap_actions(actions, f)); 2738 + }; 2739 + }); 2740 + } 2741 + function map5(effect, f) { 2742 + return new Effect(do_map(effect.synchronous, f), do_map(effect.before_paint, f), do_map(effect.after_paint, f)); 2743 + } 2563 2744 function perform(effect, dispatch, emit, select, root2, provide) { 2564 2745 let actions = new Actions(dispatch, emit, select, root2, provide); 2565 2746 return each(effect.synchronous, (run2) => { ··· 2587 2768 function empty2() { 2588 2769 return null; 2589 2770 } 2590 - function get(map5, key) { 2591 - const value = map5?.get(key); 2592 - if (value != null) { 2593 - return new Ok(value); 2771 + function get(map6, key) { 2772 + const value2 = map6?.get(key); 2773 + if (value2 != null) { 2774 + return new Ok(value2); 2594 2775 } else { 2595 - return new Error(undefined); 2776 + return new Error2(undefined); 2596 2777 } 2597 2778 } 2598 - function has_key2(map5, key) { 2599 - return map5 && map5.has(key); 2779 + function has_key2(map6, key) { 2780 + return map6 && map6.has(key); 2600 2781 } 2601 - function insert2(map5, key, value) { 2602 - map5 ??= new Map; 2603 - map5.set(key, value); 2604 - return map5; 2782 + function insert2(map6, key, value2) { 2783 + map6 ??= new Map; 2784 + map6.set(key, value2); 2785 + return map6; 2605 2786 } 2606 - function remove(map5, key) { 2607 - map5?.delete(key); 2608 - return map5; 2787 + function remove(map6, key) { 2788 + map6?.delete(key); 2789 + return map6; 2609 2790 } 2610 2791 2611 2792 // build/dev/javascript/lustre/lustre/vdom/path.mjs ··· 2679 2860 } 2680 2861 } 2681 2862 } 2682 - function to_string2(path) { 2863 + function to_string3(path) { 2683 2864 return do_to_string(path, toList([])); 2684 2865 } 2685 2866 function matches(path, candidates) { 2686 2867 if (candidates instanceof Empty) { 2687 2868 return false; 2688 2869 } else { 2689 - return do_matches(to_string2(path), candidates); 2870 + return do_matches(to_string3(path), candidates); 2690 2871 } 2691 2872 } 2692 2873 var separator_event = ` 2693 2874 `; 2694 - function event(path, event2) { 2695 - return do_to_string(path, toList([separator_event, event2])); 2875 + function event2(path, event3) { 2876 + return do_to_string(path, toList([separator_event, event3])); 2696 2877 } 2697 2878 2698 2879 // build/dev/javascript/lustre/lustre/vdom/vnode.mjs ··· 2848 3029 return false; 2849 3030 } 2850 3031 while (index5--) { 2851 - const property2 = properties[index5]; 2852 - if (!Object.hasOwn(b, property2)) { 3032 + const property3 = properties[index5]; 3033 + if (!Object.hasOwn(b, property3)) { 2853 3034 return false; 2854 3035 } 2855 - if (!isEqual2(a[property2], b[property2])) { 3036 + if (!isEqual2(a[property3], b[property3])) { 2856 3037 return false; 2857 3038 } 2858 3039 } ··· 2875 3056 return new Events(events.handlers, events.next_dispatched_paths, empty_list); 2876 3057 } 2877 3058 function do_remove_event(handlers, path, name) { 2878 - return remove(handlers, event(path, name)); 3059 + return remove(handlers, event2(path, name)); 2879 3060 } 2880 3061 function remove_event(events, path, name) { 2881 3062 let handlers = do_remove_event(events.handlers, path, name); ··· 2891 3072 } 2892 3073 }); 2893 3074 } 2894 - function handle(events, path, name, event2) { 3075 + function handle(events, path, name, event3) { 2895 3076 let next_dispatched_paths = prepend(path, events.next_dispatched_paths); 2896 3077 let events$1 = new Events(events.handlers, events.dispatched_paths, next_dispatched_paths); 2897 3078 let $ = get(events$1.handlers, path + separator_event + name); 2898 3079 if ($ instanceof Ok) { 2899 3080 let handler = $[0]; 2900 - return [events$1, run(event2, handler)]; 3081 + return [events$1, run(event3, handler)]; 2901 3082 } else { 2902 - return [events$1, new Error(toList([]))]; 3083 + return [events$1, new Error2(toList([]))]; 2903 3084 } 2904 3085 } 2905 3086 function has_dispatched_events(events, path) { 2906 3087 return matches(path, events.dispatched_paths); 2907 3088 } 2908 3089 function do_add_event(handlers, mapper, path, name, handler) { 2909 - return insert2(handlers, event(path, name), map2(handler, (handler2) => { 3090 + return insert2(handlers, event2(path, name), map2(handler, (handler2) => { 2910 3091 return new Handler(handler2.prevent_default, handler2.stop_propagation, identity3(mapper)(handler2.message)); 2911 3092 })); 2912 3093 } ··· 3049 3230 function none2() { 3050 3231 return text("", identity3, ""); 3051 3232 } 3233 + function map6(element3, f) { 3234 + let mapper = identity3(compose_mapper(identity3(f), element3.mapper)); 3235 + if (element3 instanceof Fragment) { 3236 + let children = element3.children; 3237 + let keyed_children = element3.keyed_children; 3238 + return new Fragment(element3.kind, element3.key, mapper, identity3(children), identity3(keyed_children)); 3239 + } else if (element3 instanceof Element2) { 3240 + let attributes = element3.attributes; 3241 + let children = element3.children; 3242 + let keyed_children = element3.keyed_children; 3243 + return new Element2(element3.kind, element3.key, mapper, element3.namespace, element3.tag, identity3(attributes), identity3(children), identity3(keyed_children), element3.self_closing, element3.void); 3244 + } else if (element3 instanceof Text) { 3245 + return identity3(element3); 3246 + } else { 3247 + let attributes = element3.attributes; 3248 + return new UnsafeInnerHtml(element3.kind, element3.key, mapper, element3.namespace, element3.tag, identity3(attributes), element3.inner_html); 3249 + } 3250 + } 3052 3251 3053 3252 // build/dev/javascript/lustre/lustre/element/html.mjs 3054 3253 function text3(content) { ··· 3080 3279 } 3081 3280 function button(attrs, children) { 3082 3281 return element2("button", attrs, children); 3282 + } 3283 + function form(attrs, children) { 3284 + return element2("form", attrs, children); 3285 + } 3286 + function input(attrs) { 3287 + return element2("input", attrs, empty_list); 3288 + } 3289 + function label(attrs, children) { 3290 + return element2("label", attrs, children); 3291 + } 3292 + function textarea(attrs, content) { 3293 + return element2("textarea", prepend(property2("value", string3(content)), attrs), toList([text2(content)])); 3083 3294 } 3084 3295 3085 3296 // build/dev/javascript/lustre/lustre/vdom/patch.mjs ··· 3207 3418 } 3208 3419 } 3209 3420 class Provide extends CustomType { 3210 - constructor(kind, key, value) { 3421 + constructor(kind, key, value2) { 3211 3422 super(); 3212 3423 this.kind = kind; 3213 3424 this.key = key; 3214 - this.value = value; 3425 + this.value = value2; 3215 3426 } 3216 3427 } 3217 3428 class Batch extends CustomType { ··· 3222 3433 } 3223 3434 } 3224 3435 class AttributeChanged extends CustomType { 3225 - constructor(kind, name, value) { 3436 + constructor(kind, name, value2) { 3226 3437 super(); 3227 3438 this.kind = kind; 3228 3439 this.name = name; 3229 - this.value = value; 3440 + this.value = value2; 3230 3441 } 3231 3442 } 3232 3443 class PropertyChanged extends CustomType { 3233 - constructor(kind, name, value) { 3444 + constructor(kind, name, value2) { 3234 3445 super(); 3235 3446 this.kind = kind; 3236 3447 this.name = name; 3237 - this.value = value; 3448 + this.value = value2; 3238 3449 } 3239 3450 } 3240 3451 class EventFired extends CustomType { 3241 - constructor(kind, path, name, event2) { 3452 + constructor(kind, path, name, event3) { 3242 3453 super(); 3243 3454 this.kind = kind; 3244 3455 this.path = path; 3245 3456 this.name = name; 3246 - this.event = event2; 3457 + this.event = event3; 3247 3458 } 3248 3459 } 3249 3460 class ContextProvided extends CustomType { 3250 - constructor(kind, key, value) { 3461 + constructor(kind, key, value2) { 3251 3462 super(); 3252 3463 this.kind = kind; 3253 3464 this.key = key; 3254 - this.value = value; 3465 + this.value = value2; 3255 3466 } 3256 3467 } 3257 3468 var mount_kind = 0; ··· 3267 3478 return new Emit(emit_kind, name, data); 3268 3479 } 3269 3480 var provide_kind = 3; 3270 - function provide(key, value) { 3271 - return new Provide(provide_kind, key, value); 3481 + function provide(key, value2) { 3482 + return new Provide(provide_kind, key, value2); 3272 3483 } 3273 3484 3274 3485 // build/dev/javascript/lustre/lustre/vdom/diff.mjs ··· 4074 4285 } 4075 4286 4076 4287 // build/dev/javascript/lustre/lustre/vdom/reconciler.ffi.mjs 4077 - var setTimeout = globalThis.setTimeout; 4078 - var clearTimeout = globalThis.clearTimeout; 4288 + var setTimeout2 = globalThis.setTimeout; 4289 + var clearTimeout2 = globalThis.clearTimeout; 4079 4290 var createElementNS = (ns, name) => document2().createElementNS(ns, name); 4080 4291 var createTextNode = (data) => document2().createTextNode(data); 4081 4292 var createDocumentFragment = () => document2().createDocumentFragment(); ··· 4083 4294 var moveBefore = SUPPORTS_MOVE_BEFORE ? (parent, node, reference) => parent.moveBefore(node, reference) : insertBefore; 4084 4295 var removeChild = (parent, child) => parent.removeChild(child); 4085 4296 var getAttribute = (node, name) => node.getAttribute(name); 4086 - var setAttribute = (node, name, value) => node.setAttribute(name, value); 4297 + var setAttribute = (node, name, value2) => node.setAttribute(name, value2); 4087 4298 var removeAttribute = (node, name) => node.removeAttribute(name); 4088 4299 var addEventListener = (node, name, handler, options) => node.addEventListener(name, handler, options); 4089 4300 var removeEventListener = (node, name, handler) => node.removeEventListener(name, handler); ··· 4262 4473 const { debouncers, children } = node; 4263 4474 for (const { timeout } of debouncers.values()) { 4264 4475 if (timeout) { 4265 - clearTimeout(timeout); 4476 + clearTimeout2(timeout); 4266 4477 } 4267 4478 } 4268 4479 debouncers.clear(); ··· 4336 4547 const { 4337 4548 kind, 4338 4549 name, 4339 - value, 4550 + value: value2, 4340 4551 prevent_default: prevent, 4341 4552 debounce: debounceDelay, 4342 4553 throttle: throttleDelay 4343 4554 } = attribute3; 4344 4555 switch (kind) { 4345 4556 case attribute_kind: { 4346 - const valueOrDefault = value ?? ""; 4557 + const valueOrDefault = value2 ?? ""; 4347 4558 if (name === "virtual:defaultValue") { 4348 4559 node.defaultValue = valueOrDefault; 4349 4560 return; ··· 4355 4566 break; 4356 4567 } 4357 4568 case property_kind: 4358 - node[name] = value; 4569 + node[name] = value2; 4359 4570 break; 4360 4571 case event_kind: { 4361 4572 if (handlers.has(name)) { ··· 4365 4576 addEventListener(node, name, handleEvent, { passive }); 4366 4577 this.#updateDebounceThrottle(throttles, name, throttleDelay); 4367 4578 this.#updateDebounceThrottle(debouncers, name, debounceDelay); 4368 - handlers.set(name, (event2) => this.#handleEvent(attribute3, event2)); 4579 + handlers.set(name, (event3) => this.#handleEvent(attribute3, event3)); 4369 4580 break; 4370 4581 } 4371 4582 } 4372 4583 } 4373 - #updateDebounceThrottle(map5, name, delay) { 4374 - const debounceOrThrottle = map5.get(name); 4584 + #updateDebounceThrottle(map7, name, delay) { 4585 + const debounceOrThrottle = map7.get(name); 4375 4586 if (delay > 0) { 4376 4587 if (debounceOrThrottle) { 4377 4588 debounceOrThrottle.delay = delay; 4378 4589 } else { 4379 - map5.set(name, { delay }); 4590 + map7.set(name, { delay }); 4380 4591 } 4381 4592 } else if (debounceOrThrottle) { 4382 4593 const { timeout } = debounceOrThrottle; 4383 4594 if (timeout) { 4384 - clearTimeout(timeout); 4595 + clearTimeout2(timeout); 4385 4596 } 4386 - map5.delete(name); 4597 + map7.delete(name); 4387 4598 } 4388 4599 } 4389 - #handleEvent(attribute3, event2) { 4390 - const { currentTarget, type } = event2; 4600 + #handleEvent(attribute3, event3) { 4601 + const { currentTarget, type } = event3; 4391 4602 const { debouncers, throttles } = currentTarget[meta]; 4392 4603 const path = getPath(currentTarget); 4393 4604 const { ··· 4397 4608 immediate 4398 4609 } = attribute3; 4399 4610 if (prevent.kind === always_kind) 4400 - event2.preventDefault(); 4611 + event3.preventDefault(); 4401 4612 if (stop.kind === always_kind) 4402 - event2.stopPropagation(); 4613 + event3.stopPropagation(); 4403 4614 if (type === "submit") { 4404 - event2.detail ??= {}; 4405 - event2.detail.formData = [ 4406 - ...new FormData(event2.target, event2.submitter).entries() 4615 + event3.detail ??= {}; 4616 + event3.detail.formData = [ 4617 + ...new FormData(event3.target, event3.submitter).entries() 4407 4618 ]; 4408 4619 } 4409 - const data = this.#useServerEvents ? createServerEvent(event2, include ?? []) : event2; 4620 + const data = this.#useServerEvents ? createServerEvent(event3, include ?? []) : event3; 4410 4621 const throttle = throttles.get(type); 4411 4622 if (throttle) { 4412 4623 const now = Date.now(); 4413 4624 const last = throttle.last || 0; 4414 4625 if (now > last + throttle.delay) { 4415 4626 throttle.last = now; 4416 - throttle.lastEvent = event2; 4627 + throttle.lastEvent = event3; 4417 4628 this.#dispatch(data, path, type, immediate); 4418 4629 } 4419 4630 } 4420 4631 const debounce = debouncers.get(type); 4421 4632 if (debounce) { 4422 - clearTimeout(debounce.timeout); 4423 - debounce.timeout = setTimeout(() => { 4424 - if (event2 === throttles.get(type)?.lastEvent) 4633 + clearTimeout2(debounce.timeout); 4634 + debounce.timeout = setTimeout2(() => { 4635 + if (event3 === throttles.get(type)?.lastEvent) 4425 4636 return; 4426 4637 this.#dispatch(data, path, type, immediate); 4427 4638 }, debounce.delay); ··· 4442 4653 } 4443 4654 } 4444 4655 }; 4445 - var handleEvent = (event2) => { 4446 - const { currentTarget, type } = event2; 4656 + var handleEvent = (event3) => { 4657 + const { currentTarget, type } = event3; 4447 4658 const handler = currentTarget[meta].handlers.get(type); 4448 - handler(event2); 4659 + handler(event3); 4449 4660 }; 4450 - var createServerEvent = (event2, include = []) => { 4661 + var createServerEvent = (event3, include = []) => { 4451 4662 const data = {}; 4452 - if (event2.type === "input" || event2.type === "change") { 4663 + if (event3.type === "input" || event3.type === "change") { 4453 4664 include.push("target.value"); 4454 4665 } 4455 - if (event2.type === "submit") { 4666 + if (event3.type === "submit") { 4456 4667 include.push("detail.formData"); 4457 4668 } 4458 4669 for (const property3 of include) { 4459 4670 const path = property3.split("."); 4460 - for (let i = 0, input = event2, output = data;i < path.length; i++) { 4671 + for (let i = 0, input2 = event3, output = data;i < path.length; i++) { 4461 4672 if (i === path.length - 1) { 4462 - output[path[i]] = input[path[i]]; 4673 + output[path[i]] = input2[path[i]]; 4463 4674 break; 4464 4675 } 4465 4676 output = output[path[i]] ??= {}; 4466 - input = input[path[i]]; 4677 + input2 = input2[path[i]]; 4467 4678 } 4468 4679 } 4469 4680 return data; ··· 4480 4691 }; 4481 4692 var syncedAttribute = (name) => { 4482 4693 return { 4483 - added(node, value) { 4484 - node[name] = value; 4694 + added(node, value2) { 4695 + node[name] = value2; 4485 4696 } 4486 4697 }; 4487 4698 }; ··· 4571 4782 virtualisableRootChildren += 1; 4572 4783 } 4573 4784 if (virtualisableRootChildren === 0) { 4574 - const placeholder = document2().createTextNode(""); 4575 - insertMetadataChild(text_kind, rootMeta, placeholder, 0, null); 4576 - root3.replaceChildren(placeholder); 4785 + const placeholder2 = document2().createTextNode(""); 4786 + insertMetadataChild(text_kind, rootMeta, placeholder2, 0, null); 4787 + root3.replaceChildren(placeholder2); 4577 4788 return none2(); 4578 4789 } 4579 4790 if (virtualisableRootChildren === 1) { ··· 4623 4834 }; 4624 4835 var INPUT_ELEMENTS = ["input", "select", "textarea"]; 4625 4836 var virtualiseInputEvents = (tag, node) => { 4626 - const value = node.value; 4837 + const value2 = node.value; 4627 4838 const checked = node.checked; 4628 4839 if (tag === "input" && node.type === "checkbox" && !checked) 4629 4840 return; 4630 4841 if (tag === "input" && node.type === "radio" && !checked) 4631 4842 return; 4632 - if (node.type !== "checkbox" && node.type !== "radio" && !value) 4843 + if (node.type !== "checkbox" && node.type !== "radio" && !value2) 4633 4844 return; 4634 4845 queueMicrotask(() => { 4635 - node.value = value; 4846 + node.value = value2; 4636 4847 node.checked = checked; 4637 4848 node.dispatchEvent(new Event("input", { bubbles: true })); 4638 4849 node.dispatchEvent(new Event("change", { bubbles: true })); ··· 4685 4896 }; 4686 4897 var virtualiseAttribute = (attr) => { 4687 4898 const name = attr.localName; 4688 - const value = attr.value; 4689 - return attribute2(name, value); 4899 + const value2 = attr.value; 4900 + return attribute2(name, value2); 4690 4901 }; 4691 4902 4692 4903 // build/dev/javascript/lustre/lustre/runtime/client/runtime.ffi.mjs ··· 4697 4908 this.#model = model; 4698 4909 this.#view = view; 4699 4910 this.#update = update2; 4700 - this.root.addEventListener("context-request", (event2) => { 4701 - if (!(event2.context && event2.callback)) 4911 + this.root.addEventListener("context-request", (event3) => { 4912 + if (!(event3.context && event3.callback)) 4702 4913 return; 4703 - if (!this.#contexts.has(event2.context)) 4914 + if (!this.#contexts.has(event3.context)) 4704 4915 return; 4705 - event2.stopImmediatePropagation(); 4706 - const context = this.#contexts.get(event2.context); 4707 - if (event2.subscribe) { 4916 + event3.stopImmediatePropagation(); 4917 + const context = this.#contexts.get(event3.context); 4918 + if (event3.subscribe) { 4708 4919 const unsubscribe = () => { 4709 - context.subscribers = context.subscribers.filter((subscriber) => subscriber !== event2.callback); 4920 + context.subscribers = context.subscribers.filter((subscriber) => subscriber !== event3.callback); 4710 4921 }; 4711 - context.subscribers.push([event2.callback, unsubscribe]); 4712 - event2.callback(context.value, unsubscribe); 4922 + context.subscribers.push([event3.callback, unsubscribe]); 4923 + event3.callback(context.value, unsubscribe); 4713 4924 } else { 4714 - event2.callback(context.value); 4925 + event3.callback(context.value); 4715 4926 } 4716 4927 }); 4717 - this.#reconciler = new Reconciler(this.root, (event2, path, name) => { 4718 - const [events, result] = handle(this.#events, path, name, event2); 4928 + this.#reconciler = new Reconciler(this.root, (event3, path, name) => { 4929 + const [events, result] = handle(this.#events, path, name, event3); 4719 4930 this.#events = events; 4720 4931 if (result.isOk()) { 4721 4932 const handler = result[0]; 4722 4933 if (handler.stop_propagation) 4723 - event2.stopPropagation(); 4934 + event3.stopPropagation(); 4724 4935 if (handler.prevent_default) 4725 - event2.preventDefault(); 4936 + event3.preventDefault(); 4726 4937 this.dispatch(handler.message, false); 4727 4938 } 4728 4939 }); ··· 4742 4953 this.#tick(effects); 4743 4954 } 4744 4955 } 4745 - emit(event2, data) { 4956 + emit(event3, data) { 4746 4957 const target = this.root.host ?? this.root; 4747 - target.dispatchEvent(new CustomEvent(event2, { 4958 + target.dispatchEvent(new CustomEvent(event3, { 4748 4959 detail: data, 4749 4960 bubbles: true, 4750 4961 composed: true 4751 4962 })); 4752 4963 } 4753 - provide(key, value) { 4964 + provide(key, value2) { 4754 4965 if (!this.#contexts.has(key)) { 4755 - this.#contexts.set(key, { value, subscribers: [] }); 4966 + this.#contexts.set(key, { value: value2, subscribers: [] }); 4756 4967 } else { 4757 4968 const context = this.#contexts.get(key); 4758 - context.value = value; 4969 + context.value = value2; 4759 4970 for (let i = context.subscribers.length - 1;i >= 0; i--) { 4760 4971 const [subscriber, unsubscribe] = context.subscribers[i]; 4761 4972 if (!subscriber) { 4762 4973 context.subscribers.splice(i, 1); 4763 4974 continue; 4764 4975 } 4765 - subscriber(value, unsubscribe); 4976 + subscriber(value2, unsubscribe); 4766 4977 } 4767 4978 } 4768 4979 } ··· 4781 4992 #shouldFlush = false; 4782 4993 #actions = { 4783 4994 dispatch: (msg, immediate) => this.dispatch(msg, immediate), 4784 - emit: (event2, data) => this.emit(event2, data), 4995 + emit: (event3, data) => this.emit(event3, data), 4785 4996 select: () => {}, 4786 4997 root: () => this.root, 4787 - provide: (key, value) => this.provide(key, value) 4998 + provide: (key, value2) => this.provide(key, value2) 4788 4999 }; 4789 5000 #tick(effects) { 4790 5001 this.#shouldQueue = true; ··· 4885 5096 } 4886 5097 } 4887 5098 class EffectProvidedValue extends CustomType { 4888 - constructor(key, value) { 5099 + constructor(key, value2) { 4889 5100 super(); 4890 5101 this.key = key; 4891 - this.value = value; 5102 + this.value = value2; 4892 5103 } 4893 5104 } 4894 5105 class SystemRequestedShutdown extends CustomType { ··· 4940 5151 dispatch(msg, immediate) { 4941 5152 this.#runtime.dispatch(msg, immediate); 4942 5153 } 4943 - emit(event2, data) { 4944 - this.#runtime.emit(event2, data); 5154 + emit(event3, data) { 5155 + this.#runtime.emit(event3, data); 4945 5156 } 4946 5157 } 4947 5158 var start = ({ init, update: update2, view }, selector, flags) => { 4948 5159 if (!is_browser()) 4949 - return new Error(new NotABrowser); 5160 + return new Error2(new NotABrowser); 4950 5161 const root3 = selector instanceof HTMLElement ? selector : document2().querySelector(selector); 4951 5162 if (!root3) 4952 - return new Error(new ElementNotFound(selector)); 5163 + return new Error2(new ElementNotFound(selector)); 4953 5164 return new Ok(new Spa(root3, init(flags), update2, view)); 4954 5165 }; 4955 5166 ··· 5012 5223 return; 5013 5224 } 5014 5225 case EffectProvidedValue: { 5015 - const { key, value } = msg; 5016 - this.#providers = insert(this.#providers, key, value); 5017 - this.broadcast(provide(key, value)); 5226 + const { key, value: value2 } = msg; 5227 + this.#providers = insert(this.#providers, key, value2); 5228 + this.broadcast(provide(key, value2)); 5018 5229 return; 5019 5230 } 5020 5231 case SystemRequestedShutdown: { ··· 5056 5267 return this.#view(this.#model); 5057 5268 } 5058 5269 case AttributeChanged: { 5059 - const { name, value } = msg; 5060 - const result = this.#handle_attribute_change(name, value); 5061 - if (result instanceof Error) { 5270 + const { name, value: value2 } = msg; 5271 + const result = this.#handle_attribute_change(name, value2); 5272 + if (result instanceof Error2) { 5062 5273 return this.#vdom; 5063 5274 } else { 5064 5275 const [model, effects] = this.#update(this.#model, result[0]); ··· 5068 5279 } 5069 5280 } 5070 5281 case PropertyChanged: { 5071 - const { name, value } = msg; 5072 - const result = this.#handle_properties_change(name, value); 5073 - if (result instanceof Error) { 5282 + const { name, value: value2 } = msg; 5283 + const result = this.#handle_properties_change(name, value2); 5284 + if (result instanceof Error2) { 5074 5285 return this.#vdom; 5075 5286 } else { 5076 5287 const [model, effects] = this.#update(this.#model, result[0]); ··· 5080 5291 } 5081 5292 } 5082 5293 case EventFired: { 5083 - const { path, name, event: event2 } = msg; 5084 - const [events, result] = handle(this.#events, path, name, event2); 5294 + const { path, name, event: event3 } = msg; 5295 + const [events, result] = handle(this.#events, path, name, event3); 5085 5296 this.#events = events; 5086 - if (result instanceof Error) { 5297 + if (result instanceof Error2) { 5087 5298 return this.#vdom; 5088 5299 } else { 5089 5300 const [model, effects] = this.#update(this.#model, result[0].message); ··· 5093 5304 } 5094 5305 } 5095 5306 case ContextProvided: { 5096 - const { key, value } = msg; 5307 + const { key, value: value2 } = msg; 5097 5308 let result = map_get(this.#config.contexts, key); 5098 - if (result instanceof Error) { 5309 + if (result instanceof Error2) { 5099 5310 return this.#vdom; 5100 5311 } 5101 - result = run(value, result[0]); 5102 - if (result instanceof Error) { 5312 + result = run(value2, result[0]); 5313 + if (result instanceof Error2) { 5103 5314 return this.#vdom; 5104 5315 } 5105 5316 const [model, effects] = this.#update(this.#model, result[0]); ··· 5109 5320 } 5110 5321 } 5111 5322 } 5112 - #handle_attribute_change(name, value) { 5323 + #handle_attribute_change(name, value2) { 5113 5324 const result = map_get(this.#config.attributes, name); 5114 5325 switch (result.constructor) { 5115 5326 case Ok: 5116 - return result[0](value); 5117 - case Error: 5118 - return new Error(undefined); 5327 + return result[0](value2); 5328 + case Error2: 5329 + return new Error2(undefined); 5119 5330 } 5120 5331 } 5121 - #handle_properties_change(name, value) { 5332 + #handle_properties_change(name, value2) { 5122 5333 const result = map_get(this.#config.properties, name); 5123 5334 switch (result.constructor) { 5124 5335 case Ok: 5125 - return result[0](value); 5126 - case Error: 5127 - return new Error(undefined); 5336 + return result[0](value2); 5337 + case Error2: 5338 + return new Error2(undefined); 5128 5339 } 5129 5340 } 5130 5341 #handle_effect(effect) { ··· 5136 5347 const internals = () => { 5137 5348 return; 5138 5349 }; 5139 - const provide2 = (key, value) => this.send(new EffectProvidedValue(key, value)); 5350 + const provide2 = (key, value2) => this.send(new EffectProvidedValue(key, value2)); 5140 5351 globalThis.queueMicrotask(() => { 5141 5352 perform(effect, dispatch, emit2, select, internals, provide2); 5142 5353 }); ··· 5165 5376 return new App(init, update2, view, new$6(empty_list)); 5166 5377 } 5167 5378 function start3(app, selector, start_args) { 5168 - return guard(!is_browser(), new Error(new NotABrowser), () => { 5379 + return guard(!is_browser(), new Error2(new NotABrowser), () => { 5169 5380 return start(app, selector, start_args); 5170 5381 }); 5382 + } 5383 + 5384 + // build/dev/javascript/gleam_stdlib/gleam/pair.mjs 5385 + function new$7(first2, second) { 5386 + return [first2, second]; 5171 5387 } 5172 5388 // build/dev/javascript/modem/modem.ffi.mjs 5173 5389 var defaults = { ··· 5177 5393 var initial_location = globalThis?.window?.location?.href; 5178 5394 var do_initial_uri = () => { 5179 5395 if (!initial_location) { 5180 - return new Error(undefined); 5396 + return new Error2(undefined); 5181 5397 } else { 5182 5398 return new Ok(uri_from_url(new URL(initial_location))); 5183 5399 } 5184 5400 }; 5185 5401 var do_init = (dispatch, options = defaults) => { 5186 - document.addEventListener("click", (event2) => { 5187 - const a2 = find_anchor(event2.target); 5402 + document.addEventListener("click", (event3) => { 5403 + const a2 = find_anchor(event3.target); 5188 5404 if (!a2) 5189 5405 return; 5190 5406 try { ··· 5195 5411 return; 5196 5412 if (!options.handle_internal_links && !is_external) 5197 5413 return; 5198 - event2.preventDefault(); 5414 + event3.preventDefault(); 5199 5415 if (!is_external) { 5200 5416 window.history.pushState({}, "", a2.href); 5201 5417 window.requestAnimationFrame(() => { ··· 5231 5447 dispatch(detail); 5232 5448 }); 5233 5449 }; 5450 + var do_push = (uri) => { 5451 + window.history.pushState({}, "", to_string2(uri)); 5452 + window.requestAnimationFrame(() => { 5453 + if (uri.fragment[0]) { 5454 + document.getElementById(uri.fragment[0])?.scrollIntoView(); 5455 + } 5456 + }); 5457 + window.dispatchEvent(new CustomEvent("modem-push", { detail: uri })); 5458 + }; 5234 5459 var find_anchor = (el) => { 5235 5460 if (!el || el.tagName === "BODY") { 5236 5461 return null; ··· 5256 5481 }); 5257 5482 }); 5258 5483 } 5484 + var relative = /* @__PURE__ */ new Uri(/* @__PURE__ */ new None, /* @__PURE__ */ new None, /* @__PURE__ */ new None, /* @__PURE__ */ new None, "", /* @__PURE__ */ new None, /* @__PURE__ */ new None); 5485 + function push(path, query, fragment3) { 5486 + return from((_) => { 5487 + return guard(!is_browser(), undefined, () => { 5488 + return do_push(new Uri(relative.scheme, relative.userinfo, relative.host, relative.port, path, query, fragment3)); 5489 + }); 5490 + }); 5491 + } 5259 5492 // build/dev/javascript/plinth/document_ffi.mjs 5260 5493 function querySelector(query) { 5261 5494 let found = document.querySelector(query); 5262 5495 if (!found) { 5263 - return new Error; 5496 + return new Error2; 5264 5497 } 5265 5498 return new Ok(found); 5266 5499 } ··· 5271 5504 } 5272 5505 // build/dev/javascript/shared/shared/profile.mjs 5273 5506 class Profile extends CustomType { 5274 - constructor(id, uri, cid, did, handle2, display_name, description, avatar_url, home_town, interests, indexed_at) { 5507 + constructor(id2, uri, cid, did, handle2, display_name, description, avatar_url, home_town, interests, indexed_at) { 5275 5508 super(); 5276 - this.id = id; 5509 + this.id = id2; 5277 5510 this.uri = uri; 5278 5511 this.cid = cid; 5279 5512 this.did = did; ··· 5287 5520 } 5288 5521 } 5289 5522 function profile_decoder() { 5290 - return field("id", string2, (id) => { 5523 + return field("id", string2, (id2) => { 5291 5524 return field("uri", string2, (uri) => { 5292 5525 return field("cid", string2, (cid) => { 5293 5526 return field("did", string2, (did) => { ··· 5298 5531 return field("home_town", optional(string2), (home_town) => { 5299 5532 return field("interests", optional(list2(string2)), (interests) => { 5300 5533 return field("indexed_at", string2, (indexed_at) => { 5301 - return success(new Profile(id, uri, cid, did, handle2, display_name, description, avatar_url, home_town, interests, indexed_at)); 5534 + return success(new Profile(id2, uri, cid, did, handle2, display_name, description, avatar_url, home_town, interests, indexed_at)); 5302 5535 }); 5303 5536 }); 5304 5537 }); ··· 5311 5544 }); 5312 5545 }); 5313 5546 } 5547 + // node_modules/h3-js/dist/browser/h3-js.es.js 5548 + var libh3 = function(libh32) { 5549 + libh32 = libh32 || {}; 5550 + var Module = typeof libh32 !== "undefined" ? libh32 : {}; 5551 + var moduleOverrides = {}; 5552 + var key2; 5553 + for (key2 in Module) { 5554 + if (Module.hasOwnProperty(key2)) { 5555 + moduleOverrides[key2] = Module[key2]; 5556 + } 5557 + } 5558 + var arguments_ = []; 5559 + var scriptDirectory = ""; 5560 + function locateFile(path) { 5561 + if (Module["locateFile"]) { 5562 + return Module["locateFile"](path, scriptDirectory); 5563 + } 5564 + return scriptDirectory + path; 5565 + } 5566 + var readAsync; 5567 + { 5568 + if (typeof document !== "undefined" && document.currentScript) { 5569 + scriptDirectory = document.currentScript.src; 5570 + } 5571 + if (scriptDirectory.indexOf("blob:") !== 0) { 5572 + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf("/") + 1); 5573 + } else { 5574 + scriptDirectory = ""; 5575 + } 5576 + readAsync = function readAsync(url, onload, onerror) { 5577 + var xhr = new XMLHttpRequest; 5578 + xhr.open("GET", url, true); 5579 + xhr.responseType = "arraybuffer"; 5580 + xhr.onload = function xhr_onload() { 5581 + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { 5582 + onload(xhr.response); 5583 + return; 5584 + } 5585 + var data = tryParseAsDataURI(url); 5586 + if (data) { 5587 + onload(data.buffer); 5588 + return; 5589 + } 5590 + onerror(); 5591 + }; 5592 + xhr.onerror = onerror; 5593 + xhr.send(null); 5594 + }; 5595 + } 5596 + var out = Module["print"] || console.log.bind(console); 5597 + var err = Module["printErr"] || console.warn.bind(console); 5598 + for (key2 in moduleOverrides) { 5599 + if (moduleOverrides.hasOwnProperty(key2)) { 5600 + Module[key2] = moduleOverrides[key2]; 5601 + } 5602 + } 5603 + moduleOverrides = null; 5604 + if (Module["arguments"]) { 5605 + arguments_ = Module["arguments"]; 5606 + } 5607 + var tempRet0 = 0; 5608 + var setTempRet0 = function(value3) { 5609 + tempRet0 = value3; 5610 + }; 5611 + var getTempRet0 = function() { 5612 + return tempRet0; 5613 + }; 5614 + var GLOBAL_BASE = 8; 5615 + function setValue2(ptr, value3, type, noSafe) { 5616 + type = type || "i8"; 5617 + if (type.charAt(type.length - 1) === "*") { 5618 + type = "i32"; 5619 + } 5620 + switch (type) { 5621 + case "i1": 5622 + HEAP8[ptr >> 0] = value3; 5623 + break; 5624 + case "i8": 5625 + HEAP8[ptr >> 0] = value3; 5626 + break; 5627 + case "i16": 5628 + HEAP16[ptr >> 1] = value3; 5629 + break; 5630 + case "i32": 5631 + HEAP32[ptr >> 2] = value3; 5632 + break; 5633 + case "i64": 5634 + tempI64 = [value3 >>> 0, (tempDouble = value3, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; 5635 + break; 5636 + case "float": 5637 + HEAPF32[ptr >> 2] = value3; 5638 + break; 5639 + case "double": 5640 + HEAPF64[ptr >> 3] = value3; 5641 + break; 5642 + default: 5643 + abort("invalid type for setValue: " + type); 5644 + } 5645 + } 5646 + function getValue(ptr, type, noSafe) { 5647 + type = type || "i8"; 5648 + if (type.charAt(type.length - 1) === "*") { 5649 + type = "i32"; 5650 + } 5651 + switch (type) { 5652 + case "i1": 5653 + return HEAP8[ptr >> 0]; 5654 + case "i8": 5655 + return HEAP8[ptr >> 0]; 5656 + case "i16": 5657 + return HEAP16[ptr >> 1]; 5658 + case "i32": 5659 + return HEAP32[ptr >> 2]; 5660 + case "i64": 5661 + return HEAP32[ptr >> 2]; 5662 + case "float": 5663 + return HEAPF32[ptr >> 2]; 5664 + case "double": 5665 + return HEAPF64[ptr >> 3]; 5666 + default: 5667 + abort("invalid type for getValue: " + type); 5668 + } 5669 + return null; 5670 + } 5671 + var ABORT = false; 5672 + function assert(condition, text4) { 5673 + if (!condition) { 5674 + abort("Assertion failed: " + text4); 5675 + } 5676 + } 5677 + function getCFunc(ident) { 5678 + var func = Module["_" + ident]; 5679 + assert(func, "Cannot call unknown function " + ident + ", make sure it is exported"); 5680 + return func; 5681 + } 5682 + function ccall(ident, returnType, argTypes, args, opts) { 5683 + var toC = { 5684 + string: function(str) { 5685 + var ret2 = 0; 5686 + if (str !== null && str !== undefined && str !== 0) { 5687 + var len = (str.length << 2) + 1; 5688 + ret2 = stackAlloc(len); 5689 + stringToUTF8(str, ret2, len); 5690 + } 5691 + return ret2; 5692 + }, 5693 + array: function(arr) { 5694 + var ret2 = stackAlloc(arr.length); 5695 + writeArrayToMemory(arr, ret2); 5696 + return ret2; 5697 + } 5698 + }; 5699 + function convertReturnValue(ret2) { 5700 + if (returnType === "string") { 5701 + return UTF8ToString(ret2); 5702 + } 5703 + if (returnType === "boolean") { 5704 + return Boolean(ret2); 5705 + } 5706 + return ret2; 5707 + } 5708 + var func = getCFunc(ident); 5709 + var cArgs = []; 5710 + var stack = 0; 5711 + if (args) { 5712 + for (var i = 0;i < args.length; i++) { 5713 + var converter = toC[argTypes[i]]; 5714 + if (converter) { 5715 + if (stack === 0) { 5716 + stack = stackSave(); 5717 + } 5718 + cArgs[i] = converter(args[i]); 5719 + } else { 5720 + cArgs[i] = args[i]; 5721 + } 5722 + } 5723 + } 5724 + var ret = func.apply(null, cArgs); 5725 + ret = convertReturnValue(ret); 5726 + if (stack !== 0) { 5727 + stackRestore(stack); 5728 + } 5729 + return ret; 5730 + } 5731 + function cwrap(ident, returnType, argTypes, opts) { 5732 + argTypes = argTypes || []; 5733 + var numericArgs = argTypes.every(function(type) { 5734 + return type === "number"; 5735 + }); 5736 + var numericRet = returnType !== "string"; 5737 + if (numericRet && numericArgs && !opts) { 5738 + return getCFunc(ident); 5739 + } 5740 + return function() { 5741 + return ccall(ident, returnType, argTypes, arguments, opts); 5742 + }; 5743 + } 5744 + var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; 5745 + function UTF8ArrayToString(u8Array, idx, maxBytesToRead) { 5746 + var endIdx = idx + maxBytesToRead; 5747 + var endPtr = idx; 5748 + while (u8Array[endPtr] && !(endPtr >= endIdx)) { 5749 + ++endPtr; 5750 + } 5751 + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { 5752 + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)); 5753 + } else { 5754 + var str = ""; 5755 + while (idx < endPtr) { 5756 + var u0 = u8Array[idx++]; 5757 + if (!(u0 & 128)) { 5758 + str += String.fromCharCode(u0); 5759 + continue; 5760 + } 5761 + var u1 = u8Array[idx++] & 63; 5762 + if ((u0 & 224) == 192) { 5763 + str += String.fromCharCode((u0 & 31) << 6 | u1); 5764 + continue; 5765 + } 5766 + var u2 = u8Array[idx++] & 63; 5767 + if ((u0 & 240) == 224) { 5768 + u0 = (u0 & 15) << 12 | u1 << 6 | u2; 5769 + } else { 5770 + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63; 5771 + } 5772 + if (u0 < 65536) { 5773 + str += String.fromCharCode(u0); 5774 + } else { 5775 + var ch = u0 - 65536; 5776 + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); 5777 + } 5778 + } 5779 + } 5780 + return str; 5781 + } 5782 + function UTF8ToString(ptr, maxBytesToRead) { 5783 + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; 5784 + } 5785 + function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { 5786 + if (!(maxBytesToWrite > 0)) { 5787 + return 0; 5788 + } 5789 + var startIdx = outIdx; 5790 + var endIdx = outIdx + maxBytesToWrite - 1; 5791 + for (var i = 0;i < str.length; ++i) { 5792 + var u = str.charCodeAt(i); 5793 + if (u >= 55296 && u <= 57343) { 5794 + var u1 = str.charCodeAt(++i); 5795 + u = 65536 + ((u & 1023) << 10) | u1 & 1023; 5796 + } 5797 + if (u <= 127) { 5798 + if (outIdx >= endIdx) { 5799 + break; 5800 + } 5801 + outU8Array[outIdx++] = u; 5802 + } else if (u <= 2047) { 5803 + if (outIdx + 1 >= endIdx) { 5804 + break; 5805 + } 5806 + outU8Array[outIdx++] = 192 | u >> 6; 5807 + outU8Array[outIdx++] = 128 | u & 63; 5808 + } else if (u <= 65535) { 5809 + if (outIdx + 2 >= endIdx) { 5810 + break; 5811 + } 5812 + outU8Array[outIdx++] = 224 | u >> 12; 5813 + outU8Array[outIdx++] = 128 | u >> 6 & 63; 5814 + outU8Array[outIdx++] = 128 | u & 63; 5815 + } else { 5816 + if (outIdx + 3 >= endIdx) { 5817 + break; 5818 + } 5819 + outU8Array[outIdx++] = 240 | u >> 18; 5820 + outU8Array[outIdx++] = 128 | u >> 12 & 63; 5821 + outU8Array[outIdx++] = 128 | u >> 6 & 63; 5822 + outU8Array[outIdx++] = 128 | u & 63; 5823 + } 5824 + } 5825 + outU8Array[outIdx] = 0; 5826 + return outIdx - startIdx; 5827 + } 5828 + function stringToUTF8(str, outPtr, maxBytesToWrite) { 5829 + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); 5830 + } 5831 + var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; 5832 + function writeArrayToMemory(array3, buffer2) { 5833 + HEAP8.set(array3, buffer2); 5834 + } 5835 + function alignUp(x, multiple) { 5836 + if (x % multiple > 0) { 5837 + x += multiple - x % multiple; 5838 + } 5839 + return x; 5840 + } 5841 + var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; 5842 + function updateGlobalBufferAndViews(buf) { 5843 + buffer = buf; 5844 + Module["HEAP8"] = HEAP8 = new Int8Array(buf); 5845 + Module["HEAP16"] = HEAP16 = new Int16Array(buf); 5846 + Module["HEAP32"] = HEAP32 = new Int32Array(buf); 5847 + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); 5848 + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); 5849 + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); 5850 + Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); 5851 + Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); 5852 + } 5853 + var DYNAMIC_BASE = 5271520, DYNAMICTOP_PTR = 28608; 5854 + var INITIAL_TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 33554432; 5855 + if (Module["buffer"]) { 5856 + buffer = Module["buffer"]; 5857 + } else { 5858 + buffer = new ArrayBuffer(INITIAL_TOTAL_MEMORY); 5859 + } 5860 + INITIAL_TOTAL_MEMORY = buffer.byteLength; 5861 + updateGlobalBufferAndViews(buffer); 5862 + HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; 5863 + function callRuntimeCallbacks(callbacks) { 5864 + while (callbacks.length > 0) { 5865 + var callback = callbacks.shift(); 5866 + if (typeof callback == "function") { 5867 + callback(); 5868 + continue; 5869 + } 5870 + var func = callback.func; 5871 + if (typeof func === "number") { 5872 + if (callback.arg === undefined) { 5873 + Module["dynCall_v"](func); 5874 + } else { 5875 + Module["dynCall_vi"](func, callback.arg); 5876 + } 5877 + } else { 5878 + func(callback.arg === undefined ? null : callback.arg); 5879 + } 5880 + } 5881 + } 5882 + var __ATPRERUN__ = []; 5883 + var __ATINIT__ = []; 5884 + var __ATMAIN__ = []; 5885 + var __ATPOSTRUN__ = []; 5886 + function preRun() { 5887 + if (Module["preRun"]) { 5888 + if (typeof Module["preRun"] == "function") { 5889 + Module["preRun"] = [Module["preRun"]]; 5890 + } 5891 + while (Module["preRun"].length) { 5892 + addOnPreRun(Module["preRun"].shift()); 5893 + } 5894 + } 5895 + callRuntimeCallbacks(__ATPRERUN__); 5896 + } 5897 + function initRuntime() { 5898 + callRuntimeCallbacks(__ATINIT__); 5899 + } 5900 + function preMain() { 5901 + callRuntimeCallbacks(__ATMAIN__); 5902 + } 5903 + function postRun() { 5904 + if (Module["postRun"]) { 5905 + if (typeof Module["postRun"] == "function") { 5906 + Module["postRun"] = [Module["postRun"]]; 5907 + } 5908 + while (Module["postRun"].length) { 5909 + addOnPostRun(Module["postRun"].shift()); 5910 + } 5911 + } 5912 + callRuntimeCallbacks(__ATPOSTRUN__); 5913 + } 5914 + function addOnPreRun(cb) { 5915 + __ATPRERUN__.unshift(cb); 5916 + } 5917 + function addOnPostRun(cb) { 5918 + __ATPOSTRUN__.unshift(cb); 5919 + } 5920 + var Math_abs = Math.abs; 5921 + var Math_ceil = Math.ceil; 5922 + var Math_floor = Math.floor; 5923 + var Math_min = Math.min; 5924 + var runDependencies = 0; 5925 + var runDependencyWatcher = null; 5926 + var dependenciesFulfilled = null; 5927 + function addRunDependency(id2) { 5928 + runDependencies++; 5929 + if (Module["monitorRunDependencies"]) { 5930 + Module["monitorRunDependencies"](runDependencies); 5931 + } 5932 + } 5933 + function removeRunDependency(id2) { 5934 + runDependencies--; 5935 + if (Module["monitorRunDependencies"]) { 5936 + Module["monitorRunDependencies"](runDependencies); 5937 + } 5938 + if (runDependencies == 0) { 5939 + if (runDependencyWatcher !== null) { 5940 + clearInterval(runDependencyWatcher); 5941 + runDependencyWatcher = null; 5942 + } 5943 + if (dependenciesFulfilled) { 5944 + var callback = dependenciesFulfilled; 5945 + dependenciesFulfilled = null; 5946 + callback(); 5947 + } 5948 + } 5949 + } 5950 + Module["preloadedImages"] = {}; 5951 + Module["preloadedAudios"] = {}; 5952 + var memoryInitializer = null; 5953 + var dataURIPrefix = "data:application/octet-stream;base64,"; 5954 + function isDataURI(filename) { 5955 + return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0; 5956 + } 5957 + var tempDouble; 5958 + var tempI64; 5959 + memoryInitializer = "data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAABQAAABoAAAAFAAAAAAAAAAEAAAADAAAAAAAAAA0AAAAFAAAAAgAAAAEAAAABAAAAAAAAAAcAAAAAAAAAGgAAAAAAAAAqAAAAAAAAADoAAAAAAAAAHQAAAAAAAAArAAAAAAAAAD4AAAADAAAAJgAAAAEAAAAvAAAAAwAAAEAAAAADAAAADAAAAAAAAAAcAAAABQAAACwAAAAFAAAADQAAAAAAAAAaAAAAAAAAACoAAAAAAAAAFQAAAAEAAAAdAAAAAAAAACsAAAAAAAAABAAAAAMAAAAPAAAABQAAAB8AAAAFAAAAAwAAAAEAAAAMAAAAAAAAABwAAAAFAAAABwAAAAEAAAANAAAAAAAAABoAAAAAAAAAHwAAAAAAAAApAAAAAAAAADEAAAAAAAAALAAAAAAAAAA1AAAAAAAAAD0AAAADAAAAOgAAAAEAAABBAAAAAwAAAEsAAAADAAAADwAAAAAAAAAWAAAABQAAACEAAAAFAAAAHAAAAAAAAAAfAAAAAAAAACkAAAAAAAAAKgAAAAEAAAAsAAAAAAAAADUAAAAAAAAABAAAAAQAAAAIAAAABQAAABAAAAAFAAAADAAAAAEAAAAPAAAAAAAAABYAAAAFAAAAGgAAAAEAAAAcAAAAAAAAAB8AAAAAAAAAMgAAAAAAAAAwAAAAAAAAADEAAAADAAAAIAAAAAAAAAAeAAAAAwAAACEAAAADAAAAGAAAAAMAAAASAAAAAwAAABAAAAADAAAARgAAAAAAAABDAAAAAAAAAEIAAAADAAAANAAAAAMAAAAyAAAAAAAAADAAAAAAAAAAJQAAAAMAAAAgAAAAAAAAAB4AAAADAAAAUwAAAAAAAABXAAAAAwAAAFUAAAADAAAASgAAAAMAAABGAAAAAAAAAEMAAAAAAAAAOQAAAAEAAAA0AAAAAwAAADIAAAAAAAAAGQAAAAAAAAAXAAAAAAAAABgAAAADAAAAEQAAAAAAAAALAAAAAwAAAAoAAAADAAAADgAAAAMAAAAGAAAAAwAAAAIAAAADAAAALQAAAAAAAAAnAAAAAAAAACUAAAADAAAAIwAAAAMAAAAZAAAAAAAAABcAAAAAAAAAGwAAAAMAAAARAAAAAAAAAAsAAAADAAAAPwAAAAAAAAA7AAAAAwAAADkAAAADAAAAOAAAAAMAAAAtAAAAAAAAACcAAAAAAAAALgAAAAMAAAAjAAAAAwAAABkAAAAAAAAAJAAAAAAAAAAUAAAAAAAAAA4AAAADAAAAIgAAAAAAAAATAAAAAwAAAAkAAAADAAAAJgAAAAMAAAAVAAAAAwAAAAcAAAADAAAANwAAAAAAAAAoAAAAAAAAABsAAAADAAAANgAAAAMAAAAkAAAAAAAAABQAAAAAAAAAMwAAAAMAAAAiAAAAAAAAABMAAAADAAAASAAAAAAAAAA8AAAAAwAAAC4AAAADAAAASQAAAAMAAAA3AAAAAAAAACgAAAAAAAAARwAAAAMAAAA2AAAAAwAAACQAAAAAAAAAQAAAAAAAAAAvAAAAAAAAACYAAAADAAAAPgAAAAAAAAArAAAAAwAAAB0AAAADAAAAOgAAAAMAAAAqAAAAAwAAABoAAAADAAAAVAAAAAAAAABFAAAAAAAAADMAAAADAAAAUgAAAAMAAABAAAAAAAAAAC8AAAAAAAAATAAAAAMAAAA+AAAAAAAAACsAAAADAAAAYQAAAAAAAABZAAAAAwAAAEcAAAADAAAAYgAAAAMAAABUAAAAAAAAAEUAAAAAAAAAYAAAAAMAAABSAAAAAwAAAEAAAAAAAAAASwAAAAAAAABBAAAAAAAAADoAAAADAAAAPQAAAAAAAAA1AAAAAwAAACwAAAADAAAAMQAAAAMAAAApAAAAAwAAAB8AAAADAAAAXgAAAAAAAABWAAAAAAAAAEwAAAADAAAAUQAAAAMAAABLAAAAAAAAAEEAAAAAAAAAQgAAAAMAAAA9AAAAAAAAADUAAAADAAAAawAAAAAAAABoAAAAAwAAAGAAAAADAAAAZQAAAAMAAABeAAAAAAAAAFYAAAAAAAAAVQAAAAMAAABRAAAAAwAAAEsAAAAAAAAAOQAAAAAAAAA7AAAAAAAAAD8AAAADAAAASgAAAAAAAABOAAAAAwAAAE8AAAADAAAAUwAAAAMAAABcAAAAAwAAAF8AAAADAAAAJQAAAAAAAAAnAAAAAwAAAC0AAAADAAAANAAAAAAAAAA5AAAAAAAAADsAAAAAAAAARgAAAAMAAABKAAAAAAAAAE4AAAADAAAAGAAAAAAAAAAXAAAAAwAAABkAAAADAAAAIAAAAAMAAAAlAAAAAAAAACcAAAADAAAAMgAAAAMAAAA0AAAAAAAAADkAAAAAAAAALgAAAAAAAAA8AAAAAAAAAEgAAAADAAAAOAAAAAAAAABEAAAAAwAAAFAAAAADAAAAPwAAAAMAAABNAAAAAwAAAFoAAAADAAAAGwAAAAAAAAAoAAAAAwAAADcAAAADAAAAIwAAAAAAAAAuAAAAAAAAADwAAAAAAAAALQAAAAMAAAA4AAAAAAAAAEQAAAADAAAADgAAAAAAAAAUAAAAAwAAACQAAAADAAAAEQAAAAMAAAAbAAAAAAAAACgAAAADAAAAGQAAAAMAAAAjAAAAAAAAAC4AAAAAAAAARwAAAAAAAABZAAAAAAAAAGEAAAADAAAASQAAAAAAAABbAAAAAwAAAGcAAAADAAAASAAAAAMAAABYAAAAAwAAAGkAAAADAAAAMwAAAAAAAABFAAAAAwAAAFQAAAADAAAANgAAAAAAAABHAAAAAAAAAFkAAAAAAAAANwAAAAMAAABJAAAAAAAAAFsAAAADAAAAJgAAAAAAAAAvAAAAAwAAAEAAAAADAAAAIgAAAAMAAAAzAAAAAAAAAEUAAAADAAAAJAAAAAMAAAA2AAAAAAAAAEcAAAAAAAAAYAAAAAAAAABoAAAAAAAAAGsAAAADAAAAYgAAAAAAAABuAAAAAwAAAHMAAAADAAAAYQAAAAMAAABvAAAAAwAAAHcAAAADAAAATAAAAAAAAABWAAAAAwAAAF4AAAADAAAAUgAAAAAAAABgAAAAAAAAAGgAAAAAAAAAVAAAAAMAAABiAAAAAAAAAG4AAAADAAAAOgAAAAAAAABBAAAAAwAAAEsAAAADAAAAPgAAAAMAAABMAAAAAAAAAFYAAAADAAAAQAAAAAMAAABSAAAAAAAAAGAAAAAAAAAAVQAAAAAAAABXAAAAAAAAAFMAAAADAAAAZQAAAAAAAABmAAAAAwAAAGQAAAADAAAAawAAAAMAAABwAAAAAwAAAHIAAAADAAAAQgAAAAAAAABDAAAAAwAAAEYAAAADAAAAUQAAAAAAAABVAAAAAAAAAFcAAAAAAAAAXgAAAAMAAABlAAAAAAAAAGYAAAADAAAAMQAAAAAAAAAwAAAAAwAAADIAAAADAAAAPQAAAAMAAABCAAAAAAAAAEMAAAADAAAASwAAAAMAAABRAAAAAAAAAFUAAAAAAAAAXwAAAAAAAABcAAAAAAAAAFMAAAAAAAAATwAAAAAAAABOAAAAAAAAAEoAAAADAAAAPwAAAAEAAAA7AAAAAwAAADkAAAADAAAAbQAAAAAAAABsAAAAAAAAAGQAAAAFAAAAXQAAAAEAAABfAAAAAAAAAFwAAAAAAAAATQAAAAEAAABPAAAAAAAAAE4AAAAAAAAAdQAAAAQAAAB2AAAABQAAAHIAAAAFAAAAagAAAAEAAABtAAAAAAAAAGwAAAAAAAAAWgAAAAEAAABdAAAAAQAAAF8AAAAAAAAAWgAAAAAAAABNAAAAAAAAAD8AAAAAAAAAUAAAAAAAAABEAAAAAAAAADgAAAADAAAASAAAAAEAAAA8AAAAAwAAAC4AAAADAAAAagAAAAAAAABdAAAAAAAAAE8AAAAFAAAAYwAAAAEAAABaAAAAAAAAAE0AAAAAAAAAWAAAAAEAAABQAAAAAAAAAEQAAAAAAAAAdQAAAAMAAABtAAAABQAAAF8AAAAFAAAAcQAAAAEAAABqAAAAAAAAAF0AAAAAAAAAaQAAAAEAAABjAAAAAQAAAFoAAAAAAAAAaQAAAAAAAABYAAAAAAAAAEgAAAAAAAAAZwAAAAAAAABbAAAAAAAAAEkAAAADAAAAYQAAAAEAAABZAAAAAwAAAEcAAAADAAAAcQAAAAAAAABjAAAAAAAAAFAAAAAFAAAAdAAAAAEAAABpAAAAAAAAAFgAAAAAAAAAbwAAAAEAAABnAAAAAAAAAFsAAAAAAAAAdQAAAAIAAABqAAAABQAAAFoAAAAFAAAAeQAAAAEAAABxAAAAAAAAAGMAAAAAAAAAdwAAAAEAAAB0AAAAAQAAAGkAAAAAAAAAdwAAAAAAAABvAAAAAAAAAGEAAAAAAAAAcwAAAAAAAABuAAAAAAAAAGIAAAADAAAAawAAAAEAAABoAAAAAwAAAGAAAAADAAAAeQAAAAAAAAB0AAAAAAAAAGcAAAAFAAAAeAAAAAEAAAB3AAAAAAAAAG8AAAAAAAAAcAAAAAEAAABzAAAAAAAAAG4AAAAAAAAAdQAAAAEAAABxAAAABQAAAGkAAAAFAAAAdgAAAAEAAAB5AAAAAAAAAHQAAAAAAAAAcgAAAAEAAAB4AAAAAQAAAHcAAAAAAAAAcgAAAAAAAABwAAAAAAAAAGsAAAAAAAAAZAAAAAAAAABmAAAAAAAAAGUAAAADAAAAUwAAAAEAAABXAAAAAwAAAFUAAAADAAAAdgAAAAAAAAB4AAAAAAAAAHMAAAAFAAAAbAAAAAEAAAByAAAAAAAAAHAAAAAAAAAAXAAAAAEAAABkAAAAAAAAAGYAAAAAAAAAdQAAAAAAAAB5AAAABQAAAHcAAAAFAAAAbQAAAAEAAAB2AAAAAAAAAHgAAAAAAAAAXwAAAAEAAABsAAAAAQAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGAAAAAgAAAAUAAAABAAAABAAAAAAAAAAAAAAABQAAAAMAAAABAAAABgAAAAQAAAACAAAAAAAAAH6iBfbytuk/Gq6akm/58z/Xrm0Liez0P5doSdOpSwRAWs602ULg8D/dT7Rcbo/1v1N1RQHFNOM/g9Snx7HW3L8HWsP8Q3jfP6VwOLosutk/9rjk1YQcxj+gnmKMsNn6P/HDeuPFY+M/YHwDjqKhB0Ci19/fCVrbP4UxKkDWOP6/pvljWa09tL9wi7wrQXjnv/Z6yLImkM2/3yTlOzY14D+m+WNZrT20PzwKVQnrQwNA9nrIsiaQzT/g40rFrRQFwPa45NWEHMa/kbslHEZq97/xw3rjxWPjv4cLC2SMBci/otff3wla27+rKF5oIAv0P1N1RQHFNOO/iDJPGyWHBUAHWsP8Q3jfvwQf/by16gXAfqIF9vK26b8XrO0Vh0r+v9eubQuJ7PS/BxLrA0ZZ479azrTZQuDwv1MK1EuItPw/yscgV9Z6FkAwHBR2WjQMQJNRzXsQ5vY/GlUHVJYKF0DONuFv2lMNQNCGZ28QJfk/0WUwoIL36D8ggDOMQuATQNqMOeAy/wZAWFYOYM+M2z/LWC4uH3oSQDE+LyTsMgRAkJzhRGWFGEDd4soovCQQQKqk0DJMEP8/rGmNdwOLBUAW2X/9xCbjP4hu3dcqJhNAzuYItRvdB0CgzW3zJW/sPxotm/Y2TxRAQAk9XmdDDEC1Kx9MKgT3P1M+NctcghZAFVqcLlb0C0Bgzd3sB2b2P77mZDPUWhZAFROHJpUGCEDAfma5CxXtPz1DWq/zYxRAmhYY5824F0DOuQKWSbAOQNCMqrvu3fs/L6DR22K2wT9nAAxPBU8RQGiN6mW43AFAZhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAAAAAAAAIAAAADAAAAEwAAAAAAAAACAAAAAgAAAAMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAAAIAAAABAAAAEwAAAAIAAAACAAAAAAAAAAUAAAAKAAAAAAAAAAIAAAACAAAAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAIAAAAAAAAAAgAAAAEAAAAPAAAAAgAAAAIAAAAAAAAABQAAAAsAAAAAAAAAAgAAAAIAAAADAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAgAAAAAAAAACAAAAAQAAABAAAAACAAAAAgAAAAAAAAAFAAAADAAAAAAAAAACAAAAAgAAAAMAAAASAAAAAAAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAIAAAABAAAAEQAAAAIAAAACAAAAAAAAAAUAAAANAAAAAAAAAAIAAAACAAAAAwAAABMAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAIAAAAAAAAAAgAAAAEAAAASAAAAAgAAAAIAAAAAAAAABQAAAA4AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAEAAAAAAAAAAAEAAAAAAQAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAA6B6FaUp9QQTPXMuL4myJBraiDfBwx9UBYJseitzTIQOL5if9jqZtAnXX+Z+ycb0C3pucbhRBCQG8wJBYqpRRAlWbDCzCY5z/eFWBUEve6P/+qo4Q50Y4/D9YM3iCcYT8fcA2QJSA0P4ADxu0qAAc/BNcGolVJ2j5d9FACqwquPh9z7MthtI9CSUSYJke/YUJQ/64OyjU0Qpi0+HCmFQdCm3GfIVdh2kHsJ11kAyauQYC3UDFJOoFBSJsFV1OwU0FK5fcxX4AmQWhy/zZIt/lACqaCPsBjzUDbdUNIScugQMYQlVJ4MXNANiuq8GTvRUDxTXnulxEZQFZ8QX5kpuw/qmG/JwYFlEAluh3Q6DB+QKn4vyNq0GZAKOXekas+UUB8xabXXhI6QG63C2pLtSNAdDBtyNfLDUDyOcu67ID2P0rCMvRXAeE/Ki2TSVyzyT9Dk+8Sz2uzP5J+w5ARWp0/NQAoOiMuhj9YnP+RyMJwPxgW7TvQVFk/KgsLYF0kQz9g5dAC6IwzQcgHPVvDex1B1XjppodHBkHJq3OMM9fwQNvcmJ7wddlAInGPpQs/w0BRobq5EBmtQJZ2ai7n+ZVAtv2G5E+bgECG+gIfKBlpQK5f8jdI91JAL39sL/WpPEB8rGxhDqklQK6yUf43XhBAxL9y/tK8+D86XyZpgrHiPwAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAD/////AAAAAAAAAAABAAAAAQAAAAAAAAAAAAAA/////wAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAP////8FAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAQABAAABAQAAAAAAAQAAAAEAAAABAAEAAAAAAAAAAAAAAAAAAAAAquJYWJZl+D9jaeZNtj/zPwwdI9KqaeO/qGefXwdHdz+q4lhYlmX4P+OrlPMN3PI/DB0j0qpp47+7SQLV4VIEQKriWFiWZfg/r2kma3tz8T82eQmLqNIGwMRIWXMqSvo/fcCszPux9j+jara6ozTwP6hnn18HR3c/MSoKLequ8r+SabgA2nj0P7jBLbDOHO8/1Ym/ICfH4T+6lxjvlFXHv73m373LRPU/0vXyDVxo7T+ToKRHJXMAQF/33578aPE/pAyy64tD9T8+U/hCvyruPwxv8Y7YYwLAuXYr8NAiCEB4+LDK0Sn0P1Qeuy4j+eo/OMx50n7K7L+TrGB/nyf8v5ehC2fbYPM/aXMKexiT6z8mFRIMjg/zP7yUVwGGBNw/E6opHERf8z/z0wR2g9DqPw4pBpcOhvu/NbA29uWAA8DMaTExyXzyP02biiQ+Ruk/S8jz2/FKBEB1pzZnpbb9P7pQU4wLfPI//7ZcQXeG6D9CqEQvAYoIwDB2VB6sSgRAVyv8H5We8T+EHWF8XNPmPzB2wT8Nrrg/SEi+cX+w4L8of+GtdSDxP1sjk5AdouU/6ZjOVru13r8K0obqI6bxvwVbdNXyhfA/w5GG024n5z+rwmtMzP8BwLw9pSX49QXABe/2uQxP8D+b6wCzCvXkP7uGT87fK+Q/pz/JWw4coj+qoBf2J0nwP/yE3PUo0+I/vFJeHcaC+D96luSIqvntP/bf8sHUYu8/gZNN41mL4z9bhOqVOF4FwO6lmAh1hQhAbCVxbdhk7z+1C8NdDcfiPwG36x/0OQBAx0WJ76c2+D9nlSHXANfuP2HlfZ3gqOE/EwnVlVPg9r96+oHzEH//v5bXzdT1Auw/DM3GwLsA4D9p/8uoKcr+v+U9x5DQVAPAehjSdghb7D9sc1IetODgP8MVwwB1pu6/azPk6OGe978W8t/TUc3rP+0QMvYfP+A/RsG/QpSE8D+l3uwScxzgPwQaifgujuw/k1Vti1I43z8MAwLnSh0GQH5nYnwwZgJAiGUzWC5s6j8WyyI/BbLgPw4iUapGeQJAB3W+imnp/j9BLWR4ssrpP2t+gG5Pstk/cpBsfm6DCMCOpU9dOZsFQEv8nFypHeo/ehJ6i+6S2D9jqlGEmarLv7STC5TRiOa/bC+x8WZD6D9H3yUkWpDZP8gZvmCMuQLAreY19/eRBsCoPOc8UzzpP6KI/QV+y9g/t/MoboyWzT+Hv5q3Zu3Mvy2xROCT4uY/9gQitMMg1T9abAqhWMDkv1oLTavoUfG/PMUJP9CD5j+fHRX3t6fSPz7W2gk6bvs/WRnuHwqN9D8YFturGCTmP1EZczv0b9I/5t4exabB5D/1ESLh5fTEP9X2z6SYweQ/6lv3I2zT0D9zkRGNUNMAQKoSvc4EIfs/Xggt8wQI5T+mJHHg/w/SP4lhT/9t8vQ/DrZ/DbwH7D+XlhbYZrjkP34LIpFt6c4/lwfp8fLX9L+j96CTTf76v3WdNhEv9uM/d8c3o4lV0D/vFdCHVcsFwAHeDq0F1QhApbYqcZiN5D9KoilqByXLPwX0/diA0vq/0fo0GxnxAMBbaTkvlCzjP/RrFrWXrMs/UYTrky7jA0DB9f4FiZYAQEGAk/3QzeE/r/TeqE8t0D/OqjlsnPbvvz8RKU8JOfW/smSEbK/O4T8MzuyPm3DDP/rFtctq9gZAfb1EVEaSA0Dts5dVInnhP18SFMc79MM/7y34cw6LAMDFrRJsZO0DwC2KLvLSYuA/hx5wcUHewz+49SnK/4ruPyeS0PX9a+E/ZxaaLvvZ3z8WPu5T2QS8Pygo4RIvMqa/BJ0Kqsd0279cKW4ay8jdP3b05bmZ364/10/qtdxk2r+Bcz6CDMvpv54qOw+Amdw/qLV71pW7sT/YKc80nIPUP8OfIaBJ77G/LyTuD1un2z+diYu8efWzP1wU7ACkfwjAZroyPL1yBkAmv3lKJJbbPysKSE4W+p0/dIgqY79TA8ATLTOQ3tsGwJ2zweD/Xdg/XO/jXeFUaL8VW2qLFKfov1cA9Aa6XfK/tIa7YGgI2T+f3hu/sxqPv2nXdPpf3Pc/jkw8Jbda8j+tT/z8tGPVP1yBHpJd35k/KYvYOy1s8j/yz+kCQjPrP9+agH7x59g/PZfJ9aBhpr/rDKzvYBb+PwtkiaGCt/c/vb1mVr+f1T/JIHwHc8Govw7aeF6+9vG/Xv7kD6fp979isYioQYHVP7AIQZuSFrG/3z1AdUTnAUDN3XY9O7f9P0AdQ9ljYNQ/dJANJPTOrb8kLECUiiPlP4yF7UgmStA/9xGmXxCG1T9qZzix4W2zv2SGJRJVrPe/Fh9a2M/B/b8IexzFCoPSP9y1QFD2bLe/Q86cWLJe/b+mOOfYm78BwOTjkPAGE9E/8aPCUKu/ub9pPZyLCiUGwBA7Mev/BQlALOmrlRi+0j+AMJ/dKULBv7iLtL6a6QRAEMDV/yajAUDa62dE3crJP1P70RgBUbq/38hVnR6esT/s1tG10Z/Ov/zLwalHPss/dTS9NKTXx78nMcRzCIEHQAabxDsAmQRA0tyLK3gSyT+Aui7nOhDGv5Gs58z3WgHATN3forJuBMCAui7nOhDGP9Lciyt4Esm/WAJyHQ4c7z8UP5HFIs3iP3U0vTSk18c//MvBqUc+y7+cvv8HLg/Kvy1I/mHsI+K/U/vRGAFRuj/a62dE3crJv8p+WV8KlQjAuQ/nOP43B0CAMJ/dKULBPyzpq5UYvtK/ZoU+VoLh4L9etLlRUfvtv/GjwlCrv7k/5OOQ8AYT0b9DfT9FhufXPwUX8hJp+4u/3LVAUPZstz8IexzFCoPSv9+L609E5fQ/q9Fz7X2J7T9qZzix4W2zP/cRpl8QhtW/vtNilqGX+j8MOy7QJoL0P3SQDST0zq0/QB1D2WNg1L8IIjSvGNkDwGB8Jou2GAfAsAhBm5IWsT9isYioQYHVvyS9D3zb6uy/gnwRa7uM9L/JIHwHc8GoP729Zla/n9W/CsAHJZwmAEDEW6OYT1r6Pz2XyfWgYaY/35qAfvHn2L83Tdy4lS30vxf2/gZ0jPq/XIEekl3fmb+tT/z8tGPVvybPr2zJ1/+/K7mJ0ypVAsCf3hu/sxqPPwCGu2BoCNm/5oITrpZn+r+UDUyDP+n/v1zv413hVGg/nbPB4P9d2L9MlmkxNvgCQMtZlKE85v8/KwpIThb6nb8mv3lKJJbbv8+SZsTvOOc/pQCIIOYw0j+diYu8efWzvy8k7g9bp9u/kxYDa+pKtD9XlYvA8HnVv6i1e9aVu7G/nio7D4CZ3L/WR6rNh5EGwCkgQweBkghAdvTluZnfrr9cKW4ay8jdvxbjhr1f1QVAR5C0MzivAkAWPu5T2QS8v2cWmi772d+/cKj4lzLJCEBx2QJfYrMFQIcecHFB3sO/LYou8tJi4L+jr7lhO38BwIcI0Nb7xgTAXxIUxzv0w7/ts5dVInnhv0T+l8DZLfE/MP3FoFvS5D8MzuyPm3DDv7JkhGyvzuG/tzhzRIRc0b9Ovv3/0z7mv6/03qhPLdC/m4CT/dDN4b9dwjU5VCQBQBBJX1ntCv0/9GsWtZesy79baTkvlCzjv1mjYgEz++S/oW6KnOQW8b9KoilqByXLv6W2KnGYjeS/SmaKz3Vx9z+BZB5yxGHwP3fHN6OJVdC/dZ02ES/2478PuaBjLrXaP4/JU81pPaO/fgsikW3pzr+XlhbYZrjkv4tSn7YDbP0/f2LnFKlF9z+mJHHg/w/Sv14ILfMECOW/mfg4qYhR/b+OP+RQDCACwOpb9yNs09C/1fbPpJjB5L9pN2WOVZ3wv3hHy9nxIve/URlzO/Rv0r8YFturGCTmv1d1/KKR8QPA8gsy9qzSB8CfHRX3t6fSvzzFCT/Qg+a/EYStnrzV9r/2QJqI7Lb9v/YEIrTDINW/LbFE4JPi5r/7kQEs5fEDQHunnf4GeQBAooj9BX7L2L+oPOc8Uzzpv+ydYY2SSAfAL4HK6CRTB0BH3yUkWpDZv2wvsfFmQ+i/Ik0Yzruh6T8fM3LoGoDUP3oSeovukti/S/ycXKkd6r9rEv+7UWcHQCRIQe/GfwNAa36Abk+y2b9BLWR4ssrpv9KT87qa0bM/FTyktw823L8WyyI/BbLgv4hlM1gubOq/DizMp9Ki6r8b5ckdjVrzv5NVbYtSON+/BBqJ+C6O7L/dUBFqgyXYv00Wh18r7+q/7RAy9h8/4L8W8t/TUc3rv4RM5DKx3wDAfvWIj94aBcBsc1IetODgv3oY0nYIW+y/oGcTFF54AUDkJqS/FKX6PwzNxsC7AOC/ltfN1PUC7L+5Wrz/zHnzP6688w2rNOc/YeV9neCo4b9nlSHXANfuvw9RsxKjY/s/1V8GteXE8j+1C8NdDcfiv2wlcW3YZO+/IOywaA7Q8b9bFP+4Tg36v4GTTeNZi+O/9t/ywdRi77+tRc3yFR7eP2bkcHXJkLO//ITc9SjT4r+qoBf2J0nwv2YHKoswwfm/iQcLspCjAcCb6wCzCvXkvwXv9rkMT/C/YkuwYAMXBMApCNUai9kIwMORhtNuJ+e/BVt01fKF8L+ZqWEfvIjsP6h693QZYNk/WyOTkB2i5b8of+GtdSDxvwpaaulDSwVADMQAX+lOAECEHWF8XNPmv1cr/B+VnvG/XyFG6opcCMD/mtR32/UEQP+2XEF3hui/ulBTjAt88r/imfCfRP+yP9zbvtc8XeO/TZuKJD5G6b/MaTExyXzyvxiTQeElXOO/rbJRQVGN9L/z0wR2g9DqvxOqKRxEX/O/FDGCEei99j9x8zV4VYTmP2lzCnsYk+u/l6ELZ9tg878pRXacaDT/v3k6GZRqoQXAVB67LiP56r94+LDK0Sn0vwO6pZ9b7wFAvK0nKVcc9j8+U/hCvyruv6QMsuuLQ/W/FPhKFYv46j8MyxaDTOW/v9L18g1caO2/vebfvctE9b/7GD8ZrF3xv3gx1AR9bQDAuMEtsM4c77+SabgA2nj0v5xKFIwxsATArKNSBaKsB0Cjara6ozTwv33ArMz7sfa/dF2U0FcWCcDxL357DJX/P69pJmt7c/G/quJYWJZl+L/YntVJlnrSP4sRLzXM+fe/46uU8w3c8r+q4lhYlmX4v85lu5+QRwRAsI0H/WU8479jaeZNtj/zv6riWFiWZfi/sI0H/WU847/OZbufkEcEQHAoPUBrnss/9exKzDtFtT88wM8kax+gP9OqeKeAYog/MW0ItiZvcj+ph+smvt5bP2lCaV5dEUU/StaUmQDaLz+kK9y22BMYP0O3whZuMwI/IIbgZGWE6z7UkjYaEM3UPuezxwa9cr8+LybxRMnFpz6E1N8DbPiRPsYjySMvK3s+//////8fAAj//////zMQCP////9/MiAI/////28yMAj/////YzJACP///z9iMlAI////N2IyYAj///8zYjJwCP//vzNiMoAI//+rM2IykAj/f6szYjKgCP8PqzNiMrAI/wOrM2IywAi/A6szYjLQCJ8DqzNiMuAImQOrM2Iy8Aj//////z8PCP//////Kx8I/////38pLwj/////Pyk/CP////85KU8I////PzgpXwj///8POClvCP///w44KX8I//8fDjgpjwj//w8OOCmfCP9/DQ44Ka8I/w8NDjgpvwj/DQ0OOCnPCP8MDQ44Kd8IxwwNDjgp7wjEDA0OOCn/CAcAAAAHAAAAAQAAAAIAAAAEAAAAAwAAAAAAAAAAAAAABwAAAAMAAAABAAAAAgAAAAUAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAGAAAAAgAAAAMAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAwAAAAEAAAAFAAAABAAAAAAAAAAAAAAABwAAAAUAAAADAAAABAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAABgtRFT7Ifk/GC1EVPsh+b8YLURU+yEJQBgtRFT7IQnAYWxnb3MuYwBoM05laWdoYm9yUm90YXRpb25zAGNvb3JkaWprLmMAX3VwQXA3Q2hlY2tlZABfdXBBcDdyQ2hlY2tlZABkaXJlY3RlZEVkZ2UuYwBkaXJlY3RlZEVkZ2VUb0JvdW5kYXJ5AGFkamFjZW50RmFjZURpclt0bXBGaWprLmZhY2VdW2ZpamsuZmFjZV0gPT0gS0kAZmFjZWlqay5jAF9mYWNlSWprUGVudFRvQ2VsbEJvdW5kYXJ5AGFkamFjZW50RmFjZURpcltjZW50ZXJJSksuZmFjZV1bZmFjZTJdID09IEtJAF9mYWNlSWprVG9DZWxsQm91bmRhcnkAaDNJbmRleC5jAGNvbXBhY3RDZWxscwBsYXRMbmdUb0NlbGwAY2VsbFRvQ2hpbGRQb3MAdmFsaWRhdGVDaGlsZFBvcwBsYXRMbmcuYwBjZWxsQXJlYVJhZHMyAHBvbHlnb24tPm5leHQgPT0gTlVMTABsaW5rZWRHZW8uYwBhZGROZXdMaW5rZWRQb2x5Z29uAG5leHQgIT0gTlVMTABsb29wICE9IE5VTEwAYWRkTmV3TGlua2VkTG9vcABwb2x5Z29uLT5maXJzdCA9PSBOVUxMAGFkZExpbmtlZExvb3AAY29vcmQgIT0gTlVMTABhZGRMaW5rZWRDb29yZABsb29wLT5maXJzdCA9PSBOVUxMAGlubmVyTG9vcHMgIT0gTlVMTABub3JtYWxpemVNdWx0aVBvbHlnb24AYmJveGVzICE9IE5VTEwAY2FuZGlkYXRlcyAhPSBOVUxMAGZpbmRQb2x5Z29uRm9ySG9sZQBjYW5kaWRhdGVCQm94ZXMgIT0gTlVMTAByZXZEaXIgIT0gSU5WQUxJRF9ESUdJVABsb2NhbGlqLmMAY2VsbFRvTG9jYWxJamsAYmFzZUNlbGwgIT0gb3JpZ2luQmFzZUNlbGwAIShvcmlnaW5PblBlbnQgJiYgaW5kZXhPblBlbnQpAGJhc2VDZWxsID09IG9yaWdpbkJhc2VDZWxsAGJhc2VDZWxsICE9IElOVkFMSURfQkFTRV9DRUxMAGxvY2FsSWprVG9DZWxsACFfaXNCYXNlQ2VsbFBlbnRhZ29uKGJhc2VDZWxsKQBiYXNlQ2VsbFJvdGF0aW9ucyA+PSAwAGdyaWRQYXRoQ2VsbHMAcG9seWZpbGwuYwBpdGVyU3RlcFBvbHlnb25Db21wYWN0ADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU="; 5960 + var tempDoublePtr = 28624; 5961 + function demangle(func) { 5962 + return func; 5963 + } 5964 + function demangleAll(text4) { 5965 + var regex = /\b__Z[\w\d_]+/g; 5966 + return text4.replace(regex, function(x) { 5967 + var y = demangle(x); 5968 + return x === y ? x : y + " [" + x + "]"; 5969 + }); 5970 + } 5971 + function jsStackTrace() { 5972 + var err2 = new Error; 5973 + if (!err2.stack) { 5974 + try { 5975 + throw new Error(0); 5976 + } catch (e) { 5977 + err2 = e; 5978 + } 5979 + if (!err2.stack) { 5980 + return "(no stack trace available)"; 5981 + } 5982 + } 5983 + return err2.stack.toString(); 5984 + } 5985 + function stackTrace() { 5986 + var js = jsStackTrace(); 5987 + if (Module["extraStackTrace"]) { 5988 + js += ` 5989 + ` + Module["extraStackTrace"](); 5990 + } 5991 + return demangleAll(js); 5992 + } 5993 + function ___assert_fail(condition, filename, line, func) { 5994 + abort("Assertion failed: " + UTF8ToString(condition) + ", at: " + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"]); 5995 + } 5996 + function _emscripten_get_heap_size() { 5997 + return HEAP8.length; 5998 + } 5999 + function _emscripten_memcpy_big(dest, src2, num) { 6000 + HEAPU8.set(HEAPU8.subarray(src2, src2 + num), dest); 6001 + } 6002 + function ___setErrNo(value3) { 6003 + if (Module["___errno_location"]) { 6004 + HEAP32[Module["___errno_location"]() >> 2] = value3; 6005 + } 6006 + return value3; 6007 + } 6008 + function abortOnCannotGrowMemory(requestedSize) { 6009 + abort("OOM"); 6010 + } 6011 + function emscripten_realloc_buffer(size2) { 6012 + try { 6013 + var newBuffer = new ArrayBuffer(size2); 6014 + if (newBuffer.byteLength != size2) { 6015 + return; 6016 + } 6017 + new Int8Array(newBuffer).set(HEAP8); 6018 + _emscripten_replace_memory(newBuffer); 6019 + updateGlobalBufferAndViews(newBuffer); 6020 + return 1; 6021 + } catch (e) {} 6022 + } 6023 + function _emscripten_resize_heap(requestedSize) { 6024 + var oldSize = _emscripten_get_heap_size(); 6025 + var PAGE_MULTIPLE = 16777216; 6026 + var LIMIT = 2147483648 - PAGE_MULTIPLE; 6027 + if (requestedSize > LIMIT) { 6028 + return false; 6029 + } 6030 + var MIN_TOTAL_MEMORY = 16777216; 6031 + var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY); 6032 + while (newSize < requestedSize) { 6033 + if (newSize <= 536870912) { 6034 + newSize = alignUp(2 * newSize, PAGE_MULTIPLE); 6035 + } else { 6036 + newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT); 6037 + } 6038 + } 6039 + var replacement = emscripten_realloc_buffer(newSize); 6040 + if (!replacement) { 6041 + return false; 6042 + } 6043 + return true; 6044 + } 6045 + var decodeBase64 = typeof atob === "function" ? atob : function(input2) { 6046 + var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 6047 + var output = ""; 6048 + var chr1, chr2, chr3; 6049 + var enc1, enc2, enc3, enc4; 6050 + var i = 0; 6051 + input2 = input2.replace(/[^A-Za-z0-9\+\/\=]/g, ""); 6052 + do { 6053 + enc1 = keyStr.indexOf(input2.charAt(i++)); 6054 + enc2 = keyStr.indexOf(input2.charAt(i++)); 6055 + enc3 = keyStr.indexOf(input2.charAt(i++)); 6056 + enc4 = keyStr.indexOf(input2.charAt(i++)); 6057 + chr1 = enc1 << 2 | enc2 >> 4; 6058 + chr2 = (enc2 & 15) << 4 | enc3 >> 2; 6059 + chr3 = (enc3 & 3) << 6 | enc4; 6060 + output = output + String.fromCharCode(chr1); 6061 + if (enc3 !== 64) { 6062 + output = output + String.fromCharCode(chr2); 6063 + } 6064 + if (enc4 !== 64) { 6065 + output = output + String.fromCharCode(chr3); 6066 + } 6067 + } while (i < input2.length); 6068 + return output; 6069 + }; 6070 + function intArrayFromBase64(s) { 6071 + try { 6072 + var decoded = decodeBase64(s); 6073 + var bytes = new Uint8Array(decoded.length); 6074 + for (var i = 0;i < decoded.length; ++i) { 6075 + bytes[i] = decoded.charCodeAt(i); 6076 + } 6077 + return bytes; 6078 + } catch (_) { 6079 + throw new Error("Converting base64 string to bytes failed."); 6080 + } 6081 + } 6082 + function tryParseAsDataURI(filename) { 6083 + if (!isDataURI(filename)) { 6084 + return; 6085 + } 6086 + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); 6087 + } 6088 + var asmGlobalArg = { 6089 + Math, 6090 + Int8Array, 6091 + Int32Array, 6092 + Uint8Array, 6093 + Float32Array, 6094 + Float64Array 6095 + }; 6096 + var asmLibraryArg = { 6097 + a: abort, 6098 + b: setTempRet0, 6099 + c: getTempRet0, 6100 + d: ___assert_fail, 6101 + e: ___setErrNo, 6102 + f: _emscripten_get_heap_size, 6103 + g: _emscripten_memcpy_big, 6104 + h: _emscripten_resize_heap, 6105 + i: abortOnCannotGrowMemory, 6106 + j: demangle, 6107 + k: demangleAll, 6108 + l: emscripten_realloc_buffer, 6109 + m: jsStackTrace, 6110 + n: stackTrace, 6111 + o: tempDoublePtr, 6112 + p: DYNAMICTOP_PTR 6113 + }; 6114 + var asm = function(global, env, buffer2) { 6115 + "almost asm"; 6116 + var a2 = new global.Int8Array(buffer2), b = new global.Int32Array(buffer2), c = new global.Uint8Array(buffer2), d = new global.Float32Array(buffer2), e = new global.Float64Array(buffer2), f = env.o | 0, g = env.p | 0, p2 = global.Math.floor, q = global.Math.abs, r = global.Math.sqrt, s = global.Math.pow, t = global.Math.cos, u = global.Math.sin, v = global.Math.tan, w = global.Math.acos, x = global.Math.asin, y = global.Math.atan, z = global.Math.atan2, A = global.Math.ceil, B = global.Math.imul, C = global.Math.min, D = global.Math.max, E = global.Math.clz32, G = env.b, H = env.c, I = env.d, J = env.e, K = env.f, L = env.g, M = env.h, N = env.i, T = 28640; 6117 + function W(newBuffer) { 6118 + a2 = new Int8Array(newBuffer); 6119 + c = new Uint8Array(newBuffer); 6120 + b = new Int32Array(newBuffer); 6121 + d = new Float32Array(newBuffer); 6122 + e = new Float64Array(newBuffer); 6123 + buffer2 = newBuffer; 6124 + return true; 6125 + } 6126 + function X(a3) { 6127 + a3 = a3 | 0; 6128 + var b2 = 0; 6129 + b2 = T; 6130 + T = T + a3 | 0; 6131 + T = T + 15 & -16; 6132 + return b2 | 0; 6133 + } 6134 + function Y() { 6135 + return T | 0; 6136 + } 6137 + function Z(a3) { 6138 + a3 = a3 | 0; 6139 + T = a3; 6140 + } 6141 + function _(a3, b2) { 6142 + a3 = a3 | 0; 6143 + b2 = b2 | 0; 6144 + T = a3; 6145 + } 6146 + function $(a3, c2) { 6147 + a3 = a3 | 0; 6148 + c2 = c2 | 0; 6149 + var d2 = 0, e2 = 0, f2 = 0; 6150 + if ((a3 | 0) < 0) { 6151 + c2 = 2; 6152 + return c2 | 0; 6153 + } 6154 + if ((a3 | 0) > 13780509) { 6155 + c2 = uc(15, c2) | 0; 6156 + return c2 | 0; 6157 + } else { 6158 + d2 = ((a3 | 0) < 0) << 31 >> 31; 6159 + f2 = Md(a3 | 0, d2 | 0, 3, 0) | 0; 6160 + e2 = H() | 0; 6161 + d2 = Gd(a3 | 0, d2 | 0, 1, 0) | 0; 6162 + d2 = Md(f2 | 0, e2 | 0, d2 | 0, H() | 0) | 0; 6163 + d2 = Gd(d2 | 0, H() | 0, 1, 0) | 0; 6164 + a3 = H() | 0; 6165 + b[c2 >> 2] = d2; 6166 + b[c2 + 4 >> 2] = a3; 6167 + c2 = 0; 6168 + return c2 | 0; 6169 + } 6170 + return 0; 6171 + } 6172 + function aa(a3, b2, c2, d2) { 6173 + a3 = a3 | 0; 6174 + b2 = b2 | 0; 6175 + c2 = c2 | 0; 6176 + d2 = d2 | 0; 6177 + return ba(a3, b2, c2, d2, 0) | 0; 6178 + } 6179 + function ba(a3, c2, d2, e2, f2) { 6180 + a3 = a3 | 0; 6181 + c2 = c2 | 0; 6182 + d2 = d2 | 0; 6183 + e2 = e2 | 0; 6184 + f2 = f2 | 0; 6185 + var g2 = 0, h = 0, i = 0, j = 0, k = 0; 6186 + j = T; 6187 + T = T + 16 | 0; 6188 + h = j; 6189 + if (!(ca(a3, c2, d2, e2, f2) | 0)) { 6190 + e2 = 0; 6191 + T = j; 6192 + return e2 | 0; 6193 + } 6194 + do { 6195 + if ((d2 | 0) >= 0) { 6196 + if ((d2 | 0) > 13780509) { 6197 + g2 = uc(15, h) | 0; 6198 + if (g2 | 0) { 6199 + break; 6200 + } 6201 + i = h; 6202 + h = b[i >> 2] | 0; 6203 + i = b[i + 4 >> 2] | 0; 6204 + } else { 6205 + g2 = ((d2 | 0) < 0) << 31 >> 31; 6206 + k = Md(d2 | 0, g2 | 0, 3, 0) | 0; 6207 + i = H() | 0; 6208 + g2 = Gd(d2 | 0, g2 | 0, 1, 0) | 0; 6209 + g2 = Md(k | 0, i | 0, g2 | 0, H() | 0) | 0; 6210 + g2 = Gd(g2 | 0, H() | 0, 1, 0) | 0; 6211 + i = H() | 0; 6212 + b[h >> 2] = g2; 6213 + b[h + 4 >> 2] = i; 6214 + h = g2; 6215 + } 6216 + Xd(e2 | 0, 0, h << 3 | 0) | 0; 6217 + if (f2 | 0) { 6218 + Xd(f2 | 0, 0, h << 2 | 0) | 0; 6219 + g2 = da(a3, c2, d2, e2, f2, h, i, 0) | 0; 6220 + break; 6221 + } 6222 + g2 = Fd(h, 4) | 0; 6223 + if (!g2) { 6224 + g2 = 13; 6225 + } else { 6226 + k = da(a3, c2, d2, e2, g2, h, i, 0) | 0; 6227 + Ed(g2); 6228 + g2 = k; 6229 + } 6230 + } else { 6231 + g2 = 2; 6232 + } 6233 + } while (0); 6234 + k = g2; 6235 + T = j; 6236 + return k | 0; 6237 + } 6238 + function ca(a3, c2, d2, e2, f2) { 6239 + a3 = a3 | 0; 6240 + c2 = c2 | 0; 6241 + d2 = d2 | 0; 6242 + e2 = e2 | 0; 6243 + f2 = f2 | 0; 6244 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0; 6245 + q2 = T; 6246 + T = T + 16 | 0; 6247 + o = q2; 6248 + p3 = q2 + 8 | 0; 6249 + n = o; 6250 + b[n >> 2] = a3; 6251 + b[n + 4 >> 2] = c2; 6252 + if ((d2 | 0) < 0) { 6253 + p3 = 2; 6254 + T = q2; 6255 + return p3 | 0; 6256 + } 6257 + g2 = e2; 6258 + b[g2 >> 2] = a3; 6259 + b[g2 + 4 >> 2] = c2; 6260 + g2 = (f2 | 0) != 0; 6261 + if (g2) { 6262 + b[f2 >> 2] = 0; 6263 + } 6264 + if (Hb(a3, c2) | 0) { 6265 + p3 = 9; 6266 + T = q2; 6267 + return p3 | 0; 6268 + } 6269 + b[p3 >> 2] = 0; 6270 + a: 6271 + do { 6272 + if ((d2 | 0) >= 1) { 6273 + if (g2) { 6274 + l = 1; 6275 + k = 0; 6276 + m = 0; 6277 + n = 1; 6278 + g2 = a3; 6279 + while (true) { 6280 + if (!(k | m)) { 6281 + g2 = ea(g2, c2, 4, p3, o) | 0; 6282 + if (g2 | 0) { 6283 + break a; 6284 + } 6285 + c2 = o; 6286 + g2 = b[c2 >> 2] | 0; 6287 + c2 = b[c2 + 4 >> 2] | 0; 6288 + if (Hb(g2, c2) | 0) { 6289 + g2 = 9; 6290 + break a; 6291 + } 6292 + } 6293 + g2 = ea(g2, c2, b[26800 + (m << 2) >> 2] | 0, p3, o) | 0; 6294 + if (g2 | 0) { 6295 + break a; 6296 + } 6297 + c2 = o; 6298 + g2 = b[c2 >> 2] | 0; 6299 + c2 = b[c2 + 4 >> 2] | 0; 6300 + a3 = e2 + (l << 3) | 0; 6301 + b[a3 >> 2] = g2; 6302 + b[a3 + 4 >> 2] = c2; 6303 + b[f2 + (l << 2) >> 2] = n; 6304 + a3 = k + 1 | 0; 6305 + h = (a3 | 0) == (n | 0); 6306 + i = m + 1 | 0; 6307 + j = (i | 0) == 6; 6308 + if (Hb(g2, c2) | 0) { 6309 + g2 = 9; 6310 + break a; 6311 + } 6312 + n = n + (j & h & 1) | 0; 6313 + if ((n | 0) > (d2 | 0)) { 6314 + g2 = 0; 6315 + break; 6316 + } else { 6317 + l = l + 1 | 0; 6318 + k = h ? 0 : a3; 6319 + m = h ? j ? 0 : i : m; 6320 + } 6321 + } 6322 + } else { 6323 + l = 1; 6324 + k = 0; 6325 + m = 0; 6326 + n = 1; 6327 + g2 = a3; 6328 + while (true) { 6329 + if (!(k | m)) { 6330 + g2 = ea(g2, c2, 4, p3, o) | 0; 6331 + if (g2 | 0) { 6332 + break a; 6333 + } 6334 + c2 = o; 6335 + g2 = b[c2 >> 2] | 0; 6336 + c2 = b[c2 + 4 >> 2] | 0; 6337 + if (Hb(g2, c2) | 0) { 6338 + g2 = 9; 6339 + break a; 6340 + } 6341 + } 6342 + g2 = ea(g2, c2, b[26800 + (m << 2) >> 2] | 0, p3, o) | 0; 6343 + if (g2 | 0) { 6344 + break a; 6345 + } 6346 + c2 = o; 6347 + g2 = b[c2 >> 2] | 0; 6348 + c2 = b[c2 + 4 >> 2] | 0; 6349 + a3 = e2 + (l << 3) | 0; 6350 + b[a3 >> 2] = g2; 6351 + b[a3 + 4 >> 2] = c2; 6352 + a3 = k + 1 | 0; 6353 + h = (a3 | 0) == (n | 0); 6354 + i = m + 1 | 0; 6355 + j = (i | 0) == 6; 6356 + if (Hb(g2, c2) | 0) { 6357 + g2 = 9; 6358 + break a; 6359 + } 6360 + n = n + (j & h & 1) | 0; 6361 + if ((n | 0) > (d2 | 0)) { 6362 + g2 = 0; 6363 + break; 6364 + } else { 6365 + l = l + 1 | 0; 6366 + k = h ? 0 : a3; 6367 + m = h ? j ? 0 : i : m; 6368 + } 6369 + } 6370 + } 6371 + } else { 6372 + g2 = 0; 6373 + } 6374 + } while (0); 6375 + p3 = g2; 6376 + T = q2; 6377 + return p3 | 0; 6378 + } 6379 + function da(a3, c2, d2, e2, f2, g2, h, i) { 6380 + a3 = a3 | 0; 6381 + c2 = c2 | 0; 6382 + d2 = d2 | 0; 6383 + e2 = e2 | 0; 6384 + f2 = f2 | 0; 6385 + g2 = g2 | 0; 6386 + h = h | 0; 6387 + i = i | 0; 6388 + var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0; 6389 + q2 = T; 6390 + T = T + 16 | 0; 6391 + o = q2 + 8 | 0; 6392 + p3 = q2; 6393 + j = Od(a3 | 0, c2 | 0, g2 | 0, h | 0) | 0; 6394 + l = H() | 0; 6395 + m = e2 + (j << 3) | 0; 6396 + r2 = m; 6397 + s2 = b[r2 >> 2] | 0; 6398 + r2 = b[r2 + 4 >> 2] | 0; 6399 + k = (s2 | 0) == (a3 | 0) & (r2 | 0) == (c2 | 0); 6400 + if (!((s2 | 0) == 0 & (r2 | 0) == 0 | k)) { 6401 + do { 6402 + j = Gd(j | 0, l | 0, 1, 0) | 0; 6403 + j = Nd(j | 0, H() | 0, g2 | 0, h | 0) | 0; 6404 + l = H() | 0; 6405 + m = e2 + (j << 3) | 0; 6406 + s2 = m; 6407 + r2 = b[s2 >> 2] | 0; 6408 + s2 = b[s2 + 4 >> 2] | 0; 6409 + k = (r2 | 0) == (a3 | 0) & (s2 | 0) == (c2 | 0); 6410 + } while (!((r2 | 0) == 0 & (s2 | 0) == 0 | k)); 6411 + } 6412 + j = f2 + (j << 2) | 0; 6413 + if (k ? (b[j >> 2] | 0) <= (i | 0) : 0) { 6414 + s2 = 0; 6415 + T = q2; 6416 + return s2 | 0; 6417 + } 6418 + s2 = m; 6419 + b[s2 >> 2] = a3; 6420 + b[s2 + 4 >> 2] = c2; 6421 + b[j >> 2] = i; 6422 + if ((i | 0) >= (d2 | 0)) { 6423 + s2 = 0; 6424 + T = q2; 6425 + return s2 | 0; 6426 + } 6427 + k = i + 1 | 0; 6428 + b[o >> 2] = 0; 6429 + j = ea(a3, c2, 2, o, p3) | 0; 6430 + switch (j | 0) { 6431 + case 9: { 6432 + n = 9; 6433 + break; 6434 + } 6435 + case 0: { 6436 + j = p3; 6437 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6438 + if (!j) { 6439 + n = 9; 6440 + } 6441 + break; 6442 + } 6443 + default: 6444 + } 6445 + a: 6446 + do { 6447 + if ((n | 0) == 9) { 6448 + b[o >> 2] = 0; 6449 + j = ea(a3, c2, 3, o, p3) | 0; 6450 + switch (j | 0) { 6451 + case 9: 6452 + break; 6453 + case 0: { 6454 + j = p3; 6455 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6456 + if (j | 0) { 6457 + break a; 6458 + } 6459 + break; 6460 + } 6461 + default: 6462 + break a; 6463 + } 6464 + b[o >> 2] = 0; 6465 + j = ea(a3, c2, 1, o, p3) | 0; 6466 + switch (j | 0) { 6467 + case 9: 6468 + break; 6469 + case 0: { 6470 + j = p3; 6471 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6472 + if (j | 0) { 6473 + break a; 6474 + } 6475 + break; 6476 + } 6477 + default: 6478 + break a; 6479 + } 6480 + b[o >> 2] = 0; 6481 + j = ea(a3, c2, 5, o, p3) | 0; 6482 + switch (j | 0) { 6483 + case 9: 6484 + break; 6485 + case 0: { 6486 + j = p3; 6487 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6488 + if (j | 0) { 6489 + break a; 6490 + } 6491 + break; 6492 + } 6493 + default: 6494 + break a; 6495 + } 6496 + b[o >> 2] = 0; 6497 + j = ea(a3, c2, 4, o, p3) | 0; 6498 + switch (j | 0) { 6499 + case 9: 6500 + break; 6501 + case 0: { 6502 + j = p3; 6503 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6504 + if (j | 0) { 6505 + break a; 6506 + } 6507 + break; 6508 + } 6509 + default: 6510 + break a; 6511 + } 6512 + b[o >> 2] = 0; 6513 + j = ea(a3, c2, 6, o, p3) | 0; 6514 + switch (j | 0) { 6515 + case 9: 6516 + break; 6517 + case 0: { 6518 + j = p3; 6519 + j = da(b[j >> 2] | 0, b[j + 4 >> 2] | 0, d2, e2, f2, g2, h, k) | 0; 6520 + if (j | 0) { 6521 + break a; 6522 + } 6523 + break; 6524 + } 6525 + default: 6526 + break a; 6527 + } 6528 + s2 = 0; 6529 + T = q2; 6530 + return s2 | 0; 6531 + } 6532 + } while (0); 6533 + s2 = j; 6534 + T = q2; 6535 + return s2 | 0; 6536 + } 6537 + function ea(a3, c2, d2, e2, f2) { 6538 + a3 = a3 | 0; 6539 + c2 = c2 | 0; 6540 + d2 = d2 | 0; 6541 + e2 = e2 | 0; 6542 + f2 = f2 | 0; 6543 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0; 6544 + if (d2 >>> 0 > 6) { 6545 + f2 = 1; 6546 + return f2 | 0; 6547 + } 6548 + m = (b[e2 >> 2] | 0) % 6 | 0; 6549 + b[e2 >> 2] = m; 6550 + if ((m | 0) > 0) { 6551 + g2 = 0; 6552 + do { 6553 + d2 = $a(d2) | 0; 6554 + g2 = g2 + 1 | 0; 6555 + } while ((g2 | 0) < (b[e2 >> 2] | 0)); 6556 + } 6557 + m = Qd(a3 | 0, c2 | 0, 45) | 0; 6558 + H() | 0; 6559 + l = m & 127; 6560 + if (l >>> 0 > 121) { 6561 + f2 = 5; 6562 + return f2 | 0; 6563 + } 6564 + j = Pb(a3, c2) | 0; 6565 + g2 = Qd(a3 | 0, c2 | 0, 52) | 0; 6566 + H() | 0; 6567 + g2 = g2 & 15; 6568 + a: 6569 + do { 6570 + if (!g2) { 6571 + k = 8; 6572 + } else { 6573 + while (true) { 6574 + h = (15 - g2 | 0) * 3 | 0; 6575 + i = Qd(a3 | 0, c2 | 0, h | 0) | 0; 6576 + H() | 0; 6577 + i = i & 7; 6578 + if ((i | 0) == 7) { 6579 + c2 = 5; 6580 + break; 6581 + } 6582 + p3 = (Vb(g2) | 0) == 0; 6583 + g2 = g2 + -1 | 0; 6584 + n = Rd(7, 0, h | 0) | 0; 6585 + c2 = c2 & ~(H() | 0); 6586 + o = Rd(b[(p3 ? 432 : 16) + (i * 28 | 0) + (d2 << 2) >> 2] | 0, 0, h | 0) | 0; 6587 + h = H() | 0; 6588 + d2 = b[(p3 ? 640 : 224) + (i * 28 | 0) + (d2 << 2) >> 2] | 0; 6589 + a3 = o | a3 & ~n; 6590 + c2 = h | c2; 6591 + if (!d2) { 6592 + d2 = 0; 6593 + break a; 6594 + } 6595 + if (!g2) { 6596 + k = 8; 6597 + break a; 6598 + } 6599 + } 6600 + return c2 | 0; 6601 + } 6602 + } while (0); 6603 + if ((k | 0) == 8) { 6604 + p3 = b[848 + (l * 28 | 0) + (d2 << 2) >> 2] | 0; 6605 + o = Rd(p3 | 0, 0, 45) | 0; 6606 + a3 = o | a3; 6607 + c2 = H() | 0 | c2 & -1040385; 6608 + d2 = b[4272 + (l * 28 | 0) + (d2 << 2) >> 2] | 0; 6609 + if ((p3 & 127 | 0) == 127) { 6610 + p3 = Rd(b[848 + (l * 28 | 0) + 20 >> 2] | 0, 0, 45) | 0; 6611 + c2 = H() | 0 | c2 & -1040385; 6612 + d2 = b[4272 + (l * 28 | 0) + 20 >> 2] | 0; 6613 + a3 = Rb(p3 | a3, c2) | 0; 6614 + c2 = H() | 0; 6615 + b[e2 >> 2] = (b[e2 >> 2] | 0) + 1; 6616 + } 6617 + } 6618 + i = Qd(a3 | 0, c2 | 0, 45) | 0; 6619 + H() | 0; 6620 + i = i & 127; 6621 + b: 6622 + do { 6623 + if (!(oa(i) | 0)) { 6624 + if ((d2 | 0) > 0) { 6625 + g2 = 0; 6626 + do { 6627 + a3 = Rb(a3, c2) | 0; 6628 + c2 = H() | 0; 6629 + g2 = g2 + 1 | 0; 6630 + } while ((g2 | 0) != (d2 | 0)); 6631 + } 6632 + } else { 6633 + c: 6634 + do { 6635 + if ((Pb(a3, c2) | 0) == 1) { 6636 + if ((l | 0) != (i | 0)) { 6637 + if (ua(i, b[7696 + (l * 28 | 0) >> 2] | 0) | 0) { 6638 + a3 = Tb(a3, c2) | 0; 6639 + h = 1; 6640 + c2 = H() | 0; 6641 + break; 6642 + } else { 6643 + I(27795, 26864, 533, 26872); 6644 + } 6645 + } 6646 + switch (j | 0) { 6647 + case 3: { 6648 + a3 = Rb(a3, c2) | 0; 6649 + c2 = H() | 0; 6650 + b[e2 >> 2] = (b[e2 >> 2] | 0) + 1; 6651 + h = 0; 6652 + break c; 6653 + } 6654 + case 5: { 6655 + a3 = Tb(a3, c2) | 0; 6656 + c2 = H() | 0; 6657 + b[e2 >> 2] = (b[e2 >> 2] | 0) + 5; 6658 + h = 0; 6659 + break c; 6660 + } 6661 + case 0: { 6662 + p3 = 9; 6663 + return p3 | 0; 6664 + } 6665 + default: { 6666 + p3 = 1; 6667 + return p3 | 0; 6668 + } 6669 + } 6670 + } else { 6671 + h = 0; 6672 + } 6673 + } while (0); 6674 + if ((d2 | 0) > 0) { 6675 + g2 = 0; 6676 + do { 6677 + a3 = Qb(a3, c2) | 0; 6678 + c2 = H() | 0; 6679 + g2 = g2 + 1 | 0; 6680 + } while ((g2 | 0) != (d2 | 0)); 6681 + } 6682 + if ((l | 0) != (i | 0)) { 6683 + if (!(pa(i) | 0)) { 6684 + if ((h | 0) != 0 | (Pb(a3, c2) | 0) != 5) { 6685 + break; 6686 + } 6687 + b[e2 >> 2] = (b[e2 >> 2] | 0) + 1; 6688 + break; 6689 + } 6690 + switch (m & 127) { 6691 + case 8: 6692 + case 118: 6693 + break b; 6694 + default: 6695 + } 6696 + if ((Pb(a3, c2) | 0) != 3) { 6697 + b[e2 >> 2] = (b[e2 >> 2] | 0) + 1; 6698 + } 6699 + } 6700 + } 6701 + } while (0); 6702 + b[e2 >> 2] = ((b[e2 >> 2] | 0) + d2 | 0) % 6 | 0; 6703 + p3 = f2; 6704 + b[p3 >> 2] = a3; 6705 + b[p3 + 4 >> 2] = c2; 6706 + p3 = 0; 6707 + return p3 | 0; 6708 + } 6709 + function fa(a3, b2, c2, d2) { 6710 + a3 = a3 | 0; 6711 + b2 = b2 | 0; 6712 + c2 = c2 | 0; 6713 + d2 = d2 | 0; 6714 + if (!(ga(a3, b2, c2, d2) | 0)) { 6715 + d2 = 0; 6716 + return d2 | 0; 6717 + } 6718 + Xd(d2 | 0, 0, c2 * 48 | 0) | 0; 6719 + d2 = ha(a3, b2, c2, d2) | 0; 6720 + return d2 | 0; 6721 + } 6722 + function ga(a3, c2, d2, e2) { 6723 + a3 = a3 | 0; 6724 + c2 = c2 | 0; 6725 + d2 = d2 | 0; 6726 + e2 = e2 | 0; 6727 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0; 6728 + p3 = T; 6729 + T = T + 16 | 0; 6730 + n = p3; 6731 + o = p3 + 8 | 0; 6732 + m = n; 6733 + b[m >> 2] = a3; 6734 + b[m + 4 >> 2] = c2; 6735 + if ((d2 | 0) < 0) { 6736 + o = 2; 6737 + T = p3; 6738 + return o | 0; 6739 + } 6740 + if (!d2) { 6741 + o = e2; 6742 + b[o >> 2] = a3; 6743 + b[o + 4 >> 2] = c2; 6744 + o = 0; 6745 + T = p3; 6746 + return o | 0; 6747 + } 6748 + b[o >> 2] = 0; 6749 + a: 6750 + do { 6751 + if (!(Hb(a3, c2) | 0)) { 6752 + f2 = 0; 6753 + m = a3; 6754 + do { 6755 + a3 = ea(m, c2, 4, o, n) | 0; 6756 + if (a3 | 0) { 6757 + break a; 6758 + } 6759 + c2 = n; 6760 + m = b[c2 >> 2] | 0; 6761 + c2 = b[c2 + 4 >> 2] | 0; 6762 + f2 = f2 + 1 | 0; 6763 + if (Hb(m, c2) | 0) { 6764 + a3 = 9; 6765 + break a; 6766 + } 6767 + } while ((f2 | 0) < (d2 | 0)); 6768 + l = e2; 6769 + b[l >> 2] = m; 6770 + b[l + 4 >> 2] = c2; 6771 + l = d2 + -1 | 0; 6772 + k = 0; 6773 + a3 = 1; 6774 + do { 6775 + f2 = 26800 + (k << 2) | 0; 6776 + if ((k | 0) == 5) { 6777 + h = b[f2 >> 2] | 0; 6778 + g2 = 0; 6779 + f2 = a3; 6780 + while (true) { 6781 + a3 = n; 6782 + a3 = ea(b[a3 >> 2] | 0, b[a3 + 4 >> 2] | 0, h, o, n) | 0; 6783 + if (a3 | 0) { 6784 + break a; 6785 + } 6786 + if ((g2 | 0) != (l | 0)) { 6787 + j = n; 6788 + i = b[j >> 2] | 0; 6789 + j = b[j + 4 >> 2] | 0; 6790 + a3 = e2 + (f2 << 3) | 0; 6791 + b[a3 >> 2] = i; 6792 + b[a3 + 4 >> 2] = j; 6793 + if (!(Hb(i, j) | 0)) { 6794 + a3 = f2 + 1 | 0; 6795 + } else { 6796 + a3 = 9; 6797 + break a; 6798 + } 6799 + } else { 6800 + a3 = f2; 6801 + } 6802 + g2 = g2 + 1 | 0; 6803 + if ((g2 | 0) >= (d2 | 0)) { 6804 + break; 6805 + } else { 6806 + f2 = a3; 6807 + } 6808 + } 6809 + } else { 6810 + h = n; 6811 + j = b[f2 >> 2] | 0; 6812 + i = 0; 6813 + f2 = a3; 6814 + g2 = b[h >> 2] | 0; 6815 + h = b[h + 4 >> 2] | 0; 6816 + while (true) { 6817 + a3 = ea(g2, h, j, o, n) | 0; 6818 + if (a3 | 0) { 6819 + break a; 6820 + } 6821 + h = n; 6822 + g2 = b[h >> 2] | 0; 6823 + h = b[h + 4 >> 2] | 0; 6824 + a3 = e2 + (f2 << 3) | 0; 6825 + b[a3 >> 2] = g2; 6826 + b[a3 + 4 >> 2] = h; 6827 + a3 = f2 + 1 | 0; 6828 + if (Hb(g2, h) | 0) { 6829 + a3 = 9; 6830 + break a; 6831 + } 6832 + i = i + 1 | 0; 6833 + if ((i | 0) >= (d2 | 0)) { 6834 + break; 6835 + } else { 6836 + f2 = a3; 6837 + } 6838 + } 6839 + } 6840 + k = k + 1 | 0; 6841 + } while (k >>> 0 < 6); 6842 + a3 = n; 6843 + a3 = ((m | 0) == (b[a3 >> 2] | 0) ? (c2 | 0) == (b[a3 + 4 >> 2] | 0) : 0) ? 0 : 9; 6844 + } else { 6845 + a3 = 9; 6846 + } 6847 + } while (0); 6848 + o = a3; 6849 + T = p3; 6850 + return o | 0; 6851 + } 6852 + function ha(a3, c2, d2, e2) { 6853 + a3 = a3 | 0; 6854 + c2 = c2 | 0; 6855 + d2 = d2 | 0; 6856 + e2 = e2 | 0; 6857 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; 6858 + m = T; 6859 + T = T + 16 | 0; 6860 + h = m; 6861 + if (!d2) { 6862 + b[e2 >> 2] = a3; 6863 + b[e2 + 4 >> 2] = c2; 6864 + e2 = 0; 6865 + T = m; 6866 + return e2 | 0; 6867 + } 6868 + do { 6869 + if ((d2 | 0) >= 0) { 6870 + if ((d2 | 0) > 13780509) { 6871 + f2 = uc(15, h) | 0; 6872 + if (f2 | 0) { 6873 + break; 6874 + } 6875 + g2 = h; 6876 + f2 = b[g2 >> 2] | 0; 6877 + g2 = b[g2 + 4 >> 2] | 0; 6878 + } else { 6879 + f2 = ((d2 | 0) < 0) << 31 >> 31; 6880 + l = Md(d2 | 0, f2 | 0, 3, 0) | 0; 6881 + g2 = H() | 0; 6882 + f2 = Gd(d2 | 0, f2 | 0, 1, 0) | 0; 6883 + f2 = Md(l | 0, g2 | 0, f2 | 0, H() | 0) | 0; 6884 + f2 = Gd(f2 | 0, H() | 0, 1, 0) | 0; 6885 + g2 = H() | 0; 6886 + l = h; 6887 + b[l >> 2] = f2; 6888 + b[l + 4 >> 2] = g2; 6889 + } 6890 + k = Fd(f2, 8) | 0; 6891 + if (!k) { 6892 + f2 = 13; 6893 + } else { 6894 + l = Fd(f2, 4) | 0; 6895 + if (!l) { 6896 + Ed(k); 6897 + f2 = 13; 6898 + break; 6899 + } 6900 + f2 = da(a3, c2, d2, k, l, f2, g2, 0) | 0; 6901 + if (f2 | 0) { 6902 + Ed(k); 6903 + Ed(l); 6904 + break; 6905 + } 6906 + c2 = b[h >> 2] | 0; 6907 + h = b[h + 4 >> 2] | 0; 6908 + if ((h | 0) > 0 | (h | 0) == 0 & c2 >>> 0 > 0) { 6909 + f2 = 0; 6910 + i = 0; 6911 + j = 0; 6912 + do { 6913 + a3 = k + (i << 3) | 0; 6914 + g2 = b[a3 >> 2] | 0; 6915 + a3 = b[a3 + 4 >> 2] | 0; 6916 + if (!((g2 | 0) == 0 & (a3 | 0) == 0) ? (b[l + (i << 2) >> 2] | 0) == (d2 | 0) : 0) { 6917 + n = e2 + (f2 << 3) | 0; 6918 + b[n >> 2] = g2; 6919 + b[n + 4 >> 2] = a3; 6920 + f2 = f2 + 1 | 0; 6921 + } 6922 + i = Gd(i | 0, j | 0, 1, 0) | 0; 6923 + j = H() | 0; 6924 + } while ((j | 0) < (h | 0) | (j | 0) == (h | 0) & i >>> 0 < c2 >>> 0); 6925 + } 6926 + Ed(k); 6927 + Ed(l); 6928 + f2 = 0; 6929 + } 6930 + } else { 6931 + f2 = 2; 6932 + } 6933 + } while (0); 6934 + n = f2; 6935 + T = m; 6936 + return n | 0; 6937 + } 6938 + function ia(a3, c2, d2, e2) { 6939 + a3 = a3 | 0; 6940 + c2 = c2 | 0; 6941 + d2 = d2 | 0; 6942 + e2 = e2 | 0; 6943 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 6944 + i = T; 6945 + T = T + 16 | 0; 6946 + g2 = i; 6947 + h = i + 8 | 0; 6948 + f2 = (Hb(a3, c2) | 0) == 0; 6949 + f2 = f2 ? 1 : 2; 6950 + while (true) { 6951 + b[h >> 2] = 0; 6952 + k = (ea(a3, c2, f2, h, g2) | 0) == 0; 6953 + j = g2; 6954 + if (k & ((b[j >> 2] | 0) == (d2 | 0) ? (b[j + 4 >> 2] | 0) == (e2 | 0) : 0)) { 6955 + a3 = 4; 6956 + break; 6957 + } 6958 + f2 = f2 + 1 | 0; 6959 + if (f2 >>> 0 >= 7) { 6960 + f2 = 7; 6961 + a3 = 4; 6962 + break; 6963 + } 6964 + } 6965 + if ((a3 | 0) == 4) { 6966 + T = i; 6967 + return f2 | 0; 6968 + } 6969 + return 0; 6970 + } 6971 + function ja(a3, c2, d2, e2) { 6972 + a3 = a3 | 0; 6973 + c2 = c2 | 0; 6974 + d2 = d2 | 0; 6975 + e2 = e2 | 0; 6976 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 6977 + i = T; 6978 + T = T + 48 | 0; 6979 + f2 = i + 16 | 0; 6980 + g2 = i + 8 | 0; 6981 + h = i; 6982 + d2 = Xc(d2) | 0; 6983 + if (d2 | 0) { 6984 + h = d2; 6985 + T = i; 6986 + return h | 0; 6987 + } 6988 + k = a3; 6989 + j = b[k + 4 >> 2] | 0; 6990 + d2 = g2; 6991 + b[d2 >> 2] = b[k >> 2]; 6992 + b[d2 + 4 >> 2] = j; 6993 + Wc(g2, f2); 6994 + d2 = Ha(f2, c2, h) | 0; 6995 + if (!d2) { 6996 + c2 = b[g2 >> 2] | 0; 6997 + g2 = b[a3 + 8 >> 2] | 0; 6998 + if ((g2 | 0) > 0) { 6999 + f2 = b[a3 + 12 >> 2] | 0; 7000 + d2 = 0; 7001 + do { 7002 + c2 = (b[f2 + (d2 << 3) >> 2] | 0) + c2 | 0; 7003 + d2 = d2 + 1 | 0; 7004 + } while ((d2 | 0) < (g2 | 0)); 7005 + } 7006 + d2 = h; 7007 + f2 = b[d2 >> 2] | 0; 7008 + d2 = b[d2 + 4 >> 2] | 0; 7009 + g2 = ((c2 | 0) < 0) << 31 >> 31; 7010 + if ((d2 | 0) < (g2 | 0) | (d2 | 0) == (g2 | 0) & f2 >>> 0 < c2 >>> 0) { 7011 + d2 = h; 7012 + b[d2 >> 2] = c2; 7013 + b[d2 + 4 >> 2] = g2; 7014 + d2 = g2; 7015 + } else { 7016 + c2 = f2; 7017 + } 7018 + j = Gd(c2 | 0, d2 | 0, 12, 0) | 0; 7019 + k = H() | 0; 7020 + d2 = h; 7021 + b[d2 >> 2] = j; 7022 + b[d2 + 4 >> 2] = k; 7023 + d2 = e2; 7024 + b[d2 >> 2] = j; 7025 + b[d2 + 4 >> 2] = k; 7026 + d2 = 0; 7027 + } 7028 + k = d2; 7029 + T = i; 7030 + return k | 0; 7031 + } 7032 + function ka(a3, c2, d2, f2, g2, h, i) { 7033 + a3 = a3 | 0; 7034 + c2 = c2 | 0; 7035 + d2 = d2 | 0; 7036 + f2 = f2 | 0; 7037 + g2 = g2 | 0; 7038 + h = h | 0; 7039 + i = i | 0; 7040 + var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F = 0, G2 = 0, I2 = 0, J2 = 0, K2 = 0, L2 = 0, M2 = 0; 7041 + I2 = T; 7042 + T = T + 64 | 0; 7043 + D2 = I2 + 48 | 0; 7044 + E2 = I2 + 32 | 0; 7045 + F = I2 + 24 | 0; 7046 + x2 = I2 + 8 | 0; 7047 + y2 = I2; 7048 + k = b[a3 >> 2] | 0; 7049 + if ((k | 0) <= 0) { 7050 + G2 = 0; 7051 + T = I2; 7052 + return G2 | 0; 7053 + } 7054 + z2 = a3 + 4 | 0; 7055 + A2 = D2 + 8 | 0; 7056 + B2 = E2 + 8 | 0; 7057 + C2 = x2 + 8 | 0; 7058 + j = 0; 7059 + v2 = 0; 7060 + while (true) { 7061 + l = b[z2 >> 2] | 0; 7062 + u2 = l + (v2 << 4) | 0; 7063 + b[D2 >> 2] = b[u2 >> 2]; 7064 + b[D2 + 4 >> 2] = b[u2 + 4 >> 2]; 7065 + b[D2 + 8 >> 2] = b[u2 + 8 >> 2]; 7066 + b[D2 + 12 >> 2] = b[u2 + 12 >> 2]; 7067 + if ((v2 | 0) == (k + -1 | 0)) { 7068 + b[E2 >> 2] = b[l >> 2]; 7069 + b[E2 + 4 >> 2] = b[l + 4 >> 2]; 7070 + b[E2 + 8 >> 2] = b[l + 8 >> 2]; 7071 + b[E2 + 12 >> 2] = b[l + 12 >> 2]; 7072 + } else { 7073 + u2 = l + (v2 + 1 << 4) | 0; 7074 + b[E2 >> 2] = b[u2 >> 2]; 7075 + b[E2 + 4 >> 2] = b[u2 + 4 >> 2]; 7076 + b[E2 + 8 >> 2] = b[u2 + 8 >> 2]; 7077 + b[E2 + 12 >> 2] = b[u2 + 12 >> 2]; 7078 + } 7079 + k = Ia(D2, E2, f2, F) | 0; 7080 + a: 7081 + do { 7082 + if (!k) { 7083 + k = F; 7084 + l = b[k >> 2] | 0; 7085 + k = b[k + 4 >> 2] | 0; 7086 + if ((k | 0) > 0 | (k | 0) == 0 & l >>> 0 > 0) { 7087 + t2 = 0; 7088 + u2 = 0; 7089 + b: 7090 + while (true) { 7091 + K2 = 1 / (+(l >>> 0) + 4294967296 * +(k | 0)); 7092 + M2 = +e[D2 >> 3]; 7093 + k = Hd(l | 0, k | 0, t2 | 0, u2 | 0) | 0; 7094 + L2 = +(k >>> 0) + 4294967296 * +(H() | 0); 7095 + J2 = +(t2 >>> 0) + 4294967296 * +(u2 | 0); 7096 + e[x2 >> 3] = K2 * (M2 * L2) + K2 * (+e[E2 >> 3] * J2); 7097 + e[C2 >> 3] = K2 * (+e[A2 >> 3] * L2) + K2 * (+e[B2 >> 3] * J2); 7098 + k = Wb(x2, f2, y2) | 0; 7099 + if (k | 0) { 7100 + j = k; 7101 + break; 7102 + } 7103 + s2 = y2; 7104 + r2 = b[s2 >> 2] | 0; 7105 + s2 = b[s2 + 4 >> 2] | 0; 7106 + o = Od(r2 | 0, s2 | 0, c2 | 0, d2 | 0) | 0; 7107 + m = H() | 0; 7108 + k = i + (o << 3) | 0; 7109 + n = k; 7110 + l = b[n >> 2] | 0; 7111 + n = b[n + 4 >> 2] | 0; 7112 + c: 7113 + do { 7114 + if ((l | 0) == 0 & (n | 0) == 0) { 7115 + w2 = k; 7116 + G2 = 16; 7117 + } else { 7118 + p3 = 0; 7119 + q2 = 0; 7120 + while (true) { 7121 + if ((p3 | 0) > (d2 | 0) | (p3 | 0) == (d2 | 0) & q2 >>> 0 > c2 >>> 0) { 7122 + j = 1; 7123 + break b; 7124 + } 7125 + if ((l | 0) == (r2 | 0) & (n | 0) == (s2 | 0)) { 7126 + break c; 7127 + } 7128 + k = Gd(o | 0, m | 0, 1, 0) | 0; 7129 + o = Nd(k | 0, H() | 0, c2 | 0, d2 | 0) | 0; 7130 + m = H() | 0; 7131 + q2 = Gd(q2 | 0, p3 | 0, 1, 0) | 0; 7132 + p3 = H() | 0; 7133 + k = i + (o << 3) | 0; 7134 + n = k; 7135 + l = b[n >> 2] | 0; 7136 + n = b[n + 4 >> 2] | 0; 7137 + if ((l | 0) == 0 & (n | 0) == 0) { 7138 + w2 = k; 7139 + G2 = 16; 7140 + break; 7141 + } 7142 + } 7143 + } 7144 + } while (0); 7145 + if ((G2 | 0) == 16 ? (G2 = 0, !((r2 | 0) == 0 & (s2 | 0) == 0)) : 0) { 7146 + q2 = w2; 7147 + b[q2 >> 2] = r2; 7148 + b[q2 + 4 >> 2] = s2; 7149 + q2 = h + (b[g2 >> 2] << 3) | 0; 7150 + b[q2 >> 2] = r2; 7151 + b[q2 + 4 >> 2] = s2; 7152 + q2 = g2; 7153 + q2 = Gd(b[q2 >> 2] | 0, b[q2 + 4 >> 2] | 0, 1, 0) | 0; 7154 + r2 = H() | 0; 7155 + s2 = g2; 7156 + b[s2 >> 2] = q2; 7157 + b[s2 + 4 >> 2] = r2; 7158 + } 7159 + t2 = Gd(t2 | 0, u2 | 0, 1, 0) | 0; 7160 + u2 = H() | 0; 7161 + k = F; 7162 + l = b[k >> 2] | 0; 7163 + k = b[k + 4 >> 2] | 0; 7164 + if (!((k | 0) > (u2 | 0) | (k | 0) == (u2 | 0) & l >>> 0 > t2 >>> 0)) { 7165 + l = 1; 7166 + break a; 7167 + } 7168 + } 7169 + l = 0; 7170 + } else { 7171 + l = 1; 7172 + } 7173 + } else { 7174 + l = 0; 7175 + j = k; 7176 + } 7177 + } while (0); 7178 + v2 = v2 + 1 | 0; 7179 + if (!l) { 7180 + G2 = 21; 7181 + break; 7182 + } 7183 + k = b[a3 >> 2] | 0; 7184 + if ((v2 | 0) >= (k | 0)) { 7185 + j = 0; 7186 + G2 = 21; 7187 + break; 7188 + } 7189 + } 7190 + if ((G2 | 0) == 21) { 7191 + T = I2; 7192 + return j | 0; 7193 + } 7194 + return 0; 7195 + } 7196 + function la(a3, c2, d2, e2) { 7197 + a3 = a3 | 0; 7198 + c2 = c2 | 0; 7199 + d2 = d2 | 0; 7200 + e2 = e2 | 0; 7201 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F = 0, G2 = 0, I2 = 0, J2 = 0, K2 = 0; 7202 + K2 = T; 7203 + T = T + 112 | 0; 7204 + F = K2 + 80 | 0; 7205 + j = K2 + 72 | 0; 7206 + G2 = K2; 7207 + I2 = K2 + 56 | 0; 7208 + f2 = Xc(d2) | 0; 7209 + if (f2 | 0) { 7210 + J2 = f2; 7211 + T = K2; 7212 + return J2 | 0; 7213 + } 7214 + k = a3 + 8 | 0; 7215 + J2 = Dd((b[k >> 2] << 5) + 32 | 0) | 0; 7216 + if (!J2) { 7217 + J2 = 13; 7218 + T = K2; 7219 + return J2 | 0; 7220 + } 7221 + Yc(a3, J2); 7222 + f2 = Xc(d2) | 0; 7223 + if (!f2) { 7224 + D2 = a3; 7225 + E2 = b[D2 + 4 >> 2] | 0; 7226 + f2 = j; 7227 + b[f2 >> 2] = b[D2 >> 2]; 7228 + b[f2 + 4 >> 2] = E2; 7229 + Wc(j, F); 7230 + f2 = Ha(F, c2, G2) | 0; 7231 + if (!f2) { 7232 + f2 = b[j >> 2] | 0; 7233 + g2 = b[k >> 2] | 0; 7234 + if ((g2 | 0) > 0) { 7235 + h = b[a3 + 12 >> 2] | 0; 7236 + d2 = 0; 7237 + do { 7238 + f2 = (b[h + (d2 << 3) >> 2] | 0) + f2 | 0; 7239 + d2 = d2 + 1 | 0; 7240 + } while ((d2 | 0) != (g2 | 0)); 7241 + d2 = f2; 7242 + } else { 7243 + d2 = f2; 7244 + } 7245 + f2 = G2; 7246 + g2 = b[f2 >> 2] | 0; 7247 + f2 = b[f2 + 4 >> 2] | 0; 7248 + h = ((d2 | 0) < 0) << 31 >> 31; 7249 + if ((f2 | 0) < (h | 0) | (f2 | 0) == (h | 0) & g2 >>> 0 < d2 >>> 0) { 7250 + f2 = G2; 7251 + b[f2 >> 2] = d2; 7252 + b[f2 + 4 >> 2] = h; 7253 + f2 = h; 7254 + } else { 7255 + d2 = g2; 7256 + } 7257 + D2 = Gd(d2 | 0, f2 | 0, 12, 0) | 0; 7258 + E2 = H() | 0; 7259 + f2 = G2; 7260 + b[f2 >> 2] = D2; 7261 + b[f2 + 4 >> 2] = E2; 7262 + f2 = 0; 7263 + } else { 7264 + D2 = 0; 7265 + E2 = 0; 7266 + } 7267 + if (!f2) { 7268 + d2 = Fd(D2, 8) | 0; 7269 + if (!d2) { 7270 + Ed(J2); 7271 + J2 = 13; 7272 + T = K2; 7273 + return J2 | 0; 7274 + } 7275 + i = Fd(D2, 8) | 0; 7276 + if (!i) { 7277 + Ed(J2); 7278 + Ed(d2); 7279 + J2 = 13; 7280 + T = K2; 7281 + return J2 | 0; 7282 + } 7283 + B2 = F; 7284 + b[B2 >> 2] = 0; 7285 + b[B2 + 4 >> 2] = 0; 7286 + B2 = a3; 7287 + C2 = b[B2 + 4 >> 2] | 0; 7288 + f2 = j; 7289 + b[f2 >> 2] = b[B2 >> 2]; 7290 + b[f2 + 4 >> 2] = C2; 7291 + f2 = ka(j, D2, E2, c2, F, d2, i) | 0; 7292 + a: 7293 + do { 7294 + if (!f2) { 7295 + b: 7296 + do { 7297 + if ((b[k >> 2] | 0) > 0) { 7298 + h = a3 + 12 | 0; 7299 + g2 = 0; 7300 + while (true) { 7301 + f2 = ka((b[h >> 2] | 0) + (g2 << 3) | 0, D2, E2, c2, F, d2, i) | 0; 7302 + g2 = g2 + 1 | 0; 7303 + if (f2 | 0) { 7304 + break; 7305 + } 7306 + if ((g2 | 0) >= (b[k >> 2] | 0)) { 7307 + break b; 7308 + } 7309 + } 7310 + Ed(d2); 7311 + Ed(i); 7312 + Ed(J2); 7313 + break a; 7314 + } 7315 + } while (0); 7316 + if ((E2 | 0) > 0 | (E2 | 0) == 0 & D2 >>> 0 > 0) { 7317 + Xd(i | 0, 0, D2 << 3 | 0) | 0; 7318 + } 7319 + C2 = F; 7320 + B2 = b[C2 + 4 >> 2] | 0; 7321 + c: 7322 + do { 7323 + if ((B2 | 0) > 0 | (B2 | 0) == 0 & (b[C2 >> 2] | 0) >>> 0 > 0) { 7324 + y2 = d2; 7325 + z2 = i; 7326 + A2 = d2; 7327 + B2 = i; 7328 + C2 = d2; 7329 + f2 = d2; 7330 + v2 = d2; 7331 + w2 = i; 7332 + x2 = i; 7333 + d2 = i; 7334 + d: 7335 + while (true) { 7336 + r2 = 0; 7337 + s2 = 0; 7338 + t2 = 0; 7339 + u2 = 0; 7340 + g2 = 0; 7341 + h = 0; 7342 + while (true) { 7343 + i = G2; 7344 + j = i + 56 | 0; 7345 + do { 7346 + b[i >> 2] = 0; 7347 + i = i + 4 | 0; 7348 + } while ((i | 0) < (j | 0)); 7349 + c2 = y2 + (r2 << 3) | 0; 7350 + k = b[c2 >> 2] | 0; 7351 + c2 = b[c2 + 4 >> 2] | 0; 7352 + if (ca(k, c2, 1, G2, 0) | 0) { 7353 + i = G2; 7354 + j = i + 56 | 0; 7355 + do { 7356 + b[i >> 2] = 0; 7357 + i = i + 4 | 0; 7358 + } while ((i | 0) < (j | 0)); 7359 + i = Fd(7, 4) | 0; 7360 + if (i | 0) { 7361 + da(k, c2, 1, G2, i, 7, 0, 0) | 0; 7362 + Ed(i); 7363 + } 7364 + } 7365 + q2 = 0; 7366 + while (true) { 7367 + p3 = G2 + (q2 << 3) | 0; 7368 + o = b[p3 >> 2] | 0; 7369 + p3 = b[p3 + 4 >> 2] | 0; 7370 + e: 7371 + do { 7372 + if ((o | 0) == 0 & (p3 | 0) == 0) { 7373 + i = g2; 7374 + j = h; 7375 + } else { 7376 + l = Od(o | 0, p3 | 0, D2 | 0, E2 | 0) | 0; 7377 + k = H() | 0; 7378 + i = e2 + (l << 3) | 0; 7379 + c2 = i; 7380 + j = b[c2 >> 2] | 0; 7381 + c2 = b[c2 + 4 >> 2] | 0; 7382 + if (!((j | 0) == 0 & (c2 | 0) == 0)) { 7383 + m = 0; 7384 + n = 0; 7385 + do { 7386 + if ((m | 0) > (E2 | 0) | (m | 0) == (E2 | 0) & n >>> 0 > D2 >>> 0) { 7387 + break d; 7388 + } 7389 + if ((j | 0) == (o | 0) & (c2 | 0) == (p3 | 0)) { 7390 + i = g2; 7391 + j = h; 7392 + break e; 7393 + } 7394 + i = Gd(l | 0, k | 0, 1, 0) | 0; 7395 + l = Nd(i | 0, H() | 0, D2 | 0, E2 | 0) | 0; 7396 + k = H() | 0; 7397 + n = Gd(n | 0, m | 0, 1, 0) | 0; 7398 + m = H() | 0; 7399 + i = e2 + (l << 3) | 0; 7400 + c2 = i; 7401 + j = b[c2 >> 2] | 0; 7402 + c2 = b[c2 + 4 >> 2] | 0; 7403 + } while (!((j | 0) == 0 & (c2 | 0) == 0)); 7404 + } 7405 + if ((o | 0) == 0 & (p3 | 0) == 0) { 7406 + i = g2; 7407 + j = h; 7408 + break; 7409 + } 7410 + Zb(o, p3, I2) | 0; 7411 + if (Zc(a3, J2, I2) | 0) { 7412 + n = Gd(g2 | 0, h | 0, 1, 0) | 0; 7413 + h = H() | 0; 7414 + m = i; 7415 + b[m >> 2] = o; 7416 + b[m + 4 >> 2] = p3; 7417 + g2 = z2 + (g2 << 3) | 0; 7418 + b[g2 >> 2] = o; 7419 + b[g2 + 4 >> 2] = p3; 7420 + g2 = n; 7421 + } 7422 + i = g2; 7423 + j = h; 7424 + } 7425 + } while (0); 7426 + q2 = q2 + 1 | 0; 7427 + if (q2 >>> 0 >= 7) { 7428 + break; 7429 + } else { 7430 + g2 = i; 7431 + h = j; 7432 + } 7433 + } 7434 + r2 = Gd(r2 | 0, s2 | 0, 1, 0) | 0; 7435 + s2 = H() | 0; 7436 + t2 = Gd(t2 | 0, u2 | 0, 1, 0) | 0; 7437 + u2 = H() | 0; 7438 + h = F; 7439 + g2 = b[h >> 2] | 0; 7440 + h = b[h + 4 >> 2] | 0; 7441 + if (!((u2 | 0) < (h | 0) | (u2 | 0) == (h | 0) & t2 >>> 0 < g2 >>> 0)) { 7442 + break; 7443 + } else { 7444 + g2 = i; 7445 + h = j; 7446 + } 7447 + } 7448 + if ((h | 0) > 0 | (h | 0) == 0 & g2 >>> 0 > 0) { 7449 + g2 = 0; 7450 + h = 0; 7451 + do { 7452 + u2 = y2 + (g2 << 3) | 0; 7453 + b[u2 >> 2] = 0; 7454 + b[u2 + 4 >> 2] = 0; 7455 + g2 = Gd(g2 | 0, h | 0, 1, 0) | 0; 7456 + h = H() | 0; 7457 + u2 = F; 7458 + t2 = b[u2 + 4 >> 2] | 0; 7459 + } while ((h | 0) < (t2 | 0) | ((h | 0) == (t2 | 0) ? g2 >>> 0 < (b[u2 >> 2] | 0) >>> 0 : 0)); 7460 + } 7461 + u2 = F; 7462 + b[u2 >> 2] = i; 7463 + b[u2 + 4 >> 2] = j; 7464 + if ((j | 0) > 0 | (j | 0) == 0 & i >>> 0 > 0) { 7465 + q2 = d2; 7466 + r2 = x2; 7467 + s2 = C2; 7468 + t2 = w2; 7469 + u2 = z2; 7470 + d2 = v2; 7471 + x2 = f2; 7472 + w2 = A2; 7473 + v2 = q2; 7474 + f2 = r2; 7475 + C2 = B2; 7476 + B2 = s2; 7477 + A2 = t2; 7478 + z2 = y2; 7479 + y2 = u2; 7480 + } else { 7481 + break c; 7482 + } 7483 + } 7484 + Ed(A2); 7485 + Ed(B2); 7486 + Ed(J2); 7487 + f2 = 1; 7488 + break a; 7489 + } else { 7490 + f2 = i; 7491 + } 7492 + } while (0); 7493 + Ed(J2); 7494 + Ed(d2); 7495 + Ed(f2); 7496 + f2 = 0; 7497 + } else { 7498 + Ed(d2); 7499 + Ed(i); 7500 + Ed(J2); 7501 + } 7502 + } while (0); 7503 + J2 = f2; 7504 + T = K2; 7505 + return J2 | 0; 7506 + } 7507 + } 7508 + Ed(J2); 7509 + J2 = f2; 7510 + T = K2; 7511 + return J2 | 0; 7512 + } 7513 + function ma(a3, c2, d2) { 7514 + a3 = a3 | 0; 7515 + c2 = c2 | 0; 7516 + d2 = d2 | 0; 7517 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 7518 + l = T; 7519 + T = T + 176 | 0; 7520 + j = l; 7521 + if ((c2 | 0) < 1) { 7522 + ud(d2, 0, 0); 7523 + k = 0; 7524 + T = l; 7525 + return k | 0; 7526 + } 7527 + i = a3; 7528 + i = Qd(b[i >> 2] | 0, b[i + 4 >> 2] | 0, 52) | 0; 7529 + H() | 0; 7530 + ud(d2, (c2 | 0) > 6 ? c2 : 6, i & 15); 7531 + i = 0; 7532 + while (true) { 7533 + e2 = a3 + (i << 3) | 0; 7534 + e2 = _b(b[e2 >> 2] | 0, b[e2 + 4 >> 2] | 0, j) | 0; 7535 + if (e2 | 0) { 7536 + break; 7537 + } 7538 + e2 = b[j >> 2] | 0; 7539 + if ((e2 | 0) > 0) { 7540 + h = 0; 7541 + do { 7542 + g2 = j + 8 + (h << 4) | 0; 7543 + h = h + 1 | 0; 7544 + e2 = j + 8 + (((h | 0) % (e2 | 0) | 0) << 4) | 0; 7545 + f2 = zd(d2, e2, g2) | 0; 7546 + if (!f2) { 7547 + yd(d2, g2, e2) | 0; 7548 + } else { 7549 + xd(d2, f2) | 0; 7550 + } 7551 + e2 = b[j >> 2] | 0; 7552 + } while ((h | 0) < (e2 | 0)); 7553 + } 7554 + i = i + 1 | 0; 7555 + if ((i | 0) >= (c2 | 0)) { 7556 + e2 = 0; 7557 + k = 13; 7558 + break; 7559 + } 7560 + } 7561 + if ((k | 0) == 13) { 7562 + T = l; 7563 + return e2 | 0; 7564 + } 7565 + vd(d2); 7566 + k = e2; 7567 + T = l; 7568 + return k | 0; 7569 + } 7570 + function na(a3, c2, d2) { 7571 + a3 = a3 | 0; 7572 + c2 = c2 | 0; 7573 + d2 = d2 | 0; 7574 + var e2 = 0, f2 = 0, g2 = 0, h = 0; 7575 + g2 = T; 7576 + T = T + 32 | 0; 7577 + e2 = g2; 7578 + f2 = g2 + 16 | 0; 7579 + a3 = ma(a3, c2, f2) | 0; 7580 + if (a3 | 0) { 7581 + d2 = a3; 7582 + T = g2; 7583 + return d2 | 0; 7584 + } 7585 + b[d2 >> 2] = 0; 7586 + b[d2 + 4 >> 2] = 0; 7587 + b[d2 + 8 >> 2] = 0; 7588 + a3 = wd(f2) | 0; 7589 + if (a3 | 0) { 7590 + do { 7591 + c2 = Cc(d2) | 0; 7592 + do { 7593 + Dc(c2, a3) | 0; 7594 + h = a3 + 16 | 0; 7595 + b[e2 >> 2] = b[h >> 2]; 7596 + b[e2 + 4 >> 2] = b[h + 4 >> 2]; 7597 + b[e2 + 8 >> 2] = b[h + 8 >> 2]; 7598 + b[e2 + 12 >> 2] = b[h + 12 >> 2]; 7599 + xd(f2, a3) | 0; 7600 + a3 = Ad(f2, e2) | 0; 7601 + } while ((a3 | 0) != 0); 7602 + a3 = wd(f2) | 0; 7603 + } while ((a3 | 0) != 0); 7604 + } 7605 + vd(f2); 7606 + a3 = Fc(d2) | 0; 7607 + if (!a3) { 7608 + h = 0; 7609 + T = g2; 7610 + return h | 0; 7611 + } 7612 + Ec(d2); 7613 + h = a3; 7614 + T = g2; 7615 + return h | 0; 7616 + } 7617 + function oa(a3) { 7618 + a3 = a3 | 0; 7619 + if (a3 >>> 0 > 121) { 7620 + a3 = 0; 7621 + return a3 | 0; 7622 + } 7623 + a3 = b[7696 + (a3 * 28 | 0) + 16 >> 2] | 0; 7624 + return a3 | 0; 7625 + } 7626 + function pa(a3) { 7627 + a3 = a3 | 0; 7628 + return (a3 | 0) == 4 | (a3 | 0) == 117 | 0; 7629 + } 7630 + function qa(a3) { 7631 + a3 = a3 | 0; 7632 + return b[11120 + ((b[a3 >> 2] | 0) * 216 | 0) + ((b[a3 + 4 >> 2] | 0) * 72 | 0) + ((b[a3 + 8 >> 2] | 0) * 24 | 0) + (b[a3 + 12 >> 2] << 3) >> 2] | 0; 7633 + } 7634 + function ra(a3) { 7635 + a3 = a3 | 0; 7636 + return b[11120 + ((b[a3 >> 2] | 0) * 216 | 0) + ((b[a3 + 4 >> 2] | 0) * 72 | 0) + ((b[a3 + 8 >> 2] | 0) * 24 | 0) + (b[a3 + 12 >> 2] << 3) + 4 >> 2] | 0; 7637 + } 7638 + function sa(a3, c2) { 7639 + a3 = a3 | 0; 7640 + c2 = c2 | 0; 7641 + a3 = 7696 + (a3 * 28 | 0) | 0; 7642 + b[c2 >> 2] = b[a3 >> 2]; 7643 + b[c2 + 4 >> 2] = b[a3 + 4 >> 2]; 7644 + b[c2 + 8 >> 2] = b[a3 + 8 >> 2]; 7645 + b[c2 + 12 >> 2] = b[a3 + 12 >> 2]; 7646 + return; 7647 + } 7648 + function ta(a3, c2) { 7649 + a3 = a3 | 0; 7650 + c2 = c2 | 0; 7651 + var d2 = 0, e2 = 0; 7652 + if (c2 >>> 0 > 20) { 7653 + c2 = -1; 7654 + return c2 | 0; 7655 + } 7656 + do { 7657 + if ((b[11120 + (c2 * 216 | 0) >> 2] | 0) != (a3 | 0)) { 7658 + if ((b[11120 + (c2 * 216 | 0) + 8 >> 2] | 0) != (a3 | 0)) { 7659 + if ((b[11120 + (c2 * 216 | 0) + 16 >> 2] | 0) != (a3 | 0)) { 7660 + if ((b[11120 + (c2 * 216 | 0) + 24 >> 2] | 0) != (a3 | 0)) { 7661 + if ((b[11120 + (c2 * 216 | 0) + 32 >> 2] | 0) != (a3 | 0)) { 7662 + if ((b[11120 + (c2 * 216 | 0) + 40 >> 2] | 0) != (a3 | 0)) { 7663 + if ((b[11120 + (c2 * 216 | 0) + 48 >> 2] | 0) != (a3 | 0)) { 7664 + if ((b[11120 + (c2 * 216 | 0) + 56 >> 2] | 0) != (a3 | 0)) { 7665 + if ((b[11120 + (c2 * 216 | 0) + 64 >> 2] | 0) != (a3 | 0)) { 7666 + if ((b[11120 + (c2 * 216 | 0) + 72 >> 2] | 0) != (a3 | 0)) { 7667 + if ((b[11120 + (c2 * 216 | 0) + 80 >> 2] | 0) != (a3 | 0)) { 7668 + if ((b[11120 + (c2 * 216 | 0) + 88 >> 2] | 0) != (a3 | 0)) { 7669 + if ((b[11120 + (c2 * 216 | 0) + 96 >> 2] | 0) != (a3 | 0)) { 7670 + if ((b[11120 + (c2 * 216 | 0) + 104 >> 2] | 0) != (a3 | 0)) { 7671 + if ((b[11120 + (c2 * 216 | 0) + 112 >> 2] | 0) != (a3 | 0)) { 7672 + if ((b[11120 + (c2 * 216 | 0) + 120 >> 2] | 0) != (a3 | 0)) { 7673 + if ((b[11120 + (c2 * 216 | 0) + 128 >> 2] | 0) != (a3 | 0)) { 7674 + if ((b[11120 + (c2 * 216 | 0) + 136 >> 2] | 0) == (a3 | 0)) { 7675 + a3 = 2; 7676 + d2 = 1; 7677 + e2 = 2; 7678 + } else { 7679 + if ((b[11120 + (c2 * 216 | 0) + 144 >> 2] | 0) == (a3 | 0)) { 7680 + a3 = 0; 7681 + d2 = 2; 7682 + e2 = 0; 7683 + break; 7684 + } 7685 + if ((b[11120 + (c2 * 216 | 0) + 152 >> 2] | 0) == (a3 | 0)) { 7686 + a3 = 0; 7687 + d2 = 2; 7688 + e2 = 1; 7689 + break; 7690 + } 7691 + if ((b[11120 + (c2 * 216 | 0) + 160 >> 2] | 0) == (a3 | 0)) { 7692 + a3 = 0; 7693 + d2 = 2; 7694 + e2 = 2; 7695 + break; 7696 + } 7697 + if ((b[11120 + (c2 * 216 | 0) + 168 >> 2] | 0) == (a3 | 0)) { 7698 + a3 = 1; 7699 + d2 = 2; 7700 + e2 = 0; 7701 + break; 7702 + } 7703 + if ((b[11120 + (c2 * 216 | 0) + 176 >> 2] | 0) == (a3 | 0)) { 7704 + a3 = 1; 7705 + d2 = 2; 7706 + e2 = 1; 7707 + break; 7708 + } 7709 + if ((b[11120 + (c2 * 216 | 0) + 184 >> 2] | 0) == (a3 | 0)) { 7710 + a3 = 1; 7711 + d2 = 2; 7712 + e2 = 2; 7713 + break; 7714 + } 7715 + if ((b[11120 + (c2 * 216 | 0) + 192 >> 2] | 0) == (a3 | 0)) { 7716 + a3 = 2; 7717 + d2 = 2; 7718 + e2 = 0; 7719 + break; 7720 + } 7721 + if ((b[11120 + (c2 * 216 | 0) + 200 >> 2] | 0) == (a3 | 0)) { 7722 + a3 = 2; 7723 + d2 = 2; 7724 + e2 = 1; 7725 + break; 7726 + } 7727 + if ((b[11120 + (c2 * 216 | 0) + 208 >> 2] | 0) == (a3 | 0)) { 7728 + a3 = 2; 7729 + d2 = 2; 7730 + e2 = 2; 7731 + break; 7732 + } else { 7733 + a3 = -1; 7734 + } 7735 + return a3 | 0; 7736 + } 7737 + } else { 7738 + a3 = 2; 7739 + d2 = 1; 7740 + e2 = 1; 7741 + } 7742 + } else { 7743 + a3 = 2; 7744 + d2 = 1; 7745 + e2 = 0; 7746 + } 7747 + } else { 7748 + a3 = 1; 7749 + d2 = 1; 7750 + e2 = 2; 7751 + } 7752 + } else { 7753 + a3 = 1; 7754 + d2 = 1; 7755 + e2 = 1; 7756 + } 7757 + } else { 7758 + a3 = 1; 7759 + d2 = 1; 7760 + e2 = 0; 7761 + } 7762 + } else { 7763 + a3 = 0; 7764 + d2 = 1; 7765 + e2 = 2; 7766 + } 7767 + } else { 7768 + a3 = 0; 7769 + d2 = 1; 7770 + e2 = 1; 7771 + } 7772 + } else { 7773 + a3 = 0; 7774 + d2 = 1; 7775 + e2 = 0; 7776 + } 7777 + } else { 7778 + a3 = 2; 7779 + d2 = 0; 7780 + e2 = 2; 7781 + } 7782 + } else { 7783 + a3 = 2; 7784 + d2 = 0; 7785 + e2 = 1; 7786 + } 7787 + } else { 7788 + a3 = 2; 7789 + d2 = 0; 7790 + e2 = 0; 7791 + } 7792 + } else { 7793 + a3 = 1; 7794 + d2 = 0; 7795 + e2 = 2; 7796 + } 7797 + } else { 7798 + a3 = 1; 7799 + d2 = 0; 7800 + e2 = 1; 7801 + } 7802 + } else { 7803 + a3 = 1; 7804 + d2 = 0; 7805 + e2 = 0; 7806 + } 7807 + } else { 7808 + a3 = 0; 7809 + d2 = 0; 7810 + e2 = 2; 7811 + } 7812 + } else { 7813 + a3 = 0; 7814 + d2 = 0; 7815 + e2 = 1; 7816 + } 7817 + } else { 7818 + a3 = 0; 7819 + d2 = 0; 7820 + e2 = 0; 7821 + } 7822 + } while (0); 7823 + c2 = b[11120 + (c2 * 216 | 0) + (d2 * 72 | 0) + (a3 * 24 | 0) + (e2 << 3) + 4 >> 2] | 0; 7824 + return c2 | 0; 7825 + } 7826 + function ua(a3, c2) { 7827 + a3 = a3 | 0; 7828 + c2 = c2 | 0; 7829 + if ((b[7696 + (a3 * 28 | 0) + 20 >> 2] | 0) == (c2 | 0)) { 7830 + c2 = 1; 7831 + return c2 | 0; 7832 + } 7833 + c2 = (b[7696 + (a3 * 28 | 0) + 24 >> 2] | 0) == (c2 | 0); 7834 + return c2 | 0; 7835 + } 7836 + function va(a3, c2) { 7837 + a3 = a3 | 0; 7838 + c2 = c2 | 0; 7839 + return b[848 + (a3 * 28 | 0) + (c2 << 2) >> 2] | 0; 7840 + } 7841 + function wa(a3, c2) { 7842 + a3 = a3 | 0; 7843 + c2 = c2 | 0; 7844 + if ((b[848 + (a3 * 28 | 0) >> 2] | 0) == (c2 | 0)) { 7845 + c2 = 0; 7846 + return c2 | 0; 7847 + } 7848 + if ((b[848 + (a3 * 28 | 0) + 4 >> 2] | 0) == (c2 | 0)) { 7849 + c2 = 1; 7850 + return c2 | 0; 7851 + } 7852 + if ((b[848 + (a3 * 28 | 0) + 8 >> 2] | 0) == (c2 | 0)) { 7853 + c2 = 2; 7854 + return c2 | 0; 7855 + } 7856 + if ((b[848 + (a3 * 28 | 0) + 12 >> 2] | 0) == (c2 | 0)) { 7857 + c2 = 3; 7858 + return c2 | 0; 7859 + } 7860 + if ((b[848 + (a3 * 28 | 0) + 16 >> 2] | 0) == (c2 | 0)) { 7861 + c2 = 4; 7862 + return c2 | 0; 7863 + } 7864 + if ((b[848 + (a3 * 28 | 0) + 20 >> 2] | 0) == (c2 | 0)) { 7865 + c2 = 5; 7866 + return c2 | 0; 7867 + } else { 7868 + return ((b[848 + (a3 * 28 | 0) + 24 >> 2] | 0) == (c2 | 0) ? 6 : 7) | 0; 7869 + } 7870 + return 0; 7871 + } 7872 + function xa() { 7873 + return 122; 7874 + } 7875 + function ya(a3) { 7876 + a3 = a3 | 0; 7877 + var c2 = 0, d2 = 0, e2 = 0; 7878 + c2 = 0; 7879 + do { 7880 + Rd(c2 | 0, 0, 45) | 0; 7881 + e2 = H() | 0 | 134225919; 7882 + d2 = a3 + (c2 << 3) | 0; 7883 + b[d2 >> 2] = -1; 7884 + b[d2 + 4 >> 2] = e2; 7885 + c2 = c2 + 1 | 0; 7886 + } while ((c2 | 0) != 122); 7887 + return 0; 7888 + } 7889 + function za(a3) { 7890 + a3 = a3 | 0; 7891 + var b2 = 0, c2 = 0, d2 = 0; 7892 + d2 = +e[a3 + 16 >> 3]; 7893 + c2 = +e[a3 + 24 >> 3]; 7894 + b2 = d2 - c2; 7895 + return +(d2 < c2 ? b2 + 6.283185307179586 : b2); 7896 + } 7897 + function Aa(a3) { 7898 + a3 = a3 | 0; 7899 + return +e[a3 + 16 >> 3] < +e[a3 + 24 >> 3] | 0; 7900 + } 7901 + function Ba(a3) { 7902 + a3 = a3 | 0; 7903 + return +(+e[a3 >> 3] - +e[a3 + 8 >> 3]); 7904 + } 7905 + function Ca(a3, b2) { 7906 + a3 = a3 | 0; 7907 + b2 = b2 | 0; 7908 + var c2 = 0, d2 = 0, f2 = 0; 7909 + c2 = +e[b2 >> 3]; 7910 + if (!(c2 >= +e[a3 + 8 >> 3])) { 7911 + b2 = 0; 7912 + return b2 | 0; 7913 + } 7914 + if (!(c2 <= +e[a3 >> 3])) { 7915 + b2 = 0; 7916 + return b2 | 0; 7917 + } 7918 + d2 = +e[a3 + 16 >> 3]; 7919 + c2 = +e[a3 + 24 >> 3]; 7920 + f2 = +e[b2 + 8 >> 3]; 7921 + b2 = f2 >= c2; 7922 + a3 = f2 <= d2 & 1; 7923 + if (d2 < c2) { 7924 + if (b2) { 7925 + a3 = 1; 7926 + } 7927 + } else if (!b2) { 7928 + a3 = 0; 7929 + } 7930 + b2 = (a3 | 0) != 0; 7931 + return b2 | 0; 7932 + } 7933 + function Da(a3, b2) { 7934 + a3 = a3 | 0; 7935 + b2 = b2 | 0; 7936 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 7937 + if (+e[a3 >> 3] < +e[b2 + 8 >> 3]) { 7938 + d2 = 0; 7939 + return d2 | 0; 7940 + } 7941 + if (+e[a3 + 8 >> 3] > +e[b2 >> 3]) { 7942 + d2 = 0; 7943 + return d2 | 0; 7944 + } 7945 + g2 = +e[a3 + 16 >> 3]; 7946 + c2 = a3 + 24 | 0; 7947 + l = +e[c2 >> 3]; 7948 + h = g2 < l; 7949 + d2 = b2 + 16 | 0; 7950 + k = +e[d2 >> 3]; 7951 + f2 = b2 + 24 | 0; 7952 + j = +e[f2 >> 3]; 7953 + i = k < j; 7954 + b2 = l - k < j - g2; 7955 + a3 = h ? i | b2 ? 1 : 2 : 0; 7956 + b2 = i ? h ? 1 : b2 ? 2 : 1 : 0; 7957 + g2 = +kc(g2, a3); 7958 + if (g2 < +kc(+e[f2 >> 3], b2)) { 7959 + i = 0; 7960 + return i | 0; 7961 + } 7962 + l = +kc(+e[c2 >> 3], a3); 7963 + if (l > +kc(+e[d2 >> 3], b2)) { 7964 + i = 0; 7965 + return i | 0; 7966 + } 7967 + i = 1; 7968 + return i | 0; 7969 + } 7970 + function Ea(a3, c2, d2, f2) { 7971 + a3 = a3 | 0; 7972 + c2 = c2 | 0; 7973 + d2 = d2 | 0; 7974 + f2 = f2 | 0; 7975 + var g2 = 0, h = 0, i = 0, j = 0, k = 0; 7976 + h = +e[a3 + 16 >> 3]; 7977 + k = +e[a3 + 24 >> 3]; 7978 + a3 = h < k; 7979 + j = +e[c2 + 16 >> 3]; 7980 + i = +e[c2 + 24 >> 3]; 7981 + g2 = j < i; 7982 + c2 = k - j < i - h; 7983 + b[d2 >> 2] = a3 ? g2 | c2 ? 1 : 2 : 0; 7984 + b[f2 >> 2] = g2 ? a3 ? 1 : c2 ? 2 : 1 : 0; 7985 + return; 7986 + } 7987 + function Fa(a3, b2) { 7988 + a3 = a3 | 0; 7989 + b2 = b2 | 0; 7990 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 7991 + if (+e[a3 >> 3] < +e[b2 >> 3]) { 7992 + d2 = 0; 7993 + return d2 | 0; 7994 + } 7995 + if (+e[a3 + 8 >> 3] > +e[b2 + 8 >> 3]) { 7996 + d2 = 0; 7997 + return d2 | 0; 7998 + } 7999 + d2 = a3 + 16 | 0; 8000 + j = +e[d2 >> 3]; 8001 + g2 = +e[a3 + 24 >> 3]; 8002 + h = j < g2; 8003 + c2 = b2 + 16 | 0; 8004 + l = +e[c2 >> 3]; 8005 + f2 = b2 + 24 | 0; 8006 + k = +e[f2 >> 3]; 8007 + i = l < k; 8008 + b2 = g2 - l < k - j; 8009 + a3 = h ? i | b2 ? 1 : 2 : 0; 8010 + b2 = i ? h ? 1 : b2 ? 2 : 1 : 0; 8011 + g2 = +kc(g2, a3); 8012 + if (!(g2 <= +kc(+e[f2 >> 3], b2))) { 8013 + i = 0; 8014 + return i | 0; 8015 + } 8016 + l = +kc(+e[d2 >> 3], a3); 8017 + i = l >= +kc(+e[c2 >> 3], b2); 8018 + return i | 0; 8019 + } 8020 + function Ga(a3, c2) { 8021 + a3 = a3 | 0; 8022 + c2 = c2 | 0; 8023 + var d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 8024 + g2 = T; 8025 + T = T + 176 | 0; 8026 + f2 = g2; 8027 + b[f2 >> 2] = 4; 8028 + j = +e[c2 >> 3]; 8029 + e[f2 + 8 >> 3] = j; 8030 + h = +e[c2 + 16 >> 3]; 8031 + e[f2 + 16 >> 3] = h; 8032 + e[f2 + 24 >> 3] = j; 8033 + j = +e[c2 + 24 >> 3]; 8034 + e[f2 + 32 >> 3] = j; 8035 + i = +e[c2 + 8 >> 3]; 8036 + e[f2 + 40 >> 3] = i; 8037 + e[f2 + 48 >> 3] = j; 8038 + e[f2 + 56 >> 3] = i; 8039 + e[f2 + 64 >> 3] = h; 8040 + c2 = f2 + 72 | 0; 8041 + d2 = c2 + 96 | 0; 8042 + do { 8043 + b[c2 >> 2] = 0; 8044 + c2 = c2 + 4 | 0; 8045 + } while ((c2 | 0) < (d2 | 0)); 8046 + Wd(a3 | 0, f2 | 0, 168) | 0; 8047 + T = g2; 8048 + return; 8049 + } 8050 + function Ha(a3, c2, d2) { 8051 + a3 = a3 | 0; 8052 + c2 = c2 | 0; 8053 + d2 = d2 | 0; 8054 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; 8055 + t2 = T; 8056 + T = T + 288 | 0; 8057 + n = t2 + 264 | 0; 8058 + o = t2 + 96 | 0; 8059 + m = t2; 8060 + k = m; 8061 + l = k + 96 | 0; 8062 + do { 8063 + b[k >> 2] = 0; 8064 + k = k + 4 | 0; 8065 + } while ((k | 0) < (l | 0)); 8066 + c2 = cc(c2, m) | 0; 8067 + if (c2 | 0) { 8068 + s2 = c2; 8069 + T = t2; 8070 + return s2 | 0; 8071 + } 8072 + l = m; 8073 + m = b[l >> 2] | 0; 8074 + l = b[l + 4 >> 2] | 0; 8075 + Zb(m, l, n) | 0; 8076 + _b(m, l, o) | 0; 8077 + j = +mc(n, o + 8 | 0); 8078 + e[n >> 3] = +e[a3 >> 3]; 8079 + l = n + 8 | 0; 8080 + e[l >> 3] = +e[a3 + 16 >> 3]; 8081 + e[o >> 3] = +e[a3 + 8 >> 3]; 8082 + m = o + 8 | 0; 8083 + e[m >> 3] = +e[a3 + 24 >> 3]; 8084 + h = +mc(n, o); 8085 + v2 = +e[l >> 3] - +e[m >> 3]; 8086 + i = +q(+v2); 8087 + u2 = +e[n >> 3] - +e[o >> 3]; 8088 + g2 = +q(+u2); 8089 + if (!(v2 == 0 | u2 == 0) ? (v2 = +Td(+i, +g2), v2 = +A(+(h * h / +Ud(+(v2 / +Ud(+i, +g2)), 3) / (j * (j * 2.59807621135) * 0.8))), e[f >> 3] = v2, r2 = ~~v2 >>> 0, s2 = +q(v2) >= 1 ? v2 > 0 ? ~~+C(+p2(v2 / 4294967296), 4294967295) >>> 0 : ~~+A((v2 - +(~~v2 >>> 0)) / 4294967296) >>> 0 : 0, !((b[f + 4 >> 2] & 2146435072 | 0) == 2146435072)) : 0) { 8090 + o = (r2 | 0) == 0 & (s2 | 0) == 0; 8091 + c2 = d2; 8092 + b[c2 >> 2] = o ? 1 : r2; 8093 + b[c2 + 4 >> 2] = o ? 0 : s2; 8094 + c2 = 0; 8095 + } else { 8096 + c2 = 1; 8097 + } 8098 + s2 = c2; 8099 + T = t2; 8100 + return s2 | 0; 8101 + } 8102 + function Ia(a3, c2, d2, g2) { 8103 + a3 = a3 | 0; 8104 + c2 = c2 | 0; 8105 + d2 = d2 | 0; 8106 + g2 = g2 | 0; 8107 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; 8108 + m = T; 8109 + T = T + 288 | 0; 8110 + j = m + 264 | 0; 8111 + k = m + 96 | 0; 8112 + l = m; 8113 + h = l; 8114 + i = h + 96 | 0; 8115 + do { 8116 + b[h >> 2] = 0; 8117 + h = h + 4 | 0; 8118 + } while ((h | 0) < (i | 0)); 8119 + d2 = cc(d2, l) | 0; 8120 + if (d2 | 0) { 8121 + g2 = d2; 8122 + T = m; 8123 + return g2 | 0; 8124 + } 8125 + d2 = l; 8126 + h = b[d2 >> 2] | 0; 8127 + d2 = b[d2 + 4 >> 2] | 0; 8128 + Zb(h, d2, j) | 0; 8129 + _b(h, d2, k) | 0; 8130 + n = +mc(j, k + 8 | 0); 8131 + n = +A(+(+mc(a3, c2) / (n * 2))); 8132 + e[f >> 3] = n; 8133 + d2 = ~~n >>> 0; 8134 + h = +q(n) >= 1 ? n > 0 ? ~~+C(+p2(n / 4294967296), 4294967295) >>> 0 : ~~+A((n - +(~~n >>> 0)) / 4294967296) >>> 0 : 0; 8135 + if ((b[f + 4 >> 2] & 2146435072 | 0) == 2146435072) { 8136 + g2 = 1; 8137 + T = m; 8138 + return g2 | 0; 8139 + } 8140 + l = (d2 | 0) == 0 & (h | 0) == 0; 8141 + b[g2 >> 2] = l ? 1 : d2; 8142 + b[g2 + 4 >> 2] = l ? 0 : h; 8143 + g2 = 0; 8144 + T = m; 8145 + return g2 | 0; 8146 + } 8147 + function Ja(a3, b2) { 8148 + a3 = a3 | 0; 8149 + b2 = +b2; 8150 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 8151 + g2 = a3 + 16 | 0; 8152 + h = +e[g2 >> 3]; 8153 + c2 = a3 + 24 | 0; 8154 + f2 = +e[c2 >> 3]; 8155 + d2 = h - f2; 8156 + d2 = h < f2 ? d2 + 6.283185307179586 : d2; 8157 + k = +e[a3 >> 3]; 8158 + i = a3 + 8 | 0; 8159 + j = +e[i >> 3]; 8160 + l = k - j; 8161 + d2 = (d2 * b2 - d2) * 0.5; 8162 + b2 = (l * b2 - l) * 0.5; 8163 + k = k + b2; 8164 + e[a3 >> 3] = k > 1.5707963267948966 ? 1.5707963267948966 : k; 8165 + b2 = j - b2; 8166 + e[i >> 3] = b2 < -1.5707963267948966 ? -1.5707963267948966 : b2; 8167 + b2 = h + d2; 8168 + b2 = b2 > 3.141592653589793 ? b2 + -6.283185307179586 : b2; 8169 + e[g2 >> 3] = b2 < -3.141592653589793 ? b2 + 6.283185307179586 : b2; 8170 + b2 = f2 - d2; 8171 + b2 = b2 > 3.141592653589793 ? b2 + -6.283185307179586 : b2; 8172 + e[c2 >> 3] = b2 < -3.141592653589793 ? b2 + 6.283185307179586 : b2; 8173 + return; 8174 + } 8175 + function Ka(a3, c2, d2, e2) { 8176 + a3 = a3 | 0; 8177 + c2 = c2 | 0; 8178 + d2 = d2 | 0; 8179 + e2 = e2 | 0; 8180 + b[a3 >> 2] = c2; 8181 + b[a3 + 4 >> 2] = d2; 8182 + b[a3 + 8 >> 2] = e2; 8183 + return; 8184 + } 8185 + function La(a3, c2) { 8186 + a3 = a3 | 0; 8187 + c2 = c2 | 0; 8188 + var d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; 8189 + n = c2 + 8 | 0; 8190 + b[n >> 2] = 0; 8191 + k = +e[a3 >> 3]; 8192 + i = +q(+k); 8193 + l = +e[a3 + 8 >> 3]; 8194 + j = +q(+l) * 1.1547005383792515; 8195 + i = i + j * 0.5; 8196 + d2 = ~~i; 8197 + a3 = ~~j; 8198 + i = i - +(d2 | 0); 8199 + j = j - +(a3 | 0); 8200 + do { 8201 + if (i < 0.5) { 8202 + if (i < 0.3333333333333333) { 8203 + b[c2 >> 2] = d2; 8204 + if (j < (i + 1) * 0.5) { 8205 + b[c2 + 4 >> 2] = a3; 8206 + break; 8207 + } else { 8208 + a3 = a3 + 1 | 0; 8209 + b[c2 + 4 >> 2] = a3; 8210 + break; 8211 + } 8212 + } else { 8213 + o = 1 - i; 8214 + a3 = (!(j < o) & 1) + a3 | 0; 8215 + b[c2 + 4 >> 2] = a3; 8216 + if (o <= j & j < i * 2) { 8217 + d2 = d2 + 1 | 0; 8218 + b[c2 >> 2] = d2; 8219 + break; 8220 + } else { 8221 + b[c2 >> 2] = d2; 8222 + break; 8223 + } 8224 + } 8225 + } else { 8226 + if (!(i < 0.6666666666666666)) { 8227 + d2 = d2 + 1 | 0; 8228 + b[c2 >> 2] = d2; 8229 + if (j < i * 0.5) { 8230 + b[c2 + 4 >> 2] = a3; 8231 + break; 8232 + } else { 8233 + a3 = a3 + 1 | 0; 8234 + b[c2 + 4 >> 2] = a3; 8235 + break; 8236 + } 8237 + } 8238 + if (j < 1 - i) { 8239 + b[c2 + 4 >> 2] = a3; 8240 + if (i * 2 + -1 < j) { 8241 + b[c2 >> 2] = d2; 8242 + break; 8243 + } 8244 + } else { 8245 + a3 = a3 + 1 | 0; 8246 + b[c2 + 4 >> 2] = a3; 8247 + } 8248 + d2 = d2 + 1 | 0; 8249 + b[c2 >> 2] = d2; 8250 + } 8251 + } while (0); 8252 + do { 8253 + if (k < 0) { 8254 + if (!(a3 & 1)) { 8255 + m = (a3 | 0) / 2 | 0; 8256 + m = Hd(d2 | 0, ((d2 | 0) < 0) << 31 >> 31 | 0, m | 0, ((m | 0) < 0) << 31 >> 31 | 0) | 0; 8257 + d2 = ~~(+(d2 | 0) - (+(m >>> 0) + 4294967296 * +(H() | 0)) * 2); 8258 + b[c2 >> 2] = d2; 8259 + break; 8260 + } else { 8261 + m = (a3 + 1 | 0) / 2 | 0; 8262 + m = Hd(d2 | 0, ((d2 | 0) < 0) << 31 >> 31 | 0, m | 0, ((m | 0) < 0) << 31 >> 31 | 0) | 0; 8263 + d2 = ~~(+(d2 | 0) - ((+(m >>> 0) + 4294967296 * +(H() | 0)) * 2 + 1)); 8264 + b[c2 >> 2] = d2; 8265 + break; 8266 + } 8267 + } 8268 + } while (0); 8269 + m = c2 + 4 | 0; 8270 + if (l < 0) { 8271 + d2 = d2 - ((a3 << 1 | 1 | 0) / 2 | 0) | 0; 8272 + b[c2 >> 2] = d2; 8273 + a3 = 0 - a3 | 0; 8274 + b[m >> 2] = a3; 8275 + } 8276 + f2 = a3 - d2 | 0; 8277 + if ((d2 | 0) < 0) { 8278 + g2 = 0 - d2 | 0; 8279 + b[m >> 2] = f2; 8280 + b[n >> 2] = g2; 8281 + b[c2 >> 2] = 0; 8282 + a3 = f2; 8283 + d2 = 0; 8284 + } else { 8285 + g2 = 0; 8286 + } 8287 + if ((a3 | 0) < 0) { 8288 + d2 = d2 - a3 | 0; 8289 + b[c2 >> 2] = d2; 8290 + g2 = g2 - a3 | 0; 8291 + b[n >> 2] = g2; 8292 + b[m >> 2] = 0; 8293 + a3 = 0; 8294 + } 8295 + h = d2 - g2 | 0; 8296 + f2 = a3 - g2 | 0; 8297 + if ((g2 | 0) < 0) { 8298 + b[c2 >> 2] = h; 8299 + b[m >> 2] = f2; 8300 + b[n >> 2] = 0; 8301 + a3 = f2; 8302 + d2 = h; 8303 + g2 = 0; 8304 + } 8305 + f2 = (a3 | 0) < (d2 | 0) ? a3 : d2; 8306 + f2 = (g2 | 0) < (f2 | 0) ? g2 : f2; 8307 + if ((f2 | 0) <= 0) { 8308 + return; 8309 + } 8310 + b[c2 >> 2] = d2 - f2; 8311 + b[m >> 2] = a3 - f2; 8312 + b[n >> 2] = g2 - f2; 8313 + return; 8314 + } 8315 + function Ma(a3) { 8316 + a3 = a3 | 0; 8317 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0; 8318 + c2 = b[a3 >> 2] | 0; 8319 + h = a3 + 4 | 0; 8320 + d2 = b[h >> 2] | 0; 8321 + if ((c2 | 0) < 0) { 8322 + d2 = d2 - c2 | 0; 8323 + b[h >> 2] = d2; 8324 + g2 = a3 + 8 | 0; 8325 + b[g2 >> 2] = (b[g2 >> 2] | 0) - c2; 8326 + b[a3 >> 2] = 0; 8327 + c2 = 0; 8328 + } 8329 + if ((d2 | 0) < 0) { 8330 + c2 = c2 - d2 | 0; 8331 + b[a3 >> 2] = c2; 8332 + g2 = a3 + 8 | 0; 8333 + f2 = (b[g2 >> 2] | 0) - d2 | 0; 8334 + b[g2 >> 2] = f2; 8335 + b[h >> 2] = 0; 8336 + d2 = 0; 8337 + } else { 8338 + f2 = a3 + 8 | 0; 8339 + g2 = f2; 8340 + f2 = b[f2 >> 2] | 0; 8341 + } 8342 + if ((f2 | 0) < 0) { 8343 + c2 = c2 - f2 | 0; 8344 + b[a3 >> 2] = c2; 8345 + d2 = d2 - f2 | 0; 8346 + b[h >> 2] = d2; 8347 + b[g2 >> 2] = 0; 8348 + f2 = 0; 8349 + } 8350 + e2 = (d2 | 0) < (c2 | 0) ? d2 : c2; 8351 + e2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 8352 + if ((e2 | 0) <= 0) { 8353 + return; 8354 + } 8355 + b[a3 >> 2] = c2 - e2; 8356 + b[h >> 2] = d2 - e2; 8357 + b[g2 >> 2] = f2 - e2; 8358 + return; 8359 + } 8360 + function Na(a3, c2) { 8361 + a3 = a3 | 0; 8362 + c2 = c2 | 0; 8363 + var d2 = 0, f2 = 0; 8364 + f2 = b[a3 + 8 >> 2] | 0; 8365 + d2 = +((b[a3 + 4 >> 2] | 0) - f2 | 0); 8366 + e[c2 >> 3] = +((b[a3 >> 2] | 0) - f2 | 0) - d2 * 0.5; 8367 + e[c2 + 8 >> 3] = d2 * 0.8660254037844386; 8368 + return; 8369 + } 8370 + function Oa(a3, c2, d2) { 8371 + a3 = a3 | 0; 8372 + c2 = c2 | 0; 8373 + d2 = d2 | 0; 8374 + b[d2 >> 2] = (b[c2 >> 2] | 0) + (b[a3 >> 2] | 0); 8375 + b[d2 + 4 >> 2] = (b[c2 + 4 >> 2] | 0) + (b[a3 + 4 >> 2] | 0); 8376 + b[d2 + 8 >> 2] = (b[c2 + 8 >> 2] | 0) + (b[a3 + 8 >> 2] | 0); 8377 + return; 8378 + } 8379 + function Pa(a3, c2, d2) { 8380 + a3 = a3 | 0; 8381 + c2 = c2 | 0; 8382 + d2 = d2 | 0; 8383 + b[d2 >> 2] = (b[a3 >> 2] | 0) - (b[c2 >> 2] | 0); 8384 + b[d2 + 4 >> 2] = (b[a3 + 4 >> 2] | 0) - (b[c2 + 4 >> 2] | 0); 8385 + b[d2 + 8 >> 2] = (b[a3 + 8 >> 2] | 0) - (b[c2 + 8 >> 2] | 0); 8386 + return; 8387 + } 8388 + function Qa(a3, c2) { 8389 + a3 = a3 | 0; 8390 + c2 = c2 | 0; 8391 + var d2 = 0, e2 = 0; 8392 + d2 = B(b[a3 >> 2] | 0, c2) | 0; 8393 + b[a3 >> 2] = d2; 8394 + d2 = a3 + 4 | 0; 8395 + e2 = B(b[d2 >> 2] | 0, c2) | 0; 8396 + b[d2 >> 2] = e2; 8397 + a3 = a3 + 8 | 0; 8398 + c2 = B(b[a3 >> 2] | 0, c2) | 0; 8399 + b[a3 >> 2] = c2; 8400 + return; 8401 + } 8402 + function Ra(a3) { 8403 + a3 = a3 | 0; 8404 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8405 + h = b[a3 >> 2] | 0; 8406 + i = (h | 0) < 0; 8407 + e2 = (b[a3 + 4 >> 2] | 0) - (i ? h : 0) | 0; 8408 + g2 = (e2 | 0) < 0; 8409 + f2 = (g2 ? 0 - e2 | 0 : 0) + ((b[a3 + 8 >> 2] | 0) - (i ? h : 0)) | 0; 8410 + d2 = (f2 | 0) < 0; 8411 + a3 = d2 ? 0 : f2; 8412 + c2 = (g2 ? 0 : e2) - (d2 ? f2 : 0) | 0; 8413 + f2 = (i ? 0 : h) - (g2 ? e2 : 0) - (d2 ? f2 : 0) | 0; 8414 + d2 = (c2 | 0) < (f2 | 0) ? c2 : f2; 8415 + d2 = (a3 | 0) < (d2 | 0) ? a3 : d2; 8416 + e2 = (d2 | 0) > 0; 8417 + a3 = a3 - (e2 ? d2 : 0) | 0; 8418 + c2 = c2 - (e2 ? d2 : 0) | 0; 8419 + a: 8420 + do { 8421 + switch (f2 - (e2 ? d2 : 0) | 0) { 8422 + case 0: 8423 + switch (c2 | 0) { 8424 + case 0: { 8425 + i = (a3 | 0) == 0 ? 0 : (a3 | 0) == 1 ? 1 : 7; 8426 + return i | 0; 8427 + } 8428 + case 1: { 8429 + i = (a3 | 0) == 0 ? 2 : (a3 | 0) == 1 ? 3 : 7; 8430 + return i | 0; 8431 + } 8432 + default: 8433 + break a; 8434 + } 8435 + case 1: 8436 + switch (c2 | 0) { 8437 + case 0: { 8438 + i = (a3 | 0) == 0 ? 4 : (a3 | 0) == 1 ? 5 : 7; 8439 + return i | 0; 8440 + } 8441 + case 1: { 8442 + if (!a3) { 8443 + a3 = 6; 8444 + } else { 8445 + break a; 8446 + } 8447 + return a3 | 0; 8448 + } 8449 + default: 8450 + break a; 8451 + } 8452 + default: 8453 + } 8454 + } while (0); 8455 + i = 7; 8456 + return i | 0; 8457 + } 8458 + function Sa(a3) { 8459 + a3 = a3 | 0; 8460 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 8461 + j = a3 + 8 | 0; 8462 + h = b[j >> 2] | 0; 8463 + i = (b[a3 >> 2] | 0) - h | 0; 8464 + k = a3 + 4 | 0; 8465 + h = (b[k >> 2] | 0) - h | 0; 8466 + if (i >>> 0 > 715827881 | h >>> 0 > 715827881) { 8467 + e2 = (i | 0) > 0; 8468 + f2 = 2147483647 - i | 0; 8469 + g2 = -2147483648 - i | 0; 8470 + if (e2 ? (f2 | 0) < (i | 0) : (g2 | 0) > (i | 0)) { 8471 + k = 1; 8472 + return k | 0; 8473 + } 8474 + d2 = i << 1; 8475 + if (e2 ? (2147483647 - d2 | 0) < (i | 0) : (-2147483648 - d2 | 0) > (i | 0)) { 8476 + k = 1; 8477 + return k | 0; 8478 + } 8479 + if ((h | 0) > 0 ? (2147483647 - h | 0) < (h | 0) : (-2147483648 - h | 0) > (h | 0)) { 8480 + k = 1; 8481 + return k | 0; 8482 + } 8483 + c2 = i * 3 | 0; 8484 + d2 = h << 1; 8485 + if ((e2 ? (f2 | 0) < (d2 | 0) : (g2 | 0) > (d2 | 0)) ? 1 : (i | 0) > -1 ? (c2 | -2147483648 | 0) >= (h | 0) : (c2 ^ -2147483648 | 0) < (h | 0)) { 8486 + k = 1; 8487 + return k | 0; 8488 + } 8489 + } else { 8490 + d2 = h << 1; 8491 + c2 = i * 3 | 0; 8492 + } 8493 + e2 = Cd(+(c2 - h | 0) * 0.14285714285714285) | 0; 8494 + b[a3 >> 2] = e2; 8495 + f2 = Cd(+(d2 + i | 0) * 0.14285714285714285) | 0; 8496 + b[k >> 2] = f2; 8497 + b[j >> 2] = 0; 8498 + d2 = (f2 | 0) < (e2 | 0); 8499 + c2 = d2 ? e2 : f2; 8500 + d2 = d2 ? f2 : e2; 8501 + if ((d2 | 0) < 0) { 8502 + if ((d2 | 0) == -2147483648 ? 1 : (c2 | 0) > 0 ? (2147483647 - c2 | 0) < (d2 | 0) : (-2147483648 - c2 | 0) > (d2 | 0)) { 8503 + I(27795, 26892, 354, 26903); 8504 + } 8505 + if ((c2 | 0) > -1 ? (c2 | -2147483648 | 0) >= (d2 | 0) : (c2 ^ -2147483648 | 0) < (d2 | 0)) { 8506 + I(27795, 26892, 354, 26903); 8507 + } 8508 + } 8509 + c2 = f2 - e2 | 0; 8510 + if ((e2 | 0) < 0) { 8511 + d2 = 0 - e2 | 0; 8512 + b[k >> 2] = c2; 8513 + b[j >> 2] = d2; 8514 + b[a3 >> 2] = 0; 8515 + e2 = 0; 8516 + } else { 8517 + c2 = f2; 8518 + d2 = 0; 8519 + } 8520 + if ((c2 | 0) < 0) { 8521 + e2 = e2 - c2 | 0; 8522 + b[a3 >> 2] = e2; 8523 + d2 = d2 - c2 | 0; 8524 + b[j >> 2] = d2; 8525 + b[k >> 2] = 0; 8526 + c2 = 0; 8527 + } 8528 + g2 = e2 - d2 | 0; 8529 + f2 = c2 - d2 | 0; 8530 + if ((d2 | 0) < 0) { 8531 + b[a3 >> 2] = g2; 8532 + b[k >> 2] = f2; 8533 + b[j >> 2] = 0; 8534 + c2 = f2; 8535 + f2 = g2; 8536 + d2 = 0; 8537 + } else { 8538 + f2 = e2; 8539 + } 8540 + e2 = (c2 | 0) < (f2 | 0) ? c2 : f2; 8541 + e2 = (d2 | 0) < (e2 | 0) ? d2 : e2; 8542 + if ((e2 | 0) <= 0) { 8543 + k = 0; 8544 + return k | 0; 8545 + } 8546 + b[a3 >> 2] = f2 - e2; 8547 + b[k >> 2] = c2 - e2; 8548 + b[j >> 2] = d2 - e2; 8549 + k = 0; 8550 + return k | 0; 8551 + } 8552 + function Ta(a3) { 8553 + a3 = a3 | 0; 8554 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 8555 + h = a3 + 8 | 0; 8556 + f2 = b[h >> 2] | 0; 8557 + g2 = (b[a3 >> 2] | 0) - f2 | 0; 8558 + i = a3 + 4 | 0; 8559 + f2 = (b[i >> 2] | 0) - f2 | 0; 8560 + if (g2 >>> 0 > 715827881 | f2 >>> 0 > 715827881) { 8561 + d2 = (g2 | 0) > 0; 8562 + if (d2 ? (2147483647 - g2 | 0) < (g2 | 0) : (-2147483648 - g2 | 0) > (g2 | 0)) { 8563 + i = 1; 8564 + return i | 0; 8565 + } 8566 + c2 = g2 << 1; 8567 + e2 = (f2 | 0) > 0; 8568 + if (e2 ? (2147483647 - f2 | 0) < (f2 | 0) : (-2147483648 - f2 | 0) > (f2 | 0)) { 8569 + i = 1; 8570 + return i | 0; 8571 + } 8572 + j = f2 << 1; 8573 + if (e2 ? (2147483647 - j | 0) < (f2 | 0) : (-2147483648 - j | 0) > (f2 | 0)) { 8574 + j = 1; 8575 + return j | 0; 8576 + } 8577 + if (d2 ? (2147483647 - c2 | 0) < (f2 | 0) : (-2147483648 - c2 | 0) > (f2 | 0)) { 8578 + j = 1; 8579 + return j | 0; 8580 + } 8581 + d2 = f2 * 3 | 0; 8582 + if ((f2 | 0) > -1 ? (d2 | -2147483648 | 0) >= (g2 | 0) : (d2 ^ -2147483648 | 0) < (g2 | 0)) { 8583 + j = 1; 8584 + return j | 0; 8585 + } 8586 + } else { 8587 + d2 = f2 * 3 | 0; 8588 + c2 = g2 << 1; 8589 + } 8590 + e2 = Cd(+(c2 + f2 | 0) * 0.14285714285714285) | 0; 8591 + b[a3 >> 2] = e2; 8592 + f2 = Cd(+(d2 - g2 | 0) * 0.14285714285714285) | 0; 8593 + b[i >> 2] = f2; 8594 + b[h >> 2] = 0; 8595 + d2 = (f2 | 0) < (e2 | 0); 8596 + c2 = d2 ? e2 : f2; 8597 + d2 = d2 ? f2 : e2; 8598 + if ((d2 | 0) < 0) { 8599 + if ((d2 | 0) == -2147483648 ? 1 : (c2 | 0) > 0 ? (2147483647 - c2 | 0) < (d2 | 0) : (-2147483648 - c2 | 0) > (d2 | 0)) { 8600 + I(27795, 26892, 402, 26917); 8601 + } 8602 + if ((c2 | 0) > -1 ? (c2 | -2147483648 | 0) >= (d2 | 0) : (c2 ^ -2147483648 | 0) < (d2 | 0)) { 8603 + I(27795, 26892, 402, 26917); 8604 + } 8605 + } 8606 + c2 = f2 - e2 | 0; 8607 + if ((e2 | 0) < 0) { 8608 + d2 = 0 - e2 | 0; 8609 + b[i >> 2] = c2; 8610 + b[h >> 2] = d2; 8611 + b[a3 >> 2] = 0; 8612 + e2 = 0; 8613 + } else { 8614 + c2 = f2; 8615 + d2 = 0; 8616 + } 8617 + if ((c2 | 0) < 0) { 8618 + e2 = e2 - c2 | 0; 8619 + b[a3 >> 2] = e2; 8620 + d2 = d2 - c2 | 0; 8621 + b[h >> 2] = d2; 8622 + b[i >> 2] = 0; 8623 + c2 = 0; 8624 + } 8625 + g2 = e2 - d2 | 0; 8626 + f2 = c2 - d2 | 0; 8627 + if ((d2 | 0) < 0) { 8628 + b[a3 >> 2] = g2; 8629 + b[i >> 2] = f2; 8630 + b[h >> 2] = 0; 8631 + c2 = f2; 8632 + f2 = g2; 8633 + d2 = 0; 8634 + } else { 8635 + f2 = e2; 8636 + } 8637 + e2 = (c2 | 0) < (f2 | 0) ? c2 : f2; 8638 + e2 = (d2 | 0) < (e2 | 0) ? d2 : e2; 8639 + if ((e2 | 0) <= 0) { 8640 + j = 0; 8641 + return j | 0; 8642 + } 8643 + b[a3 >> 2] = f2 - e2; 8644 + b[i >> 2] = c2 - e2; 8645 + b[h >> 2] = d2 - e2; 8646 + j = 0; 8647 + return j | 0; 8648 + } 8649 + function Ua(a3) { 8650 + a3 = a3 | 0; 8651 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8652 + h = a3 + 8 | 0; 8653 + d2 = b[h >> 2] | 0; 8654 + c2 = (b[a3 >> 2] | 0) - d2 | 0; 8655 + i = a3 + 4 | 0; 8656 + d2 = (b[i >> 2] | 0) - d2 | 0; 8657 + e2 = Cd(+((c2 * 3 | 0) - d2 | 0) * 0.14285714285714285) | 0; 8658 + b[a3 >> 2] = e2; 8659 + c2 = Cd(+((d2 << 1) + c2 | 0) * 0.14285714285714285) | 0; 8660 + b[i >> 2] = c2; 8661 + b[h >> 2] = 0; 8662 + d2 = c2 - e2 | 0; 8663 + if ((e2 | 0) < 0) { 8664 + g2 = 0 - e2 | 0; 8665 + b[i >> 2] = d2; 8666 + b[h >> 2] = g2; 8667 + b[a3 >> 2] = 0; 8668 + c2 = d2; 8669 + e2 = 0; 8670 + d2 = g2; 8671 + } else { 8672 + d2 = 0; 8673 + } 8674 + if ((c2 | 0) < 0) { 8675 + e2 = e2 - c2 | 0; 8676 + b[a3 >> 2] = e2; 8677 + d2 = d2 - c2 | 0; 8678 + b[h >> 2] = d2; 8679 + b[i >> 2] = 0; 8680 + c2 = 0; 8681 + } 8682 + g2 = e2 - d2 | 0; 8683 + f2 = c2 - d2 | 0; 8684 + if ((d2 | 0) < 0) { 8685 + b[a3 >> 2] = g2; 8686 + b[i >> 2] = f2; 8687 + b[h >> 2] = 0; 8688 + c2 = f2; 8689 + f2 = g2; 8690 + d2 = 0; 8691 + } else { 8692 + f2 = e2; 8693 + } 8694 + e2 = (c2 | 0) < (f2 | 0) ? c2 : f2; 8695 + e2 = (d2 | 0) < (e2 | 0) ? d2 : e2; 8696 + if ((e2 | 0) <= 0) { 8697 + return; 8698 + } 8699 + b[a3 >> 2] = f2 - e2; 8700 + b[i >> 2] = c2 - e2; 8701 + b[h >> 2] = d2 - e2; 8702 + return; 8703 + } 8704 + function Va(a3) { 8705 + a3 = a3 | 0; 8706 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8707 + h = a3 + 8 | 0; 8708 + d2 = b[h >> 2] | 0; 8709 + c2 = (b[a3 >> 2] | 0) - d2 | 0; 8710 + i = a3 + 4 | 0; 8711 + d2 = (b[i >> 2] | 0) - d2 | 0; 8712 + e2 = Cd(+((c2 << 1) + d2 | 0) * 0.14285714285714285) | 0; 8713 + b[a3 >> 2] = e2; 8714 + c2 = Cd(+((d2 * 3 | 0) - c2 | 0) * 0.14285714285714285) | 0; 8715 + b[i >> 2] = c2; 8716 + b[h >> 2] = 0; 8717 + d2 = c2 - e2 | 0; 8718 + if ((e2 | 0) < 0) { 8719 + g2 = 0 - e2 | 0; 8720 + b[i >> 2] = d2; 8721 + b[h >> 2] = g2; 8722 + b[a3 >> 2] = 0; 8723 + c2 = d2; 8724 + e2 = 0; 8725 + d2 = g2; 8726 + } else { 8727 + d2 = 0; 8728 + } 8729 + if ((c2 | 0) < 0) { 8730 + e2 = e2 - c2 | 0; 8731 + b[a3 >> 2] = e2; 8732 + d2 = d2 - c2 | 0; 8733 + b[h >> 2] = d2; 8734 + b[i >> 2] = 0; 8735 + c2 = 0; 8736 + } 8737 + g2 = e2 - d2 | 0; 8738 + f2 = c2 - d2 | 0; 8739 + if ((d2 | 0) < 0) { 8740 + b[a3 >> 2] = g2; 8741 + b[i >> 2] = f2; 8742 + b[h >> 2] = 0; 8743 + c2 = f2; 8744 + f2 = g2; 8745 + d2 = 0; 8746 + } else { 8747 + f2 = e2; 8748 + } 8749 + e2 = (c2 | 0) < (f2 | 0) ? c2 : f2; 8750 + e2 = (d2 | 0) < (e2 | 0) ? d2 : e2; 8751 + if ((e2 | 0) <= 0) { 8752 + return; 8753 + } 8754 + b[a3 >> 2] = f2 - e2; 8755 + b[i >> 2] = c2 - e2; 8756 + b[h >> 2] = d2 - e2; 8757 + return; 8758 + } 8759 + function Wa(a3) { 8760 + a3 = a3 | 0; 8761 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8762 + c2 = b[a3 >> 2] | 0; 8763 + h = a3 + 4 | 0; 8764 + d2 = b[h >> 2] | 0; 8765 + i = a3 + 8 | 0; 8766 + e2 = b[i >> 2] | 0; 8767 + f2 = d2 + (c2 * 3 | 0) | 0; 8768 + b[a3 >> 2] = f2; 8769 + d2 = e2 + (d2 * 3 | 0) | 0; 8770 + b[h >> 2] = d2; 8771 + c2 = (e2 * 3 | 0) + c2 | 0; 8772 + b[i >> 2] = c2; 8773 + e2 = d2 - f2 | 0; 8774 + if ((f2 | 0) < 0) { 8775 + c2 = c2 - f2 | 0; 8776 + b[h >> 2] = e2; 8777 + b[i >> 2] = c2; 8778 + b[a3 >> 2] = 0; 8779 + d2 = e2; 8780 + e2 = 0; 8781 + } else { 8782 + e2 = f2; 8783 + } 8784 + if ((d2 | 0) < 0) { 8785 + e2 = e2 - d2 | 0; 8786 + b[a3 >> 2] = e2; 8787 + c2 = c2 - d2 | 0; 8788 + b[i >> 2] = c2; 8789 + b[h >> 2] = 0; 8790 + d2 = 0; 8791 + } 8792 + g2 = e2 - c2 | 0; 8793 + f2 = d2 - c2 | 0; 8794 + if ((c2 | 0) < 0) { 8795 + b[a3 >> 2] = g2; 8796 + b[h >> 2] = f2; 8797 + b[i >> 2] = 0; 8798 + e2 = g2; 8799 + c2 = 0; 8800 + } else { 8801 + f2 = d2; 8802 + } 8803 + d2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 8804 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 8805 + if ((d2 | 0) <= 0) { 8806 + return; 8807 + } 8808 + b[a3 >> 2] = e2 - d2; 8809 + b[h >> 2] = f2 - d2; 8810 + b[i >> 2] = c2 - d2; 8811 + return; 8812 + } 8813 + function Xa(a3) { 8814 + a3 = a3 | 0; 8815 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8816 + f2 = b[a3 >> 2] | 0; 8817 + h = a3 + 4 | 0; 8818 + c2 = b[h >> 2] | 0; 8819 + i = a3 + 8 | 0; 8820 + d2 = b[i >> 2] | 0; 8821 + e2 = (c2 * 3 | 0) + f2 | 0; 8822 + f2 = d2 + (f2 * 3 | 0) | 0; 8823 + b[a3 >> 2] = f2; 8824 + b[h >> 2] = e2; 8825 + c2 = (d2 * 3 | 0) + c2 | 0; 8826 + b[i >> 2] = c2; 8827 + d2 = e2 - f2 | 0; 8828 + if ((f2 | 0) < 0) { 8829 + c2 = c2 - f2 | 0; 8830 + b[h >> 2] = d2; 8831 + b[i >> 2] = c2; 8832 + b[a3 >> 2] = 0; 8833 + f2 = 0; 8834 + } else { 8835 + d2 = e2; 8836 + } 8837 + if ((d2 | 0) < 0) { 8838 + f2 = f2 - d2 | 0; 8839 + b[a3 >> 2] = f2; 8840 + c2 = c2 - d2 | 0; 8841 + b[i >> 2] = c2; 8842 + b[h >> 2] = 0; 8843 + d2 = 0; 8844 + } 8845 + g2 = f2 - c2 | 0; 8846 + e2 = d2 - c2 | 0; 8847 + if ((c2 | 0) < 0) { 8848 + b[a3 >> 2] = g2; 8849 + b[h >> 2] = e2; 8850 + b[i >> 2] = 0; 8851 + f2 = g2; 8852 + c2 = 0; 8853 + } else { 8854 + e2 = d2; 8855 + } 8856 + d2 = (e2 | 0) < (f2 | 0) ? e2 : f2; 8857 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 8858 + if ((d2 | 0) <= 0) { 8859 + return; 8860 + } 8861 + b[a3 >> 2] = f2 - d2; 8862 + b[h >> 2] = e2 - d2; 8863 + b[i >> 2] = c2 - d2; 8864 + return; 8865 + } 8866 + function Ya(a3, c2) { 8867 + a3 = a3 | 0; 8868 + c2 = c2 | 0; 8869 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8870 + if ((c2 + -1 | 0) >>> 0 >= 6) { 8871 + return; 8872 + } 8873 + f2 = (b[15440 + (c2 * 12 | 0) >> 2] | 0) + (b[a3 >> 2] | 0) | 0; 8874 + b[a3 >> 2] = f2; 8875 + i = a3 + 4 | 0; 8876 + e2 = (b[15440 + (c2 * 12 | 0) + 4 >> 2] | 0) + (b[i >> 2] | 0) | 0; 8877 + b[i >> 2] = e2; 8878 + h = a3 + 8 | 0; 8879 + c2 = (b[15440 + (c2 * 12 | 0) + 8 >> 2] | 0) + (b[h >> 2] | 0) | 0; 8880 + b[h >> 2] = c2; 8881 + d2 = e2 - f2 | 0; 8882 + if ((f2 | 0) < 0) { 8883 + c2 = c2 - f2 | 0; 8884 + b[i >> 2] = d2; 8885 + b[h >> 2] = c2; 8886 + b[a3 >> 2] = 0; 8887 + e2 = 0; 8888 + } else { 8889 + d2 = e2; 8890 + e2 = f2; 8891 + } 8892 + if ((d2 | 0) < 0) { 8893 + e2 = e2 - d2 | 0; 8894 + b[a3 >> 2] = e2; 8895 + c2 = c2 - d2 | 0; 8896 + b[h >> 2] = c2; 8897 + b[i >> 2] = 0; 8898 + d2 = 0; 8899 + } 8900 + g2 = e2 - c2 | 0; 8901 + f2 = d2 - c2 | 0; 8902 + if ((c2 | 0) < 0) { 8903 + b[a3 >> 2] = g2; 8904 + b[i >> 2] = f2; 8905 + b[h >> 2] = 0; 8906 + e2 = g2; 8907 + c2 = 0; 8908 + } else { 8909 + f2 = d2; 8910 + } 8911 + d2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 8912 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 8913 + if ((d2 | 0) <= 0) { 8914 + return; 8915 + } 8916 + b[a3 >> 2] = e2 - d2; 8917 + b[i >> 2] = f2 - d2; 8918 + b[h >> 2] = c2 - d2; 8919 + return; 8920 + } 8921 + function Za(a3) { 8922 + a3 = a3 | 0; 8923 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8924 + f2 = b[a3 >> 2] | 0; 8925 + h = a3 + 4 | 0; 8926 + c2 = b[h >> 2] | 0; 8927 + i = a3 + 8 | 0; 8928 + d2 = b[i >> 2] | 0; 8929 + e2 = c2 + f2 | 0; 8930 + f2 = d2 + f2 | 0; 8931 + b[a3 >> 2] = f2; 8932 + b[h >> 2] = e2; 8933 + c2 = d2 + c2 | 0; 8934 + b[i >> 2] = c2; 8935 + d2 = e2 - f2 | 0; 8936 + if ((f2 | 0) < 0) { 8937 + c2 = c2 - f2 | 0; 8938 + b[h >> 2] = d2; 8939 + b[i >> 2] = c2; 8940 + b[a3 >> 2] = 0; 8941 + e2 = 0; 8942 + } else { 8943 + d2 = e2; 8944 + e2 = f2; 8945 + } 8946 + if ((d2 | 0) < 0) { 8947 + e2 = e2 - d2 | 0; 8948 + b[a3 >> 2] = e2; 8949 + c2 = c2 - d2 | 0; 8950 + b[i >> 2] = c2; 8951 + b[h >> 2] = 0; 8952 + d2 = 0; 8953 + } 8954 + g2 = e2 - c2 | 0; 8955 + f2 = d2 - c2 | 0; 8956 + if ((c2 | 0) < 0) { 8957 + b[a3 >> 2] = g2; 8958 + b[h >> 2] = f2; 8959 + b[i >> 2] = 0; 8960 + e2 = g2; 8961 + c2 = 0; 8962 + } else { 8963 + f2 = d2; 8964 + } 8965 + d2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 8966 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 8967 + if ((d2 | 0) <= 0) { 8968 + return; 8969 + } 8970 + b[a3 >> 2] = e2 - d2; 8971 + b[h >> 2] = f2 - d2; 8972 + b[i >> 2] = c2 - d2; 8973 + return; 8974 + } 8975 + function _a(a3) { 8976 + a3 = a3 | 0; 8977 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 8978 + c2 = b[a3 >> 2] | 0; 8979 + h = a3 + 4 | 0; 8980 + e2 = b[h >> 2] | 0; 8981 + i = a3 + 8 | 0; 8982 + d2 = b[i >> 2] | 0; 8983 + f2 = e2 + c2 | 0; 8984 + b[a3 >> 2] = f2; 8985 + e2 = d2 + e2 | 0; 8986 + b[h >> 2] = e2; 8987 + c2 = d2 + c2 | 0; 8988 + b[i >> 2] = c2; 8989 + d2 = e2 - f2 | 0; 8990 + if ((f2 | 0) < 0) { 8991 + c2 = c2 - f2 | 0; 8992 + b[h >> 2] = d2; 8993 + b[i >> 2] = c2; 8994 + b[a3 >> 2] = 0; 8995 + e2 = 0; 8996 + } else { 8997 + d2 = e2; 8998 + e2 = f2; 8999 + } 9000 + if ((d2 | 0) < 0) { 9001 + e2 = e2 - d2 | 0; 9002 + b[a3 >> 2] = e2; 9003 + c2 = c2 - d2 | 0; 9004 + b[i >> 2] = c2; 9005 + b[h >> 2] = 0; 9006 + d2 = 0; 9007 + } 9008 + g2 = e2 - c2 | 0; 9009 + f2 = d2 - c2 | 0; 9010 + if ((c2 | 0) < 0) { 9011 + b[a3 >> 2] = g2; 9012 + b[h >> 2] = f2; 9013 + b[i >> 2] = 0; 9014 + e2 = g2; 9015 + c2 = 0; 9016 + } else { 9017 + f2 = d2; 9018 + } 9019 + d2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 9020 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 9021 + if ((d2 | 0) <= 0) { 9022 + return; 9023 + } 9024 + b[a3 >> 2] = e2 - d2; 9025 + b[h >> 2] = f2 - d2; 9026 + b[i >> 2] = c2 - d2; 9027 + return; 9028 + } 9029 + function $a(a3) { 9030 + a3 = a3 | 0; 9031 + switch (a3 | 0) { 9032 + case 1: { 9033 + a3 = 5; 9034 + break; 9035 + } 9036 + case 5: { 9037 + a3 = 4; 9038 + break; 9039 + } 9040 + case 4: { 9041 + a3 = 6; 9042 + break; 9043 + } 9044 + case 6: { 9045 + a3 = 2; 9046 + break; 9047 + } 9048 + case 2: { 9049 + a3 = 3; 9050 + break; 9051 + } 9052 + case 3: { 9053 + a3 = 1; 9054 + break; 9055 + } 9056 + default: 9057 + } 9058 + return a3 | 0; 9059 + } 9060 + function ab(a3) { 9061 + a3 = a3 | 0; 9062 + switch (a3 | 0) { 9063 + case 1: { 9064 + a3 = 3; 9065 + break; 9066 + } 9067 + case 3: { 9068 + a3 = 2; 9069 + break; 9070 + } 9071 + case 2: { 9072 + a3 = 6; 9073 + break; 9074 + } 9075 + case 6: { 9076 + a3 = 4; 9077 + break; 9078 + } 9079 + case 4: { 9080 + a3 = 5; 9081 + break; 9082 + } 9083 + case 5: { 9084 + a3 = 1; 9085 + break; 9086 + } 9087 + default: 9088 + } 9089 + return a3 | 0; 9090 + } 9091 + function bb(a3) { 9092 + a3 = a3 | 0; 9093 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 9094 + c2 = b[a3 >> 2] | 0; 9095 + h = a3 + 4 | 0; 9096 + d2 = b[h >> 2] | 0; 9097 + i = a3 + 8 | 0; 9098 + e2 = b[i >> 2] | 0; 9099 + f2 = d2 + (c2 << 1) | 0; 9100 + b[a3 >> 2] = f2; 9101 + d2 = e2 + (d2 << 1) | 0; 9102 + b[h >> 2] = d2; 9103 + c2 = (e2 << 1) + c2 | 0; 9104 + b[i >> 2] = c2; 9105 + e2 = d2 - f2 | 0; 9106 + if ((f2 | 0) < 0) { 9107 + c2 = c2 - f2 | 0; 9108 + b[h >> 2] = e2; 9109 + b[i >> 2] = c2; 9110 + b[a3 >> 2] = 0; 9111 + d2 = e2; 9112 + e2 = 0; 9113 + } else { 9114 + e2 = f2; 9115 + } 9116 + if ((d2 | 0) < 0) { 9117 + e2 = e2 - d2 | 0; 9118 + b[a3 >> 2] = e2; 9119 + c2 = c2 - d2 | 0; 9120 + b[i >> 2] = c2; 9121 + b[h >> 2] = 0; 9122 + d2 = 0; 9123 + } 9124 + g2 = e2 - c2 | 0; 9125 + f2 = d2 - c2 | 0; 9126 + if ((c2 | 0) < 0) { 9127 + b[a3 >> 2] = g2; 9128 + b[h >> 2] = f2; 9129 + b[i >> 2] = 0; 9130 + e2 = g2; 9131 + c2 = 0; 9132 + } else { 9133 + f2 = d2; 9134 + } 9135 + d2 = (f2 | 0) < (e2 | 0) ? f2 : e2; 9136 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 9137 + if ((d2 | 0) <= 0) { 9138 + return; 9139 + } 9140 + b[a3 >> 2] = e2 - d2; 9141 + b[h >> 2] = f2 - d2; 9142 + b[i >> 2] = c2 - d2; 9143 + return; 9144 + } 9145 + function cb(a3) { 9146 + a3 = a3 | 0; 9147 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 9148 + f2 = b[a3 >> 2] | 0; 9149 + h = a3 + 4 | 0; 9150 + c2 = b[h >> 2] | 0; 9151 + i = a3 + 8 | 0; 9152 + d2 = b[i >> 2] | 0; 9153 + e2 = (c2 << 1) + f2 | 0; 9154 + f2 = d2 + (f2 << 1) | 0; 9155 + b[a3 >> 2] = f2; 9156 + b[h >> 2] = e2; 9157 + c2 = (d2 << 1) + c2 | 0; 9158 + b[i >> 2] = c2; 9159 + d2 = e2 - f2 | 0; 9160 + if ((f2 | 0) < 0) { 9161 + c2 = c2 - f2 | 0; 9162 + b[h >> 2] = d2; 9163 + b[i >> 2] = c2; 9164 + b[a3 >> 2] = 0; 9165 + f2 = 0; 9166 + } else { 9167 + d2 = e2; 9168 + } 9169 + if ((d2 | 0) < 0) { 9170 + f2 = f2 - d2 | 0; 9171 + b[a3 >> 2] = f2; 9172 + c2 = c2 - d2 | 0; 9173 + b[i >> 2] = c2; 9174 + b[h >> 2] = 0; 9175 + d2 = 0; 9176 + } 9177 + g2 = f2 - c2 | 0; 9178 + e2 = d2 - c2 | 0; 9179 + if ((c2 | 0) < 0) { 9180 + b[a3 >> 2] = g2; 9181 + b[h >> 2] = e2; 9182 + b[i >> 2] = 0; 9183 + f2 = g2; 9184 + c2 = 0; 9185 + } else { 9186 + e2 = d2; 9187 + } 9188 + d2 = (e2 | 0) < (f2 | 0) ? e2 : f2; 9189 + d2 = (c2 | 0) < (d2 | 0) ? c2 : d2; 9190 + if ((d2 | 0) <= 0) { 9191 + return; 9192 + } 9193 + b[a3 >> 2] = f2 - d2; 9194 + b[h >> 2] = e2 - d2; 9195 + b[i >> 2] = c2 - d2; 9196 + return; 9197 + } 9198 + function db(a3, c2) { 9199 + a3 = a3 | 0; 9200 + c2 = c2 | 0; 9201 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 9202 + h = (b[a3 >> 2] | 0) - (b[c2 >> 2] | 0) | 0; 9203 + i = (h | 0) < 0; 9204 + e2 = (b[a3 + 4 >> 2] | 0) - (b[c2 + 4 >> 2] | 0) - (i ? h : 0) | 0; 9205 + g2 = (e2 | 0) < 0; 9206 + f2 = (i ? 0 - h | 0 : 0) + (b[a3 + 8 >> 2] | 0) - (b[c2 + 8 >> 2] | 0) + (g2 ? 0 - e2 | 0 : 0) | 0; 9207 + a3 = (f2 | 0) < 0; 9208 + c2 = a3 ? 0 : f2; 9209 + d2 = (g2 ? 0 : e2) - (a3 ? f2 : 0) | 0; 9210 + f2 = (i ? 0 : h) - (g2 ? e2 : 0) - (a3 ? f2 : 0) | 0; 9211 + a3 = (d2 | 0) < (f2 | 0) ? d2 : f2; 9212 + a3 = (c2 | 0) < (a3 | 0) ? c2 : a3; 9213 + e2 = (a3 | 0) > 0; 9214 + c2 = c2 - (e2 ? a3 : 0) | 0; 9215 + d2 = d2 - (e2 ? a3 : 0) | 0; 9216 + a3 = f2 - (e2 ? a3 : 0) | 0; 9217 + a3 = (a3 | 0) > -1 ? a3 : 0 - a3 | 0; 9218 + d2 = (d2 | 0) > -1 ? d2 : 0 - d2 | 0; 9219 + c2 = (c2 | 0) > -1 ? c2 : 0 - c2 | 0; 9220 + c2 = (d2 | 0) > (c2 | 0) ? d2 : c2; 9221 + return ((a3 | 0) > (c2 | 0) ? a3 : c2) | 0; 9222 + } 9223 + function eb(a3, c2) { 9224 + a3 = a3 | 0; 9225 + c2 = c2 | 0; 9226 + var d2 = 0; 9227 + d2 = b[a3 + 8 >> 2] | 0; 9228 + b[c2 >> 2] = (b[a3 >> 2] | 0) - d2; 9229 + b[c2 + 4 >> 2] = (b[a3 + 4 >> 2] | 0) - d2; 9230 + return; 9231 + } 9232 + function fb(a3, c2) { 9233 + a3 = a3 | 0; 9234 + c2 = c2 | 0; 9235 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 9236 + e2 = b[a3 >> 2] | 0; 9237 + b[c2 >> 2] = e2; 9238 + f2 = b[a3 + 4 >> 2] | 0; 9239 + h = c2 + 4 | 0; 9240 + b[h >> 2] = f2; 9241 + i = c2 + 8 | 0; 9242 + b[i >> 2] = 0; 9243 + d2 = (f2 | 0) < (e2 | 0); 9244 + a3 = d2 ? e2 : f2; 9245 + d2 = d2 ? f2 : e2; 9246 + if ((d2 | 0) < 0) { 9247 + if ((d2 | 0) == -2147483648 ? 1 : (a3 | 0) > 0 ? (2147483647 - a3 | 0) < (d2 | 0) : (-2147483648 - a3 | 0) > (d2 | 0)) { 9248 + c2 = 1; 9249 + return c2 | 0; 9250 + } 9251 + if ((a3 | 0) > -1 ? (a3 | -2147483648 | 0) >= (d2 | 0) : (a3 ^ -2147483648 | 0) < (d2 | 0)) { 9252 + c2 = 1; 9253 + return c2 | 0; 9254 + } 9255 + } 9256 + a3 = f2 - e2 | 0; 9257 + if ((e2 | 0) < 0) { 9258 + d2 = 0 - e2 | 0; 9259 + b[h >> 2] = a3; 9260 + b[i >> 2] = d2; 9261 + b[c2 >> 2] = 0; 9262 + e2 = 0; 9263 + } else { 9264 + a3 = f2; 9265 + d2 = 0; 9266 + } 9267 + if ((a3 | 0) < 0) { 9268 + e2 = e2 - a3 | 0; 9269 + b[c2 >> 2] = e2; 9270 + d2 = d2 - a3 | 0; 9271 + b[i >> 2] = d2; 9272 + b[h >> 2] = 0; 9273 + a3 = 0; 9274 + } 9275 + g2 = e2 - d2 | 0; 9276 + f2 = a3 - d2 | 0; 9277 + if ((d2 | 0) < 0) { 9278 + b[c2 >> 2] = g2; 9279 + b[h >> 2] = f2; 9280 + b[i >> 2] = 0; 9281 + a3 = f2; 9282 + f2 = g2; 9283 + d2 = 0; 9284 + } else { 9285 + f2 = e2; 9286 + } 9287 + e2 = (a3 | 0) < (f2 | 0) ? a3 : f2; 9288 + e2 = (d2 | 0) < (e2 | 0) ? d2 : e2; 9289 + if ((e2 | 0) <= 0) { 9290 + c2 = 0; 9291 + return c2 | 0; 9292 + } 9293 + b[c2 >> 2] = f2 - e2; 9294 + b[h >> 2] = a3 - e2; 9295 + b[i >> 2] = d2 - e2; 9296 + c2 = 0; 9297 + return c2 | 0; 9298 + } 9299 + function gb(a3) { 9300 + a3 = a3 | 0; 9301 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; 9302 + c2 = a3 + 8 | 0; 9303 + f2 = b[c2 >> 2] | 0; 9304 + d2 = f2 - (b[a3 >> 2] | 0) | 0; 9305 + b[a3 >> 2] = d2; 9306 + e2 = a3 + 4 | 0; 9307 + a3 = (b[e2 >> 2] | 0) - f2 | 0; 9308 + b[e2 >> 2] = a3; 9309 + b[c2 >> 2] = 0 - (a3 + d2); 9310 + return; 9311 + } 9312 + function hb(a3) { 9313 + a3 = a3 | 0; 9314 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 9315 + d2 = b[a3 >> 2] | 0; 9316 + c2 = 0 - d2 | 0; 9317 + b[a3 >> 2] = c2; 9318 + h = a3 + 8 | 0; 9319 + b[h >> 2] = 0; 9320 + i = a3 + 4 | 0; 9321 + e2 = b[i >> 2] | 0; 9322 + f2 = e2 + d2 | 0; 9323 + if ((d2 | 0) > 0) { 9324 + b[i >> 2] = f2; 9325 + b[h >> 2] = d2; 9326 + b[a3 >> 2] = 0; 9327 + c2 = 0; 9328 + e2 = f2; 9329 + } else { 9330 + d2 = 0; 9331 + } 9332 + if ((e2 | 0) < 0) { 9333 + g2 = c2 - e2 | 0; 9334 + b[a3 >> 2] = g2; 9335 + d2 = d2 - e2 | 0; 9336 + b[h >> 2] = d2; 9337 + b[i >> 2] = 0; 9338 + f2 = g2 - d2 | 0; 9339 + c2 = 0 - d2 | 0; 9340 + if ((d2 | 0) < 0) { 9341 + b[a3 >> 2] = f2; 9342 + b[i >> 2] = c2; 9343 + b[h >> 2] = 0; 9344 + e2 = c2; 9345 + d2 = 0; 9346 + } else { 9347 + e2 = 0; 9348 + f2 = g2; 9349 + } 9350 + } else { 9351 + f2 = c2; 9352 + } 9353 + c2 = (e2 | 0) < (f2 | 0) ? e2 : f2; 9354 + c2 = (d2 | 0) < (c2 | 0) ? d2 : c2; 9355 + if ((c2 | 0) <= 0) { 9356 + return; 9357 + } 9358 + b[a3 >> 2] = f2 - c2; 9359 + b[i >> 2] = e2 - c2; 9360 + b[h >> 2] = d2 - c2; 9361 + return; 9362 + } 9363 + function ib(a3, c2, d2, e2, f2) { 9364 + a3 = a3 | 0; 9365 + c2 = c2 | 0; 9366 + d2 = d2 | 0; 9367 + e2 = e2 | 0; 9368 + f2 = f2 | 0; 9369 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 9370 + m = T; 9371 + T = T + 64 | 0; 9372 + l = m; 9373 + i = m + 56 | 0; 9374 + if (!(true & (c2 & 2013265920 | 0) == 134217728 & (true & (e2 & 2013265920 | 0) == 134217728))) { 9375 + f2 = 5; 9376 + T = m; 9377 + return f2 | 0; 9378 + } 9379 + if ((a3 | 0) == (d2 | 0) & (c2 | 0) == (e2 | 0)) { 9380 + b[f2 >> 2] = 0; 9381 + f2 = 0; 9382 + T = m; 9383 + return f2 | 0; 9384 + } 9385 + h = Qd(a3 | 0, c2 | 0, 52) | 0; 9386 + H() | 0; 9387 + h = h & 15; 9388 + k = Qd(d2 | 0, e2 | 0, 52) | 0; 9389 + H() | 0; 9390 + if ((h | 0) != (k & 15 | 0)) { 9391 + f2 = 12; 9392 + T = m; 9393 + return f2 | 0; 9394 + } 9395 + g2 = h + -1 | 0; 9396 + if (h >>> 0 > 1) { 9397 + Fb(a3, c2, g2, l) | 0; 9398 + Fb(d2, e2, g2, i) | 0; 9399 + k = l; 9400 + j = b[k >> 2] | 0; 9401 + k = b[k + 4 >> 2] | 0; 9402 + a: 9403 + do { 9404 + if ((j | 0) == (b[i >> 2] | 0) ? (k | 0) == (b[i + 4 >> 2] | 0) : 0) { 9405 + h = (h ^ 15) * 3 | 0; 9406 + g2 = Qd(a3 | 0, c2 | 0, h | 0) | 0; 9407 + H() | 0; 9408 + g2 = g2 & 7; 9409 + h = Qd(d2 | 0, e2 | 0, h | 0) | 0; 9410 + H() | 0; 9411 + h = h & 7; 9412 + do { 9413 + if (!((g2 | 0) == 0 | (h | 0) == 0)) { 9414 + if ((g2 | 0) == 7) { 9415 + g2 = 5; 9416 + } else { 9417 + if ((g2 | 0) == 1 | (h | 0) == 1 ? Hb(j, k) | 0 : 0) { 9418 + g2 = 5; 9419 + break; 9420 + } 9421 + if ((b[15536 + (g2 << 2) >> 2] | 0) != (h | 0) ? (b[15568 + (g2 << 2) >> 2] | 0) != (h | 0) : 0) { 9422 + break a; 9423 + } 9424 + b[f2 >> 2] = 1; 9425 + g2 = 0; 9426 + } 9427 + } else { 9428 + b[f2 >> 2] = 1; 9429 + g2 = 0; 9430 + } 9431 + } while (0); 9432 + f2 = g2; 9433 + T = m; 9434 + return f2 | 0; 9435 + } 9436 + } while (0); 9437 + } 9438 + g2 = l; 9439 + h = g2 + 56 | 0; 9440 + do { 9441 + b[g2 >> 2] = 0; 9442 + g2 = g2 + 4 | 0; 9443 + } while ((g2 | 0) < (h | 0)); 9444 + aa(a3, c2, 1, l) | 0; 9445 + c2 = l; 9446 + if (((((!((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0) ? (c2 = l + 8 | 0, !((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0)) : 0) ? (c2 = l + 16 | 0, !((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0)) : 0) ? (c2 = l + 24 | 0, !((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0)) : 0) ? (c2 = l + 32 | 0, !((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0)) : 0) ? (c2 = l + 40 | 0, !((b[c2 >> 2] | 0) == (d2 | 0) ? (b[c2 + 4 >> 2] | 0) == (e2 | 0) : 0)) : 0) { 9447 + g2 = l + 48 | 0; 9448 + g2 = ((b[g2 >> 2] | 0) == (d2 | 0) ? (b[g2 + 4 >> 2] | 0) == (e2 | 0) : 0) & 1; 9449 + } else { 9450 + g2 = 1; 9451 + } 9452 + b[f2 >> 2] = g2; 9453 + f2 = 0; 9454 + T = m; 9455 + return f2 | 0; 9456 + } 9457 + function jb(a3, c2, d2, e2, f2) { 9458 + a3 = a3 | 0; 9459 + c2 = c2 | 0; 9460 + d2 = d2 | 0; 9461 + e2 = e2 | 0; 9462 + f2 = f2 | 0; 9463 + d2 = ia(a3, c2, d2, e2) | 0; 9464 + if ((d2 | 0) == 7) { 9465 + f2 = 11; 9466 + return f2 | 0; 9467 + } 9468 + e2 = Rd(d2 | 0, 0, 56) | 0; 9469 + c2 = c2 & -2130706433 | (H() | 0) | 268435456; 9470 + b[f2 >> 2] = a3 | e2; 9471 + b[f2 + 4 >> 2] = c2; 9472 + f2 = 0; 9473 + return f2 | 0; 9474 + } 9475 + function kb(a3, c2, d2) { 9476 + a3 = a3 | 0; 9477 + c2 = c2 | 0; 9478 + d2 = d2 | 0; 9479 + if (!(true & (c2 & 2013265920 | 0) == 268435456)) { 9480 + d2 = 6; 9481 + return d2 | 0; 9482 + } 9483 + b[d2 >> 2] = a3; 9484 + b[d2 + 4 >> 2] = c2 & -2130706433 | 134217728; 9485 + d2 = 0; 9486 + return d2 | 0; 9487 + } 9488 + function lb(a3, c2, d2) { 9489 + a3 = a3 | 0; 9490 + c2 = c2 | 0; 9491 + d2 = d2 | 0; 9492 + var e2 = 0, f2 = 0, g2 = 0; 9493 + f2 = T; 9494 + T = T + 16 | 0; 9495 + e2 = f2; 9496 + b[e2 >> 2] = 0; 9497 + if (!(true & (c2 & 2013265920 | 0) == 268435456)) { 9498 + e2 = 6; 9499 + T = f2; 9500 + return e2 | 0; 9501 + } 9502 + g2 = Qd(a3 | 0, c2 | 0, 56) | 0; 9503 + H() | 0; 9504 + e2 = ea(a3, c2 & -2130706433 | 134217728, g2 & 7, e2, d2) | 0; 9505 + T = f2; 9506 + return e2 | 0; 9507 + } 9508 + function mb(a3, b2) { 9509 + a3 = a3 | 0; 9510 + b2 = b2 | 0; 9511 + var c2 = 0; 9512 + c2 = Qd(a3 | 0, b2 | 0, 56) | 0; 9513 + H() | 0; 9514 + switch (c2 & 7) { 9515 + case 0: 9516 + case 7: { 9517 + c2 = 0; 9518 + return c2 | 0; 9519 + } 9520 + default: 9521 + } 9522 + c2 = b2 & -2130706433 | 134217728; 9523 + if (!(true & (b2 & 2013265920 | 0) == 268435456)) { 9524 + c2 = 0; 9525 + return c2 | 0; 9526 + } 9527 + if (true & (b2 & 117440512 | 0) == 16777216 & (Hb(a3, c2) | 0) != 0) { 9528 + c2 = 0; 9529 + return c2 | 0; 9530 + } 9531 + c2 = Db(a3, c2) | 0; 9532 + return c2 | 0; 9533 + } 9534 + function nb(a3, c2, d2) { 9535 + a3 = a3 | 0; 9536 + c2 = c2 | 0; 9537 + d2 = d2 | 0; 9538 + var e2 = 0, f2 = 0, g2 = 0, h = 0; 9539 + f2 = T; 9540 + T = T + 16 | 0; 9541 + e2 = f2; 9542 + if (!(true & (c2 & 2013265920 | 0) == 268435456)) { 9543 + e2 = 6; 9544 + T = f2; 9545 + return e2 | 0; 9546 + } 9547 + g2 = c2 & -2130706433 | 134217728; 9548 + h = d2; 9549 + b[h >> 2] = a3; 9550 + b[h + 4 >> 2] = g2; 9551 + b[e2 >> 2] = 0; 9552 + c2 = Qd(a3 | 0, c2 | 0, 56) | 0; 9553 + H() | 0; 9554 + e2 = ea(a3, g2, c2 & 7, e2, d2 + 8 | 0) | 0; 9555 + T = f2; 9556 + return e2 | 0; 9557 + } 9558 + function ob(a3, c2, d2) { 9559 + a3 = a3 | 0; 9560 + c2 = c2 | 0; 9561 + d2 = d2 | 0; 9562 + var e2 = 0, f2 = 0; 9563 + f2 = (Hb(a3, c2) | 0) == 0; 9564 + c2 = c2 & -2130706433; 9565 + e2 = d2; 9566 + b[e2 >> 2] = f2 ? a3 : 0; 9567 + b[e2 + 4 >> 2] = f2 ? c2 | 285212672 : 0; 9568 + e2 = d2 + 8 | 0; 9569 + b[e2 >> 2] = a3; 9570 + b[e2 + 4 >> 2] = c2 | 301989888; 9571 + e2 = d2 + 16 | 0; 9572 + b[e2 >> 2] = a3; 9573 + b[e2 + 4 >> 2] = c2 | 318767104; 9574 + e2 = d2 + 24 | 0; 9575 + b[e2 >> 2] = a3; 9576 + b[e2 + 4 >> 2] = c2 | 335544320; 9577 + e2 = d2 + 32 | 0; 9578 + b[e2 >> 2] = a3; 9579 + b[e2 + 4 >> 2] = c2 | 352321536; 9580 + d2 = d2 + 40 | 0; 9581 + b[d2 >> 2] = a3; 9582 + b[d2 + 4 >> 2] = c2 | 369098752; 9583 + return 0; 9584 + } 9585 + function pb(a3, c2, d2) { 9586 + a3 = a3 | 0; 9587 + c2 = c2 | 0; 9588 + d2 = d2 | 0; 9589 + var e2 = 0, f2 = 0, g2 = 0, h = 0; 9590 + h = T; 9591 + T = T + 16 | 0; 9592 + f2 = h; 9593 + g2 = c2 & -2130706433 | 134217728; 9594 + if (!(true & (c2 & 2013265920 | 0) == 268435456)) { 9595 + g2 = 6; 9596 + T = h; 9597 + return g2 | 0; 9598 + } 9599 + e2 = Qd(a3 | 0, c2 | 0, 56) | 0; 9600 + H() | 0; 9601 + e2 = od(a3, g2, e2 & 7) | 0; 9602 + if ((e2 | 0) == -1) { 9603 + b[d2 >> 2] = 0; 9604 + g2 = 6; 9605 + T = h; 9606 + return g2 | 0; 9607 + } 9608 + if (Yb(a3, g2, f2) | 0) { 9609 + I(27795, 26932, 282, 26947); 9610 + } 9611 + c2 = Qd(a3 | 0, c2 | 0, 52) | 0; 9612 + H() | 0; 9613 + c2 = c2 & 15; 9614 + if (!(Hb(a3, g2) | 0)) { 9615 + zb(f2, c2, e2, 2, d2); 9616 + } else { 9617 + vb(f2, c2, e2, 2, d2); 9618 + } 9619 + g2 = 0; 9620 + T = h; 9621 + return g2 | 0; 9622 + } 9623 + function qb(a3, b2, c2) { 9624 + a3 = a3 | 0; 9625 + b2 = b2 | 0; 9626 + c2 = c2 | 0; 9627 + var d2 = 0, e2 = 0; 9628 + d2 = T; 9629 + T = T + 16 | 0; 9630 + e2 = d2; 9631 + rb(a3, b2, c2, e2); 9632 + La(e2, c2 + 4 | 0); 9633 + T = d2; 9634 + return; 9635 + } 9636 + function rb(a3, c2, d2, f2) { 9637 + a3 = a3 | 0; 9638 + c2 = c2 | 0; 9639 + d2 = d2 | 0; 9640 + f2 = f2 | 0; 9641 + var g2 = 0, h = 0, i = 0, j = 0, k = 0; 9642 + j = T; 9643 + T = T + 16 | 0; 9644 + k = j; 9645 + sb(a3, d2, k); 9646 + h = +w(+(1 - +e[k >> 3] * 0.5)); 9647 + if (h < 0.0000000000000001) { 9648 + b[f2 >> 2] = 0; 9649 + b[f2 + 4 >> 2] = 0; 9650 + b[f2 + 8 >> 2] = 0; 9651 + b[f2 + 12 >> 2] = 0; 9652 + T = j; 9653 + return; 9654 + } 9655 + k = b[d2 >> 2] | 0; 9656 + g2 = +e[15920 + (k * 24 | 0) >> 3]; 9657 + g2 = +ic(g2 - +ic(+oc(15600 + (k << 4) | 0, a3))); 9658 + if (!(Vb(c2) | 0)) { 9659 + i = g2; 9660 + } else { 9661 + i = +ic(g2 + -0.3334731722518321); 9662 + } 9663 + g2 = +v(+h) * 2.618033988749896; 9664 + if ((c2 | 0) > 0) { 9665 + a3 = 0; 9666 + do { 9667 + g2 = g2 * 2.6457513110645907; 9668 + a3 = a3 + 1 | 0; 9669 + } while ((a3 | 0) != (c2 | 0)); 9670 + } 9671 + h = +t(+i) * g2; 9672 + e[f2 >> 3] = h; 9673 + i = +u(+i) * g2; 9674 + e[f2 + 8 >> 3] = i; 9675 + T = j; 9676 + return; 9677 + } 9678 + function sb(a3, c2, d2) { 9679 + a3 = a3 | 0; 9680 + c2 = c2 | 0; 9681 + d2 = d2 | 0; 9682 + var f2 = 0, g2 = 0, h = 0; 9683 + h = T; 9684 + T = T + 32 | 0; 9685 + g2 = h; 9686 + nd(a3, g2); 9687 + b[c2 >> 2] = 0; 9688 + e[d2 >> 3] = 5; 9689 + f2 = +md(16400, g2); 9690 + if (f2 < +e[d2 >> 3]) { 9691 + b[c2 >> 2] = 0; 9692 + e[d2 >> 3] = f2; 9693 + } 9694 + f2 = +md(16424, g2); 9695 + if (f2 < +e[d2 >> 3]) { 9696 + b[c2 >> 2] = 1; 9697 + e[d2 >> 3] = f2; 9698 + } 9699 + f2 = +md(16448, g2); 9700 + if (f2 < +e[d2 >> 3]) { 9701 + b[c2 >> 2] = 2; 9702 + e[d2 >> 3] = f2; 9703 + } 9704 + f2 = +md(16472, g2); 9705 + if (f2 < +e[d2 >> 3]) { 9706 + b[c2 >> 2] = 3; 9707 + e[d2 >> 3] = f2; 9708 + } 9709 + f2 = +md(16496, g2); 9710 + if (f2 < +e[d2 >> 3]) { 9711 + b[c2 >> 2] = 4; 9712 + e[d2 >> 3] = f2; 9713 + } 9714 + f2 = +md(16520, g2); 9715 + if (f2 < +e[d2 >> 3]) { 9716 + b[c2 >> 2] = 5; 9717 + e[d2 >> 3] = f2; 9718 + } 9719 + f2 = +md(16544, g2); 9720 + if (f2 < +e[d2 >> 3]) { 9721 + b[c2 >> 2] = 6; 9722 + e[d2 >> 3] = f2; 9723 + } 9724 + f2 = +md(16568, g2); 9725 + if (f2 < +e[d2 >> 3]) { 9726 + b[c2 >> 2] = 7; 9727 + e[d2 >> 3] = f2; 9728 + } 9729 + f2 = +md(16592, g2); 9730 + if (f2 < +e[d2 >> 3]) { 9731 + b[c2 >> 2] = 8; 9732 + e[d2 >> 3] = f2; 9733 + } 9734 + f2 = +md(16616, g2); 9735 + if (f2 < +e[d2 >> 3]) { 9736 + b[c2 >> 2] = 9; 9737 + e[d2 >> 3] = f2; 9738 + } 9739 + f2 = +md(16640, g2); 9740 + if (f2 < +e[d2 >> 3]) { 9741 + b[c2 >> 2] = 10; 9742 + e[d2 >> 3] = f2; 9743 + } 9744 + f2 = +md(16664, g2); 9745 + if (f2 < +e[d2 >> 3]) { 9746 + b[c2 >> 2] = 11; 9747 + e[d2 >> 3] = f2; 9748 + } 9749 + f2 = +md(16688, g2); 9750 + if (f2 < +e[d2 >> 3]) { 9751 + b[c2 >> 2] = 12; 9752 + e[d2 >> 3] = f2; 9753 + } 9754 + f2 = +md(16712, g2); 9755 + if (f2 < +e[d2 >> 3]) { 9756 + b[c2 >> 2] = 13; 9757 + e[d2 >> 3] = f2; 9758 + } 9759 + f2 = +md(16736, g2); 9760 + if (f2 < +e[d2 >> 3]) { 9761 + b[c2 >> 2] = 14; 9762 + e[d2 >> 3] = f2; 9763 + } 9764 + f2 = +md(16760, g2); 9765 + if (f2 < +e[d2 >> 3]) { 9766 + b[c2 >> 2] = 15; 9767 + e[d2 >> 3] = f2; 9768 + } 9769 + f2 = +md(16784, g2); 9770 + if (f2 < +e[d2 >> 3]) { 9771 + b[c2 >> 2] = 16; 9772 + e[d2 >> 3] = f2; 9773 + } 9774 + f2 = +md(16808, g2); 9775 + if (f2 < +e[d2 >> 3]) { 9776 + b[c2 >> 2] = 17; 9777 + e[d2 >> 3] = f2; 9778 + } 9779 + f2 = +md(16832, g2); 9780 + if (f2 < +e[d2 >> 3]) { 9781 + b[c2 >> 2] = 18; 9782 + e[d2 >> 3] = f2; 9783 + } 9784 + f2 = +md(16856, g2); 9785 + if (!(f2 < +e[d2 >> 3])) { 9786 + T = h; 9787 + return; 9788 + } 9789 + b[c2 >> 2] = 19; 9790 + e[d2 >> 3] = f2; 9791 + T = h; 9792 + return; 9793 + } 9794 + function tb(a3, c2, d2, f2, g2) { 9795 + a3 = a3 | 0; 9796 + c2 = c2 | 0; 9797 + d2 = d2 | 0; 9798 + f2 = f2 | 0; 9799 + g2 = g2 | 0; 9800 + var h = 0, i = 0, j = 0; 9801 + h = +jd(a3); 9802 + if (h < 0.0000000000000001) { 9803 + c2 = 15600 + (c2 << 4) | 0; 9804 + b[g2 >> 2] = b[c2 >> 2]; 9805 + b[g2 + 4 >> 2] = b[c2 + 4 >> 2]; 9806 + b[g2 + 8 >> 2] = b[c2 + 8 >> 2]; 9807 + b[g2 + 12 >> 2] = b[c2 + 12 >> 2]; 9808 + return; 9809 + } 9810 + i = +z(+ +e[a3 + 8 >> 3], + +e[a3 >> 3]); 9811 + if ((d2 | 0) > 0) { 9812 + a3 = 0; 9813 + do { 9814 + h = h * 0.37796447300922725; 9815 + a3 = a3 + 1 | 0; 9816 + } while ((a3 | 0) != (d2 | 0)); 9817 + } 9818 + j = h * 0.3333333333333333; 9819 + if (!f2) { 9820 + h = +y(+(h * 0.381966011250105)); 9821 + if (Vb(d2) | 0) { 9822 + i = +ic(i + 0.3334731722518321); 9823 + } 9824 + } else { 9825 + d2 = (Vb(d2) | 0) == 0; 9826 + h = +y(+((d2 ? j : j * 0.37796447300922725) * 0.381966011250105)); 9827 + } 9828 + pc(15600 + (c2 << 4) | 0, +ic(+e[15920 + (c2 * 24 | 0) >> 3] - i), h, g2); 9829 + return; 9830 + } 9831 + function ub(a3, c2, d2) { 9832 + a3 = a3 | 0; 9833 + c2 = c2 | 0; 9834 + d2 = d2 | 0; 9835 + var e2 = 0, f2 = 0; 9836 + e2 = T; 9837 + T = T + 16 | 0; 9838 + f2 = e2; 9839 + Na(a3 + 4 | 0, f2); 9840 + tb(f2, b[a3 >> 2] | 0, c2, 0, d2); 9841 + T = e2; 9842 + return; 9843 + } 9844 + function vb(a3, c2, d2, f2, g2) { 9845 + a3 = a3 | 0; 9846 + c2 = c2 | 0; 9847 + d2 = d2 | 0; 9848 + f2 = f2 | 0; 9849 + g2 = g2 | 0; 9850 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F = 0, G2 = 0, H2 = 0, J2 = 0; 9851 + G2 = T; 9852 + T = T + 272 | 0; 9853 + h = G2 + 256 | 0; 9854 + u2 = G2 + 240 | 0; 9855 + D2 = G2; 9856 + E2 = G2 + 224 | 0; 9857 + F = G2 + 208 | 0; 9858 + v2 = G2 + 176 | 0; 9859 + w2 = G2 + 160 | 0; 9860 + x2 = G2 + 192 | 0; 9861 + y2 = G2 + 144 | 0; 9862 + z2 = G2 + 128 | 0; 9863 + A2 = G2 + 112 | 0; 9864 + B2 = G2 + 96 | 0; 9865 + C2 = G2 + 80 | 0; 9866 + b[h >> 2] = c2; 9867 + b[u2 >> 2] = b[a3 >> 2]; 9868 + b[u2 + 4 >> 2] = b[a3 + 4 >> 2]; 9869 + b[u2 + 8 >> 2] = b[a3 + 8 >> 2]; 9870 + b[u2 + 12 >> 2] = b[a3 + 12 >> 2]; 9871 + wb(u2, h, D2); 9872 + b[g2 >> 2] = 0; 9873 + u2 = f2 + d2 + ((f2 | 0) == 5 & 1) | 0; 9874 + if ((u2 | 0) <= (d2 | 0)) { 9875 + T = G2; 9876 + return; 9877 + } 9878 + k = b[h >> 2] | 0; 9879 + l = E2 + 4 | 0; 9880 + m = v2 + 4 | 0; 9881 + n = d2 + 5 | 0; 9882 + o = 16880 + (k << 2) | 0; 9883 + p3 = 16960 + (k << 2) | 0; 9884 + q2 = z2 + 8 | 0; 9885 + r2 = A2 + 8 | 0; 9886 + s2 = B2 + 8 | 0; 9887 + t2 = F + 4 | 0; 9888 + j = d2; 9889 + a: 9890 + while (true) { 9891 + i = D2 + (((j | 0) % 5 | 0) << 4) | 0; 9892 + b[F >> 2] = b[i >> 2]; 9893 + b[F + 4 >> 2] = b[i + 4 >> 2]; 9894 + b[F + 8 >> 2] = b[i + 8 >> 2]; 9895 + b[F + 12 >> 2] = b[i + 12 >> 2]; 9896 + do {} while ((xb(F, k, 0, 1) | 0) == 2); 9897 + if ((j | 0) > (d2 | 0) & (Vb(c2) | 0) != 0) { 9898 + b[v2 >> 2] = b[F >> 2]; 9899 + b[v2 + 4 >> 2] = b[F + 4 >> 2]; 9900 + b[v2 + 8 >> 2] = b[F + 8 >> 2]; 9901 + b[v2 + 12 >> 2] = b[F + 12 >> 2]; 9902 + Na(l, w2); 9903 + f2 = b[v2 >> 2] | 0; 9904 + h = b[17040 + (f2 * 80 | 0) + (b[E2 >> 2] << 2) >> 2] | 0; 9905 + b[v2 >> 2] = b[18640 + (f2 * 80 | 0) + (h * 20 | 0) >> 2]; 9906 + i = b[18640 + (f2 * 80 | 0) + (h * 20 | 0) + 16 >> 2] | 0; 9907 + if ((i | 0) > 0) { 9908 + a3 = 0; 9909 + do { 9910 + Za(m); 9911 + a3 = a3 + 1 | 0; 9912 + } while ((a3 | 0) < (i | 0)); 9913 + } 9914 + i = 18640 + (f2 * 80 | 0) + (h * 20 | 0) + 4 | 0; 9915 + b[x2 >> 2] = b[i >> 2]; 9916 + b[x2 + 4 >> 2] = b[i + 4 >> 2]; 9917 + b[x2 + 8 >> 2] = b[i + 8 >> 2]; 9918 + Qa(x2, (b[o >> 2] | 0) * 3 | 0); 9919 + Oa(m, x2, m); 9920 + Ma(m); 9921 + Na(m, y2); 9922 + H2 = +(b[p3 >> 2] | 0); 9923 + e[z2 >> 3] = H2 * 3; 9924 + e[q2 >> 3] = 0; 9925 + J2 = H2 * -1.5; 9926 + e[A2 >> 3] = J2; 9927 + e[r2 >> 3] = H2 * 2.598076211353316; 9928 + e[B2 >> 3] = J2; 9929 + e[s2 >> 3] = H2 * -2.598076211353316; 9930 + switch (b[17040 + ((b[v2 >> 2] | 0) * 80 | 0) + (b[F >> 2] << 2) >> 2] | 0) { 9931 + case 1: { 9932 + a3 = A2; 9933 + f2 = z2; 9934 + break; 9935 + } 9936 + case 3: { 9937 + a3 = B2; 9938 + f2 = A2; 9939 + break; 9940 + } 9941 + case 2: { 9942 + a3 = z2; 9943 + f2 = B2; 9944 + break; 9945 + } 9946 + default: { 9947 + a3 = 12; 9948 + break a; 9949 + } 9950 + } 9951 + kd(w2, y2, f2, a3, C2); 9952 + tb(C2, b[v2 >> 2] | 0, k, 1, g2 + 8 + (b[g2 >> 2] << 4) | 0); 9953 + b[g2 >> 2] = (b[g2 >> 2] | 0) + 1; 9954 + } 9955 + if ((j | 0) < (n | 0)) { 9956 + Na(t2, v2); 9957 + tb(v2, b[F >> 2] | 0, k, 1, g2 + 8 + (b[g2 >> 2] << 4) | 0); 9958 + b[g2 >> 2] = (b[g2 >> 2] | 0) + 1; 9959 + } 9960 + b[E2 >> 2] = b[F >> 2]; 9961 + b[E2 + 4 >> 2] = b[F + 4 >> 2]; 9962 + b[E2 + 8 >> 2] = b[F + 8 >> 2]; 9963 + b[E2 + 12 >> 2] = b[F + 12 >> 2]; 9964 + j = j + 1 | 0; 9965 + if ((j | 0) >= (u2 | 0)) { 9966 + a3 = 3; 9967 + break; 9968 + } 9969 + } 9970 + if ((a3 | 0) == 3) { 9971 + T = G2; 9972 + return; 9973 + } else if ((a3 | 0) == 12) { 9974 + I(26970, 27017, 572, 27027); 9975 + } 9976 + } 9977 + function wb(a3, c2, d2) { 9978 + a3 = a3 | 0; 9979 + c2 = c2 | 0; 9980 + d2 = d2 | 0; 9981 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 9982 + j = T; 9983 + T = T + 128 | 0; 9984 + e2 = j + 64 | 0; 9985 + f2 = j; 9986 + g2 = e2; 9987 + h = 20240; 9988 + i = g2 + 60 | 0; 9989 + do { 9990 + b[g2 >> 2] = b[h >> 2]; 9991 + g2 = g2 + 4 | 0; 9992 + h = h + 4 | 0; 9993 + } while ((g2 | 0) < (i | 0)); 9994 + g2 = f2; 9995 + h = 20304; 9996 + i = g2 + 60 | 0; 9997 + do { 9998 + b[g2 >> 2] = b[h >> 2]; 9999 + g2 = g2 + 4 | 0; 10000 + h = h + 4 | 0; 10001 + } while ((g2 | 0) < (i | 0)); 10002 + i = (Vb(b[c2 >> 2] | 0) | 0) == 0; 10003 + e2 = i ? e2 : f2; 10004 + f2 = a3 + 4 | 0; 10005 + bb(f2); 10006 + cb(f2); 10007 + if (Vb(b[c2 >> 2] | 0) | 0) { 10008 + Xa(f2); 10009 + b[c2 >> 2] = (b[c2 >> 2] | 0) + 1; 10010 + } 10011 + b[d2 >> 2] = b[a3 >> 2]; 10012 + c2 = d2 + 4 | 0; 10013 + Oa(f2, e2, c2); 10014 + Ma(c2); 10015 + b[d2 + 16 >> 2] = b[a3 >> 2]; 10016 + c2 = d2 + 20 | 0; 10017 + Oa(f2, e2 + 12 | 0, c2); 10018 + Ma(c2); 10019 + b[d2 + 32 >> 2] = b[a3 >> 2]; 10020 + c2 = d2 + 36 | 0; 10021 + Oa(f2, e2 + 24 | 0, c2); 10022 + Ma(c2); 10023 + b[d2 + 48 >> 2] = b[a3 >> 2]; 10024 + c2 = d2 + 52 | 0; 10025 + Oa(f2, e2 + 36 | 0, c2); 10026 + Ma(c2); 10027 + b[d2 + 64 >> 2] = b[a3 >> 2]; 10028 + d2 = d2 + 68 | 0; 10029 + Oa(f2, e2 + 48 | 0, d2); 10030 + Ma(d2); 10031 + T = j; 10032 + return; 10033 + } 10034 + function xb(a3, c2, d2, e2) { 10035 + a3 = a3 | 0; 10036 + c2 = c2 | 0; 10037 + d2 = d2 | 0; 10038 + e2 = e2 | 0; 10039 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0; 10040 + p3 = T; 10041 + T = T + 32 | 0; 10042 + n = p3 + 12 | 0; 10043 + i = p3; 10044 + o = a3 + 4 | 0; 10045 + m = b[16960 + (c2 << 2) >> 2] | 0; 10046 + l = (e2 | 0) != 0; 10047 + m = l ? m * 3 | 0 : m; 10048 + f2 = b[o >> 2] | 0; 10049 + k = a3 + 8 | 0; 10050 + h = b[k >> 2] | 0; 10051 + if (l) { 10052 + g2 = a3 + 12 | 0; 10053 + e2 = b[g2 >> 2] | 0; 10054 + f2 = h + f2 + e2 | 0; 10055 + if ((f2 | 0) == (m | 0)) { 10056 + o = 1; 10057 + T = p3; 10058 + return o | 0; 10059 + } else { 10060 + j = g2; 10061 + } 10062 + } else { 10063 + j = a3 + 12 | 0; 10064 + e2 = b[j >> 2] | 0; 10065 + f2 = h + f2 + e2 | 0; 10066 + } 10067 + if ((f2 | 0) <= (m | 0)) { 10068 + o = 0; 10069 + T = p3; 10070 + return o | 0; 10071 + } 10072 + do { 10073 + if ((e2 | 0) > 0) { 10074 + e2 = b[a3 >> 2] | 0; 10075 + if ((h | 0) > 0) { 10076 + g2 = 18640 + (e2 * 80 | 0) + 60 | 0; 10077 + e2 = a3; 10078 + break; 10079 + } 10080 + e2 = 18640 + (e2 * 80 | 0) + 40 | 0; 10081 + if (!d2) { 10082 + g2 = e2; 10083 + e2 = a3; 10084 + } else { 10085 + Ka(n, m, 0, 0); 10086 + Pa(o, n, i); 10087 + _a(i); 10088 + Oa(i, n, o); 10089 + g2 = e2; 10090 + e2 = a3; 10091 + } 10092 + } else { 10093 + g2 = 18640 + ((b[a3 >> 2] | 0) * 80 | 0) + 20 | 0; 10094 + e2 = a3; 10095 + } 10096 + } while (0); 10097 + b[e2 >> 2] = b[g2 >> 2]; 10098 + f2 = g2 + 16 | 0; 10099 + if ((b[f2 >> 2] | 0) > 0) { 10100 + e2 = 0; 10101 + do { 10102 + Za(o); 10103 + e2 = e2 + 1 | 0; 10104 + } while ((e2 | 0) < (b[f2 >> 2] | 0)); 10105 + } 10106 + a3 = g2 + 4 | 0; 10107 + b[n >> 2] = b[a3 >> 2]; 10108 + b[n + 4 >> 2] = b[a3 + 4 >> 2]; 10109 + b[n + 8 >> 2] = b[a3 + 8 >> 2]; 10110 + c2 = b[16880 + (c2 << 2) >> 2] | 0; 10111 + Qa(n, l ? c2 * 3 | 0 : c2); 10112 + Oa(o, n, o); 10113 + Ma(o); 10114 + if (l) { 10115 + e2 = ((b[k >> 2] | 0) + (b[o >> 2] | 0) + (b[j >> 2] | 0) | 0) == (m | 0) ? 1 : 2; 10116 + } else { 10117 + e2 = 2; 10118 + } 10119 + o = e2; 10120 + T = p3; 10121 + return o | 0; 10122 + } 10123 + function yb(a3, b2) { 10124 + a3 = a3 | 0; 10125 + b2 = b2 | 0; 10126 + var c2 = 0; 10127 + do { 10128 + c2 = xb(a3, b2, 0, 1) | 0; 10129 + } while ((c2 | 0) == 2); 10130 + return c2 | 0; 10131 + } 10132 + function zb(a3, c2, d2, f2, g2) { 10133 + a3 = a3 | 0; 10134 + c2 = c2 | 0; 10135 + d2 = d2 | 0; 10136 + f2 = f2 | 0; 10137 + g2 = g2 | 0; 10138 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0; 10139 + B2 = T; 10140 + T = T + 240 | 0; 10141 + h = B2 + 224 | 0; 10142 + x2 = B2 + 208 | 0; 10143 + y2 = B2; 10144 + z2 = B2 + 192 | 0; 10145 + A2 = B2 + 176 | 0; 10146 + s2 = B2 + 160 | 0; 10147 + t2 = B2 + 144 | 0; 10148 + u2 = B2 + 128 | 0; 10149 + v2 = B2 + 112 | 0; 10150 + w2 = B2 + 96 | 0; 10151 + b[h >> 2] = c2; 10152 + b[x2 >> 2] = b[a3 >> 2]; 10153 + b[x2 + 4 >> 2] = b[a3 + 4 >> 2]; 10154 + b[x2 + 8 >> 2] = b[a3 + 8 >> 2]; 10155 + b[x2 + 12 >> 2] = b[a3 + 12 >> 2]; 10156 + Ab(x2, h, y2); 10157 + b[g2 >> 2] = 0; 10158 + r2 = f2 + d2 + ((f2 | 0) == 6 & 1) | 0; 10159 + if ((r2 | 0) <= (d2 | 0)) { 10160 + T = B2; 10161 + return; 10162 + } 10163 + k = b[h >> 2] | 0; 10164 + l = d2 + 6 | 0; 10165 + m = 16960 + (k << 2) | 0; 10166 + n = t2 + 8 | 0; 10167 + o = u2 + 8 | 0; 10168 + p3 = v2 + 8 | 0; 10169 + q2 = z2 + 4 | 0; 10170 + i = 0; 10171 + j = d2; 10172 + f2 = -1; 10173 + a: 10174 + while (true) { 10175 + h = (j | 0) % 6 | 0; 10176 + a3 = y2 + (h << 4) | 0; 10177 + b[z2 >> 2] = b[a3 >> 2]; 10178 + b[z2 + 4 >> 2] = b[a3 + 4 >> 2]; 10179 + b[z2 + 8 >> 2] = b[a3 + 8 >> 2]; 10180 + b[z2 + 12 >> 2] = b[a3 + 12 >> 2]; 10181 + a3 = i; 10182 + i = xb(z2, k, 0, 1) | 0; 10183 + if ((j | 0) > (d2 | 0) & (Vb(c2) | 0) != 0 ? (a3 | 0) != 1 ? (b[z2 >> 2] | 0) != (f2 | 0) : 0 : 0) { 10184 + Na(y2 + (((h + 5 | 0) % 6 | 0) << 4) + 4 | 0, A2); 10185 + Na(y2 + (h << 4) + 4 | 0, s2); 10186 + C2 = +(b[m >> 2] | 0); 10187 + e[t2 >> 3] = C2 * 3; 10188 + e[n >> 3] = 0; 10189 + D2 = C2 * -1.5; 10190 + e[u2 >> 3] = D2; 10191 + e[o >> 3] = C2 * 2.598076211353316; 10192 + e[v2 >> 3] = D2; 10193 + e[p3 >> 3] = C2 * -2.598076211353316; 10194 + h = b[x2 >> 2] | 0; 10195 + switch (b[17040 + (h * 80 | 0) + (((f2 | 0) == (h | 0) ? b[z2 >> 2] | 0 : f2) << 2) >> 2] | 0) { 10196 + case 1: { 10197 + a3 = u2; 10198 + f2 = t2; 10199 + break; 10200 + } 10201 + case 3: { 10202 + a3 = v2; 10203 + f2 = u2; 10204 + break; 10205 + } 10206 + case 2: { 10207 + a3 = t2; 10208 + f2 = v2; 10209 + break; 10210 + } 10211 + default: { 10212 + a3 = 8; 10213 + break a; 10214 + } 10215 + } 10216 + kd(A2, s2, f2, a3, w2); 10217 + if (!(ld(A2, w2) | 0) ? !(ld(s2, w2) | 0) : 0) { 10218 + tb(w2, b[x2 >> 2] | 0, k, 1, g2 + 8 + (b[g2 >> 2] << 4) | 0); 10219 + b[g2 >> 2] = (b[g2 >> 2] | 0) + 1; 10220 + } 10221 + } 10222 + if ((j | 0) < (l | 0)) { 10223 + Na(q2, A2); 10224 + tb(A2, b[z2 >> 2] | 0, k, 1, g2 + 8 + (b[g2 >> 2] << 4) | 0); 10225 + b[g2 >> 2] = (b[g2 >> 2] | 0) + 1; 10226 + } 10227 + j = j + 1 | 0; 10228 + if ((j | 0) >= (r2 | 0)) { 10229 + a3 = 3; 10230 + break; 10231 + } else { 10232 + f2 = b[z2 >> 2] | 0; 10233 + } 10234 + } 10235 + if ((a3 | 0) == 3) { 10236 + T = B2; 10237 + return; 10238 + } else if ((a3 | 0) == 8) { 10239 + I(27054, 27017, 737, 27099); 10240 + } 10241 + } 10242 + function Ab(a3, c2, d2) { 10243 + a3 = a3 | 0; 10244 + c2 = c2 | 0; 10245 + d2 = d2 | 0; 10246 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 10247 + j = T; 10248 + T = T + 160 | 0; 10249 + e2 = j + 80 | 0; 10250 + f2 = j; 10251 + g2 = e2; 10252 + h = 20368; 10253 + i = g2 + 72 | 0; 10254 + do { 10255 + b[g2 >> 2] = b[h >> 2]; 10256 + g2 = g2 + 4 | 0; 10257 + h = h + 4 | 0; 10258 + } while ((g2 | 0) < (i | 0)); 10259 + g2 = f2; 10260 + h = 20448; 10261 + i = g2 + 72 | 0; 10262 + do { 10263 + b[g2 >> 2] = b[h >> 2]; 10264 + g2 = g2 + 4 | 0; 10265 + h = h + 4 | 0; 10266 + } while ((g2 | 0) < (i | 0)); 10267 + i = (Vb(b[c2 >> 2] | 0) | 0) == 0; 10268 + e2 = i ? e2 : f2; 10269 + f2 = a3 + 4 | 0; 10270 + bb(f2); 10271 + cb(f2); 10272 + if (Vb(b[c2 >> 2] | 0) | 0) { 10273 + Xa(f2); 10274 + b[c2 >> 2] = (b[c2 >> 2] | 0) + 1; 10275 + } 10276 + b[d2 >> 2] = b[a3 >> 2]; 10277 + c2 = d2 + 4 | 0; 10278 + Oa(f2, e2, c2); 10279 + Ma(c2); 10280 + b[d2 + 16 >> 2] = b[a3 >> 2]; 10281 + c2 = d2 + 20 | 0; 10282 + Oa(f2, e2 + 12 | 0, c2); 10283 + Ma(c2); 10284 + b[d2 + 32 >> 2] = b[a3 >> 2]; 10285 + c2 = d2 + 36 | 0; 10286 + Oa(f2, e2 + 24 | 0, c2); 10287 + Ma(c2); 10288 + b[d2 + 48 >> 2] = b[a3 >> 2]; 10289 + c2 = d2 + 52 | 0; 10290 + Oa(f2, e2 + 36 | 0, c2); 10291 + Ma(c2); 10292 + b[d2 + 64 >> 2] = b[a3 >> 2]; 10293 + c2 = d2 + 68 | 0; 10294 + Oa(f2, e2 + 48 | 0, c2); 10295 + Ma(c2); 10296 + b[d2 + 80 >> 2] = b[a3 >> 2]; 10297 + d2 = d2 + 84 | 0; 10298 + Oa(f2, e2 + 60 | 0, d2); 10299 + Ma(d2); 10300 + T = j; 10301 + return; 10302 + } 10303 + function Bb(a3, b2) { 10304 + a3 = a3 | 0; 10305 + b2 = b2 | 0; 10306 + b2 = Qd(a3 | 0, b2 | 0, 52) | 0; 10307 + H() | 0; 10308 + return b2 & 15 | 0; 10309 + } 10310 + function Cb(a3, b2) { 10311 + a3 = a3 | 0; 10312 + b2 = b2 | 0; 10313 + b2 = Qd(a3 | 0, b2 | 0, 45) | 0; 10314 + H() | 0; 10315 + return b2 & 127 | 0; 10316 + } 10317 + function Db(b2, c2) { 10318 + b2 = b2 | 0; 10319 + c2 = c2 | 0; 10320 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0; 10321 + if (!(true & (c2 & -16777216 | 0) == 134217728)) { 10322 + b2 = 0; 10323 + return b2 | 0; 10324 + } 10325 + e2 = Qd(b2 | 0, c2 | 0, 52) | 0; 10326 + H() | 0; 10327 + e2 = e2 & 15; 10328 + d2 = Qd(b2 | 0, c2 | 0, 45) | 0; 10329 + H() | 0; 10330 + d2 = d2 & 127; 10331 + if (d2 >>> 0 > 121) { 10332 + b2 = 0; 10333 + return b2 | 0; 10334 + } 10335 + h = (e2 ^ 15) * 3 | 0; 10336 + f2 = Qd(b2 | 0, c2 | 0, h | 0) | 0; 10337 + h = Rd(f2 | 0, H() | 0, h | 0) | 0; 10338 + f2 = H() | 0; 10339 + g2 = Hd(-1227133514, -1171, h | 0, f2 | 0) | 0; 10340 + if (!((h & 613566756 & g2 | 0) == 0 & (f2 & 4681 & (H() | 0) | 0) == 0)) { 10341 + h = 0; 10342 + return h | 0; 10343 + } 10344 + h = (e2 * 3 | 0) + 19 | 0; 10345 + g2 = Rd(~b2 | 0, ~c2 | 0, h | 0) | 0; 10346 + h = Qd(g2 | 0, H() | 0, h | 0) | 0; 10347 + if (!((e2 | 0) == 15 | (h | 0) == 0 & (H() | 0) == 0)) { 10348 + h = 0; 10349 + return h | 0; 10350 + } 10351 + if (!(a2[20528 + d2 >> 0] | 0)) { 10352 + h = 1; 10353 + return h | 0; 10354 + } 10355 + c2 = c2 & 8191; 10356 + if ((b2 | 0) == 0 & (c2 | 0) == 0) { 10357 + h = 1; 10358 + return h | 0; 10359 + } else { 10360 + h = Sd(b2 | 0, c2 | 0, 0) | 0; 10361 + H() | 0; 10362 + return ((63 - h | 0) % 3 | 0 | 0) != 0 | 0; 10363 + } 10364 + return 0; 10365 + } 10366 + function Eb(a3, c2, d2, e2) { 10367 + a3 = a3 | 0; 10368 + c2 = c2 | 0; 10369 + d2 = d2 | 0; 10370 + e2 = e2 | 0; 10371 + var f2 = 0, g2 = 0, h = 0, i = 0; 10372 + f2 = Rd(c2 | 0, 0, 52) | 0; 10373 + g2 = H() | 0; 10374 + d2 = Rd(d2 | 0, 0, 45) | 0; 10375 + d2 = g2 | (H() | 0) | 134225919; 10376 + if ((c2 | 0) < 1) { 10377 + g2 = -1; 10378 + e2 = d2; 10379 + c2 = a3; 10380 + b[c2 >> 2] = g2; 10381 + a3 = a3 + 4 | 0; 10382 + b[a3 >> 2] = e2; 10383 + return; 10384 + } 10385 + g2 = 1; 10386 + f2 = -1; 10387 + while (true) { 10388 + h = (15 - g2 | 0) * 3 | 0; 10389 + i = Rd(7, 0, h | 0) | 0; 10390 + d2 = d2 & ~(H() | 0); 10391 + h = Rd(e2 | 0, 0, h | 0) | 0; 10392 + f2 = f2 & ~i | h; 10393 + d2 = d2 | (H() | 0); 10394 + if ((g2 | 0) == (c2 | 0)) { 10395 + break; 10396 + } else { 10397 + g2 = g2 + 1 | 0; 10398 + } 10399 + } 10400 + i = a3; 10401 + h = i; 10402 + b[h >> 2] = f2; 10403 + i = i + 4 | 0; 10404 + b[i >> 2] = d2; 10405 + return; 10406 + } 10407 + function Fb(a3, c2, d2, e2) { 10408 + a3 = a3 | 0; 10409 + c2 = c2 | 0; 10410 + d2 = d2 | 0; 10411 + e2 = e2 | 0; 10412 + var f2 = 0, g2 = 0; 10413 + g2 = Qd(a3 | 0, c2 | 0, 52) | 0; 10414 + H() | 0; 10415 + g2 = g2 & 15; 10416 + if (d2 >>> 0 > 15) { 10417 + e2 = 4; 10418 + return e2 | 0; 10419 + } 10420 + if ((g2 | 0) < (d2 | 0)) { 10421 + e2 = 12; 10422 + return e2 | 0; 10423 + } 10424 + if ((g2 | 0) == (d2 | 0)) { 10425 + b[e2 >> 2] = a3; 10426 + b[e2 + 4 >> 2] = c2; 10427 + e2 = 0; 10428 + return e2 | 0; 10429 + } 10430 + f2 = Rd(d2 | 0, 0, 52) | 0; 10431 + f2 = f2 | a3; 10432 + a3 = H() | 0 | c2 & -15728641; 10433 + if ((g2 | 0) > (d2 | 0)) { 10434 + do { 10435 + c2 = Rd(7, 0, (14 - d2 | 0) * 3 | 0) | 0; 10436 + d2 = d2 + 1 | 0; 10437 + f2 = c2 | f2; 10438 + a3 = H() | 0 | a3; 10439 + } while ((d2 | 0) < (g2 | 0)); 10440 + } 10441 + b[e2 >> 2] = f2; 10442 + b[e2 + 4 >> 2] = a3; 10443 + e2 = 0; 10444 + return e2 | 0; 10445 + } 10446 + function Gb(a3, c2, d2, e2) { 10447 + a3 = a3 | 0; 10448 + c2 = c2 | 0; 10449 + d2 = d2 | 0; 10450 + e2 = e2 | 0; 10451 + var f2 = 0, g2 = 0, h = 0; 10452 + g2 = Qd(a3 | 0, c2 | 0, 52) | 0; 10453 + H() | 0; 10454 + g2 = g2 & 15; 10455 + if (!((d2 | 0) < 16 & (g2 | 0) <= (d2 | 0))) { 10456 + e2 = 4; 10457 + return e2 | 0; 10458 + } 10459 + f2 = d2 - g2 | 0; 10460 + d2 = Qd(a3 | 0, c2 | 0, 45) | 0; 10461 + H() | 0; 10462 + a: 10463 + do { 10464 + if (!(oa(d2 & 127) | 0)) { 10465 + d2 = Oc(7, 0, f2, ((f2 | 0) < 0) << 31 >> 31) | 0; 10466 + f2 = H() | 0; 10467 + } else { 10468 + b: 10469 + do { 10470 + if (g2 | 0) { 10471 + d2 = 1; 10472 + while (true) { 10473 + h = Rd(7, 0, (15 - d2 | 0) * 3 | 0) | 0; 10474 + if (!((h & a3 | 0) == 0 & ((H() | 0) & c2 | 0) == 0)) { 10475 + break; 10476 + } 10477 + if (d2 >>> 0 < g2 >>> 0) { 10478 + d2 = d2 + 1 | 0; 10479 + } else { 10480 + break b; 10481 + } 10482 + } 10483 + d2 = Oc(7, 0, f2, ((f2 | 0) < 0) << 31 >> 31) | 0; 10484 + f2 = H() | 0; 10485 + break a; 10486 + } 10487 + } while (0); 10488 + d2 = Oc(7, 0, f2, ((f2 | 0) < 0) << 31 >> 31) | 0; 10489 + d2 = Md(d2 | 0, H() | 0, 5, 0) | 0; 10490 + d2 = Gd(d2 | 0, H() | 0, -5, -1) | 0; 10491 + d2 = Kd(d2 | 0, H() | 0, 6, 0) | 0; 10492 + d2 = Gd(d2 | 0, H() | 0, 1, 0) | 0; 10493 + f2 = H() | 0; 10494 + } 10495 + } while (0); 10496 + h = e2; 10497 + b[h >> 2] = d2; 10498 + b[h + 4 >> 2] = f2; 10499 + h = 0; 10500 + return h | 0; 10501 + } 10502 + function Hb(a3, b2) { 10503 + a3 = a3 | 0; 10504 + b2 = b2 | 0; 10505 + var c2 = 0, d2 = 0, e2 = 0; 10506 + e2 = Qd(a3 | 0, b2 | 0, 45) | 0; 10507 + H() | 0; 10508 + if (!(oa(e2 & 127) | 0)) { 10509 + e2 = 0; 10510 + return e2 | 0; 10511 + } 10512 + e2 = Qd(a3 | 0, b2 | 0, 52) | 0; 10513 + H() | 0; 10514 + e2 = e2 & 15; 10515 + a: 10516 + do { 10517 + if (!e2) { 10518 + c2 = 0; 10519 + } else { 10520 + d2 = 1; 10521 + while (true) { 10522 + c2 = Qd(a3 | 0, b2 | 0, (15 - d2 | 0) * 3 | 0) | 0; 10523 + H() | 0; 10524 + c2 = c2 & 7; 10525 + if (c2 | 0) { 10526 + break a; 10527 + } 10528 + if (d2 >>> 0 < e2 >>> 0) { 10529 + d2 = d2 + 1 | 0; 10530 + } else { 10531 + c2 = 0; 10532 + break; 10533 + } 10534 + } 10535 + } 10536 + } while (0); 10537 + e2 = (c2 | 0) == 0 & 1; 10538 + return e2 | 0; 10539 + } 10540 + function Ib(a3, c2, d2, e2) { 10541 + a3 = a3 | 0; 10542 + c2 = c2 | 0; 10543 + d2 = d2 | 0; 10544 + e2 = e2 | 0; 10545 + var f2 = 0, g2 = 0, h = 0, i = 0; 10546 + h = T; 10547 + T = T + 16 | 0; 10548 + g2 = h; 10549 + fc(g2, a3, c2, d2); 10550 + c2 = g2; 10551 + a3 = b[c2 >> 2] | 0; 10552 + c2 = b[c2 + 4 >> 2] | 0; 10553 + if ((a3 | 0) == 0 & (c2 | 0) == 0) { 10554 + T = h; 10555 + return 0; 10556 + } 10557 + f2 = 0; 10558 + d2 = 0; 10559 + do { 10560 + i = e2 + (f2 << 3) | 0; 10561 + b[i >> 2] = a3; 10562 + b[i + 4 >> 2] = c2; 10563 + f2 = Gd(f2 | 0, d2 | 0, 1, 0) | 0; 10564 + d2 = H() | 0; 10565 + hc(g2); 10566 + i = g2; 10567 + a3 = b[i >> 2] | 0; 10568 + c2 = b[i + 4 >> 2] | 0; 10569 + } while (!((a3 | 0) == 0 & (c2 | 0) == 0)); 10570 + T = h; 10571 + return 0; 10572 + } 10573 + function Jb(a3, b2, c2, d2) { 10574 + a3 = a3 | 0; 10575 + b2 = b2 | 0; 10576 + c2 = c2 | 0; 10577 + d2 = d2 | 0; 10578 + if ((d2 | 0) < (c2 | 0)) { 10579 + c2 = b2; 10580 + d2 = a3; 10581 + G(c2 | 0); 10582 + return d2 | 0; 10583 + } 10584 + c2 = Rd(-1, -1, ((d2 - c2 | 0) * 3 | 0) + 3 | 0) | 0; 10585 + d2 = Rd(~c2 | 0, ~(H() | 0) | 0, (15 - d2 | 0) * 3 | 0) | 0; 10586 + c2 = ~(H() | 0) & b2; 10587 + d2 = ~d2 & a3; 10588 + G(c2 | 0); 10589 + return d2 | 0; 10590 + } 10591 + function Kb(a3, c2, d2, e2) { 10592 + a3 = a3 | 0; 10593 + c2 = c2 | 0; 10594 + d2 = d2 | 0; 10595 + e2 = e2 | 0; 10596 + var f2 = 0; 10597 + f2 = Qd(a3 | 0, c2 | 0, 52) | 0; 10598 + H() | 0; 10599 + f2 = f2 & 15; 10600 + if (!((d2 | 0) < 16 & (f2 | 0) <= (d2 | 0))) { 10601 + e2 = 4; 10602 + return e2 | 0; 10603 + } 10604 + if ((f2 | 0) < (d2 | 0)) { 10605 + f2 = Rd(-1, -1, ((d2 + -1 - f2 | 0) * 3 | 0) + 3 | 0) | 0; 10606 + f2 = Rd(~f2 | 0, ~(H() | 0) | 0, (15 - d2 | 0) * 3 | 0) | 0; 10607 + c2 = ~(H() | 0) & c2; 10608 + a3 = ~f2 & a3; 10609 + } 10610 + f2 = Rd(d2 | 0, 0, 52) | 0; 10611 + d2 = c2 & -15728641 | (H() | 0); 10612 + b[e2 >> 2] = a3 | f2; 10613 + b[e2 + 4 >> 2] = d2; 10614 + e2 = 0; 10615 + return e2 | 0; 10616 + } 10617 + function Lb(a3, c2, d2, e2) { 10618 + a3 = a3 | 0; 10619 + c2 = c2 | 0; 10620 + d2 = d2 | 0; 10621 + e2 = e2 | 0; 10622 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0; 10623 + if ((d2 | 0) == 0 & (e2 | 0) == 0) { 10624 + E2 = 0; 10625 + return E2 | 0; 10626 + } 10627 + f2 = a3; 10628 + g2 = b[f2 >> 2] | 0; 10629 + f2 = b[f2 + 4 >> 2] | 0; 10630 + if (true & (f2 & 15728640 | 0) == 0) { 10631 + if (!((e2 | 0) > 0 | (e2 | 0) == 0 & d2 >>> 0 > 0)) { 10632 + E2 = 0; 10633 + return E2 | 0; 10634 + } 10635 + E2 = c2; 10636 + b[E2 >> 2] = g2; 10637 + b[E2 + 4 >> 2] = f2; 10638 + if ((d2 | 0) == 1 & (e2 | 0) == 0) { 10639 + E2 = 0; 10640 + return E2 | 0; 10641 + } 10642 + f2 = 1; 10643 + g2 = 0; 10644 + do { 10645 + C2 = a3 + (f2 << 3) | 0; 10646 + D2 = b[C2 + 4 >> 2] | 0; 10647 + E2 = c2 + (f2 << 3) | 0; 10648 + b[E2 >> 2] = b[C2 >> 2]; 10649 + b[E2 + 4 >> 2] = D2; 10650 + f2 = Gd(f2 | 0, g2 | 0, 1, 0) | 0; 10651 + g2 = H() | 0; 10652 + } while ((g2 | 0) < (e2 | 0) | (g2 | 0) == (e2 | 0) & f2 >>> 0 < d2 >>> 0); 10653 + f2 = 0; 10654 + return f2 | 0; 10655 + } 10656 + B2 = d2 << 3; 10657 + D2 = Dd(B2) | 0; 10658 + if (!D2) { 10659 + E2 = 13; 10660 + return E2 | 0; 10661 + } 10662 + Wd(D2 | 0, a3 | 0, B2 | 0) | 0; 10663 + C2 = Fd(d2, 8) | 0; 10664 + if (!C2) { 10665 + Ed(D2); 10666 + E2 = 13; 10667 + return E2 | 0; 10668 + } 10669 + a: 10670 + while (true) { 10671 + f2 = D2; 10672 + k = b[f2 >> 2] | 0; 10673 + f2 = b[f2 + 4 >> 2] | 0; 10674 + z2 = Qd(k | 0, f2 | 0, 52) | 0; 10675 + H() | 0; 10676 + z2 = z2 & 15; 10677 + A2 = z2 + -1 | 0; 10678 + y2 = (z2 | 0) != 0; 10679 + x2 = (e2 | 0) > 0 | (e2 | 0) == 0 & d2 >>> 0 > 0; 10680 + b: 10681 + do { 10682 + if (y2 & x2) { 10683 + t2 = Rd(A2 | 0, 0, 52) | 0; 10684 + u2 = H() | 0; 10685 + if (A2 >>> 0 > 15) { 10686 + if (!((k | 0) == 0 & (f2 | 0) == 0)) { 10687 + E2 = 16; 10688 + break a; 10689 + } 10690 + g2 = 0; 10691 + a3 = 0; 10692 + while (true) { 10693 + g2 = Gd(g2 | 0, a3 | 0, 1, 0) | 0; 10694 + a3 = H() | 0; 10695 + if (!((a3 | 0) < (e2 | 0) | (a3 | 0) == (e2 | 0) & g2 >>> 0 < d2 >>> 0)) { 10696 + break b; 10697 + } 10698 + h = D2 + (g2 << 3) | 0; 10699 + w2 = b[h >> 2] | 0; 10700 + h = b[h + 4 >> 2] | 0; 10701 + if (!((w2 | 0) == 0 & (h | 0) == 0)) { 10702 + f2 = h; 10703 + E2 = 16; 10704 + break a; 10705 + } 10706 + } 10707 + } 10708 + i = k; 10709 + a3 = f2; 10710 + g2 = 0; 10711 + h = 0; 10712 + while (true) { 10713 + if (!((i | 0) == 0 & (a3 | 0) == 0)) { 10714 + if (!(true & (a3 & 117440512 | 0) == 0)) { 10715 + E2 = 21; 10716 + break a; 10717 + } 10718 + l = Qd(i | 0, a3 | 0, 52) | 0; 10719 + H() | 0; 10720 + l = l & 15; 10721 + if ((l | 0) < (A2 | 0)) { 10722 + f2 = 12; 10723 + E2 = 27; 10724 + break a; 10725 + } 10726 + if ((l | 0) != (A2 | 0)) { 10727 + i = i | t2; 10728 + a3 = a3 & -15728641 | u2; 10729 + if (l >>> 0 >= z2 >>> 0) { 10730 + j = A2; 10731 + do { 10732 + w2 = Rd(7, 0, (14 - j | 0) * 3 | 0) | 0; 10733 + j = j + 1 | 0; 10734 + i = w2 | i; 10735 + a3 = H() | 0 | a3; 10736 + } while (j >>> 0 < l >>> 0); 10737 + } 10738 + } 10739 + n = Od(i | 0, a3 | 0, d2 | 0, e2 | 0) | 0; 10740 + o = H() | 0; 10741 + j = C2 + (n << 3) | 0; 10742 + l = j; 10743 + m = b[l >> 2] | 0; 10744 + l = b[l + 4 >> 2] | 0; 10745 + if (!((m | 0) == 0 & (l | 0) == 0)) { 10746 + r2 = 0; 10747 + s2 = 0; 10748 + do { 10749 + if ((r2 | 0) > (e2 | 0) | (r2 | 0) == (e2 | 0) & s2 >>> 0 > d2 >>> 0) { 10750 + E2 = 31; 10751 + break a; 10752 + } 10753 + if ((m | 0) == (i | 0) & (l & -117440513 | 0) == (a3 | 0)) { 10754 + p3 = Qd(m | 0, l | 0, 56) | 0; 10755 + H() | 0; 10756 + p3 = p3 & 7; 10757 + q2 = p3 + 1 | 0; 10758 + w2 = Qd(m | 0, l | 0, 45) | 0; 10759 + H() | 0; 10760 + c: 10761 + do { 10762 + if (!(oa(w2 & 127) | 0)) { 10763 + l = 7; 10764 + } else { 10765 + m = Qd(m | 0, l | 0, 52) | 0; 10766 + H() | 0; 10767 + m = m & 15; 10768 + if (!m) { 10769 + l = 6; 10770 + break; 10771 + } 10772 + l = 1; 10773 + while (true) { 10774 + w2 = Rd(7, 0, (15 - l | 0) * 3 | 0) | 0; 10775 + if (!((w2 & i | 0) == 0 & ((H() | 0) & a3 | 0) == 0)) { 10776 + l = 7; 10777 + break c; 10778 + } 10779 + if (l >>> 0 < m >>> 0) { 10780 + l = l + 1 | 0; 10781 + } else { 10782 + l = 6; 10783 + break; 10784 + } 10785 + } 10786 + } 10787 + } while (0); 10788 + if ((p3 + 2 | 0) >>> 0 > l >>> 0) { 10789 + E2 = 41; 10790 + break a; 10791 + } 10792 + w2 = Rd(q2 | 0, 0, 56) | 0; 10793 + a3 = H() | 0 | a3 & -117440513; 10794 + v2 = j; 10795 + b[v2 >> 2] = 0; 10796 + b[v2 + 4 >> 2] = 0; 10797 + i = w2 | i; 10798 + } else { 10799 + n = Gd(n | 0, o | 0, 1, 0) | 0; 10800 + n = Nd(n | 0, H() | 0, d2 | 0, e2 | 0) | 0; 10801 + o = H() | 0; 10802 + } 10803 + s2 = Gd(s2 | 0, r2 | 0, 1, 0) | 0; 10804 + r2 = H() | 0; 10805 + j = C2 + (n << 3) | 0; 10806 + l = j; 10807 + m = b[l >> 2] | 0; 10808 + l = b[l + 4 >> 2] | 0; 10809 + } while (!((m | 0) == 0 & (l | 0) == 0)); 10810 + } 10811 + w2 = j; 10812 + b[w2 >> 2] = i; 10813 + b[w2 + 4 >> 2] = a3; 10814 + } 10815 + g2 = Gd(g2 | 0, h | 0, 1, 0) | 0; 10816 + h = H() | 0; 10817 + if (!((h | 0) < (e2 | 0) | (h | 0) == (e2 | 0) & g2 >>> 0 < d2 >>> 0)) { 10818 + break b; 10819 + } 10820 + a3 = D2 + (g2 << 3) | 0; 10821 + i = b[a3 >> 2] | 0; 10822 + a3 = b[a3 + 4 >> 2] | 0; 10823 + } 10824 + } 10825 + } while (0); 10826 + w2 = Gd(d2 | 0, e2 | 0, 5, 0) | 0; 10827 + v2 = H() | 0; 10828 + if (v2 >>> 0 < 0 | (v2 | 0) == 0 & w2 >>> 0 < 11) { 10829 + E2 = 85; 10830 + break; 10831 + } 10832 + w2 = Kd(d2 | 0, e2 | 0, 6, 0) | 0; 10833 + H() | 0; 10834 + w2 = Fd(w2, 8) | 0; 10835 + if (!w2) { 10836 + E2 = 48; 10837 + break; 10838 + } 10839 + do { 10840 + if (x2) { 10841 + q2 = 0; 10842 + a3 = 0; 10843 + p3 = 0; 10844 + r2 = 0; 10845 + while (true) { 10846 + l = C2 + (q2 << 3) | 0; 10847 + h = l; 10848 + g2 = b[h >> 2] | 0; 10849 + h = b[h + 4 >> 2] | 0; 10850 + if (!((g2 | 0) == 0 & (h | 0) == 0)) { 10851 + m = Qd(g2 | 0, h | 0, 56) | 0; 10852 + H() | 0; 10853 + m = m & 7; 10854 + i = m + 1 | 0; 10855 + n = h & -117440513; 10856 + v2 = Qd(g2 | 0, h | 0, 45) | 0; 10857 + H() | 0; 10858 + d: 10859 + do { 10860 + if (oa(v2 & 127) | 0) { 10861 + o = Qd(g2 | 0, h | 0, 52) | 0; 10862 + H() | 0; 10863 + o = o & 15; 10864 + if (o | 0) { 10865 + j = 1; 10866 + while (true) { 10867 + v2 = Rd(7, 0, (15 - j | 0) * 3 | 0) | 0; 10868 + if (!((g2 & v2 | 0) == 0 & (n & (H() | 0) | 0) == 0)) { 10869 + break d; 10870 + } 10871 + if (j >>> 0 < o >>> 0) { 10872 + j = j + 1 | 0; 10873 + } else { 10874 + break; 10875 + } 10876 + } 10877 + } 10878 + h = Rd(i | 0, 0, 56) | 0; 10879 + g2 = h | g2; 10880 + h = H() | 0 | n; 10881 + i = l; 10882 + b[i >> 2] = g2; 10883 + b[i + 4 >> 2] = h; 10884 + i = m + 2 | 0; 10885 + } 10886 + } while (0); 10887 + if ((i | 0) == 7) { 10888 + v2 = w2 + (a3 << 3) | 0; 10889 + b[v2 >> 2] = g2; 10890 + b[v2 + 4 >> 2] = h & -117440513; 10891 + a3 = Gd(a3 | 0, p3 | 0, 1, 0) | 0; 10892 + v2 = H() | 0; 10893 + } else { 10894 + v2 = p3; 10895 + } 10896 + } else { 10897 + v2 = p3; 10898 + } 10899 + q2 = Gd(q2 | 0, r2 | 0, 1, 0) | 0; 10900 + r2 = H() | 0; 10901 + if (!((r2 | 0) < (e2 | 0) | (r2 | 0) == (e2 | 0) & q2 >>> 0 < d2 >>> 0)) { 10902 + break; 10903 + } else { 10904 + p3 = v2; 10905 + } 10906 + } 10907 + if (x2) { 10908 + s2 = A2 >>> 0 > 15; 10909 + t2 = Rd(A2 | 0, 0, 52) | 0; 10910 + u2 = H() | 0; 10911 + if (!y2) { 10912 + g2 = 0; 10913 + j = 0; 10914 + i = 0; 10915 + h = 0; 10916 + while (true) { 10917 + if (!((k | 0) == 0 & (f2 | 0) == 0)) { 10918 + A2 = c2 + (g2 << 3) | 0; 10919 + b[A2 >> 2] = k; 10920 + b[A2 + 4 >> 2] = f2; 10921 + g2 = Gd(g2 | 0, j | 0, 1, 0) | 0; 10922 + j = H() | 0; 10923 + } 10924 + i = Gd(i | 0, h | 0, 1, 0) | 0; 10925 + h = H() | 0; 10926 + if (!((h | 0) < (e2 | 0) | (h | 0) == (e2 | 0) & i >>> 0 < d2 >>> 0)) { 10927 + break; 10928 + } 10929 + f2 = D2 + (i << 3) | 0; 10930 + k = b[f2 >> 2] | 0; 10931 + f2 = b[f2 + 4 >> 2] | 0; 10932 + } 10933 + f2 = v2; 10934 + break; 10935 + } 10936 + g2 = 0; 10937 + j = 0; 10938 + h = 0; 10939 + i = 0; 10940 + while (true) { 10941 + do { 10942 + if (!((k | 0) == 0 & (f2 | 0) == 0)) { 10943 + o = Qd(k | 0, f2 | 0, 52) | 0; 10944 + H() | 0; 10945 + o = o & 15; 10946 + if (s2 | (o | 0) < (A2 | 0)) { 10947 + E2 = 80; 10948 + break a; 10949 + } 10950 + if ((o | 0) != (A2 | 0)) { 10951 + l = k | t2; 10952 + m = f2 & -15728641 | u2; 10953 + if (o >>> 0 >= z2 >>> 0) { 10954 + n = A2; 10955 + do { 10956 + y2 = Rd(7, 0, (14 - n | 0) * 3 | 0) | 0; 10957 + n = n + 1 | 0; 10958 + l = y2 | l; 10959 + m = H() | 0 | m; 10960 + } while (n >>> 0 < o >>> 0); 10961 + } 10962 + } else { 10963 + l = k; 10964 + m = f2; 10965 + } 10966 + p3 = Od(l | 0, m | 0, d2 | 0, e2 | 0) | 0; 10967 + n = 0; 10968 + o = 0; 10969 + r2 = H() | 0; 10970 + do { 10971 + if ((n | 0) > (e2 | 0) | (n | 0) == (e2 | 0) & o >>> 0 > d2 >>> 0) { 10972 + E2 = 81; 10973 + break a; 10974 + } 10975 + y2 = C2 + (p3 << 3) | 0; 10976 + q2 = b[y2 + 4 >> 2] | 0; 10977 + if ((q2 & -117440513 | 0) == (m | 0) ? (b[y2 >> 2] | 0) == (l | 0) : 0) { 10978 + E2 = 65; 10979 + break; 10980 + } 10981 + y2 = Gd(p3 | 0, r2 | 0, 1, 0) | 0; 10982 + p3 = Nd(y2 | 0, H() | 0, d2 | 0, e2 | 0) | 0; 10983 + r2 = H() | 0; 10984 + o = Gd(o | 0, n | 0, 1, 0) | 0; 10985 + n = H() | 0; 10986 + y2 = C2 + (p3 << 3) | 0; 10987 + } while (!((b[y2 >> 2] | 0) == (l | 0) ? (b[y2 + 4 >> 2] | 0) == (m | 0) : 0)); 10988 + if ((E2 | 0) == 65 ? (E2 = 0, true & (q2 & 117440512 | 0) == 100663296) : 0) { 10989 + break; 10990 + } 10991 + y2 = c2 + (g2 << 3) | 0; 10992 + b[y2 >> 2] = k; 10993 + b[y2 + 4 >> 2] = f2; 10994 + g2 = Gd(g2 | 0, j | 0, 1, 0) | 0; 10995 + j = H() | 0; 10996 + } 10997 + } while (0); 10998 + h = Gd(h | 0, i | 0, 1, 0) | 0; 10999 + i = H() | 0; 11000 + if (!((i | 0) < (e2 | 0) | (i | 0) == (e2 | 0) & h >>> 0 < d2 >>> 0)) { 11001 + break; 11002 + } 11003 + f2 = D2 + (h << 3) | 0; 11004 + k = b[f2 >> 2] | 0; 11005 + f2 = b[f2 + 4 >> 2] | 0; 11006 + } 11007 + f2 = v2; 11008 + } else { 11009 + g2 = 0; 11010 + f2 = v2; 11011 + } 11012 + } else { 11013 + g2 = 0; 11014 + a3 = 0; 11015 + f2 = 0; 11016 + } 11017 + } while (0); 11018 + Xd(C2 | 0, 0, B2 | 0) | 0; 11019 + Wd(D2 | 0, w2 | 0, a3 << 3 | 0) | 0; 11020 + Ed(w2); 11021 + if ((a3 | 0) == 0 & (f2 | 0) == 0) { 11022 + E2 = 89; 11023 + break; 11024 + } else { 11025 + c2 = c2 + (g2 << 3) | 0; 11026 + e2 = f2; 11027 + d2 = a3; 11028 + } 11029 + } 11030 + if ((E2 | 0) == 16) { 11031 + if (true & (f2 & 117440512 | 0) == 0) { 11032 + f2 = 4; 11033 + E2 = 27; 11034 + } else { 11035 + E2 = 21; 11036 + } 11037 + } else if ((E2 | 0) == 31) { 11038 + I(27795, 27122, 529, 27132); 11039 + } else if ((E2 | 0) == 41) { 11040 + Ed(D2); 11041 + Ed(C2); 11042 + E2 = 10; 11043 + return E2 | 0; 11044 + } else if ((E2 | 0) == 48) { 11045 + Ed(D2); 11046 + Ed(C2); 11047 + E2 = 13; 11048 + return E2 | 0; 11049 + } else if ((E2 | 0) == 80) { 11050 + I(27795, 27122, 620, 27132); 11051 + } else if ((E2 | 0) == 81) { 11052 + I(27795, 27122, 632, 27132); 11053 + } else if ((E2 | 0) == 85) { 11054 + Wd(c2 | 0, D2 | 0, d2 << 3 | 0) | 0; 11055 + E2 = 89; 11056 + } 11057 + if ((E2 | 0) == 21) { 11058 + Ed(D2); 11059 + Ed(C2); 11060 + E2 = 5; 11061 + return E2 | 0; 11062 + } else if ((E2 | 0) == 27) { 11063 + Ed(D2); 11064 + Ed(C2); 11065 + E2 = f2; 11066 + return E2 | 0; 11067 + } else if ((E2 | 0) == 89) { 11068 + Ed(D2); 11069 + Ed(C2); 11070 + E2 = 0; 11071 + return E2 | 0; 11072 + } 11073 + return 0; 11074 + } 11075 + function Mb(a3, c2, d2, e2, f2, g2, h) { 11076 + a3 = a3 | 0; 11077 + c2 = c2 | 0; 11078 + d2 = d2 | 0; 11079 + e2 = e2 | 0; 11080 + f2 = f2 | 0; 11081 + g2 = g2 | 0; 11082 + h = h | 0; 11083 + var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0; 11084 + q2 = T; 11085 + T = T + 16 | 0; 11086 + p3 = q2; 11087 + if (!((d2 | 0) > 0 | (d2 | 0) == 0 & c2 >>> 0 > 0)) { 11088 + p3 = 0; 11089 + T = q2; 11090 + return p3 | 0; 11091 + } 11092 + if ((h | 0) >= 16) { 11093 + p3 = 12; 11094 + T = q2; 11095 + return p3 | 0; 11096 + } 11097 + n = 0; 11098 + o = 0; 11099 + m = 0; 11100 + i = 0; 11101 + a: 11102 + while (true) { 11103 + k = a3 + (n << 3) | 0; 11104 + j = b[k >> 2] | 0; 11105 + k = b[k + 4 >> 2] | 0; 11106 + l = Qd(j | 0, k | 0, 52) | 0; 11107 + H() | 0; 11108 + if ((l & 15 | 0) > (h | 0)) { 11109 + i = 12; 11110 + j = 11; 11111 + break; 11112 + } 11113 + fc(p3, j, k, h); 11114 + l = p3; 11115 + k = b[l >> 2] | 0; 11116 + l = b[l + 4 >> 2] | 0; 11117 + if ((k | 0) == 0 & (l | 0) == 0) { 11118 + j = m; 11119 + } else { 11120 + j = m; 11121 + do { 11122 + if (!((i | 0) < (g2 | 0) | (i | 0) == (g2 | 0) & j >>> 0 < f2 >>> 0)) { 11123 + j = 10; 11124 + break a; 11125 + } 11126 + m = e2 + (j << 3) | 0; 11127 + b[m >> 2] = k; 11128 + b[m + 4 >> 2] = l; 11129 + j = Gd(j | 0, i | 0, 1, 0) | 0; 11130 + i = H() | 0; 11131 + hc(p3); 11132 + m = p3; 11133 + k = b[m >> 2] | 0; 11134 + l = b[m + 4 >> 2] | 0; 11135 + } while (!((k | 0) == 0 & (l | 0) == 0)); 11136 + } 11137 + n = Gd(n | 0, o | 0, 1, 0) | 0; 11138 + o = H() | 0; 11139 + if (!((o | 0) < (d2 | 0) | (o | 0) == (d2 | 0) & n >>> 0 < c2 >>> 0)) { 11140 + i = 0; 11141 + j = 11; 11142 + break; 11143 + } else { 11144 + m = j; 11145 + } 11146 + } 11147 + if ((j | 0) == 10) { 11148 + p3 = 14; 11149 + T = q2; 11150 + return p3 | 0; 11151 + } else if ((j | 0) == 11) { 11152 + T = q2; 11153 + return i | 0; 11154 + } 11155 + return 0; 11156 + } 11157 + function Nb(a3, c2, d2, e2, f2) { 11158 + a3 = a3 | 0; 11159 + c2 = c2 | 0; 11160 + d2 = d2 | 0; 11161 + e2 = e2 | 0; 11162 + f2 = f2 | 0; 11163 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; 11164 + n = T; 11165 + T = T + 16 | 0; 11166 + m = n; 11167 + a: 11168 + do { 11169 + if ((d2 | 0) > 0 | (d2 | 0) == 0 & c2 >>> 0 > 0) { 11170 + k = 0; 11171 + h = 0; 11172 + g2 = 0; 11173 + l = 0; 11174 + while (true) { 11175 + j = a3 + (k << 3) | 0; 11176 + i = b[j >> 2] | 0; 11177 + j = b[j + 4 >> 2] | 0; 11178 + if (!((i | 0) == 0 & (j | 0) == 0)) { 11179 + j = (Gb(i, j, e2, m) | 0) == 0; 11180 + i = m; 11181 + h = Gd(b[i >> 2] | 0, b[i + 4 >> 2] | 0, h | 0, g2 | 0) | 0; 11182 + g2 = H() | 0; 11183 + if (!j) { 11184 + g2 = 12; 11185 + break; 11186 + } 11187 + } 11188 + k = Gd(k | 0, l | 0, 1, 0) | 0; 11189 + l = H() | 0; 11190 + if (!((l | 0) < (d2 | 0) | (l | 0) == (d2 | 0) & k >>> 0 < c2 >>> 0)) { 11191 + break a; 11192 + } 11193 + } 11194 + T = n; 11195 + return g2 | 0; 11196 + } else { 11197 + h = 0; 11198 + g2 = 0; 11199 + } 11200 + } while (0); 11201 + b[f2 >> 2] = h; 11202 + b[f2 + 4 >> 2] = g2; 11203 + f2 = 0; 11204 + T = n; 11205 + return f2 | 0; 11206 + } 11207 + function Ob(a3, b2) { 11208 + a3 = a3 | 0; 11209 + b2 = b2 | 0; 11210 + b2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11211 + H() | 0; 11212 + return b2 & 1 | 0; 11213 + } 11214 + function Pb(a3, b2) { 11215 + a3 = a3 | 0; 11216 + b2 = b2 | 0; 11217 + var c2 = 0, d2 = 0, e2 = 0; 11218 + e2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11219 + H() | 0; 11220 + e2 = e2 & 15; 11221 + if (!e2) { 11222 + e2 = 0; 11223 + return e2 | 0; 11224 + } 11225 + d2 = 1; 11226 + while (true) { 11227 + c2 = Qd(a3 | 0, b2 | 0, (15 - d2 | 0) * 3 | 0) | 0; 11228 + H() | 0; 11229 + c2 = c2 & 7; 11230 + if (c2 | 0) { 11231 + d2 = 5; 11232 + break; 11233 + } 11234 + if (d2 >>> 0 < e2 >>> 0) { 11235 + d2 = d2 + 1 | 0; 11236 + } else { 11237 + c2 = 0; 11238 + d2 = 5; 11239 + break; 11240 + } 11241 + } 11242 + if ((d2 | 0) == 5) { 11243 + return c2 | 0; 11244 + } 11245 + return 0; 11246 + } 11247 + function Qb(a3, b2) { 11248 + a3 = a3 | 0; 11249 + b2 = b2 | 0; 11250 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 11251 + i = Qd(a3 | 0, b2 | 0, 52) | 0; 11252 + H() | 0; 11253 + i = i & 15; 11254 + if (!i) { 11255 + h = b2; 11256 + i = a3; 11257 + G(h | 0); 11258 + return i | 0; 11259 + } 11260 + h = 1; 11261 + c2 = 0; 11262 + while (true) { 11263 + f2 = (15 - h | 0) * 3 | 0; 11264 + d2 = Rd(7, 0, f2 | 0) | 0; 11265 + e2 = H() | 0; 11266 + g2 = Qd(a3 | 0, b2 | 0, f2 | 0) | 0; 11267 + H() | 0; 11268 + f2 = Rd($a(g2 & 7) | 0, 0, f2 | 0) | 0; 11269 + g2 = H() | 0; 11270 + a3 = f2 | a3 & ~d2; 11271 + b2 = g2 | b2 & ~e2; 11272 + a: 11273 + do { 11274 + if (!c2) { 11275 + if (!((f2 & d2 | 0) == 0 & (g2 & e2 | 0) == 0)) { 11276 + d2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11277 + H() | 0; 11278 + d2 = d2 & 15; 11279 + if (!d2) { 11280 + c2 = 1; 11281 + } else { 11282 + c2 = 1; 11283 + b: 11284 + while (true) { 11285 + g2 = Qd(a3 | 0, b2 | 0, (15 - c2 | 0) * 3 | 0) | 0; 11286 + H() | 0; 11287 + switch (g2 & 7) { 11288 + case 1: 11289 + break b; 11290 + case 0: 11291 + break; 11292 + default: { 11293 + c2 = 1; 11294 + break a; 11295 + } 11296 + } 11297 + if (c2 >>> 0 < d2 >>> 0) { 11298 + c2 = c2 + 1 | 0; 11299 + } else { 11300 + c2 = 1; 11301 + break a; 11302 + } 11303 + } 11304 + c2 = 1; 11305 + while (true) { 11306 + g2 = (15 - c2 | 0) * 3 | 0; 11307 + e2 = Qd(a3 | 0, b2 | 0, g2 | 0) | 0; 11308 + H() | 0; 11309 + f2 = Rd(7, 0, g2 | 0) | 0; 11310 + b2 = b2 & ~(H() | 0); 11311 + g2 = Rd($a(e2 & 7) | 0, 0, g2 | 0) | 0; 11312 + a3 = a3 & ~f2 | g2; 11313 + b2 = b2 | (H() | 0); 11314 + if (c2 >>> 0 < d2 >>> 0) { 11315 + c2 = c2 + 1 | 0; 11316 + } else { 11317 + c2 = 1; 11318 + break; 11319 + } 11320 + } 11321 + } 11322 + } else { 11323 + c2 = 0; 11324 + } 11325 + } 11326 + } while (0); 11327 + if (h >>> 0 < i >>> 0) { 11328 + h = h + 1 | 0; 11329 + } else { 11330 + break; 11331 + } 11332 + } 11333 + G(b2 | 0); 11334 + return a3 | 0; 11335 + } 11336 + function Rb(a3, b2) { 11337 + a3 = a3 | 0; 11338 + b2 = b2 | 0; 11339 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; 11340 + d2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11341 + H() | 0; 11342 + d2 = d2 & 15; 11343 + if (!d2) { 11344 + c2 = b2; 11345 + d2 = a3; 11346 + G(c2 | 0); 11347 + return d2 | 0; 11348 + } 11349 + c2 = 1; 11350 + while (true) { 11351 + f2 = (15 - c2 | 0) * 3 | 0; 11352 + g2 = Qd(a3 | 0, b2 | 0, f2 | 0) | 0; 11353 + H() | 0; 11354 + e2 = Rd(7, 0, f2 | 0) | 0; 11355 + b2 = b2 & ~(H() | 0); 11356 + f2 = Rd($a(g2 & 7) | 0, 0, f2 | 0) | 0; 11357 + a3 = f2 | a3 & ~e2; 11358 + b2 = H() | 0 | b2; 11359 + if (c2 >>> 0 < d2 >>> 0) { 11360 + c2 = c2 + 1 | 0; 11361 + } else { 11362 + break; 11363 + } 11364 + } 11365 + G(b2 | 0); 11366 + return a3 | 0; 11367 + } 11368 + function Sb(a3, b2) { 11369 + a3 = a3 | 0; 11370 + b2 = b2 | 0; 11371 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0; 11372 + i = Qd(a3 | 0, b2 | 0, 52) | 0; 11373 + H() | 0; 11374 + i = i & 15; 11375 + if (!i) { 11376 + h = b2; 11377 + i = a3; 11378 + G(h | 0); 11379 + return i | 0; 11380 + } 11381 + h = 1; 11382 + c2 = 0; 11383 + while (true) { 11384 + f2 = (15 - h | 0) * 3 | 0; 11385 + d2 = Rd(7, 0, f2 | 0) | 0; 11386 + e2 = H() | 0; 11387 + g2 = Qd(a3 | 0, b2 | 0, f2 | 0) | 0; 11388 + H() | 0; 11389 + f2 = Rd(ab(g2 & 7) | 0, 0, f2 | 0) | 0; 11390 + g2 = H() | 0; 11391 + a3 = f2 | a3 & ~d2; 11392 + b2 = g2 | b2 & ~e2; 11393 + a: 11394 + do { 11395 + if (!c2) { 11396 + if (!((f2 & d2 | 0) == 0 & (g2 & e2 | 0) == 0)) { 11397 + d2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11398 + H() | 0; 11399 + d2 = d2 & 15; 11400 + if (!d2) { 11401 + c2 = 1; 11402 + } else { 11403 + c2 = 1; 11404 + b: 11405 + while (true) { 11406 + g2 = Qd(a3 | 0, b2 | 0, (15 - c2 | 0) * 3 | 0) | 0; 11407 + H() | 0; 11408 + switch (g2 & 7) { 11409 + case 1: 11410 + break b; 11411 + case 0: 11412 + break; 11413 + default: { 11414 + c2 = 1; 11415 + break a; 11416 + } 11417 + } 11418 + if (c2 >>> 0 < d2 >>> 0) { 11419 + c2 = c2 + 1 | 0; 11420 + } else { 11421 + c2 = 1; 11422 + break a; 11423 + } 11424 + } 11425 + c2 = 1; 11426 + while (true) { 11427 + e2 = (15 - c2 | 0) * 3 | 0; 11428 + f2 = Rd(7, 0, e2 | 0) | 0; 11429 + g2 = b2 & ~(H() | 0); 11430 + b2 = Qd(a3 | 0, b2 | 0, e2 | 0) | 0; 11431 + H() | 0; 11432 + b2 = Rd(ab(b2 & 7) | 0, 0, e2 | 0) | 0; 11433 + a3 = a3 & ~f2 | b2; 11434 + b2 = g2 | (H() | 0); 11435 + if (c2 >>> 0 < d2 >>> 0) { 11436 + c2 = c2 + 1 | 0; 11437 + } else { 11438 + c2 = 1; 11439 + break; 11440 + } 11441 + } 11442 + } 11443 + } else { 11444 + c2 = 0; 11445 + } 11446 + } 11447 + } while (0); 11448 + if (h >>> 0 < i >>> 0) { 11449 + h = h + 1 | 0; 11450 + } else { 11451 + break; 11452 + } 11453 + } 11454 + G(b2 | 0); 11455 + return a3 | 0; 11456 + } 11457 + function Tb(a3, b2) { 11458 + a3 = a3 | 0; 11459 + b2 = b2 | 0; 11460 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0; 11461 + d2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11462 + H() | 0; 11463 + d2 = d2 & 15; 11464 + if (!d2) { 11465 + c2 = b2; 11466 + d2 = a3; 11467 + G(c2 | 0); 11468 + return d2 | 0; 11469 + } 11470 + c2 = 1; 11471 + while (true) { 11472 + g2 = (15 - c2 | 0) * 3 | 0; 11473 + f2 = Rd(7, 0, g2 | 0) | 0; 11474 + e2 = b2 & ~(H() | 0); 11475 + b2 = Qd(a3 | 0, b2 | 0, g2 | 0) | 0; 11476 + H() | 0; 11477 + b2 = Rd(ab(b2 & 7) | 0, 0, g2 | 0) | 0; 11478 + a3 = b2 | a3 & ~f2; 11479 + b2 = H() | 0 | e2; 11480 + if (c2 >>> 0 < d2 >>> 0) { 11481 + c2 = c2 + 1 | 0; 11482 + } else { 11483 + break; 11484 + } 11485 + } 11486 + G(b2 | 0); 11487 + return a3 | 0; 11488 + } 11489 + function Ub(a3, c2) { 11490 + a3 = a3 | 0; 11491 + c2 = c2 | 0; 11492 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 11493 + j = T; 11494 + T = T + 64 | 0; 11495 + i = j + 40 | 0; 11496 + e2 = j + 24 | 0; 11497 + f2 = j + 12 | 0; 11498 + g2 = j; 11499 + Rd(c2 | 0, 0, 52) | 0; 11500 + d2 = H() | 0 | 134225919; 11501 + if (!c2) { 11502 + if ((b[a3 + 4 >> 2] | 0) > 2) { 11503 + h = 0; 11504 + i = 0; 11505 + G(h | 0); 11506 + T = j; 11507 + return i | 0; 11508 + } 11509 + if ((b[a3 + 8 >> 2] | 0) > 2) { 11510 + h = 0; 11511 + i = 0; 11512 + G(h | 0); 11513 + T = j; 11514 + return i | 0; 11515 + } 11516 + if ((b[a3 + 12 >> 2] | 0) > 2) { 11517 + h = 0; 11518 + i = 0; 11519 + G(h | 0); 11520 + T = j; 11521 + return i | 0; 11522 + } 11523 + Rd(qa(a3) | 0, 0, 45) | 0; 11524 + h = H() | 0 | d2; 11525 + i = -1; 11526 + G(h | 0); 11527 + T = j; 11528 + return i | 0; 11529 + } 11530 + b[i >> 2] = b[a3 >> 2]; 11531 + b[i + 4 >> 2] = b[a3 + 4 >> 2]; 11532 + b[i + 8 >> 2] = b[a3 + 8 >> 2]; 11533 + b[i + 12 >> 2] = b[a3 + 12 >> 2]; 11534 + h = i + 4 | 0; 11535 + if ((c2 | 0) > 0) { 11536 + a3 = -1; 11537 + while (true) { 11538 + b[e2 >> 2] = b[h >> 2]; 11539 + b[e2 + 4 >> 2] = b[h + 4 >> 2]; 11540 + b[e2 + 8 >> 2] = b[h + 8 >> 2]; 11541 + if (!(c2 & 1)) { 11542 + Va(h); 11543 + b[f2 >> 2] = b[h >> 2]; 11544 + b[f2 + 4 >> 2] = b[h + 4 >> 2]; 11545 + b[f2 + 8 >> 2] = b[h + 8 >> 2]; 11546 + Xa(f2); 11547 + } else { 11548 + Ua(h); 11549 + b[f2 >> 2] = b[h >> 2]; 11550 + b[f2 + 4 >> 2] = b[h + 4 >> 2]; 11551 + b[f2 + 8 >> 2] = b[h + 8 >> 2]; 11552 + Wa(f2); 11553 + } 11554 + Pa(e2, f2, g2); 11555 + Ma(g2); 11556 + l = (15 - c2 | 0) * 3 | 0; 11557 + k = Rd(7, 0, l | 0) | 0; 11558 + d2 = d2 & ~(H() | 0); 11559 + l = Rd(Ra(g2) | 0, 0, l | 0) | 0; 11560 + a3 = l | a3 & ~k; 11561 + d2 = H() | 0 | d2; 11562 + if ((c2 | 0) > 1) { 11563 + c2 = c2 + -1 | 0; 11564 + } else { 11565 + break; 11566 + } 11567 + } 11568 + } else { 11569 + a3 = -1; 11570 + } 11571 + a: 11572 + do { 11573 + if (((b[h >> 2] | 0) <= 2 ? (b[i + 8 >> 2] | 0) <= 2 : 0) ? (b[i + 12 >> 2] | 0) <= 2 : 0) { 11574 + e2 = qa(i) | 0; 11575 + c2 = Rd(e2 | 0, 0, 45) | 0; 11576 + c2 = c2 | a3; 11577 + a3 = H() | 0 | d2 & -1040385; 11578 + g2 = ra(i) | 0; 11579 + if (!(oa(e2) | 0)) { 11580 + if ((g2 | 0) <= 0) { 11581 + break; 11582 + } 11583 + f2 = 0; 11584 + while (true) { 11585 + e2 = Qd(c2 | 0, a3 | 0, 52) | 0; 11586 + H() | 0; 11587 + e2 = e2 & 15; 11588 + if (e2) { 11589 + d2 = 1; 11590 + while (true) { 11591 + l = (15 - d2 | 0) * 3 | 0; 11592 + i = Qd(c2 | 0, a3 | 0, l | 0) | 0; 11593 + H() | 0; 11594 + k = Rd(7, 0, l | 0) | 0; 11595 + a3 = a3 & ~(H() | 0); 11596 + l = Rd($a(i & 7) | 0, 0, l | 0) | 0; 11597 + c2 = c2 & ~k | l; 11598 + a3 = a3 | (H() | 0); 11599 + if (d2 >>> 0 < e2 >>> 0) { 11600 + d2 = d2 + 1 | 0; 11601 + } else { 11602 + break; 11603 + } 11604 + } 11605 + } 11606 + f2 = f2 + 1 | 0; 11607 + if ((f2 | 0) == (g2 | 0)) { 11608 + break a; 11609 + } 11610 + } 11611 + } 11612 + f2 = Qd(c2 | 0, a3 | 0, 52) | 0; 11613 + H() | 0; 11614 + f2 = f2 & 15; 11615 + b: 11616 + do { 11617 + if (f2) { 11618 + d2 = 1; 11619 + c: 11620 + while (true) { 11621 + l = Qd(c2 | 0, a3 | 0, (15 - d2 | 0) * 3 | 0) | 0; 11622 + H() | 0; 11623 + switch (l & 7) { 11624 + case 1: 11625 + break c; 11626 + case 0: 11627 + break; 11628 + default: 11629 + break b; 11630 + } 11631 + if (d2 >>> 0 < f2 >>> 0) { 11632 + d2 = d2 + 1 | 0; 11633 + } else { 11634 + break b; 11635 + } 11636 + } 11637 + if (ua(e2, b[i >> 2] | 0) | 0) { 11638 + d2 = 1; 11639 + while (true) { 11640 + i = (15 - d2 | 0) * 3 | 0; 11641 + k = Rd(7, 0, i | 0) | 0; 11642 + l = a3 & ~(H() | 0); 11643 + a3 = Qd(c2 | 0, a3 | 0, i | 0) | 0; 11644 + H() | 0; 11645 + a3 = Rd(ab(a3 & 7) | 0, 0, i | 0) | 0; 11646 + c2 = c2 & ~k | a3; 11647 + a3 = l | (H() | 0); 11648 + if (d2 >>> 0 < f2 >>> 0) { 11649 + d2 = d2 + 1 | 0; 11650 + } else { 11651 + break; 11652 + } 11653 + } 11654 + } else { 11655 + d2 = 1; 11656 + while (true) { 11657 + l = (15 - d2 | 0) * 3 | 0; 11658 + i = Qd(c2 | 0, a3 | 0, l | 0) | 0; 11659 + H() | 0; 11660 + k = Rd(7, 0, l | 0) | 0; 11661 + a3 = a3 & ~(H() | 0); 11662 + l = Rd($a(i & 7) | 0, 0, l | 0) | 0; 11663 + c2 = c2 & ~k | l; 11664 + a3 = a3 | (H() | 0); 11665 + if (d2 >>> 0 < f2 >>> 0) { 11666 + d2 = d2 + 1 | 0; 11667 + } else { 11668 + break; 11669 + } 11670 + } 11671 + } 11672 + } 11673 + } while (0); 11674 + if ((g2 | 0) > 0) { 11675 + d2 = 0; 11676 + do { 11677 + c2 = Qb(c2, a3) | 0; 11678 + a3 = H() | 0; 11679 + d2 = d2 + 1 | 0; 11680 + } while ((d2 | 0) != (g2 | 0)); 11681 + } 11682 + } else { 11683 + c2 = 0; 11684 + a3 = 0; 11685 + } 11686 + } while (0); 11687 + k = a3; 11688 + l = c2; 11689 + G(k | 0); 11690 + T = j; 11691 + return l | 0; 11692 + } 11693 + function Vb(a3) { 11694 + a3 = a3 | 0; 11695 + return (a3 | 0) % 2 | 0 | 0; 11696 + } 11697 + function Wb(a3, c2, d2) { 11698 + a3 = a3 | 0; 11699 + c2 = c2 | 0; 11700 + d2 = d2 | 0; 11701 + var e2 = 0, f2 = 0; 11702 + f2 = T; 11703 + T = T + 16 | 0; 11704 + e2 = f2; 11705 + if (c2 >>> 0 > 15) { 11706 + e2 = 4; 11707 + T = f2; 11708 + return e2 | 0; 11709 + } 11710 + if ((b[a3 + 4 >> 2] & 2146435072 | 0) == 2146435072) { 11711 + e2 = 3; 11712 + T = f2; 11713 + return e2 | 0; 11714 + } 11715 + if ((b[a3 + 8 + 4 >> 2] & 2146435072 | 0) == 2146435072) { 11716 + e2 = 3; 11717 + T = f2; 11718 + return e2 | 0; 11719 + } 11720 + qb(a3, c2, e2); 11721 + c2 = Ub(e2, c2) | 0; 11722 + e2 = H() | 0; 11723 + b[d2 >> 2] = c2; 11724 + b[d2 + 4 >> 2] = e2; 11725 + if ((c2 | 0) == 0 & (e2 | 0) == 0) { 11726 + I(27795, 27122, 959, 27145); 11727 + } 11728 + e2 = 0; 11729 + T = f2; 11730 + return e2 | 0; 11731 + } 11732 + function Xb(a3, c2, d2) { 11733 + a3 = a3 | 0; 11734 + c2 = c2 | 0; 11735 + d2 = d2 | 0; 11736 + var e2 = 0, f2 = 0, g2 = 0, h = 0; 11737 + f2 = d2 + 4 | 0; 11738 + g2 = Qd(a3 | 0, c2 | 0, 52) | 0; 11739 + H() | 0; 11740 + g2 = g2 & 15; 11741 + h = Qd(a3 | 0, c2 | 0, 45) | 0; 11742 + H() | 0; 11743 + e2 = (g2 | 0) == 0; 11744 + if (!(oa(h & 127) | 0)) { 11745 + if (e2) { 11746 + h = 0; 11747 + return h | 0; 11748 + } 11749 + if ((b[f2 >> 2] | 0) == 0 ? (b[d2 + 8 >> 2] | 0) == 0 : 0) { 11750 + e2 = (b[d2 + 12 >> 2] | 0) != 0 & 1; 11751 + } else { 11752 + e2 = 1; 11753 + } 11754 + } else if (e2) { 11755 + h = 1; 11756 + return h | 0; 11757 + } else { 11758 + e2 = 1; 11759 + } 11760 + d2 = 1; 11761 + while (true) { 11762 + if (!(d2 & 1)) { 11763 + Xa(f2); 11764 + } else { 11765 + Wa(f2); 11766 + } 11767 + h = Qd(a3 | 0, c2 | 0, (15 - d2 | 0) * 3 | 0) | 0; 11768 + H() | 0; 11769 + Ya(f2, h & 7); 11770 + if (d2 >>> 0 < g2 >>> 0) { 11771 + d2 = d2 + 1 | 0; 11772 + } else { 11773 + break; 11774 + } 11775 + } 11776 + return e2 | 0; 11777 + } 11778 + function Yb(a3, c2, d2) { 11779 + a3 = a3 | 0; 11780 + c2 = c2 | 0; 11781 + d2 = d2 | 0; 11782 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 11783 + l = T; 11784 + T = T + 16 | 0; 11785 + j = l; 11786 + k = Qd(a3 | 0, c2 | 0, 45) | 0; 11787 + H() | 0; 11788 + k = k & 127; 11789 + if (k >>> 0 > 121) { 11790 + b[d2 >> 2] = 0; 11791 + b[d2 + 4 >> 2] = 0; 11792 + b[d2 + 8 >> 2] = 0; 11793 + b[d2 + 12 >> 2] = 0; 11794 + k = 5; 11795 + T = l; 11796 + return k | 0; 11797 + } 11798 + a: 11799 + do { 11800 + if ((oa(k) | 0) != 0 ? (g2 = Qd(a3 | 0, c2 | 0, 52) | 0, H() | 0, g2 = g2 & 15, (g2 | 0) != 0) : 0) { 11801 + e2 = 1; 11802 + b: 11803 + while (true) { 11804 + i = Qd(a3 | 0, c2 | 0, (15 - e2 | 0) * 3 | 0) | 0; 11805 + H() | 0; 11806 + switch (i & 7) { 11807 + case 5: 11808 + break b; 11809 + case 0: 11810 + break; 11811 + default: { 11812 + e2 = c2; 11813 + break a; 11814 + } 11815 + } 11816 + if (e2 >>> 0 < g2 >>> 0) { 11817 + e2 = e2 + 1 | 0; 11818 + } else { 11819 + e2 = c2; 11820 + break a; 11821 + } 11822 + } 11823 + f2 = 1; 11824 + e2 = c2; 11825 + while (true) { 11826 + c2 = (15 - f2 | 0) * 3 | 0; 11827 + h = Rd(7, 0, c2 | 0) | 0; 11828 + i = e2 & ~(H() | 0); 11829 + e2 = Qd(a3 | 0, e2 | 0, c2 | 0) | 0; 11830 + H() | 0; 11831 + e2 = Rd(ab(e2 & 7) | 0, 0, c2 | 0) | 0; 11832 + a3 = a3 & ~h | e2; 11833 + e2 = i | (H() | 0); 11834 + if (f2 >>> 0 < g2 >>> 0) { 11835 + f2 = f2 + 1 | 0; 11836 + } else { 11837 + break; 11838 + } 11839 + } 11840 + } else { 11841 + e2 = c2; 11842 + } 11843 + } while (0); 11844 + i = 7696 + (k * 28 | 0) | 0; 11845 + b[d2 >> 2] = b[i >> 2]; 11846 + b[d2 + 4 >> 2] = b[i + 4 >> 2]; 11847 + b[d2 + 8 >> 2] = b[i + 8 >> 2]; 11848 + b[d2 + 12 >> 2] = b[i + 12 >> 2]; 11849 + if (!(Xb(a3, e2, d2) | 0)) { 11850 + k = 0; 11851 + T = l; 11852 + return k | 0; 11853 + } 11854 + h = d2 + 4 | 0; 11855 + b[j >> 2] = b[h >> 2]; 11856 + b[j + 4 >> 2] = b[h + 4 >> 2]; 11857 + b[j + 8 >> 2] = b[h + 8 >> 2]; 11858 + g2 = Qd(a3 | 0, e2 | 0, 52) | 0; 11859 + H() | 0; 11860 + i = g2 & 15; 11861 + if (!(g2 & 1)) { 11862 + g2 = i; 11863 + } else { 11864 + Xa(h); 11865 + g2 = i + 1 | 0; 11866 + } 11867 + if (!(oa(k) | 0)) { 11868 + e2 = 0; 11869 + } else { 11870 + c: 11871 + do { 11872 + if (!i) { 11873 + e2 = 0; 11874 + } else { 11875 + c2 = 1; 11876 + while (true) { 11877 + f2 = Qd(a3 | 0, e2 | 0, (15 - c2 | 0) * 3 | 0) | 0; 11878 + H() | 0; 11879 + f2 = f2 & 7; 11880 + if (f2 | 0) { 11881 + e2 = f2; 11882 + break c; 11883 + } 11884 + if (c2 >>> 0 < i >>> 0) { 11885 + c2 = c2 + 1 | 0; 11886 + } else { 11887 + e2 = 0; 11888 + break; 11889 + } 11890 + } 11891 + } 11892 + } while (0); 11893 + e2 = (e2 | 0) == 4 & 1; 11894 + } 11895 + if (!(xb(d2, g2, e2, 0) | 0)) { 11896 + if ((g2 | 0) != (i | 0)) { 11897 + b[h >> 2] = b[j >> 2]; 11898 + b[h + 4 >> 2] = b[j + 4 >> 2]; 11899 + b[h + 8 >> 2] = b[j + 8 >> 2]; 11900 + } 11901 + } else { 11902 + if (oa(k) | 0) { 11903 + do {} while ((xb(d2, g2, 0, 0) | 0) != 0); 11904 + } 11905 + if ((g2 | 0) != (i | 0)) { 11906 + Va(h); 11907 + } 11908 + } 11909 + k = 0; 11910 + T = l; 11911 + return k | 0; 11912 + } 11913 + function Zb(a3, b2, c2) { 11914 + a3 = a3 | 0; 11915 + b2 = b2 | 0; 11916 + c2 = c2 | 0; 11917 + var d2 = 0, e2 = 0, f2 = 0; 11918 + f2 = T; 11919 + T = T + 16 | 0; 11920 + d2 = f2; 11921 + e2 = Yb(a3, b2, d2) | 0; 11922 + if (e2 | 0) { 11923 + T = f2; 11924 + return e2 | 0; 11925 + } 11926 + e2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11927 + H() | 0; 11928 + ub(d2, e2 & 15, c2); 11929 + e2 = 0; 11930 + T = f2; 11931 + return e2 | 0; 11932 + } 11933 + function _b(a3, b2, c2) { 11934 + a3 = a3 | 0; 11935 + b2 = b2 | 0; 11936 + c2 = c2 | 0; 11937 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0; 11938 + g2 = T; 11939 + T = T + 16 | 0; 11940 + f2 = g2; 11941 + d2 = Yb(a3, b2, f2) | 0; 11942 + if (d2 | 0) { 11943 + f2 = d2; 11944 + T = g2; 11945 + return f2 | 0; 11946 + } 11947 + d2 = Qd(a3 | 0, b2 | 0, 45) | 0; 11948 + H() | 0; 11949 + d2 = (oa(d2 & 127) | 0) == 0; 11950 + e2 = Qd(a3 | 0, b2 | 0, 52) | 0; 11951 + H() | 0; 11952 + e2 = e2 & 15; 11953 + a: 11954 + do { 11955 + if (!d2) { 11956 + if (e2 | 0) { 11957 + d2 = 1; 11958 + while (true) { 11959 + h = Rd(7, 0, (15 - d2 | 0) * 3 | 0) | 0; 11960 + if (!((h & a3 | 0) == 0 & ((H() | 0) & b2 | 0) == 0)) { 11961 + break a; 11962 + } 11963 + if (d2 >>> 0 < e2 >>> 0) { 11964 + d2 = d2 + 1 | 0; 11965 + } else { 11966 + break; 11967 + } 11968 + } 11969 + } 11970 + vb(f2, e2, 0, 5, c2); 11971 + h = 0; 11972 + T = g2; 11973 + return h | 0; 11974 + } 11975 + } while (0); 11976 + zb(f2, e2, 0, 6, c2); 11977 + h = 0; 11978 + T = g2; 11979 + return h | 0; 11980 + } 11981 + function $b(a3, c2, d2) { 11982 + a3 = a3 | 0; 11983 + c2 = c2 | 0; 11984 + d2 = d2 | 0; 11985 + var e2 = 0, f2 = 0, g2 = 0; 11986 + f2 = Qd(a3 | 0, c2 | 0, 45) | 0; 11987 + H() | 0; 11988 + if (!(oa(f2 & 127) | 0)) { 11989 + f2 = 2; 11990 + b[d2 >> 2] = f2; 11991 + return 0; 11992 + } 11993 + f2 = Qd(a3 | 0, c2 | 0, 52) | 0; 11994 + H() | 0; 11995 + f2 = f2 & 15; 11996 + if (!f2) { 11997 + f2 = 5; 11998 + b[d2 >> 2] = f2; 11999 + return 0; 12000 + } 12001 + e2 = 1; 12002 + while (true) { 12003 + g2 = Rd(7, 0, (15 - e2 | 0) * 3 | 0) | 0; 12004 + if (!((g2 & a3 | 0) == 0 & ((H() | 0) & c2 | 0) == 0)) { 12005 + e2 = 2; 12006 + a3 = 6; 12007 + break; 12008 + } 12009 + if (e2 >>> 0 < f2 >>> 0) { 12010 + e2 = e2 + 1 | 0; 12011 + } else { 12012 + e2 = 5; 12013 + a3 = 6; 12014 + break; 12015 + } 12016 + } 12017 + if ((a3 | 0) == 6) { 12018 + b[d2 >> 2] = e2; 12019 + return 0; 12020 + } 12021 + return 0; 12022 + } 12023 + function ac(a3, c2, d2) { 12024 + a3 = a3 | 0; 12025 + c2 = c2 | 0; 12026 + d2 = d2 | 0; 12027 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 12028 + m = T; 12029 + T = T + 128 | 0; 12030 + k = m + 112 | 0; 12031 + g2 = m + 96 | 0; 12032 + l = m; 12033 + f2 = Qd(a3 | 0, c2 | 0, 52) | 0; 12034 + H() | 0; 12035 + i = f2 & 15; 12036 + b[k >> 2] = i; 12037 + h = Qd(a3 | 0, c2 | 0, 45) | 0; 12038 + H() | 0; 12039 + h = h & 127; 12040 + a: 12041 + do { 12042 + if (oa(h) | 0) { 12043 + if (i | 0) { 12044 + e2 = 1; 12045 + while (true) { 12046 + j = Rd(7, 0, (15 - e2 | 0) * 3 | 0) | 0; 12047 + if (!((j & a3 | 0) == 0 & ((H() | 0) & c2 | 0) == 0)) { 12048 + f2 = 0; 12049 + break a; 12050 + } 12051 + if (e2 >>> 0 < i >>> 0) { 12052 + e2 = e2 + 1 | 0; 12053 + } else { 12054 + break; 12055 + } 12056 + } 12057 + } 12058 + if (!(f2 & 1)) { 12059 + j = Rd(i + 1 | 0, 0, 52) | 0; 12060 + l = H() | 0 | c2 & -15728641; 12061 + k = Rd(7, 0, (14 - i | 0) * 3 | 0) | 0; 12062 + l = ac((j | a3) & ~k, l & ~(H() | 0), d2) | 0; 12063 + T = m; 12064 + return l | 0; 12065 + } else { 12066 + f2 = 1; 12067 + } 12068 + } else { 12069 + f2 = 0; 12070 + } 12071 + } while (0); 12072 + e2 = Yb(a3, c2, g2) | 0; 12073 + if (!e2) { 12074 + if (f2) { 12075 + wb(g2, k, l); 12076 + j = 5; 12077 + } else { 12078 + Ab(g2, k, l); 12079 + j = 6; 12080 + } 12081 + b: 12082 + do { 12083 + if (oa(h) | 0) { 12084 + if (!i) { 12085 + a3 = 5; 12086 + } else { 12087 + e2 = 1; 12088 + while (true) { 12089 + h = Rd(7, 0, (15 - e2 | 0) * 3 | 0) | 0; 12090 + if (!((h & a3 | 0) == 0 & ((H() | 0) & c2 | 0) == 0)) { 12091 + a3 = 2; 12092 + break b; 12093 + } 12094 + if (e2 >>> 0 < i >>> 0) { 12095 + e2 = e2 + 1 | 0; 12096 + } else { 12097 + a3 = 5; 12098 + break; 12099 + } 12100 + } 12101 + } 12102 + } else { 12103 + a3 = 2; 12104 + } 12105 + } while (0); 12106 + Xd(d2 | 0, -1, a3 << 2 | 0) | 0; 12107 + c: 12108 + do { 12109 + if (f2) { 12110 + g2 = 0; 12111 + while (true) { 12112 + h = l + (g2 << 4) | 0; 12113 + yb(h, b[k >> 2] | 0) | 0; 12114 + h = b[h >> 2] | 0; 12115 + i = b[d2 >> 2] | 0; 12116 + if ((i | 0) == -1 | (i | 0) == (h | 0)) { 12117 + e2 = d2; 12118 + } else { 12119 + f2 = 0; 12120 + do { 12121 + f2 = f2 + 1 | 0; 12122 + if (f2 >>> 0 >= a3 >>> 0) { 12123 + e2 = 1; 12124 + break c; 12125 + } 12126 + e2 = d2 + (f2 << 2) | 0; 12127 + i = b[e2 >> 2] | 0; 12128 + } while (!((i | 0) == -1 | (i | 0) == (h | 0))); 12129 + } 12130 + b[e2 >> 2] = h; 12131 + g2 = g2 + 1 | 0; 12132 + if (g2 >>> 0 >= j >>> 0) { 12133 + e2 = 0; 12134 + break; 12135 + } 12136 + } 12137 + } else { 12138 + g2 = 0; 12139 + while (true) { 12140 + h = l + (g2 << 4) | 0; 12141 + xb(h, b[k >> 2] | 0, 0, 1) | 0; 12142 + h = b[h >> 2] | 0; 12143 + i = b[d2 >> 2] | 0; 12144 + if ((i | 0) == -1 | (i | 0) == (h | 0)) { 12145 + e2 = d2; 12146 + } else { 12147 + f2 = 0; 12148 + do { 12149 + f2 = f2 + 1 | 0; 12150 + if (f2 >>> 0 >= a3 >>> 0) { 12151 + e2 = 1; 12152 + break c; 12153 + } 12154 + e2 = d2 + (f2 << 2) | 0; 12155 + i = b[e2 >> 2] | 0; 12156 + } while (!((i | 0) == -1 | (i | 0) == (h | 0))); 12157 + } 12158 + b[e2 >> 2] = h; 12159 + g2 = g2 + 1 | 0; 12160 + if (g2 >>> 0 >= j >>> 0) { 12161 + e2 = 0; 12162 + break; 12163 + } 12164 + } 12165 + } 12166 + } while (0); 12167 + } 12168 + l = e2; 12169 + T = m; 12170 + return l | 0; 12171 + } 12172 + function bc() { 12173 + return 12; 12174 + } 12175 + function cc(a3, c2) { 12176 + a3 = a3 | 0; 12177 + c2 = c2 | 0; 12178 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 12179 + if (a3 >>> 0 > 15) { 12180 + i = 4; 12181 + return i | 0; 12182 + } 12183 + Rd(a3 | 0, 0, 52) | 0; 12184 + i = H() | 0 | 134225919; 12185 + if (!a3) { 12186 + d2 = 0; 12187 + e2 = 0; 12188 + do { 12189 + if (oa(e2) | 0) { 12190 + Rd(e2 | 0, 0, 45) | 0; 12191 + h = i | (H() | 0); 12192 + a3 = c2 + (d2 << 3) | 0; 12193 + b[a3 >> 2] = -1; 12194 + b[a3 + 4 >> 2] = h; 12195 + d2 = d2 + 1 | 0; 12196 + } 12197 + e2 = e2 + 1 | 0; 12198 + } while ((e2 | 0) != 122); 12199 + d2 = 0; 12200 + return d2 | 0; 12201 + } 12202 + d2 = 0; 12203 + h = 0; 12204 + do { 12205 + if (oa(h) | 0) { 12206 + Rd(h | 0, 0, 45) | 0; 12207 + e2 = 1; 12208 + f2 = -1; 12209 + g2 = i | (H() | 0); 12210 + while (true) { 12211 + j = Rd(7, 0, (15 - e2 | 0) * 3 | 0) | 0; 12212 + f2 = f2 & ~j; 12213 + g2 = g2 & ~(H() | 0); 12214 + if ((e2 | 0) == (a3 | 0)) { 12215 + break; 12216 + } else { 12217 + e2 = e2 + 1 | 0; 12218 + } 12219 + } 12220 + j = c2 + (d2 << 3) | 0; 12221 + b[j >> 2] = f2; 12222 + b[j + 4 >> 2] = g2; 12223 + d2 = d2 + 1 | 0; 12224 + } 12225 + h = h + 1 | 0; 12226 + } while ((h | 0) != 122); 12227 + d2 = 0; 12228 + return d2 | 0; 12229 + } 12230 + function dc(a3, c2, d2, e2) { 12231 + a3 = a3 | 0; 12232 + c2 = c2 | 0; 12233 + d2 = d2 | 0; 12234 + e2 = e2 | 0; 12235 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0; 12236 + t2 = T; 12237 + T = T + 16 | 0; 12238 + r2 = t2; 12239 + s2 = Qd(a3 | 0, c2 | 0, 52) | 0; 12240 + H() | 0; 12241 + s2 = s2 & 15; 12242 + if (d2 >>> 0 > 15) { 12243 + s2 = 4; 12244 + T = t2; 12245 + return s2 | 0; 12246 + } 12247 + if ((s2 | 0) < (d2 | 0)) { 12248 + s2 = 12; 12249 + T = t2; 12250 + return s2 | 0; 12251 + } 12252 + if ((s2 | 0) != (d2 | 0)) { 12253 + g2 = Rd(d2 | 0, 0, 52) | 0; 12254 + g2 = g2 | a3; 12255 + i = H() | 0 | c2 & -15728641; 12256 + if ((s2 | 0) > (d2 | 0)) { 12257 + j = d2; 12258 + do { 12259 + q2 = Rd(7, 0, (14 - j | 0) * 3 | 0) | 0; 12260 + j = j + 1 | 0; 12261 + g2 = q2 | g2; 12262 + i = H() | 0 | i; 12263 + } while ((j | 0) < (s2 | 0)); 12264 + q2 = g2; 12265 + } else { 12266 + q2 = g2; 12267 + } 12268 + } else { 12269 + q2 = a3; 12270 + i = c2; 12271 + } 12272 + p3 = Qd(q2 | 0, i | 0, 45) | 0; 12273 + H() | 0; 12274 + a: 12275 + do { 12276 + if (oa(p3 & 127) | 0) { 12277 + j = Qd(q2 | 0, i | 0, 52) | 0; 12278 + H() | 0; 12279 + j = j & 15; 12280 + if (j | 0) { 12281 + g2 = 1; 12282 + while (true) { 12283 + p3 = Rd(7, 0, (15 - g2 | 0) * 3 | 0) | 0; 12284 + if (!((p3 & q2 | 0) == 0 & ((H() | 0) & i | 0) == 0)) { 12285 + k = 33; 12286 + break a; 12287 + } 12288 + if (g2 >>> 0 < j >>> 0) { 12289 + g2 = g2 + 1 | 0; 12290 + } else { 12291 + break; 12292 + } 12293 + } 12294 + } 12295 + p3 = e2; 12296 + b[p3 >> 2] = 0; 12297 + b[p3 + 4 >> 2] = 0; 12298 + if ((s2 | 0) > (d2 | 0)) { 12299 + p3 = c2 & -15728641; 12300 + o = s2; 12301 + while (true) { 12302 + n = o; 12303 + o = o + -1 | 0; 12304 + if (o >>> 0 > 15 | (s2 | 0) < (o | 0)) { 12305 + k = 19; 12306 + break; 12307 + } 12308 + if ((s2 | 0) != (o | 0)) { 12309 + g2 = Rd(o | 0, 0, 52) | 0; 12310 + g2 = g2 | a3; 12311 + j = H() | 0 | p3; 12312 + if ((s2 | 0) < (n | 0)) { 12313 + m = g2; 12314 + } else { 12315 + k = o; 12316 + do { 12317 + m = Rd(7, 0, (14 - k | 0) * 3 | 0) | 0; 12318 + k = k + 1 | 0; 12319 + g2 = m | g2; 12320 + j = H() | 0 | j; 12321 + } while ((k | 0) < (s2 | 0)); 12322 + m = g2; 12323 + } 12324 + } else { 12325 + m = a3; 12326 + j = c2; 12327 + } 12328 + l = Qd(m | 0, j | 0, 45) | 0; 12329 + H() | 0; 12330 + if (!(oa(l & 127) | 0)) { 12331 + g2 = 0; 12332 + } else { 12333 + l = Qd(m | 0, j | 0, 52) | 0; 12334 + H() | 0; 12335 + l = l & 15; 12336 + b: 12337 + do { 12338 + if (!l) { 12339 + g2 = 0; 12340 + } else { 12341 + k = 1; 12342 + while (true) { 12343 + g2 = Qd(m | 0, j | 0, (15 - k | 0) * 3 | 0) | 0; 12344 + H() | 0; 12345 + g2 = g2 & 7; 12346 + if (g2 | 0) { 12347 + break b; 12348 + } 12349 + if (k >>> 0 < l >>> 0) { 12350 + k = k + 1 | 0; 12351 + } else { 12352 + g2 = 0; 12353 + break; 12354 + } 12355 + } 12356 + } 12357 + } while (0); 12358 + g2 = (g2 | 0) == 0 & 1; 12359 + } 12360 + j = Qd(a3 | 0, c2 | 0, (15 - n | 0) * 3 | 0) | 0; 12361 + H() | 0; 12362 + j = j & 7; 12363 + if ((j | 0) == 7) { 12364 + f2 = 5; 12365 + k = 42; 12366 + break; 12367 + } 12368 + g2 = (g2 | 0) != 0; 12369 + if ((j | 0) == 1 & g2) { 12370 + f2 = 5; 12371 + k = 42; 12372 + break; 12373 + } 12374 + m = j + (((j | 0) != 0 & g2) << 31 >> 31) | 0; 12375 + if (m | 0) { 12376 + k = s2 - n | 0; 12377 + k = Oc(7, 0, k, ((k | 0) < 0) << 31 >> 31) | 0; 12378 + l = H() | 0; 12379 + if (g2) { 12380 + g2 = Md(k | 0, l | 0, 5, 0) | 0; 12381 + g2 = Gd(g2 | 0, H() | 0, -5, -1) | 0; 12382 + g2 = Kd(g2 | 0, H() | 0, 6, 0) | 0; 12383 + g2 = Gd(g2 | 0, H() | 0, 1, 0) | 0; 12384 + j = H() | 0; 12385 + } else { 12386 + g2 = k; 12387 + j = l; 12388 + } 12389 + n = m + -1 | 0; 12390 + n = Md(k | 0, l | 0, n | 0, ((n | 0) < 0) << 31 >> 31 | 0) | 0; 12391 + n = Gd(g2 | 0, j | 0, n | 0, H() | 0) | 0; 12392 + m = H() | 0; 12393 + l = e2; 12394 + l = Gd(n | 0, m | 0, b[l >> 2] | 0, b[l + 4 >> 2] | 0) | 0; 12395 + m = H() | 0; 12396 + n = e2; 12397 + b[n >> 2] = l; 12398 + b[n + 4 >> 2] = m; 12399 + } 12400 + if ((o | 0) <= (d2 | 0)) { 12401 + k = 37; 12402 + break; 12403 + } 12404 + } 12405 + if ((k | 0) == 19) { 12406 + I(27795, 27122, 1276, 27158); 12407 + } else if ((k | 0) == 37) { 12408 + h = e2; 12409 + f2 = b[h + 4 >> 2] | 0; 12410 + h = b[h >> 2] | 0; 12411 + break; 12412 + } else if ((k | 0) == 42) { 12413 + T = t2; 12414 + return f2 | 0; 12415 + } 12416 + } else { 12417 + f2 = 0; 12418 + h = 0; 12419 + } 12420 + } else { 12421 + k = 33; 12422 + } 12423 + } while (0); 12424 + c: 12425 + do { 12426 + if ((k | 0) == 33) { 12427 + p3 = e2; 12428 + b[p3 >> 2] = 0; 12429 + b[p3 + 4 >> 2] = 0; 12430 + if ((s2 | 0) > (d2 | 0)) { 12431 + g2 = s2; 12432 + while (true) { 12433 + f2 = Qd(a3 | 0, c2 | 0, (15 - g2 | 0) * 3 | 0) | 0; 12434 + H() | 0; 12435 + f2 = f2 & 7; 12436 + if ((f2 | 0) == 7) { 12437 + f2 = 5; 12438 + break; 12439 + } 12440 + h = s2 - g2 | 0; 12441 + h = Oc(7, 0, h, ((h | 0) < 0) << 31 >> 31) | 0; 12442 + f2 = Md(h | 0, H() | 0, f2 | 0, 0) | 0; 12443 + h = H() | 0; 12444 + p3 = e2; 12445 + h = Gd(b[p3 >> 2] | 0, b[p3 + 4 >> 2] | 0, f2 | 0, h | 0) | 0; 12446 + f2 = H() | 0; 12447 + p3 = e2; 12448 + b[p3 >> 2] = h; 12449 + b[p3 + 4 >> 2] = f2; 12450 + g2 = g2 + -1 | 0; 12451 + if ((g2 | 0) <= (d2 | 0)) { 12452 + break c; 12453 + } 12454 + } 12455 + T = t2; 12456 + return f2 | 0; 12457 + } else { 12458 + f2 = 0; 12459 + h = 0; 12460 + } 12461 + } 12462 + } while (0); 12463 + if (Gb(q2, i, s2, r2) | 0) { 12464 + I(27795, 27122, 1236, 27173); 12465 + } 12466 + s2 = r2; 12467 + r2 = b[s2 + 4 >> 2] | 0; 12468 + if (((f2 | 0) > -1 | (f2 | 0) == -1 & h >>> 0 > 4294967295) & ((r2 | 0) > (f2 | 0) | ((r2 | 0) == (f2 | 0) ? (b[s2 >> 2] | 0) >>> 0 > h >>> 0 : 0))) { 12469 + s2 = 0; 12470 + T = t2; 12471 + return s2 | 0; 12472 + } else { 12473 + I(27795, 27122, 1316, 27158); 12474 + } 12475 + return 0; 12476 + } 12477 + function ec(a3, c2, d2, e2, f2, g2) { 12478 + a3 = a3 | 0; 12479 + c2 = c2 | 0; 12480 + d2 = d2 | 0; 12481 + e2 = e2 | 0; 12482 + f2 = f2 | 0; 12483 + g2 = g2 | 0; 12484 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0; 12485 + m = T; 12486 + T = T + 16 | 0; 12487 + h = m; 12488 + if (f2 >>> 0 > 15) { 12489 + g2 = 4; 12490 + T = m; 12491 + return g2 | 0; 12492 + } 12493 + i = Qd(d2 | 0, e2 | 0, 52) | 0; 12494 + H() | 0; 12495 + i = i & 15; 12496 + if ((i | 0) > (f2 | 0)) { 12497 + g2 = 12; 12498 + T = m; 12499 + return g2 | 0; 12500 + } 12501 + if (Gb(d2, e2, f2, h) | 0) { 12502 + I(27795, 27122, 1236, 27173); 12503 + } 12504 + l = h; 12505 + k = b[l + 4 >> 2] | 0; 12506 + if (!(((c2 | 0) > -1 | (c2 | 0) == -1 & a3 >>> 0 > 4294967295) & ((k | 0) > (c2 | 0) | ((k | 0) == (c2 | 0) ? (b[l >> 2] | 0) >>> 0 > a3 >>> 0 : 0)))) { 12507 + g2 = 2; 12508 + T = m; 12509 + return g2 | 0; 12510 + } 12511 + l = f2 - i | 0; 12512 + f2 = Rd(f2 | 0, 0, 52) | 0; 12513 + j = H() | 0 | e2 & -15728641; 12514 + k = g2; 12515 + b[k >> 2] = f2 | d2; 12516 + b[k + 4 >> 2] = j; 12517 + k = Qd(d2 | 0, e2 | 0, 45) | 0; 12518 + H() | 0; 12519 + a: 12520 + do { 12521 + if (oa(k & 127) | 0) { 12522 + if (i | 0) { 12523 + h = 1; 12524 + while (true) { 12525 + k = Rd(7, 0, (15 - h | 0) * 3 | 0) | 0; 12526 + if (!((k & d2 | 0) == 0 & ((H() | 0) & e2 | 0) == 0)) { 12527 + break a; 12528 + } 12529 + if (h >>> 0 < i >>> 0) { 12530 + h = h + 1 | 0; 12531 + } else { 12532 + break; 12533 + } 12534 + } 12535 + } 12536 + if ((l | 0) < 1) { 12537 + g2 = 0; 12538 + T = m; 12539 + return g2 | 0; 12540 + } 12541 + k = i ^ 15; 12542 + e2 = -1; 12543 + j = 1; 12544 + h = 1; 12545 + while (true) { 12546 + i = l - j | 0; 12547 + i = Oc(7, 0, i, ((i | 0) < 0) << 31 >> 31) | 0; 12548 + d2 = H() | 0; 12549 + do { 12550 + if (h) { 12551 + h = Md(i | 0, d2 | 0, 5, 0) | 0; 12552 + h = Gd(h | 0, H() | 0, -5, -1) | 0; 12553 + h = Kd(h | 0, H() | 0, 6, 0) | 0; 12554 + f2 = H() | 0; 12555 + if ((c2 | 0) > (f2 | 0) | (c2 | 0) == (f2 | 0) & a3 >>> 0 > h >>> 0) { 12556 + c2 = Gd(a3 | 0, c2 | 0, -1, -1) | 0; 12557 + c2 = Hd(c2 | 0, H() | 0, h | 0, f2 | 0) | 0; 12558 + h = H() | 0; 12559 + n = g2; 12560 + p3 = b[n >> 2] | 0; 12561 + n = b[n + 4 >> 2] | 0; 12562 + q2 = (k + e2 | 0) * 3 | 0; 12563 + o = Rd(7, 0, q2 | 0) | 0; 12564 + n = n & ~(H() | 0); 12565 + e2 = Kd(c2 | 0, h | 0, i | 0, d2 | 0) | 0; 12566 + a3 = H() | 0; 12567 + f2 = Gd(e2 | 0, a3 | 0, 2, 0) | 0; 12568 + q2 = Rd(f2 | 0, H() | 0, q2 | 0) | 0; 12569 + n = H() | 0 | n; 12570 + f2 = g2; 12571 + b[f2 >> 2] = q2 | p3 & ~o; 12572 + b[f2 + 4 >> 2] = n; 12573 + a3 = Md(e2 | 0, a3 | 0, i | 0, d2 | 0) | 0; 12574 + a3 = Hd(c2 | 0, h | 0, a3 | 0, H() | 0) | 0; 12575 + h = 0; 12576 + c2 = H() | 0; 12577 + break; 12578 + } else { 12579 + q2 = g2; 12580 + o = b[q2 >> 2] | 0; 12581 + q2 = b[q2 + 4 >> 2] | 0; 12582 + p3 = Rd(7, 0, (k + e2 | 0) * 3 | 0) | 0; 12583 + q2 = q2 & ~(H() | 0); 12584 + h = g2; 12585 + b[h >> 2] = o & ~p3; 12586 + b[h + 4 >> 2] = q2; 12587 + h = 1; 12588 + break; 12589 + } 12590 + } else { 12591 + o = g2; 12592 + f2 = b[o >> 2] | 0; 12593 + o = b[o + 4 >> 2] | 0; 12594 + e2 = (k + e2 | 0) * 3 | 0; 12595 + n = Rd(7, 0, e2 | 0) | 0; 12596 + o = o & ~(H() | 0); 12597 + q2 = Kd(a3 | 0, c2 | 0, i | 0, d2 | 0) | 0; 12598 + h = H() | 0; 12599 + e2 = Rd(q2 | 0, h | 0, e2 | 0) | 0; 12600 + o = H() | 0 | o; 12601 + p3 = g2; 12602 + b[p3 >> 2] = e2 | f2 & ~n; 12603 + b[p3 + 4 >> 2] = o; 12604 + h = Md(q2 | 0, h | 0, i | 0, d2 | 0) | 0; 12605 + a3 = Hd(a3 | 0, c2 | 0, h | 0, H() | 0) | 0; 12606 + h = 0; 12607 + c2 = H() | 0; 12608 + } 12609 + } while (0); 12610 + if ((l | 0) > (j | 0)) { 12611 + e2 = ~j; 12612 + j = j + 1 | 0; 12613 + } else { 12614 + c2 = 0; 12615 + break; 12616 + } 12617 + } 12618 + T = m; 12619 + return c2 | 0; 12620 + } 12621 + } while (0); 12622 + if ((l | 0) < 1) { 12623 + q2 = 0; 12624 + T = m; 12625 + return q2 | 0; 12626 + } 12627 + f2 = i ^ 15; 12628 + h = 1; 12629 + while (true) { 12630 + p3 = l - h | 0; 12631 + p3 = Oc(7, 0, p3, ((p3 | 0) < 0) << 31 >> 31) | 0; 12632 + q2 = H() | 0; 12633 + j = g2; 12634 + d2 = b[j >> 2] | 0; 12635 + j = b[j + 4 >> 2] | 0; 12636 + i = (f2 - h | 0) * 3 | 0; 12637 + e2 = Rd(7, 0, i | 0) | 0; 12638 + j = j & ~(H() | 0); 12639 + n = Kd(a3 | 0, c2 | 0, p3 | 0, q2 | 0) | 0; 12640 + o = H() | 0; 12641 + i = Rd(n | 0, o | 0, i | 0) | 0; 12642 + j = H() | 0 | j; 12643 + k = g2; 12644 + b[k >> 2] = i | d2 & ~e2; 12645 + b[k + 4 >> 2] = j; 12646 + q2 = Md(n | 0, o | 0, p3 | 0, q2 | 0) | 0; 12647 + a3 = Hd(a3 | 0, c2 | 0, q2 | 0, H() | 0) | 0; 12648 + c2 = H() | 0; 12649 + if ((l | 0) <= (h | 0)) { 12650 + c2 = 0; 12651 + break; 12652 + } else { 12653 + h = h + 1 | 0; 12654 + } 12655 + } 12656 + T = m; 12657 + return c2 | 0; 12658 + } 12659 + function fc(a3, c2, d2, e2) { 12660 + a3 = a3 | 0; 12661 + c2 = c2 | 0; 12662 + d2 = d2 | 0; 12663 + e2 = e2 | 0; 12664 + var f2 = 0, g2 = 0, h = 0; 12665 + f2 = Qd(c2 | 0, d2 | 0, 52) | 0; 12666 + H() | 0; 12667 + f2 = f2 & 15; 12668 + if ((c2 | 0) == 0 & (d2 | 0) == 0 | ((e2 | 0) > 15 | (f2 | 0) > (e2 | 0))) { 12669 + g2 = -1; 12670 + c2 = -1; 12671 + d2 = 0; 12672 + f2 = 0; 12673 + } else { 12674 + c2 = Jb(c2, d2, f2 + 1 | 0, e2) | 0; 12675 + h = (H() | 0) & -15728641; 12676 + d2 = Rd(e2 | 0, 0, 52) | 0; 12677 + d2 = c2 | d2; 12678 + h = h | (H() | 0); 12679 + c2 = (Hb(d2, h) | 0) == 0; 12680 + g2 = f2; 12681 + c2 = c2 ? -1 : e2; 12682 + f2 = h; 12683 + } 12684 + h = a3; 12685 + b[h >> 2] = d2; 12686 + b[h + 4 >> 2] = f2; 12687 + b[a3 + 8 >> 2] = g2; 12688 + b[a3 + 12 >> 2] = c2; 12689 + return; 12690 + } 12691 + function gc(a3, c2, d2, e2) { 12692 + a3 = a3 | 0; 12693 + c2 = c2 | 0; 12694 + d2 = d2 | 0; 12695 + e2 = e2 | 0; 12696 + var f2 = 0, g2 = 0; 12697 + f2 = Qd(a3 | 0, c2 | 0, 52) | 0; 12698 + H() | 0; 12699 + f2 = f2 & 15; 12700 + g2 = e2 + 8 | 0; 12701 + b[g2 >> 2] = f2; 12702 + if ((a3 | 0) == 0 & (c2 | 0) == 0 | ((d2 | 0) > 15 | (f2 | 0) > (d2 | 0))) { 12703 + d2 = e2; 12704 + b[d2 >> 2] = 0; 12705 + b[d2 + 4 >> 2] = 0; 12706 + b[g2 >> 2] = -1; 12707 + b[e2 + 12 >> 2] = -1; 12708 + return; 12709 + } 12710 + a3 = Jb(a3, c2, f2 + 1 | 0, d2) | 0; 12711 + g2 = (H() | 0) & -15728641; 12712 + f2 = Rd(d2 | 0, 0, 52) | 0; 12713 + f2 = a3 | f2; 12714 + g2 = g2 | (H() | 0); 12715 + a3 = e2; 12716 + b[a3 >> 2] = f2; 12717 + b[a3 + 4 >> 2] = g2; 12718 + a3 = e2 + 12 | 0; 12719 + if (!(Hb(f2, g2) | 0)) { 12720 + b[a3 >> 2] = -1; 12721 + return; 12722 + } else { 12723 + b[a3 >> 2] = d2; 12724 + return; 12725 + } 12726 + } 12727 + function hc(a3) { 12728 + a3 = a3 | 0; 12729 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 12730 + d2 = a3; 12731 + c2 = b[d2 >> 2] | 0; 12732 + d2 = b[d2 + 4 >> 2] | 0; 12733 + if ((c2 | 0) == 0 & (d2 | 0) == 0) { 12734 + return; 12735 + } 12736 + e2 = Qd(c2 | 0, d2 | 0, 52) | 0; 12737 + H() | 0; 12738 + e2 = e2 & 15; 12739 + i = Rd(1, 0, (e2 ^ 15) * 3 | 0) | 0; 12740 + c2 = Gd(i | 0, H() | 0, c2 | 0, d2 | 0) | 0; 12741 + d2 = H() | 0; 12742 + i = a3; 12743 + b[i >> 2] = c2; 12744 + b[i + 4 >> 2] = d2; 12745 + i = a3 + 8 | 0; 12746 + h = b[i >> 2] | 0; 12747 + if ((e2 | 0) < (h | 0)) { 12748 + return; 12749 + } 12750 + j = a3 + 12 | 0; 12751 + g2 = e2; 12752 + while (true) { 12753 + if ((g2 | 0) == (h | 0)) { 12754 + e2 = 5; 12755 + break; 12756 + } 12757 + k = (g2 | 0) == (b[j >> 2] | 0); 12758 + f2 = (15 - g2 | 0) * 3 | 0; 12759 + e2 = Qd(c2 | 0, d2 | 0, f2 | 0) | 0; 12760 + H() | 0; 12761 + e2 = e2 & 7; 12762 + if (k & ((e2 | 0) == 1 & true)) { 12763 + e2 = 7; 12764 + break; 12765 + } 12766 + if (!((e2 | 0) == 7 & true)) { 12767 + e2 = 10; 12768 + break; 12769 + } 12770 + k = Rd(1, 0, f2 | 0) | 0; 12771 + c2 = Gd(c2 | 0, d2 | 0, k | 0, H() | 0) | 0; 12772 + d2 = H() | 0; 12773 + k = a3; 12774 + b[k >> 2] = c2; 12775 + b[k + 4 >> 2] = d2; 12776 + if ((g2 | 0) > (h | 0)) { 12777 + g2 = g2 + -1 | 0; 12778 + } else { 12779 + e2 = 10; 12780 + break; 12781 + } 12782 + } 12783 + if ((e2 | 0) == 5) { 12784 + k = a3; 12785 + b[k >> 2] = 0; 12786 + b[k + 4 >> 2] = 0; 12787 + b[i >> 2] = -1; 12788 + b[j >> 2] = -1; 12789 + return; 12790 + } else if ((e2 | 0) == 7) { 12791 + h = Rd(1, 0, f2 | 0) | 0; 12792 + h = Gd(c2 | 0, d2 | 0, h | 0, H() | 0) | 0; 12793 + i = H() | 0; 12794 + k = a3; 12795 + b[k >> 2] = h; 12796 + b[k + 4 >> 2] = i; 12797 + b[j >> 2] = g2 + -1; 12798 + return; 12799 + } else if ((e2 | 0) == 10) { 12800 + return; 12801 + } 12802 + } 12803 + function ic(a3) { 12804 + a3 = +a3; 12805 + var b2 = 0; 12806 + b2 = a3 < 0 ? a3 + 6.283185307179586 : a3; 12807 + return +(!(a3 >= 6.283185307179586) ? b2 : b2 + -6.283185307179586); 12808 + } 12809 + function jc(a3, b2) { 12810 + a3 = a3 | 0; 12811 + b2 = b2 | 0; 12812 + if (!(+q(+(+e[a3 >> 3] - +e[b2 >> 3])) < 0.000000000017453292519943298)) { 12813 + b2 = 0; 12814 + return b2 | 0; 12815 + } 12816 + b2 = +q(+(+e[a3 + 8 >> 3] - +e[b2 + 8 >> 3])) < 0.000000000017453292519943298; 12817 + return b2 | 0; 12818 + } 12819 + function kc(a3, b2) { 12820 + a3 = +a3; 12821 + b2 = b2 | 0; 12822 + switch (b2 | 0) { 12823 + case 1: { 12824 + a3 = a3 < 0 ? a3 + 6.283185307179586 : a3; 12825 + break; 12826 + } 12827 + case 2: { 12828 + a3 = a3 > 0 ? a3 + -6.283185307179586 : a3; 12829 + break; 12830 + } 12831 + default: 12832 + } 12833 + return +a3; 12834 + } 12835 + function lc(a3, b2) { 12836 + a3 = a3 | 0; 12837 + b2 = b2 | 0; 12838 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0; 12839 + f2 = +e[b2 >> 3]; 12840 + d2 = +e[a3 >> 3]; 12841 + g2 = +u(+((f2 - d2) * 0.5)); 12842 + c2 = +u(+((+e[b2 + 8 >> 3] - +e[a3 + 8 >> 3]) * 0.5)); 12843 + c2 = g2 * g2 + c2 * (+t(+f2) * +t(+d2) * c2); 12844 + return +(+z(+ +r(+c2), + +r(+(1 - c2))) * 2); 12845 + } 12846 + function mc(a3, b2) { 12847 + a3 = a3 | 0; 12848 + b2 = b2 | 0; 12849 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0; 12850 + f2 = +e[b2 >> 3]; 12851 + d2 = +e[a3 >> 3]; 12852 + g2 = +u(+((f2 - d2) * 0.5)); 12853 + c2 = +u(+((+e[b2 + 8 >> 3] - +e[a3 + 8 >> 3]) * 0.5)); 12854 + c2 = g2 * g2 + c2 * (+t(+f2) * +t(+d2) * c2); 12855 + return +(+z(+ +r(+c2), + +r(+(1 - c2))) * 2 * 6371.007180918475); 12856 + } 12857 + function nc(a3, b2) { 12858 + a3 = a3 | 0; 12859 + b2 = b2 | 0; 12860 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0; 12861 + f2 = +e[b2 >> 3]; 12862 + d2 = +e[a3 >> 3]; 12863 + g2 = +u(+((f2 - d2) * 0.5)); 12864 + c2 = +u(+((+e[b2 + 8 >> 3] - +e[a3 + 8 >> 3]) * 0.5)); 12865 + c2 = g2 * g2 + c2 * (+t(+f2) * +t(+d2) * c2); 12866 + return +(+z(+ +r(+c2), + +r(+(1 - c2))) * 2 * 6371.007180918475 * 1000); 12867 + } 12868 + function oc(a3, b2) { 12869 + a3 = a3 | 0; 12870 + b2 = b2 | 0; 12871 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0; 12872 + g2 = +e[b2 >> 3]; 12873 + d2 = +t(+g2); 12874 + f2 = +e[b2 + 8 >> 3] - +e[a3 + 8 >> 3]; 12875 + h = d2 * +u(+f2); 12876 + c2 = +e[a3 >> 3]; 12877 + return + +z(+h, +(+u(+g2) * +t(+c2) - +t(+f2) * (d2 * +u(+c2)))); 12878 + } 12879 + function pc(a3, c2, d2, f2) { 12880 + a3 = a3 | 0; 12881 + c2 = +c2; 12882 + d2 = +d2; 12883 + f2 = f2 | 0; 12884 + var g2 = 0, h = 0, i = 0, j = 0; 12885 + if (d2 < 0.0000000000000001) { 12886 + b[f2 >> 2] = b[a3 >> 2]; 12887 + b[f2 + 4 >> 2] = b[a3 + 4 >> 2]; 12888 + b[f2 + 8 >> 2] = b[a3 + 8 >> 2]; 12889 + b[f2 + 12 >> 2] = b[a3 + 12 >> 2]; 12890 + return; 12891 + } 12892 + h = c2 < 0 ? c2 + 6.283185307179586 : c2; 12893 + h = !(c2 >= 6.283185307179586) ? h : h + -6.283185307179586; 12894 + do { 12895 + if (h < 0.0000000000000001) { 12896 + c2 = +e[a3 >> 3] + d2; 12897 + e[f2 >> 3] = c2; 12898 + g2 = f2; 12899 + } else { 12900 + g2 = +q(+(h + -3.141592653589793)) < 0.0000000000000001; 12901 + c2 = +e[a3 >> 3]; 12902 + if (g2) { 12903 + c2 = c2 - d2; 12904 + e[f2 >> 3] = c2; 12905 + g2 = f2; 12906 + break; 12907 + } 12908 + i = +t(+d2); 12909 + d2 = +u(+d2); 12910 + c2 = i * +u(+c2) + +t(+h) * (d2 * +t(+c2)); 12911 + c2 = c2 > 1 ? 1 : c2; 12912 + c2 = +x(+(c2 < -1 ? -1 : c2)); 12913 + e[f2 >> 3] = c2; 12914 + if (+q(+(c2 + -1.5707963267948966)) < 0.0000000000000001) { 12915 + e[f2 >> 3] = 1.5707963267948966; 12916 + e[f2 + 8 >> 3] = 0; 12917 + return; 12918 + } 12919 + if (+q(+(c2 + 1.5707963267948966)) < 0.0000000000000001) { 12920 + e[f2 >> 3] = -1.5707963267948966; 12921 + e[f2 + 8 >> 3] = 0; 12922 + return; 12923 + } 12924 + j = 1 / +t(+c2); 12925 + h = d2 * +u(+h) * j; 12926 + d2 = +e[a3 >> 3]; 12927 + c2 = j * ((i - +u(+c2) * +u(+d2)) / +t(+d2)); 12928 + i = h > 1 ? 1 : h; 12929 + c2 = c2 > 1 ? 1 : c2; 12930 + c2 = +e[a3 + 8 >> 3] + +z(+(i < -1 ? -1 : i), +(c2 < -1 ? -1 : c2)); 12931 + if (c2 > 3.141592653589793) { 12932 + do { 12933 + c2 = c2 + -6.283185307179586; 12934 + } while (c2 > 3.141592653589793); 12935 + } 12936 + if (c2 < -3.141592653589793) { 12937 + do { 12938 + c2 = c2 + 6.283185307179586; 12939 + } while (c2 < -3.141592653589793); 12940 + } 12941 + e[f2 + 8 >> 3] = c2; 12942 + return; 12943 + } 12944 + } while (0); 12945 + if (+q(+(c2 + -1.5707963267948966)) < 0.0000000000000001) { 12946 + e[g2 >> 3] = 1.5707963267948966; 12947 + e[f2 + 8 >> 3] = 0; 12948 + return; 12949 + } 12950 + if (+q(+(c2 + 1.5707963267948966)) < 0.0000000000000001) { 12951 + e[g2 >> 3] = -1.5707963267948966; 12952 + e[f2 + 8 >> 3] = 0; 12953 + return; 12954 + } 12955 + c2 = +e[a3 + 8 >> 3]; 12956 + if (c2 > 3.141592653589793) { 12957 + do { 12958 + c2 = c2 + -6.283185307179586; 12959 + } while (c2 > 3.141592653589793); 12960 + } 12961 + if (c2 < -3.141592653589793) { 12962 + do { 12963 + c2 = c2 + 6.283185307179586; 12964 + } while (c2 < -3.141592653589793); 12965 + } 12966 + e[f2 + 8 >> 3] = c2; 12967 + return; 12968 + } 12969 + function qc(a3, b2) { 12970 + a3 = a3 | 0; 12971 + b2 = b2 | 0; 12972 + if (a3 >>> 0 > 15) { 12973 + b2 = 4; 12974 + return b2 | 0; 12975 + } 12976 + e[b2 >> 3] = +e[20656 + (a3 << 3) >> 3]; 12977 + b2 = 0; 12978 + return b2 | 0; 12979 + } 12980 + function rc(a3, b2) { 12981 + a3 = a3 | 0; 12982 + b2 = b2 | 0; 12983 + if (a3 >>> 0 > 15) { 12984 + b2 = 4; 12985 + return b2 | 0; 12986 + } 12987 + e[b2 >> 3] = +e[20784 + (a3 << 3) >> 3]; 12988 + b2 = 0; 12989 + return b2 | 0; 12990 + } 12991 + function sc(a3, b2) { 12992 + a3 = a3 | 0; 12993 + b2 = b2 | 0; 12994 + if (a3 >>> 0 > 15) { 12995 + b2 = 4; 12996 + return b2 | 0; 12997 + } 12998 + e[b2 >> 3] = +e[20912 + (a3 << 3) >> 3]; 12999 + b2 = 0; 13000 + return b2 | 0; 13001 + } 13002 + function tc(a3, b2) { 13003 + a3 = a3 | 0; 13004 + b2 = b2 | 0; 13005 + if (a3 >>> 0 > 15) { 13006 + b2 = 4; 13007 + return b2 | 0; 13008 + } 13009 + e[b2 >> 3] = +e[21040 + (a3 << 3) >> 3]; 13010 + b2 = 0; 13011 + return b2 | 0; 13012 + } 13013 + function uc(a3, c2) { 13014 + a3 = a3 | 0; 13015 + c2 = c2 | 0; 13016 + var d2 = 0; 13017 + if (a3 >>> 0 > 15) { 13018 + c2 = 4; 13019 + return c2 | 0; 13020 + } 13021 + d2 = Oc(7, 0, a3, ((a3 | 0) < 0) << 31 >> 31) | 0; 13022 + d2 = Md(d2 | 0, H() | 0, 120, 0) | 0; 13023 + a3 = H() | 0; 13024 + b[c2 >> 2] = d2 | 2; 13025 + b[c2 + 4 >> 2] = a3; 13026 + c2 = 0; 13027 + return c2 | 0; 13028 + } 13029 + function vc(a3, b2, c2) { 13030 + a3 = a3 | 0; 13031 + b2 = b2 | 0; 13032 + c2 = c2 | 0; 13033 + var d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; 13034 + n = +e[b2 >> 3]; 13035 + l = +e[a3 >> 3]; 13036 + j = +u(+((n - l) * 0.5)); 13037 + g2 = +e[b2 + 8 >> 3]; 13038 + k = +e[a3 + 8 >> 3]; 13039 + h = +u(+((g2 - k) * 0.5)); 13040 + i = +t(+l); 13041 + m = +t(+n); 13042 + h = j * j + h * (m * i * h); 13043 + h = +z(+ +r(+h), + +r(+(1 - h))) * 2; 13044 + j = +e[c2 >> 3]; 13045 + n = +u(+((j - n) * 0.5)); 13046 + d2 = +e[c2 + 8 >> 3]; 13047 + g2 = +u(+((d2 - g2) * 0.5)); 13048 + f2 = +t(+j); 13049 + g2 = n * n + g2 * (m * f2 * g2); 13050 + g2 = +z(+ +r(+g2), + +r(+(1 - g2))) * 2; 13051 + j = +u(+((l - j) * 0.5)); 13052 + d2 = +u(+((k - d2) * 0.5)); 13053 + d2 = j * j + d2 * (i * f2 * d2); 13054 + d2 = +z(+ +r(+d2), + +r(+(1 - d2))) * 2; 13055 + f2 = (h + g2 + d2) * 0.5; 13056 + return +(+y(+ +r(+(+v(+(f2 * 0.5)) * +v(+((f2 - h) * 0.5)) * +v(+((f2 - g2) * 0.5)) * +v(+((f2 - d2) * 0.5))))) * 4); 13057 + } 13058 + function wc(a3, c2, d2) { 13059 + a3 = a3 | 0; 13060 + c2 = c2 | 0; 13061 + d2 = d2 | 0; 13062 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 13063 + j = T; 13064 + T = T + 192 | 0; 13065 + h = j + 168 | 0; 13066 + i = j; 13067 + g2 = Zb(a3, c2, h) | 0; 13068 + if (g2 | 0) { 13069 + d2 = g2; 13070 + T = j; 13071 + return d2 | 0; 13072 + } 13073 + if (_b(a3, c2, i) | 0) { 13074 + I(27795, 27190, 415, 27199); 13075 + } 13076 + c2 = b[i >> 2] | 0; 13077 + if ((c2 | 0) > 0) { 13078 + f2 = +vc(i + 8 | 0, i + 8 + (((c2 | 0) != 1 & 1) << 4) | 0, h) + 0; 13079 + if ((c2 | 0) != 1) { 13080 + a3 = 1; 13081 + do { 13082 + g2 = a3; 13083 + a3 = a3 + 1 | 0; 13084 + f2 = f2 + +vc(i + 8 + (g2 << 4) | 0, i + 8 + (((a3 | 0) % (c2 | 0) | 0) << 4) | 0, h); 13085 + } while ((a3 | 0) < (c2 | 0)); 13086 + } 13087 + } else { 13088 + f2 = 0; 13089 + } 13090 + e[d2 >> 3] = f2; 13091 + d2 = 0; 13092 + T = j; 13093 + return d2 | 0; 13094 + } 13095 + function xc(a3, b2, c2) { 13096 + a3 = a3 | 0; 13097 + b2 = b2 | 0; 13098 + c2 = c2 | 0; 13099 + a3 = wc(a3, b2, c2) | 0; 13100 + if (a3 | 0) { 13101 + return a3 | 0; 13102 + } 13103 + e[c2 >> 3] = +e[c2 >> 3] * 6371.007180918475 * 6371.007180918475; 13104 + return a3 | 0; 13105 + } 13106 + function yc(a3, b2, c2) { 13107 + a3 = a3 | 0; 13108 + b2 = b2 | 0; 13109 + c2 = c2 | 0; 13110 + a3 = wc(a3, b2, c2) | 0; 13111 + if (a3 | 0) { 13112 + return a3 | 0; 13113 + } 13114 + e[c2 >> 3] = +e[c2 >> 3] * 6371.007180918475 * 6371.007180918475 * 1000 * 1000; 13115 + return a3 | 0; 13116 + } 13117 + function zc(a3, c2, d2) { 13118 + a3 = a3 | 0; 13119 + c2 = c2 | 0; 13120 + d2 = d2 | 0; 13121 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 13122 + j = T; 13123 + T = T + 176 | 0; 13124 + i = j; 13125 + a3 = pb(a3, c2, i) | 0; 13126 + if (a3 | 0) { 13127 + i = a3; 13128 + T = j; 13129 + return i | 0; 13130 + } 13131 + e[d2 >> 3] = 0; 13132 + a3 = b[i >> 2] | 0; 13133 + if ((a3 | 0) <= 1) { 13134 + i = 0; 13135 + T = j; 13136 + return i | 0; 13137 + } 13138 + c2 = a3 + -1 | 0; 13139 + a3 = 0; 13140 + f2 = +e[i + 8 >> 3]; 13141 + g2 = +e[i + 16 >> 3]; 13142 + h = 0; 13143 + do { 13144 + a3 = a3 + 1 | 0; 13145 + l = f2; 13146 + f2 = +e[i + 8 + (a3 << 4) >> 3]; 13147 + m = +u(+((f2 - l) * 0.5)); 13148 + k = g2; 13149 + g2 = +e[i + 8 + (a3 << 4) + 8 >> 3]; 13150 + k = +u(+((g2 - k) * 0.5)); 13151 + k = m * m + k * (+t(+f2) * +t(+l) * k); 13152 + h = h + +z(+ +r(+k), + +r(+(1 - k))) * 2; 13153 + } while ((a3 | 0) < (c2 | 0)); 13154 + e[d2 >> 3] = h; 13155 + i = 0; 13156 + T = j; 13157 + return i | 0; 13158 + } 13159 + function Ac(a3, c2, d2) { 13160 + a3 = a3 | 0; 13161 + c2 = c2 | 0; 13162 + d2 = d2 | 0; 13163 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 13164 + j = T; 13165 + T = T + 176 | 0; 13166 + i = j; 13167 + a3 = pb(a3, c2, i) | 0; 13168 + if (a3 | 0) { 13169 + i = a3; 13170 + h = +e[d2 >> 3]; 13171 + h = h * 6371.007180918475; 13172 + e[d2 >> 3] = h; 13173 + T = j; 13174 + return i | 0; 13175 + } 13176 + e[d2 >> 3] = 0; 13177 + a3 = b[i >> 2] | 0; 13178 + if ((a3 | 0) <= 1) { 13179 + i = 0; 13180 + h = 0; 13181 + h = h * 6371.007180918475; 13182 + e[d2 >> 3] = h; 13183 + T = j; 13184 + return i | 0; 13185 + } 13186 + c2 = a3 + -1 | 0; 13187 + a3 = 0; 13188 + f2 = +e[i + 8 >> 3]; 13189 + g2 = +e[i + 16 >> 3]; 13190 + h = 0; 13191 + do { 13192 + a3 = a3 + 1 | 0; 13193 + l = f2; 13194 + f2 = +e[i + 8 + (a3 << 4) >> 3]; 13195 + m = +u(+((f2 - l) * 0.5)); 13196 + k = g2; 13197 + g2 = +e[i + 8 + (a3 << 4) + 8 >> 3]; 13198 + k = +u(+((g2 - k) * 0.5)); 13199 + k = m * m + k * (+t(+l) * +t(+f2) * k); 13200 + h = h + +z(+ +r(+k), + +r(+(1 - k))) * 2; 13201 + } while ((a3 | 0) != (c2 | 0)); 13202 + e[d2 >> 3] = h; 13203 + i = 0; 13204 + m = h; 13205 + m = m * 6371.007180918475; 13206 + e[d2 >> 3] = m; 13207 + T = j; 13208 + return i | 0; 13209 + } 13210 + function Bc(a3, c2, d2) { 13211 + a3 = a3 | 0; 13212 + c2 = c2 | 0; 13213 + d2 = d2 | 0; 13214 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 13215 + j = T; 13216 + T = T + 176 | 0; 13217 + i = j; 13218 + a3 = pb(a3, c2, i) | 0; 13219 + if (a3 | 0) { 13220 + i = a3; 13221 + h = +e[d2 >> 3]; 13222 + h = h * 6371.007180918475; 13223 + h = h * 1000; 13224 + e[d2 >> 3] = h; 13225 + T = j; 13226 + return i | 0; 13227 + } 13228 + e[d2 >> 3] = 0; 13229 + a3 = b[i >> 2] | 0; 13230 + if ((a3 | 0) <= 1) { 13231 + i = 0; 13232 + h = 0; 13233 + h = h * 6371.007180918475; 13234 + h = h * 1000; 13235 + e[d2 >> 3] = h; 13236 + T = j; 13237 + return i | 0; 13238 + } 13239 + c2 = a3 + -1 | 0; 13240 + a3 = 0; 13241 + f2 = +e[i + 8 >> 3]; 13242 + g2 = +e[i + 16 >> 3]; 13243 + h = 0; 13244 + do { 13245 + a3 = a3 + 1 | 0; 13246 + l = f2; 13247 + f2 = +e[i + 8 + (a3 << 4) >> 3]; 13248 + m = +u(+((f2 - l) * 0.5)); 13249 + k = g2; 13250 + g2 = +e[i + 8 + (a3 << 4) + 8 >> 3]; 13251 + k = +u(+((g2 - k) * 0.5)); 13252 + k = m * m + k * (+t(+l) * +t(+f2) * k); 13253 + h = h + +z(+ +r(+k), + +r(+(1 - k))) * 2; 13254 + } while ((a3 | 0) != (c2 | 0)); 13255 + e[d2 >> 3] = h; 13256 + i = 0; 13257 + m = h; 13258 + m = m * 6371.007180918475; 13259 + m = m * 1000; 13260 + e[d2 >> 3] = m; 13261 + T = j; 13262 + return i | 0; 13263 + } 13264 + function Cc(a3) { 13265 + a3 = a3 | 0; 13266 + var c2 = 0, d2 = 0, e2 = 0; 13267 + c2 = Fd(1, 12) | 0; 13268 + if (!c2) { 13269 + I(27280, 27235, 49, 27293); 13270 + } 13271 + d2 = a3 + 4 | 0; 13272 + e2 = b[d2 >> 2] | 0; 13273 + if (e2 | 0) { 13274 + e2 = e2 + 8 | 0; 13275 + b[e2 >> 2] = c2; 13276 + b[d2 >> 2] = c2; 13277 + return c2 | 0; 13278 + } 13279 + if (b[a3 >> 2] | 0) { 13280 + I(27310, 27235, 61, 27333); 13281 + } 13282 + e2 = a3; 13283 + b[e2 >> 2] = c2; 13284 + b[d2 >> 2] = c2; 13285 + return c2 | 0; 13286 + } 13287 + function Dc(a3, c2) { 13288 + a3 = a3 | 0; 13289 + c2 = c2 | 0; 13290 + var d2 = 0, e2 = 0; 13291 + e2 = Dd(24) | 0; 13292 + if (!e2) { 13293 + I(27347, 27235, 78, 27361); 13294 + } 13295 + b[e2 >> 2] = b[c2 >> 2]; 13296 + b[e2 + 4 >> 2] = b[c2 + 4 >> 2]; 13297 + b[e2 + 8 >> 2] = b[c2 + 8 >> 2]; 13298 + b[e2 + 12 >> 2] = b[c2 + 12 >> 2]; 13299 + b[e2 + 16 >> 2] = 0; 13300 + c2 = a3 + 4 | 0; 13301 + d2 = b[c2 >> 2] | 0; 13302 + if (d2 | 0) { 13303 + b[d2 + 16 >> 2] = e2; 13304 + b[c2 >> 2] = e2; 13305 + return e2 | 0; 13306 + } 13307 + if (b[a3 >> 2] | 0) { 13308 + I(27376, 27235, 82, 27361); 13309 + } 13310 + b[a3 >> 2] = e2; 13311 + b[c2 >> 2] = e2; 13312 + return e2 | 0; 13313 + } 13314 + function Ec(a3) { 13315 + a3 = a3 | 0; 13316 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; 13317 + if (!a3) { 13318 + return; 13319 + } 13320 + e2 = 1; 13321 + while (true) { 13322 + c2 = b[a3 >> 2] | 0; 13323 + if (c2 | 0) { 13324 + do { 13325 + d2 = b[c2 >> 2] | 0; 13326 + if (d2 | 0) { 13327 + do { 13328 + f2 = d2; 13329 + d2 = b[d2 + 16 >> 2] | 0; 13330 + Ed(f2); 13331 + } while ((d2 | 0) != 0); 13332 + } 13333 + f2 = c2; 13334 + c2 = b[c2 + 8 >> 2] | 0; 13335 + Ed(f2); 13336 + } while ((c2 | 0) != 0); 13337 + } 13338 + c2 = a3; 13339 + a3 = b[a3 + 8 >> 2] | 0; 13340 + if (!e2) { 13341 + Ed(c2); 13342 + } 13343 + if (!a3) { 13344 + break; 13345 + } else { 13346 + e2 = 0; 13347 + } 13348 + } 13349 + return; 13350 + } 13351 + function Fc(a3) { 13352 + a3 = a3 | 0; 13353 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0, B2 = 0, C2 = 0, D2 = 0, E2 = 0, F = 0, G2 = 0, H2 = 0, J2 = 0, K2 = 0; 13354 + g2 = a3 + 8 | 0; 13355 + if (b[g2 >> 2] | 0) { 13356 + K2 = 1; 13357 + return K2 | 0; 13358 + } 13359 + f2 = b[a3 >> 2] | 0; 13360 + if (!f2) { 13361 + K2 = 0; 13362 + return K2 | 0; 13363 + } 13364 + c2 = f2; 13365 + d2 = 0; 13366 + do { 13367 + d2 = d2 + 1 | 0; 13368 + c2 = b[c2 + 8 >> 2] | 0; 13369 + } while ((c2 | 0) != 0); 13370 + if (d2 >>> 0 < 2) { 13371 + K2 = 0; 13372 + return K2 | 0; 13373 + } 13374 + H2 = Dd(d2 << 2) | 0; 13375 + if (!H2) { 13376 + I(27396, 27235, 317, 27415); 13377 + } 13378 + G2 = Dd(d2 << 5) | 0; 13379 + if (!G2) { 13380 + I(27437, 27235, 321, 27415); 13381 + } 13382 + b[a3 >> 2] = 0; 13383 + z2 = a3 + 4 | 0; 13384 + b[z2 >> 2] = 0; 13385 + b[g2 >> 2] = 0; 13386 + d2 = 0; 13387 + F = 0; 13388 + y2 = 0; 13389 + n = 0; 13390 + a: 13391 + while (true) { 13392 + m = b[f2 >> 2] | 0; 13393 + if (m) { 13394 + h = 0; 13395 + i = m; 13396 + do { 13397 + k = +e[i + 8 >> 3]; 13398 + c2 = i; 13399 + i = b[i + 16 >> 2] | 0; 13400 + l = (i | 0) == 0; 13401 + g2 = l ? m : i; 13402 + j = +e[g2 + 8 >> 3]; 13403 + if (+q(+(k - j)) > 3.141592653589793) { 13404 + K2 = 14; 13405 + break; 13406 + } 13407 + h = h + (j - k) * (+e[c2 >> 3] + +e[g2 >> 3]); 13408 + } while (!l); 13409 + if ((K2 | 0) == 14) { 13410 + K2 = 0; 13411 + h = 0; 13412 + c2 = m; 13413 + do { 13414 + x2 = +e[c2 + 8 >> 3]; 13415 + E2 = c2 + 16 | 0; 13416 + D2 = b[E2 >> 2] | 0; 13417 + D2 = (D2 | 0) == 0 ? m : D2; 13418 + w2 = +e[D2 + 8 >> 3]; 13419 + h = h + (+e[c2 >> 3] + +e[D2 >> 3]) * ((w2 < 0 ? w2 + 6.283185307179586 : w2) - (x2 < 0 ? x2 + 6.283185307179586 : x2)); 13420 + c2 = b[((c2 | 0) == 0 ? f2 : E2) >> 2] | 0; 13421 + } while ((c2 | 0) != 0); 13422 + } 13423 + if (h > 0) { 13424 + b[H2 + (F << 2) >> 2] = f2; 13425 + F = F + 1 | 0; 13426 + g2 = y2; 13427 + c2 = n; 13428 + } else { 13429 + K2 = 19; 13430 + } 13431 + } else { 13432 + K2 = 19; 13433 + } 13434 + if ((K2 | 0) == 19) { 13435 + K2 = 0; 13436 + do { 13437 + if (!d2) { 13438 + if (!n) { 13439 + if (!(b[a3 >> 2] | 0)) { 13440 + g2 = z2; 13441 + i = a3; 13442 + c2 = f2; 13443 + d2 = a3; 13444 + break; 13445 + } else { 13446 + K2 = 27; 13447 + break a; 13448 + } 13449 + } else { 13450 + g2 = z2; 13451 + i = n + 8 | 0; 13452 + c2 = f2; 13453 + d2 = a3; 13454 + break; 13455 + } 13456 + } else { 13457 + c2 = d2 + 8 | 0; 13458 + if (b[c2 >> 2] | 0) { 13459 + K2 = 21; 13460 + break a; 13461 + } 13462 + d2 = Fd(1, 12) | 0; 13463 + if (!d2) { 13464 + K2 = 23; 13465 + break a; 13466 + } 13467 + b[c2 >> 2] = d2; 13468 + g2 = d2 + 4 | 0; 13469 + i = d2; 13470 + c2 = n; 13471 + } 13472 + } while (0); 13473 + b[i >> 2] = f2; 13474 + b[g2 >> 2] = f2; 13475 + i = G2 + (y2 << 5) | 0; 13476 + l = b[f2 >> 2] | 0; 13477 + if (l) { 13478 + m = G2 + (y2 << 5) + 8 | 0; 13479 + e[m >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13480 + n = G2 + (y2 << 5) + 24 | 0; 13481 + e[n >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13482 + e[i >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13483 + o = G2 + (y2 << 5) + 16 | 0; 13484 + e[o >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13485 + u2 = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13486 + v2 = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13487 + g2 = 0; 13488 + p3 = l; 13489 + k = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13490 + s2 = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13491 + t2 = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13492 + j = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 13493 + while (true) { 13494 + h = +e[p3 >> 3]; 13495 + x2 = +e[p3 + 8 >> 3]; 13496 + p3 = b[p3 + 16 >> 2] | 0; 13497 + r2 = (p3 | 0) == 0; 13498 + w2 = +e[(r2 ? l : p3) + 8 >> 3]; 13499 + if (h < k) { 13500 + e[m >> 3] = h; 13501 + k = h; 13502 + } 13503 + if (x2 < s2) { 13504 + e[n >> 3] = x2; 13505 + s2 = x2; 13506 + } 13507 + if (h > t2) { 13508 + e[i >> 3] = h; 13509 + } else { 13510 + h = t2; 13511 + } 13512 + if (x2 > j) { 13513 + e[o >> 3] = x2; 13514 + j = x2; 13515 + } 13516 + u2 = x2 > 0 & x2 < u2 ? x2 : u2; 13517 + v2 = x2 < 0 & x2 > v2 ? x2 : v2; 13518 + g2 = g2 | +q(+(x2 - w2)) > 3.141592653589793; 13519 + if (r2) { 13520 + break; 13521 + } else { 13522 + t2 = h; 13523 + } 13524 + } 13525 + if (g2) { 13526 + e[o >> 3] = v2; 13527 + e[n >> 3] = u2; 13528 + } 13529 + } else { 13530 + b[i >> 2] = 0; 13531 + b[i + 4 >> 2] = 0; 13532 + b[i + 8 >> 2] = 0; 13533 + b[i + 12 >> 2] = 0; 13534 + b[i + 16 >> 2] = 0; 13535 + b[i + 20 >> 2] = 0; 13536 + b[i + 24 >> 2] = 0; 13537 + b[i + 28 >> 2] = 0; 13538 + } 13539 + g2 = y2 + 1 | 0; 13540 + } 13541 + E2 = f2 + 8 | 0; 13542 + f2 = b[E2 >> 2] | 0; 13543 + b[E2 >> 2] = 0; 13544 + if (!f2) { 13545 + K2 = 45; 13546 + break; 13547 + } else { 13548 + y2 = g2; 13549 + n = c2; 13550 + } 13551 + } 13552 + if ((K2 | 0) == 21) { 13553 + I(27213, 27235, 35, 27247); 13554 + } else if ((K2 | 0) == 23) { 13555 + I(27267, 27235, 37, 27247); 13556 + } else if ((K2 | 0) == 27) { 13557 + I(27310, 27235, 61, 27333); 13558 + } else if ((K2 | 0) == 45) { 13559 + b: 13560 + do { 13561 + if ((F | 0) > 0) { 13562 + E2 = (g2 | 0) == 0; 13563 + C2 = g2 << 2; 13564 + D2 = (a3 | 0) == 0; 13565 + B2 = 0; 13566 + c2 = 0; 13567 + while (true) { 13568 + A2 = b[H2 + (B2 << 2) >> 2] | 0; 13569 + if (!E2) { 13570 + y2 = Dd(C2) | 0; 13571 + if (!y2) { 13572 + K2 = 50; 13573 + break; 13574 + } 13575 + z2 = Dd(C2) | 0; 13576 + if (!z2) { 13577 + K2 = 52; 13578 + break; 13579 + } 13580 + c: 13581 + do { 13582 + if (!D2) { 13583 + g2 = 0; 13584 + d2 = 0; 13585 + i = a3; 13586 + while (true) { 13587 + f2 = G2 + (g2 << 5) | 0; 13588 + if (Gc(b[i >> 2] | 0, f2, b[A2 >> 2] | 0) | 0) { 13589 + b[y2 + (d2 << 2) >> 2] = i; 13590 + b[z2 + (d2 << 2) >> 2] = f2; 13591 + r2 = d2 + 1 | 0; 13592 + } else { 13593 + r2 = d2; 13594 + } 13595 + i = b[i + 8 >> 2] | 0; 13596 + if (!i) { 13597 + break; 13598 + } else { 13599 + g2 = g2 + 1 | 0; 13600 + d2 = r2; 13601 + } 13602 + } 13603 + if ((r2 | 0) > 0) { 13604 + f2 = b[y2 >> 2] | 0; 13605 + if ((r2 | 0) == 1) { 13606 + d2 = f2; 13607 + } else { 13608 + o = 0; 13609 + p3 = -1; 13610 + d2 = f2; 13611 + n = f2; 13612 + while (true) { 13613 + l = b[n >> 2] | 0; 13614 + f2 = 0; 13615 + i = 0; 13616 + while (true) { 13617 + g2 = b[b[y2 + (i << 2) >> 2] >> 2] | 0; 13618 + if ((g2 | 0) == (l | 0)) { 13619 + m = f2; 13620 + } else { 13621 + m = f2 + ((Gc(g2, b[z2 + (i << 2) >> 2] | 0, b[l >> 2] | 0) | 0) & 1) | 0; 13622 + } 13623 + i = i + 1 | 0; 13624 + if ((i | 0) == (r2 | 0)) { 13625 + break; 13626 + } else { 13627 + f2 = m; 13628 + } 13629 + } 13630 + g2 = (m | 0) > (p3 | 0); 13631 + d2 = g2 ? n : d2; 13632 + f2 = o + 1 | 0; 13633 + if ((f2 | 0) == (r2 | 0)) { 13634 + break c; 13635 + } 13636 + o = f2; 13637 + p3 = g2 ? m : p3; 13638 + n = b[y2 + (f2 << 2) >> 2] | 0; 13639 + } 13640 + } 13641 + } else { 13642 + d2 = 0; 13643 + } 13644 + } else { 13645 + d2 = 0; 13646 + } 13647 + } while (0); 13648 + Ed(y2); 13649 + Ed(z2); 13650 + if (d2) { 13651 + g2 = d2 + 4 | 0; 13652 + f2 = b[g2 >> 2] | 0; 13653 + if (!f2) { 13654 + if (b[d2 >> 2] | 0) { 13655 + K2 = 70; 13656 + break; 13657 + } 13658 + } else { 13659 + d2 = f2 + 8 | 0; 13660 + } 13661 + b[d2 >> 2] = A2; 13662 + b[g2 >> 2] = A2; 13663 + } else { 13664 + K2 = 73; 13665 + } 13666 + } else { 13667 + K2 = 73; 13668 + } 13669 + if ((K2 | 0) == 73) { 13670 + K2 = 0; 13671 + c2 = b[A2 >> 2] | 0; 13672 + if (c2 | 0) { 13673 + do { 13674 + z2 = c2; 13675 + c2 = b[c2 + 16 >> 2] | 0; 13676 + Ed(z2); 13677 + } while ((c2 | 0) != 0); 13678 + } 13679 + Ed(A2); 13680 + c2 = 1; 13681 + } 13682 + B2 = B2 + 1 | 0; 13683 + if ((B2 | 0) >= (F | 0)) { 13684 + J2 = c2; 13685 + break b; 13686 + } 13687 + } 13688 + if ((K2 | 0) == 50) { 13689 + I(27452, 27235, 249, 27471); 13690 + } else if ((K2 | 0) == 52) { 13691 + I(27490, 27235, 252, 27471); 13692 + } else if ((K2 | 0) == 70) { 13693 + I(27310, 27235, 61, 27333); 13694 + } 13695 + } else { 13696 + J2 = 0; 13697 + } 13698 + } while (0); 13699 + Ed(H2); 13700 + Ed(G2); 13701 + K2 = J2; 13702 + return K2 | 0; 13703 + } 13704 + return 0; 13705 + } 13706 + function Gc(a3, c2, d2) { 13707 + a3 = a3 | 0; 13708 + c2 = c2 | 0; 13709 + d2 = d2 | 0; 13710 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 13711 + if (!(Ca(c2, d2) | 0)) { 13712 + a3 = 0; 13713 + return a3 | 0; 13714 + } 13715 + c2 = Aa(c2) | 0; 13716 + f2 = +e[d2 >> 3]; 13717 + g2 = +e[d2 + 8 >> 3]; 13718 + g2 = c2 & g2 < 0 ? g2 + 6.283185307179586 : g2; 13719 + a3 = b[a3 >> 2] | 0; 13720 + if (!a3) { 13721 + a3 = 0; 13722 + return a3 | 0; 13723 + } 13724 + if (c2) { 13725 + c2 = 0; 13726 + l = g2; 13727 + d2 = a3; 13728 + a: 13729 + while (true) { 13730 + while (true) { 13731 + i = +e[d2 >> 3]; 13732 + g2 = +e[d2 + 8 >> 3]; 13733 + d2 = d2 + 16 | 0; 13734 + m = b[d2 >> 2] | 0; 13735 + m = (m | 0) == 0 ? a3 : m; 13736 + h = +e[m >> 3]; 13737 + j = +e[m + 8 >> 3]; 13738 + if (i > h) { 13739 + k = i; 13740 + i = j; 13741 + } else { 13742 + k = h; 13743 + h = i; 13744 + i = g2; 13745 + g2 = j; 13746 + } 13747 + f2 = f2 == h | f2 == k ? f2 + 0.0000000000000002220446049250313 : f2; 13748 + if (!(f2 < h | f2 > k)) { 13749 + break; 13750 + } 13751 + d2 = b[d2 >> 2] | 0; 13752 + if (!d2) { 13753 + d2 = 22; 13754 + break a; 13755 + } 13756 + } 13757 + j = i < 0 ? i + 6.283185307179586 : i; 13758 + i = g2 < 0 ? g2 + 6.283185307179586 : g2; 13759 + l = j == l | i == l ? l + -0.0000000000000002220446049250313 : l; 13760 + k = j + (i - j) * ((f2 - h) / (k - h)); 13761 + if ((k < 0 ? k + 6.283185307179586 : k) > l) { 13762 + c2 = c2 ^ 1; 13763 + } 13764 + d2 = b[d2 >> 2] | 0; 13765 + if (!d2) { 13766 + d2 = 22; 13767 + break; 13768 + } 13769 + } 13770 + if ((d2 | 0) == 22) { 13771 + return c2 | 0; 13772 + } 13773 + } else { 13774 + c2 = 0; 13775 + l = g2; 13776 + d2 = a3; 13777 + b: 13778 + while (true) { 13779 + while (true) { 13780 + i = +e[d2 >> 3]; 13781 + g2 = +e[d2 + 8 >> 3]; 13782 + d2 = d2 + 16 | 0; 13783 + m = b[d2 >> 2] | 0; 13784 + m = (m | 0) == 0 ? a3 : m; 13785 + h = +e[m >> 3]; 13786 + j = +e[m + 8 >> 3]; 13787 + if (i > h) { 13788 + k = i; 13789 + i = j; 13790 + } else { 13791 + k = h; 13792 + h = i; 13793 + i = g2; 13794 + g2 = j; 13795 + } 13796 + f2 = f2 == h | f2 == k ? f2 + 0.0000000000000002220446049250313 : f2; 13797 + if (!(f2 < h | f2 > k)) { 13798 + break; 13799 + } 13800 + d2 = b[d2 >> 2] | 0; 13801 + if (!d2) { 13802 + d2 = 22; 13803 + break b; 13804 + } 13805 + } 13806 + l = i == l | g2 == l ? l + -0.0000000000000002220446049250313 : l; 13807 + if (i + (g2 - i) * ((f2 - h) / (k - h)) > l) { 13808 + c2 = c2 ^ 1; 13809 + } 13810 + d2 = b[d2 >> 2] | 0; 13811 + if (!d2) { 13812 + d2 = 22; 13813 + break; 13814 + } 13815 + } 13816 + if ((d2 | 0) == 22) { 13817 + return c2 | 0; 13818 + } 13819 + } 13820 + return 0; 13821 + } 13822 + function Hc(c2, d2, e2, f2, g2) { 13823 + c2 = c2 | 0; 13824 + d2 = d2 | 0; 13825 + e2 = e2 | 0; 13826 + f2 = f2 | 0; 13827 + g2 = g2 | 0; 13828 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; 13829 + u2 = T; 13830 + T = T + 32 | 0; 13831 + t2 = u2 + 16 | 0; 13832 + s2 = u2; 13833 + h = Qd(c2 | 0, d2 | 0, 52) | 0; 13834 + H() | 0; 13835 + h = h & 15; 13836 + p3 = Qd(e2 | 0, f2 | 0, 52) | 0; 13837 + H() | 0; 13838 + if ((h | 0) != (p3 & 15 | 0)) { 13839 + t2 = 12; 13840 + T = u2; 13841 + return t2 | 0; 13842 + } 13843 + l = Qd(c2 | 0, d2 | 0, 45) | 0; 13844 + H() | 0; 13845 + l = l & 127; 13846 + m = Qd(e2 | 0, f2 | 0, 45) | 0; 13847 + H() | 0; 13848 + m = m & 127; 13849 + if (l >>> 0 > 121 | m >>> 0 > 121) { 13850 + t2 = 5; 13851 + T = u2; 13852 + return t2 | 0; 13853 + } 13854 + p3 = (l | 0) != (m | 0); 13855 + if (p3) { 13856 + j = wa(l, m) | 0; 13857 + if ((j | 0) == 7) { 13858 + t2 = 1; 13859 + T = u2; 13860 + return t2 | 0; 13861 + } 13862 + k = wa(m, l) | 0; 13863 + if ((k | 0) == 7) { 13864 + I(27514, 27538, 161, 27548); 13865 + } else { 13866 + q2 = j; 13867 + i = k; 13868 + } 13869 + } else { 13870 + q2 = 0; 13871 + i = 0; 13872 + } 13873 + n = oa(l) | 0; 13874 + o = oa(m) | 0; 13875 + b[t2 >> 2] = 0; 13876 + b[t2 + 4 >> 2] = 0; 13877 + b[t2 + 8 >> 2] = 0; 13878 + b[t2 + 12 >> 2] = 0; 13879 + do { 13880 + if (!q2) { 13881 + Xb(e2, f2, t2) | 0; 13882 + if ((n | 0) != 0 & (o | 0) != 0) { 13883 + if ((m | 0) != (l | 0)) { 13884 + I(27621, 27538, 261, 27548); 13885 + } 13886 + i = Pb(c2, d2) | 0; 13887 + h = Pb(e2, f2) | 0; 13888 + if (!((i | 0) == 7 | (h | 0) == 7)) { 13889 + if (!(a2[22000 + (i * 7 | 0) + h >> 0] | 0)) { 13890 + i = b[21168 + (i * 28 | 0) + (h << 2) >> 2] | 0; 13891 + if ((i | 0) > 0) { 13892 + j = t2 + 4 | 0; 13893 + h = 0; 13894 + do { 13895 + _a(j); 13896 + h = h + 1 | 0; 13897 + } while ((h | 0) != (i | 0)); 13898 + r2 = 51; 13899 + } else { 13900 + r2 = 51; 13901 + } 13902 + } else { 13903 + h = 1; 13904 + } 13905 + } else { 13906 + h = 5; 13907 + } 13908 + } else { 13909 + r2 = 51; 13910 + } 13911 + } else { 13912 + m = b[4272 + (l * 28 | 0) + (q2 << 2) >> 2] | 0; 13913 + j = (m | 0) > 0; 13914 + if (!o) { 13915 + if (j) { 13916 + l = 0; 13917 + k = e2; 13918 + j = f2; 13919 + do { 13920 + k = Tb(k, j) | 0; 13921 + j = H() | 0; 13922 + i = ab(i) | 0; 13923 + l = l + 1 | 0; 13924 + } while ((l | 0) != (m | 0)); 13925 + m = i; 13926 + l = k; 13927 + k = j; 13928 + } else { 13929 + m = i; 13930 + l = e2; 13931 + k = f2; 13932 + } 13933 + } else if (j) { 13934 + l = 0; 13935 + k = e2; 13936 + j = f2; 13937 + do { 13938 + k = Sb(k, j) | 0; 13939 + j = H() | 0; 13940 + i = ab(i) | 0; 13941 + if ((i | 0) == 1) { 13942 + i = ab(1) | 0; 13943 + } 13944 + l = l + 1 | 0; 13945 + } while ((l | 0) != (m | 0)); 13946 + m = i; 13947 + l = k; 13948 + k = j; 13949 + } else { 13950 + m = i; 13951 + l = e2; 13952 + k = f2; 13953 + } 13954 + Xb(l, k, t2) | 0; 13955 + if (!p3) { 13956 + I(27563, 27538, 191, 27548); 13957 + } 13958 + j = (n | 0) != 0; 13959 + i = (o | 0) != 0; 13960 + if (j & i) { 13961 + I(27590, 27538, 192, 27548); 13962 + } 13963 + if (!j) { 13964 + if (i) { 13965 + i = Pb(l, k) | 0; 13966 + if ((i | 0) == 7) { 13967 + h = 5; 13968 + break; 13969 + } 13970 + if (a2[22000 + (i * 7 | 0) + m >> 0] | 0) { 13971 + h = 1; 13972 + break; 13973 + } 13974 + l = 0; 13975 + k = b[21168 + (m * 28 | 0) + (i << 2) >> 2] | 0; 13976 + } else { 13977 + l = 0; 13978 + k = 0; 13979 + } 13980 + } else { 13981 + i = Pb(c2, d2) | 0; 13982 + if ((i | 0) == 7) { 13983 + h = 5; 13984 + break; 13985 + } 13986 + if (a2[22000 + (i * 7 | 0) + q2 >> 0] | 0) { 13987 + h = 1; 13988 + break; 13989 + } 13990 + k = b[21168 + (i * 28 | 0) + (q2 << 2) >> 2] | 0; 13991 + l = k; 13992 + } 13993 + if ((l | k | 0) < 0) { 13994 + h = 5; 13995 + } else { 13996 + if ((k | 0) > 0) { 13997 + j = t2 + 4 | 0; 13998 + i = 0; 13999 + do { 14000 + _a(j); 14001 + i = i + 1 | 0; 14002 + } while ((i | 0) != (k | 0)); 14003 + } 14004 + b[s2 >> 2] = 0; 14005 + b[s2 + 4 >> 2] = 0; 14006 + b[s2 + 8 >> 2] = 0; 14007 + Ya(s2, q2); 14008 + if (h | 0) { 14009 + while (true) { 14010 + if (!(Vb(h) | 0)) { 14011 + Xa(s2); 14012 + } else { 14013 + Wa(s2); 14014 + } 14015 + if ((h | 0) > 1) { 14016 + h = h + -1 | 0; 14017 + } else { 14018 + break; 14019 + } 14020 + } 14021 + } 14022 + if ((l | 0) > 0) { 14023 + h = 0; 14024 + do { 14025 + _a(s2); 14026 + h = h + 1 | 0; 14027 + } while ((h | 0) != (l | 0)); 14028 + } 14029 + r2 = t2 + 4 | 0; 14030 + Oa(r2, s2, r2); 14031 + Ma(r2); 14032 + r2 = 51; 14033 + } 14034 + } 14035 + } while (0); 14036 + if ((r2 | 0) == 51) { 14037 + h = t2 + 4 | 0; 14038 + b[g2 >> 2] = b[h >> 2]; 14039 + b[g2 + 4 >> 2] = b[h + 4 >> 2]; 14040 + b[g2 + 8 >> 2] = b[h + 8 >> 2]; 14041 + h = 0; 14042 + } 14043 + t2 = h; 14044 + T = u2; 14045 + return t2 | 0; 14046 + } 14047 + function Ic(a3, c2, d2, e2) { 14048 + a3 = a3 | 0; 14049 + c2 = c2 | 0; 14050 + d2 = d2 | 0; 14051 + e2 = e2 | 0; 14052 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; 14053 + q2 = T; 14054 + T = T + 48 | 0; 14055 + k = q2 + 36 | 0; 14056 + h = q2 + 24 | 0; 14057 + i = q2 + 12 | 0; 14058 + j = q2; 14059 + f2 = Qd(a3 | 0, c2 | 0, 52) | 0; 14060 + H() | 0; 14061 + f2 = f2 & 15; 14062 + n = Qd(a3 | 0, c2 | 0, 45) | 0; 14063 + H() | 0; 14064 + n = n & 127; 14065 + if (n >>> 0 > 121) { 14066 + e2 = 5; 14067 + T = q2; 14068 + return e2 | 0; 14069 + } 14070 + l = oa(n) | 0; 14071 + Rd(f2 | 0, 0, 52) | 0; 14072 + r2 = H() | 0 | 134225919; 14073 + g2 = e2; 14074 + b[g2 >> 2] = -1; 14075 + b[g2 + 4 >> 2] = r2; 14076 + if (!f2) { 14077 + f2 = Ra(d2) | 0; 14078 + if ((f2 | 0) == 7) { 14079 + r2 = 1; 14080 + T = q2; 14081 + return r2 | 0; 14082 + } 14083 + f2 = va(n, f2) | 0; 14084 + if ((f2 | 0) == 127) { 14085 + r2 = 1; 14086 + T = q2; 14087 + return r2 | 0; 14088 + } 14089 + o = Rd(f2 | 0, 0, 45) | 0; 14090 + p3 = H() | 0; 14091 + n = e2; 14092 + p3 = b[n + 4 >> 2] & -1040385 | p3; 14093 + r2 = e2; 14094 + b[r2 >> 2] = b[n >> 2] | o; 14095 + b[r2 + 4 >> 2] = p3; 14096 + r2 = 0; 14097 + T = q2; 14098 + return r2 | 0; 14099 + } 14100 + b[k >> 2] = b[d2 >> 2]; 14101 + b[k + 4 >> 2] = b[d2 + 4 >> 2]; 14102 + b[k + 8 >> 2] = b[d2 + 8 >> 2]; 14103 + d2 = f2; 14104 + while (true) { 14105 + g2 = d2; 14106 + d2 = d2 + -1 | 0; 14107 + b[h >> 2] = b[k >> 2]; 14108 + b[h + 4 >> 2] = b[k + 4 >> 2]; 14109 + b[h + 8 >> 2] = b[k + 8 >> 2]; 14110 + if (!(Vb(g2) | 0)) { 14111 + f2 = Ta(k) | 0; 14112 + if (f2 | 0) { 14113 + d2 = 13; 14114 + break; 14115 + } 14116 + b[i >> 2] = b[k >> 2]; 14117 + b[i + 4 >> 2] = b[k + 4 >> 2]; 14118 + b[i + 8 >> 2] = b[k + 8 >> 2]; 14119 + Xa(i); 14120 + } else { 14121 + f2 = Sa(k) | 0; 14122 + if (f2 | 0) { 14123 + d2 = 13; 14124 + break; 14125 + } 14126 + b[i >> 2] = b[k >> 2]; 14127 + b[i + 4 >> 2] = b[k + 4 >> 2]; 14128 + b[i + 8 >> 2] = b[k + 8 >> 2]; 14129 + Wa(i); 14130 + } 14131 + Pa(h, i, j); 14132 + Ma(j); 14133 + f2 = e2; 14134 + t2 = b[f2 >> 2] | 0; 14135 + f2 = b[f2 + 4 >> 2] | 0; 14136 + u2 = (15 - g2 | 0) * 3 | 0; 14137 + s2 = Rd(7, 0, u2 | 0) | 0; 14138 + f2 = f2 & ~(H() | 0); 14139 + u2 = Rd(Ra(j) | 0, 0, u2 | 0) | 0; 14140 + f2 = H() | 0 | f2; 14141 + r2 = e2; 14142 + b[r2 >> 2] = u2 | t2 & ~s2; 14143 + b[r2 + 4 >> 2] = f2; 14144 + if ((g2 | 0) <= 1) { 14145 + d2 = 14; 14146 + break; 14147 + } 14148 + } 14149 + a: 14150 + do { 14151 + if ((d2 | 0) != 13) { 14152 + if ((d2 | 0) == 14) { 14153 + if (((b[k >> 2] | 0) <= 1 ? (b[k + 4 >> 2] | 0) <= 1 : 0) ? (b[k + 8 >> 2] | 0) <= 1 : 0) { 14154 + d2 = Ra(k) | 0; 14155 + f2 = va(n, d2) | 0; 14156 + if ((f2 | 0) == 127) { 14157 + j = 0; 14158 + } else { 14159 + j = oa(f2) | 0; 14160 + } 14161 + b: 14162 + do { 14163 + if (!d2) { 14164 + if ((l | 0) != 0 & (j | 0) != 0) { 14165 + d2 = Pb(a3, c2) | 0; 14166 + g2 = e2; 14167 + g2 = Pb(b[g2 >> 2] | 0, b[g2 + 4 >> 2] | 0) | 0; 14168 + if ((d2 | 0) == 7 | (g2 | 0) == 7) { 14169 + f2 = 5; 14170 + break a; 14171 + } 14172 + g2 = b[21376 + (d2 * 28 | 0) + (g2 << 2) >> 2] | 0; 14173 + if ((g2 | 0) < 0) { 14174 + f2 = 5; 14175 + break a; 14176 + } 14177 + if (!g2) { 14178 + d2 = 59; 14179 + } else { 14180 + i = e2; 14181 + d2 = 0; 14182 + h = b[i >> 2] | 0; 14183 + i = b[i + 4 >> 2] | 0; 14184 + do { 14185 + h = Rb(h, i) | 0; 14186 + i = H() | 0; 14187 + u2 = e2; 14188 + b[u2 >> 2] = h; 14189 + b[u2 + 4 >> 2] = i; 14190 + d2 = d2 + 1 | 0; 14191 + } while ((d2 | 0) < (g2 | 0)); 14192 + d2 = 58; 14193 + } 14194 + } else { 14195 + d2 = 58; 14196 + } 14197 + } else { 14198 + if (l) { 14199 + f2 = Pb(a3, c2) | 0; 14200 + if ((f2 | 0) == 7) { 14201 + f2 = 5; 14202 + break a; 14203 + } 14204 + g2 = b[21376 + (f2 * 28 | 0) + (d2 << 2) >> 2] | 0; 14205 + if ((g2 | 0) > 0) { 14206 + f2 = d2; 14207 + d2 = 0; 14208 + do { 14209 + f2 = $a(f2) | 0; 14210 + d2 = d2 + 1 | 0; 14211 + } while ((d2 | 0) != (g2 | 0)); 14212 + } else { 14213 + f2 = d2; 14214 + } 14215 + if ((f2 | 0) == 1) { 14216 + f2 = 9; 14217 + break a; 14218 + } 14219 + d2 = va(n, f2) | 0; 14220 + if ((d2 | 0) == 127) { 14221 + I(27648, 27538, 411, 27678); 14222 + } 14223 + if (!(oa(d2) | 0)) { 14224 + p3 = d2; 14225 + o = g2; 14226 + m = f2; 14227 + } else { 14228 + I(27693, 27538, 412, 27678); 14229 + } 14230 + } else { 14231 + p3 = f2; 14232 + o = 0; 14233 + m = d2; 14234 + } 14235 + i = b[4272 + (n * 28 | 0) + (m << 2) >> 2] | 0; 14236 + if ((i | 0) <= -1) { 14237 + I(27724, 27538, 419, 27678); 14238 + } 14239 + if (!j) { 14240 + if ((o | 0) < 0) { 14241 + f2 = 5; 14242 + break a; 14243 + } 14244 + if (o | 0) { 14245 + g2 = e2; 14246 + f2 = 0; 14247 + d2 = b[g2 >> 2] | 0; 14248 + g2 = b[g2 + 4 >> 2] | 0; 14249 + do { 14250 + d2 = Rb(d2, g2) | 0; 14251 + g2 = H() | 0; 14252 + u2 = e2; 14253 + b[u2 >> 2] = d2; 14254 + b[u2 + 4 >> 2] = g2; 14255 + f2 = f2 + 1 | 0; 14256 + } while ((f2 | 0) < (o | 0)); 14257 + } 14258 + if ((i | 0) <= 0) { 14259 + f2 = p3; 14260 + d2 = 58; 14261 + break; 14262 + } 14263 + g2 = e2; 14264 + f2 = 0; 14265 + d2 = b[g2 >> 2] | 0; 14266 + g2 = b[g2 + 4 >> 2] | 0; 14267 + while (true) { 14268 + d2 = Rb(d2, g2) | 0; 14269 + g2 = H() | 0; 14270 + u2 = e2; 14271 + b[u2 >> 2] = d2; 14272 + b[u2 + 4 >> 2] = g2; 14273 + f2 = f2 + 1 | 0; 14274 + if ((f2 | 0) == (i | 0)) { 14275 + f2 = p3; 14276 + d2 = 58; 14277 + break b; 14278 + } 14279 + } 14280 + } 14281 + h = wa(p3, n) | 0; 14282 + if ((h | 0) == 7) { 14283 + I(27514, 27538, 428, 27678); 14284 + } 14285 + f2 = e2; 14286 + d2 = b[f2 >> 2] | 0; 14287 + f2 = b[f2 + 4 >> 2] | 0; 14288 + if ((i | 0) > 0) { 14289 + g2 = 0; 14290 + do { 14291 + d2 = Rb(d2, f2) | 0; 14292 + f2 = H() | 0; 14293 + u2 = e2; 14294 + b[u2 >> 2] = d2; 14295 + b[u2 + 4 >> 2] = f2; 14296 + g2 = g2 + 1 | 0; 14297 + } while ((g2 | 0) != (i | 0)); 14298 + } 14299 + f2 = Pb(d2, f2) | 0; 14300 + if ((f2 | 0) == 7) { 14301 + I(27795, 27538, 440, 27678); 14302 + } 14303 + d2 = pa(p3) | 0; 14304 + d2 = b[(d2 ? 21792 : 21584) + (h * 28 | 0) + (f2 << 2) >> 2] | 0; 14305 + if ((d2 | 0) < 0) { 14306 + I(27795, 27538, 454, 27678); 14307 + } 14308 + if (!d2) { 14309 + f2 = p3; 14310 + d2 = 58; 14311 + } else { 14312 + h = e2; 14313 + f2 = 0; 14314 + g2 = b[h >> 2] | 0; 14315 + h = b[h + 4 >> 2] | 0; 14316 + do { 14317 + g2 = Qb(g2, h) | 0; 14318 + h = H() | 0; 14319 + u2 = e2; 14320 + b[u2 >> 2] = g2; 14321 + b[u2 + 4 >> 2] = h; 14322 + f2 = f2 + 1 | 0; 14323 + } while ((f2 | 0) < (d2 | 0)); 14324 + f2 = p3; 14325 + d2 = 58; 14326 + } 14327 + } 14328 + } while (0); 14329 + if ((d2 | 0) == 58) { 14330 + if (j) { 14331 + d2 = 59; 14332 + } 14333 + } 14334 + if ((d2 | 0) == 59) { 14335 + u2 = e2; 14336 + if ((Pb(b[u2 >> 2] | 0, b[u2 + 4 >> 2] | 0) | 0) == 1) { 14337 + f2 = 9; 14338 + break; 14339 + } 14340 + } 14341 + u2 = e2; 14342 + s2 = b[u2 >> 2] | 0; 14343 + u2 = b[u2 + 4 >> 2] & -1040385; 14344 + t2 = Rd(f2 | 0, 0, 45) | 0; 14345 + u2 = u2 | (H() | 0); 14346 + f2 = e2; 14347 + b[f2 >> 2] = s2 | t2; 14348 + b[f2 + 4 >> 2] = u2; 14349 + f2 = 0; 14350 + } else { 14351 + f2 = 1; 14352 + } 14353 + } 14354 + } 14355 + } while (0); 14356 + u2 = f2; 14357 + T = q2; 14358 + return u2 | 0; 14359 + } 14360 + function Jc(a3, b2, c2, d2, e2, f2) { 14361 + a3 = a3 | 0; 14362 + b2 = b2 | 0; 14363 + c2 = c2 | 0; 14364 + d2 = d2 | 0; 14365 + e2 = e2 | 0; 14366 + f2 = f2 | 0; 14367 + var g2 = 0, h = 0; 14368 + h = T; 14369 + T = T + 16 | 0; 14370 + g2 = h; 14371 + if (!e2) { 14372 + a3 = Hc(a3, b2, c2, d2, g2) | 0; 14373 + if (!a3) { 14374 + eb(g2, f2); 14375 + a3 = 0; 14376 + } 14377 + } else { 14378 + a3 = 15; 14379 + } 14380 + T = h; 14381 + return a3 | 0; 14382 + } 14383 + function Kc(a3, b2, c2, d2, e2) { 14384 + a3 = a3 | 0; 14385 + b2 = b2 | 0; 14386 + c2 = c2 | 0; 14387 + d2 = d2 | 0; 14388 + e2 = e2 | 0; 14389 + var f2 = 0, g2 = 0; 14390 + g2 = T; 14391 + T = T + 16 | 0; 14392 + f2 = g2; 14393 + if (!d2) { 14394 + c2 = fb(c2, f2) | 0; 14395 + if (!c2) { 14396 + c2 = Ic(a3, b2, f2, e2) | 0; 14397 + } 14398 + } else { 14399 + c2 = 15; 14400 + } 14401 + T = g2; 14402 + return c2 | 0; 14403 + } 14404 + function Lc(a3, c2, d2, e2, f2) { 14405 + a3 = a3 | 0; 14406 + c2 = c2 | 0; 14407 + d2 = d2 | 0; 14408 + e2 = e2 | 0; 14409 + f2 = f2 | 0; 14410 + var g2 = 0, h = 0, i = 0, j = 0; 14411 + j = T; 14412 + T = T + 32 | 0; 14413 + h = j + 12 | 0; 14414 + i = j; 14415 + g2 = Hc(a3, c2, a3, c2, h) | 0; 14416 + if (g2 | 0) { 14417 + i = g2; 14418 + T = j; 14419 + return i | 0; 14420 + } 14421 + a3 = Hc(a3, c2, d2, e2, i) | 0; 14422 + if (a3 | 0) { 14423 + i = a3; 14424 + T = j; 14425 + return i | 0; 14426 + } 14427 + h = db(h, i) | 0; 14428 + i = f2; 14429 + b[i >> 2] = h; 14430 + b[i + 4 >> 2] = ((h | 0) < 0) << 31 >> 31; 14431 + i = 0; 14432 + T = j; 14433 + return i | 0; 14434 + } 14435 + function Mc(a3, c2, d2, e2, f2) { 14436 + a3 = a3 | 0; 14437 + c2 = c2 | 0; 14438 + d2 = d2 | 0; 14439 + e2 = e2 | 0; 14440 + f2 = f2 | 0; 14441 + var g2 = 0, h = 0, i = 0, j = 0; 14442 + j = T; 14443 + T = T + 32 | 0; 14444 + h = j + 12 | 0; 14445 + i = j; 14446 + g2 = Hc(a3, c2, a3, c2, h) | 0; 14447 + if (!g2) { 14448 + g2 = Hc(a3, c2, d2, e2, i) | 0; 14449 + if (!g2) { 14450 + e2 = db(h, i) | 0; 14451 + e2 = Gd(e2 | 0, ((e2 | 0) < 0) << 31 >> 31 | 0, 1, 0) | 0; 14452 + h = H() | 0; 14453 + i = f2; 14454 + b[i >> 2] = e2; 14455 + b[i + 4 >> 2] = h; 14456 + i = 0; 14457 + T = j; 14458 + return i | 0; 14459 + } 14460 + } 14461 + i = g2; 14462 + T = j; 14463 + return i | 0; 14464 + } 14465 + function Nc(a3, c2, d2, e2, f2) { 14466 + a3 = a3 | 0; 14467 + c2 = c2 | 0; 14468 + d2 = d2 | 0; 14469 + e2 = e2 | 0; 14470 + f2 = f2 | 0; 14471 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0; 14472 + z2 = T; 14473 + T = T + 48 | 0; 14474 + x2 = z2 + 24 | 0; 14475 + h = z2 + 12 | 0; 14476 + y2 = z2; 14477 + g2 = Hc(a3, c2, a3, c2, x2) | 0; 14478 + if (!g2) { 14479 + g2 = Hc(a3, c2, d2, e2, h) | 0; 14480 + if (!g2) { 14481 + v2 = db(x2, h) | 0; 14482 + w2 = ((v2 | 0) < 0) << 31 >> 31; 14483 + b[x2 >> 2] = 0; 14484 + b[x2 + 4 >> 2] = 0; 14485 + b[x2 + 8 >> 2] = 0; 14486 + b[h >> 2] = 0; 14487 + b[h + 4 >> 2] = 0; 14488 + b[h + 8 >> 2] = 0; 14489 + if (Hc(a3, c2, a3, c2, x2) | 0) { 14490 + I(27795, 27538, 692, 27747); 14491 + } 14492 + if (Hc(a3, c2, d2, e2, h) | 0) { 14493 + I(27795, 27538, 697, 27747); 14494 + } 14495 + gb(x2); 14496 + gb(h); 14497 + l = (v2 | 0) == 0 ? 0 : 1 / +(v2 | 0); 14498 + d2 = b[x2 >> 2] | 0; 14499 + r2 = l * +((b[h >> 2] | 0) - d2 | 0); 14500 + s2 = x2 + 4 | 0; 14501 + e2 = b[s2 >> 2] | 0; 14502 + t2 = l * +((b[h + 4 >> 2] | 0) - e2 | 0); 14503 + u2 = x2 + 8 | 0; 14504 + g2 = b[u2 >> 2] | 0; 14505 + l = l * +((b[h + 8 >> 2] | 0) - g2 | 0); 14506 + b[y2 >> 2] = d2; 14507 + m = y2 + 4 | 0; 14508 + b[m >> 2] = e2; 14509 + n = y2 + 8 | 0; 14510 + b[n >> 2] = g2; 14511 + a: 14512 + do { 14513 + if ((v2 | 0) < 0) { 14514 + g2 = 0; 14515 + } else { 14516 + o = 0; 14517 + p3 = 0; 14518 + while (true) { 14519 + j = +(p3 >>> 0) + 4294967296 * +(o | 0); 14520 + A2 = r2 * j + +(d2 | 0); 14521 + i = t2 * j + +(e2 | 0); 14522 + j = l * j + +(g2 | 0); 14523 + d2 = ~~+Vd(+A2); 14524 + h = ~~+Vd(+i); 14525 + g2 = ~~+Vd(+j); 14526 + A2 = +q(+(+(d2 | 0) - A2)); 14527 + i = +q(+(+(h | 0) - i)); 14528 + j = +q(+(+(g2 | 0) - j)); 14529 + do { 14530 + if (!(A2 > i & A2 > j)) { 14531 + k = 0 - d2 | 0; 14532 + if (i > j) { 14533 + e2 = k - g2 | 0; 14534 + break; 14535 + } else { 14536 + e2 = h; 14537 + g2 = k - h | 0; 14538 + break; 14539 + } 14540 + } else { 14541 + d2 = 0 - (h + g2) | 0; 14542 + e2 = h; 14543 + } 14544 + } while (0); 14545 + b[y2 >> 2] = d2; 14546 + b[m >> 2] = e2; 14547 + b[n >> 2] = g2; 14548 + hb(y2); 14549 + g2 = Ic(a3, c2, y2, f2 + (p3 << 3) | 0) | 0; 14550 + if (g2 | 0) { 14551 + break a; 14552 + } 14553 + if (!((o | 0) < (w2 | 0) | (o | 0) == (w2 | 0) & p3 >>> 0 < v2 >>> 0)) { 14554 + g2 = 0; 14555 + break a; 14556 + } 14557 + d2 = Gd(p3 | 0, o | 0, 1, 0) | 0; 14558 + e2 = H() | 0; 14559 + o = e2; 14560 + p3 = d2; 14561 + d2 = b[x2 >> 2] | 0; 14562 + e2 = b[s2 >> 2] | 0; 14563 + g2 = b[u2 >> 2] | 0; 14564 + } 14565 + } 14566 + } while (0); 14567 + y2 = g2; 14568 + T = z2; 14569 + return y2 | 0; 14570 + } 14571 + } 14572 + y2 = g2; 14573 + T = z2; 14574 + return y2 | 0; 14575 + } 14576 + function Oc(a3, b2, c2, d2) { 14577 + a3 = a3 | 0; 14578 + b2 = b2 | 0; 14579 + c2 = c2 | 0; 14580 + d2 = d2 | 0; 14581 + var e2 = 0, f2 = 0, g2 = 0; 14582 + if ((c2 | 0) == 0 & (d2 | 0) == 0) { 14583 + e2 = 0; 14584 + f2 = 1; 14585 + G(e2 | 0); 14586 + return f2 | 0; 14587 + } 14588 + f2 = a3; 14589 + e2 = b2; 14590 + a3 = 1; 14591 + b2 = 0; 14592 + do { 14593 + g2 = (c2 & 1 | 0) == 0 & true; 14594 + a3 = Md((g2 ? 1 : f2) | 0, (g2 ? 0 : e2) | 0, a3 | 0, b2 | 0) | 0; 14595 + b2 = H() | 0; 14596 + c2 = Pd(c2 | 0, d2 | 0, 1) | 0; 14597 + d2 = H() | 0; 14598 + f2 = Md(f2 | 0, e2 | 0, f2 | 0, e2 | 0) | 0; 14599 + e2 = H() | 0; 14600 + } while (!((c2 | 0) == 0 & (d2 | 0) == 0)); 14601 + G(b2 | 0); 14602 + return a3 | 0; 14603 + } 14604 + function Pc(a3, c2, d2, f2) { 14605 + a3 = a3 | 0; 14606 + c2 = c2 | 0; 14607 + d2 = d2 | 0; 14608 + f2 = f2 | 0; 14609 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 14610 + j = T; 14611 + T = T + 16 | 0; 14612 + h = j; 14613 + i = Qd(a3 | 0, c2 | 0, 52) | 0; 14614 + H() | 0; 14615 + i = i & 15; 14616 + do { 14617 + if (!i) { 14618 + g2 = Qd(a3 | 0, c2 | 0, 45) | 0; 14619 + H() | 0; 14620 + g2 = g2 & 127; 14621 + if (g2 >>> 0 > 121) { 14622 + i = 5; 14623 + T = j; 14624 + return i | 0; 14625 + } else { 14626 + h = 22064 + (g2 << 5) | 0; 14627 + b[d2 >> 2] = b[h >> 2]; 14628 + b[d2 + 4 >> 2] = b[h + 4 >> 2]; 14629 + b[d2 + 8 >> 2] = b[h + 8 >> 2]; 14630 + b[d2 + 12 >> 2] = b[h + 12 >> 2]; 14631 + b[d2 + 16 >> 2] = b[h + 16 >> 2]; 14632 + b[d2 + 20 >> 2] = b[h + 20 >> 2]; 14633 + b[d2 + 24 >> 2] = b[h + 24 >> 2]; 14634 + b[d2 + 28 >> 2] = b[h + 28 >> 2]; 14635 + break; 14636 + } 14637 + } else { 14638 + g2 = Zb(a3, c2, h) | 0; 14639 + if (!g2) { 14640 + l = +e[h >> 3]; 14641 + k = 1 / +t(+l); 14642 + m = +e[25968 + (i << 3) >> 3]; 14643 + e[d2 >> 3] = l + m; 14644 + e[d2 + 8 >> 3] = l - m; 14645 + l = +e[h + 8 >> 3]; 14646 + k = m * k; 14647 + e[d2 + 16 >> 3] = k + l; 14648 + e[d2 + 24 >> 3] = l - k; 14649 + break; 14650 + } 14651 + i = g2; 14652 + T = j; 14653 + return i | 0; 14654 + } 14655 + } while (0); 14656 + Ja(d2, f2 ? 1.4 : 1.1); 14657 + f2 = 26096 + (i << 3) | 0; 14658 + if ((b[f2 >> 2] | 0) == (a3 | 0) ? (b[f2 + 4 >> 2] | 0) == (c2 | 0) : 0) { 14659 + e[d2 >> 3] = 1.5707963267948966; 14660 + } 14661 + i = 26224 + (i << 3) | 0; 14662 + if ((b[i >> 2] | 0) == (a3 | 0) ? (b[i + 4 >> 2] | 0) == (c2 | 0) : 0) { 14663 + e[d2 + 8 >> 3] = -1.5707963267948966; 14664 + } 14665 + if (!(+e[d2 >> 3] == 1.5707963267948966) ? !(+e[d2 + 8 >> 3] == -1.5707963267948966) : 0) { 14666 + i = 0; 14667 + T = j; 14668 + return i | 0; 14669 + } 14670 + e[d2 + 16 >> 3] = 3.141592653589793; 14671 + e[d2 + 24 >> 3] = -3.141592653589793; 14672 + i = 0; 14673 + T = j; 14674 + return i | 0; 14675 + } 14676 + function Qc(c2, d2, e2, f2) { 14677 + c2 = c2 | 0; 14678 + d2 = d2 | 0; 14679 + e2 = e2 | 0; 14680 + f2 = f2 | 0; 14681 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 14682 + l = T; 14683 + T = T + 48 | 0; 14684 + i = l + 32 | 0; 14685 + h = l + 40 | 0; 14686 + j = l; 14687 + Eb(i, 0, 0, 0); 14688 + k = b[i >> 2] | 0; 14689 + i = b[i + 4 >> 2] | 0; 14690 + do { 14691 + if (e2 >>> 0 <= 15) { 14692 + g2 = Xc(f2) | 0; 14693 + if (g2 | 0) { 14694 + f2 = j; 14695 + b[f2 >> 2] = 0; 14696 + b[f2 + 4 >> 2] = 0; 14697 + b[j + 8 >> 2] = g2; 14698 + b[j + 12 >> 2] = -1; 14699 + f2 = j + 16 | 0; 14700 + k = j + 29 | 0; 14701 + b[f2 >> 2] = 0; 14702 + b[f2 + 4 >> 2] = 0; 14703 + b[f2 + 8 >> 2] = 0; 14704 + a2[f2 + 12 >> 0] = 0; 14705 + a2[k >> 0] = a2[h >> 0] | 0; 14706 + a2[k + 1 >> 0] = a2[h + 1 >> 0] | 0; 14707 + a2[k + 2 >> 0] = a2[h + 2 >> 0] | 0; 14708 + break; 14709 + } 14710 + g2 = Fd((b[d2 + 8 >> 2] | 0) + 1 | 0, 32) | 0; 14711 + if (!g2) { 14712 + f2 = j; 14713 + b[f2 >> 2] = 0; 14714 + b[f2 + 4 >> 2] = 0; 14715 + b[j + 8 >> 2] = 13; 14716 + b[j + 12 >> 2] = -1; 14717 + f2 = j + 16 | 0; 14718 + k = j + 29 | 0; 14719 + b[f2 >> 2] = 0; 14720 + b[f2 + 4 >> 2] = 0; 14721 + b[f2 + 8 >> 2] = 0; 14722 + a2[f2 + 12 >> 0] = 0; 14723 + a2[k >> 0] = a2[h >> 0] | 0; 14724 + a2[k + 1 >> 0] = a2[h + 1 >> 0] | 0; 14725 + a2[k + 2 >> 0] = a2[h + 2 >> 0] | 0; 14726 + break; 14727 + } else { 14728 + Yc(d2, g2); 14729 + m = j; 14730 + b[m >> 2] = k; 14731 + b[m + 4 >> 2] = i; 14732 + b[j + 8 >> 2] = 0; 14733 + b[j + 12 >> 2] = e2; 14734 + b[j + 16 >> 2] = f2; 14735 + b[j + 20 >> 2] = d2; 14736 + b[j + 24 >> 2] = g2; 14737 + a2[j + 28 >> 0] = 0; 14738 + k = j + 29 | 0; 14739 + a2[k >> 0] = a2[h >> 0] | 0; 14740 + a2[k + 1 >> 0] = a2[h + 1 >> 0] | 0; 14741 + a2[k + 2 >> 0] = a2[h + 2 >> 0] | 0; 14742 + break; 14743 + } 14744 + } else { 14745 + k = j; 14746 + b[k >> 2] = 0; 14747 + b[k + 4 >> 2] = 0; 14748 + b[j + 8 >> 2] = 4; 14749 + b[j + 12 >> 2] = -1; 14750 + k = j + 16 | 0; 14751 + m = j + 29 | 0; 14752 + b[k >> 2] = 0; 14753 + b[k + 4 >> 2] = 0; 14754 + b[k + 8 >> 2] = 0; 14755 + a2[k + 12 >> 0] = 0; 14756 + a2[m >> 0] = a2[h >> 0] | 0; 14757 + a2[m + 1 >> 0] = a2[h + 1 >> 0] | 0; 14758 + a2[m + 2 >> 0] = a2[h + 2 >> 0] | 0; 14759 + } 14760 + } while (0); 14761 + Rc(j); 14762 + b[c2 >> 2] = b[j >> 2]; 14763 + b[c2 + 4 >> 2] = b[j + 4 >> 2]; 14764 + b[c2 + 8 >> 2] = b[j + 8 >> 2]; 14765 + b[c2 + 12 >> 2] = b[j + 12 >> 2]; 14766 + b[c2 + 16 >> 2] = b[j + 16 >> 2]; 14767 + b[c2 + 20 >> 2] = b[j + 20 >> 2]; 14768 + b[c2 + 24 >> 2] = b[j + 24 >> 2]; 14769 + b[c2 + 28 >> 2] = b[j + 28 >> 2]; 14770 + T = l; 14771 + return; 14772 + } 14773 + function Rc(c2) { 14774 + c2 = c2 | 0; 14775 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; 14776 + w2 = T; 14777 + T = T + 336 | 0; 14778 + p3 = w2 + 168 | 0; 14779 + q2 = w2; 14780 + f2 = c2; 14781 + e2 = b[f2 >> 2] | 0; 14782 + f2 = b[f2 + 4 >> 2] | 0; 14783 + if ((e2 | 0) == 0 & (f2 | 0) == 0) { 14784 + T = w2; 14785 + return; 14786 + } 14787 + d2 = c2 + 28 | 0; 14788 + if (!(a2[d2 >> 0] | 0)) { 14789 + a2[d2 >> 0] = 1; 14790 + } else { 14791 + e2 = Sc(e2, f2) | 0; 14792 + f2 = H() | 0; 14793 + } 14794 + v2 = c2 + 20 | 0; 14795 + if (!(b[b[v2 >> 2] >> 2] | 0)) { 14796 + d2 = c2 + 24 | 0; 14797 + e2 = b[d2 >> 2] | 0; 14798 + if (e2 | 0) { 14799 + Ed(e2); 14800 + } 14801 + u2 = c2; 14802 + b[u2 >> 2] = 0; 14803 + b[u2 + 4 >> 2] = 0; 14804 + b[c2 + 8 >> 2] = 0; 14805 + b[v2 >> 2] = 0; 14806 + b[c2 + 12 >> 2] = -1; 14807 + b[c2 + 16 >> 2] = 0; 14808 + b[d2 >> 2] = 0; 14809 + T = w2; 14810 + return; 14811 + } 14812 + u2 = c2 + 16 | 0; 14813 + d2 = b[u2 >> 2] | 0; 14814 + g2 = d2 & 15; 14815 + a: 14816 + do { 14817 + if (!((e2 | 0) == 0 & (f2 | 0) == 0)) { 14818 + r2 = c2 + 12 | 0; 14819 + n = (g2 | 0) == 3; 14820 + m = d2 & 255; 14821 + k = (g2 | 1 | 0) == 3; 14822 + o = c2 + 24 | 0; 14823 + l = (g2 + -1 | 0) >>> 0 < 3; 14824 + i = (g2 | 2 | 0) == 3; 14825 + j = q2 + 8 | 0; 14826 + b: 14827 + while (true) { 14828 + h = Qd(e2 | 0, f2 | 0, 52) | 0; 14829 + H() | 0; 14830 + h = h & 15; 14831 + if ((h | 0) == (b[r2 >> 2] | 0)) { 14832 + switch (m & 15) { 14833 + case 0: 14834 + case 2: 14835 + case 3: { 14836 + g2 = Zb(e2, f2, p3) | 0; 14837 + if (g2 | 0) { 14838 + s2 = 15; 14839 + break b; 14840 + } 14841 + if (Zc(b[v2 >> 2] | 0, b[o >> 2] | 0, p3) | 0) { 14842 + s2 = 19; 14843 + break b; 14844 + } 14845 + break; 14846 + } 14847 + default: 14848 + } 14849 + if (k ? (g2 = b[(b[v2 >> 2] | 0) + 4 >> 2] | 0, b[p3 >> 2] = b[g2 >> 2], b[p3 + 4 >> 2] = b[g2 + 4 >> 2], b[p3 + 8 >> 2] = b[g2 + 8 >> 2], b[p3 + 12 >> 2] = b[g2 + 12 >> 2], Ca(26832, p3) | 0) : 0) { 14850 + if (Wb(b[(b[v2 >> 2] | 0) + 4 >> 2] | 0, h, q2) | 0) { 14851 + s2 = 25; 14852 + break; 14853 + } 14854 + g2 = q2; 14855 + if ((b[g2 >> 2] | 0) == (e2 | 0) ? (b[g2 + 4 >> 2] | 0) == (f2 | 0) : 0) { 14856 + s2 = 29; 14857 + break; 14858 + } 14859 + } 14860 + if (l) { 14861 + g2 = _b(e2, f2, p3) | 0; 14862 + if (g2 | 0) { 14863 + s2 = 32; 14864 + break; 14865 + } 14866 + if (Pc(e2, f2, q2, 0) | 0) { 14867 + s2 = 36; 14868 + break; 14869 + } 14870 + if (i ? _c(b[v2 >> 2] | 0, b[o >> 2] | 0, p3, q2) | 0 : 0) { 14871 + s2 = 42; 14872 + break; 14873 + } 14874 + if (k ? ad(b[v2 >> 2] | 0, b[o >> 2] | 0, p3, q2) | 0 : 0) { 14875 + s2 = 42; 14876 + break; 14877 + } 14878 + } 14879 + if (n) { 14880 + d2 = Pc(e2, f2, p3, 1) | 0; 14881 + g2 = b[o >> 2] | 0; 14882 + if (d2 | 0) { 14883 + s2 = 45; 14884 + break; 14885 + } 14886 + if (Da(g2, p3) | 0) { 14887 + Ga(q2, p3); 14888 + if (Fa(p3, b[o >> 2] | 0) | 0) { 14889 + s2 = 53; 14890 + break; 14891 + } 14892 + if (Zc(b[v2 >> 2] | 0, b[o >> 2] | 0, j) | 0) { 14893 + s2 = 53; 14894 + break; 14895 + } 14896 + if (ad(b[v2 >> 2] | 0, b[o >> 2] | 0, q2, p3) | 0) { 14897 + s2 = 53; 14898 + break; 14899 + } 14900 + } 14901 + } 14902 + } 14903 + do { 14904 + if ((h | 0) < (b[r2 >> 2] | 0)) { 14905 + d2 = Pc(e2, f2, p3, 1) | 0; 14906 + g2 = b[o >> 2] | 0; 14907 + if (d2 | 0) { 14908 + s2 = 58; 14909 + break b; 14910 + } 14911 + if (!(Da(g2, p3) | 0)) { 14912 + s2 = 73; 14913 + break; 14914 + } 14915 + if (Fa(b[o >> 2] | 0, p3) | 0 ? (Ga(q2, p3), _c(b[v2 >> 2] | 0, b[o >> 2] | 0, q2, p3) | 0) : 0) { 14916 + s2 = 65; 14917 + break b; 14918 + } 14919 + e2 = Kb(e2, f2, h + 1 | 0, q2) | 0; 14920 + if (e2 | 0) { 14921 + s2 = 67; 14922 + break b; 14923 + } 14924 + f2 = q2; 14925 + e2 = b[f2 >> 2] | 0; 14926 + f2 = b[f2 + 4 >> 2] | 0; 14927 + } else { 14928 + s2 = 73; 14929 + } 14930 + } while (0); 14931 + if ((s2 | 0) == 73) { 14932 + s2 = 0; 14933 + e2 = Sc(e2, f2) | 0; 14934 + f2 = H() | 0; 14935 + } 14936 + if ((e2 | 0) == 0 & (f2 | 0) == 0) { 14937 + t2 = o; 14938 + break a; 14939 + } 14940 + } 14941 + switch (s2 | 0) { 14942 + case 15: { 14943 + d2 = b[o >> 2] | 0; 14944 + if (d2 | 0) { 14945 + Ed(d2); 14946 + } 14947 + s2 = c2; 14948 + b[s2 >> 2] = 0; 14949 + b[s2 + 4 >> 2] = 0; 14950 + b[v2 >> 2] = 0; 14951 + b[r2 >> 2] = -1; 14952 + b[u2 >> 2] = 0; 14953 + b[o >> 2] = 0; 14954 + b[c2 + 8 >> 2] = g2; 14955 + s2 = 20; 14956 + break; 14957 + } 14958 + case 19: { 14959 + b[c2 >> 2] = e2; 14960 + b[c2 + 4 >> 2] = f2; 14961 + s2 = 20; 14962 + break; 14963 + } 14964 + case 25: { 14965 + I(27795, 27761, 470, 27772); 14966 + break; 14967 + } 14968 + case 29: { 14969 + b[c2 >> 2] = e2; 14970 + b[c2 + 4 >> 2] = f2; 14971 + T = w2; 14972 + return; 14973 + } 14974 + case 32: { 14975 + d2 = b[o >> 2] | 0; 14976 + if (d2 | 0) { 14977 + Ed(d2); 14978 + } 14979 + t2 = c2; 14980 + b[t2 >> 2] = 0; 14981 + b[t2 + 4 >> 2] = 0; 14982 + b[v2 >> 2] = 0; 14983 + b[r2 >> 2] = -1; 14984 + b[u2 >> 2] = 0; 14985 + b[o >> 2] = 0; 14986 + b[c2 + 8 >> 2] = g2; 14987 + T = w2; 14988 + return; 14989 + } 14990 + case 36: { 14991 + I(27795, 27761, 493, 27772); 14992 + break; 14993 + } 14994 + case 42: { 14995 + b[c2 >> 2] = e2; 14996 + b[c2 + 4 >> 2] = f2; 14997 + T = w2; 14998 + return; 14999 + } 15000 + case 45: { 15001 + if (g2 | 0) { 15002 + Ed(g2); 15003 + } 15004 + s2 = c2; 15005 + b[s2 >> 2] = 0; 15006 + b[s2 + 4 >> 2] = 0; 15007 + b[v2 >> 2] = 0; 15008 + b[r2 >> 2] = -1; 15009 + b[u2 >> 2] = 0; 15010 + b[o >> 2] = 0; 15011 + b[c2 + 8 >> 2] = d2; 15012 + s2 = 55; 15013 + break; 15014 + } 15015 + case 53: { 15016 + b[c2 >> 2] = e2; 15017 + b[c2 + 4 >> 2] = f2; 15018 + s2 = 55; 15019 + break; 15020 + } 15021 + case 58: { 15022 + if (g2 | 0) { 15023 + Ed(g2); 15024 + } 15025 + s2 = c2; 15026 + b[s2 >> 2] = 0; 15027 + b[s2 + 4 >> 2] = 0; 15028 + b[v2 >> 2] = 0; 15029 + b[r2 >> 2] = -1; 15030 + b[u2 >> 2] = 0; 15031 + b[o >> 2] = 0; 15032 + b[c2 + 8 >> 2] = d2; 15033 + s2 = 71; 15034 + break; 15035 + } 15036 + case 65: { 15037 + b[c2 >> 2] = e2; 15038 + b[c2 + 4 >> 2] = f2; 15039 + s2 = 71; 15040 + break; 15041 + } 15042 + case 67: { 15043 + d2 = b[o >> 2] | 0; 15044 + if (d2 | 0) { 15045 + Ed(d2); 15046 + } 15047 + t2 = c2; 15048 + b[t2 >> 2] = 0; 15049 + b[t2 + 4 >> 2] = 0; 15050 + b[v2 >> 2] = 0; 15051 + b[r2 >> 2] = -1; 15052 + b[u2 >> 2] = 0; 15053 + b[o >> 2] = 0; 15054 + b[c2 + 8 >> 2] = e2; 15055 + T = w2; 15056 + return; 15057 + } 15058 + } 15059 + if ((s2 | 0) == 20) { 15060 + T = w2; 15061 + return; 15062 + } else if ((s2 | 0) == 55) { 15063 + T = w2; 15064 + return; 15065 + } else if ((s2 | 0) == 71) { 15066 + T = w2; 15067 + return; 15068 + } 15069 + } else { 15070 + t2 = c2 + 24 | 0; 15071 + } 15072 + } while (0); 15073 + d2 = b[t2 >> 2] | 0; 15074 + if (d2 | 0) { 15075 + Ed(d2); 15076 + } 15077 + s2 = c2; 15078 + b[s2 >> 2] = 0; 15079 + b[s2 + 4 >> 2] = 0; 15080 + b[c2 + 8 >> 2] = 0; 15081 + b[v2 >> 2] = 0; 15082 + b[c2 + 12 >> 2] = -1; 15083 + b[u2 >> 2] = 0; 15084 + b[t2 >> 2] = 0; 15085 + T = w2; 15086 + return; 15087 + } 15088 + function Sc(a3, c2) { 15089 + a3 = a3 | 0; 15090 + c2 = c2 | 0; 15091 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0; 15092 + m = T; 15093 + T = T + 16 | 0; 15094 + l = m; 15095 + e2 = Qd(a3 | 0, c2 | 0, 52) | 0; 15096 + H() | 0; 15097 + e2 = e2 & 15; 15098 + d2 = Qd(a3 | 0, c2 | 0, 45) | 0; 15099 + H() | 0; 15100 + do { 15101 + if (e2) { 15102 + while (true) { 15103 + d2 = Rd(e2 + 4095 | 0, 0, 52) | 0; 15104 + f2 = H() | 0 | c2 & -15728641; 15105 + g2 = (15 - e2 | 0) * 3 | 0; 15106 + h = Rd(7, 0, g2 | 0) | 0; 15107 + i = H() | 0; 15108 + d2 = d2 | a3 | h; 15109 + f2 = f2 | i; 15110 + j = Qd(a3 | 0, c2 | 0, g2 | 0) | 0; 15111 + H() | 0; 15112 + j = j & 7; 15113 + e2 = e2 + -1 | 0; 15114 + if (j >>> 0 < 6) { 15115 + break; 15116 + } 15117 + if (!e2) { 15118 + k = 4; 15119 + break; 15120 + } else { 15121 + c2 = f2; 15122 + a3 = d2; 15123 + } 15124 + } 15125 + if ((k | 0) == 4) { 15126 + d2 = Qd(d2 | 0, f2 | 0, 45) | 0; 15127 + H() | 0; 15128 + break; 15129 + } 15130 + l = (j | 0) == 0 & (Hb(d2, f2) | 0) != 0; 15131 + l = Rd((l ? 2 : 1) + j | 0, 0, g2 | 0) | 0; 15132 + k = H() | 0 | c2 & ~i; 15133 + l = l | a3 & ~h; 15134 + G(k | 0); 15135 + T = m; 15136 + return l | 0; 15137 + } 15138 + } while (0); 15139 + d2 = d2 & 127; 15140 + if (d2 >>> 0 > 120) { 15141 + k = 0; 15142 + l = 0; 15143 + G(k | 0); 15144 + T = m; 15145 + return l | 0; 15146 + } 15147 + Eb(l, 0, d2 + 1 | 0, 0); 15148 + k = b[l + 4 >> 2] | 0; 15149 + l = b[l >> 2] | 0; 15150 + G(k | 0); 15151 + T = m; 15152 + return l | 0; 15153 + } 15154 + function Tc(a3, c2, d2, e2, f2, g2) { 15155 + a3 = a3 | 0; 15156 + c2 = c2 | 0; 15157 + d2 = d2 | 0; 15158 + e2 = e2 | 0; 15159 + f2 = f2 | 0; 15160 + g2 = g2 | 0; 15161 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0; 15162 + r2 = T; 15163 + T = T + 160 | 0; 15164 + m = r2 + 80 | 0; 15165 + i = r2 + 64 | 0; 15166 + n = r2 + 112 | 0; 15167 + q2 = r2; 15168 + Qc(m, a3, c2, d2); 15169 + k = m; 15170 + fc(i, b[k >> 2] | 0, b[k + 4 >> 2] | 0, c2); 15171 + k = i; 15172 + j = b[k >> 2] | 0; 15173 + k = b[k + 4 >> 2] | 0; 15174 + h = b[m + 8 >> 2] | 0; 15175 + o = n + 4 | 0; 15176 + b[o >> 2] = b[m >> 2]; 15177 + b[o + 4 >> 2] = b[m + 4 >> 2]; 15178 + b[o + 8 >> 2] = b[m + 8 >> 2]; 15179 + b[o + 12 >> 2] = b[m + 12 >> 2]; 15180 + b[o + 16 >> 2] = b[m + 16 >> 2]; 15181 + b[o + 20 >> 2] = b[m + 20 >> 2]; 15182 + b[o + 24 >> 2] = b[m + 24 >> 2]; 15183 + b[o + 28 >> 2] = b[m + 28 >> 2]; 15184 + o = q2; 15185 + b[o >> 2] = j; 15186 + b[o + 4 >> 2] = k; 15187 + o = q2 + 8 | 0; 15188 + b[o >> 2] = h; 15189 + a3 = q2 + 12 | 0; 15190 + c2 = n; 15191 + d2 = a3 + 36 | 0; 15192 + do { 15193 + b[a3 >> 2] = b[c2 >> 2]; 15194 + a3 = a3 + 4 | 0; 15195 + c2 = c2 + 4 | 0; 15196 + } while ((a3 | 0) < (d2 | 0)); 15197 + n = q2 + 48 | 0; 15198 + b[n >> 2] = b[i >> 2]; 15199 + b[n + 4 >> 2] = b[i + 4 >> 2]; 15200 + b[n + 8 >> 2] = b[i + 8 >> 2]; 15201 + b[n + 12 >> 2] = b[i + 12 >> 2]; 15202 + if ((j | 0) == 0 & (k | 0) == 0) { 15203 + q2 = h; 15204 + T = r2; 15205 + return q2 | 0; 15206 + } 15207 + d2 = q2 + 16 | 0; 15208 + l = q2 + 24 | 0; 15209 + m = q2 + 28 | 0; 15210 + h = 0; 15211 + i = 0; 15212 + c2 = j; 15213 + a3 = k; 15214 + do { 15215 + if (!((h | 0) < (f2 | 0) | (h | 0) == (f2 | 0) & i >>> 0 < e2 >>> 0)) { 15216 + p3 = 4; 15217 + break; 15218 + } 15219 + k = i; 15220 + i = Gd(i | 0, h | 0, 1, 0) | 0; 15221 + h = H() | 0; 15222 + k = g2 + (k << 3) | 0; 15223 + b[k >> 2] = c2; 15224 + b[k + 4 >> 2] = a3; 15225 + hc(n); 15226 + a3 = n; 15227 + c2 = b[a3 >> 2] | 0; 15228 + a3 = b[a3 + 4 >> 2] | 0; 15229 + if ((c2 | 0) == 0 & (a3 | 0) == 0) { 15230 + Rc(d2); 15231 + c2 = d2; 15232 + a3 = b[c2 >> 2] | 0; 15233 + c2 = b[c2 + 4 >> 2] | 0; 15234 + if ((a3 | 0) == 0 & (c2 | 0) == 0) { 15235 + p3 = 10; 15236 + break; 15237 + } 15238 + gc(a3, c2, b[m >> 2] | 0, n); 15239 + a3 = n; 15240 + c2 = b[a3 >> 2] | 0; 15241 + a3 = b[a3 + 4 >> 2] | 0; 15242 + } 15243 + k = q2; 15244 + b[k >> 2] = c2; 15245 + b[k + 4 >> 2] = a3; 15246 + } while (!((c2 | 0) == 0 & (a3 | 0) == 0)); 15247 + if ((p3 | 0) == 4) { 15248 + a3 = q2 + 40 | 0; 15249 + c2 = b[a3 >> 2] | 0; 15250 + if (c2 | 0) { 15251 + Ed(c2); 15252 + } 15253 + p3 = q2 + 16 | 0; 15254 + b[p3 >> 2] = 0; 15255 + b[p3 + 4 >> 2] = 0; 15256 + b[l >> 2] = 0; 15257 + b[q2 + 36 >> 2] = 0; 15258 + b[m >> 2] = -1; 15259 + b[q2 + 32 >> 2] = 0; 15260 + b[a3 >> 2] = 0; 15261 + gc(0, 0, 0, n); 15262 + b[q2 >> 2] = 0; 15263 + b[q2 + 4 >> 2] = 0; 15264 + b[o >> 2] = 0; 15265 + q2 = 14; 15266 + T = r2; 15267 + return q2 | 0; 15268 + } else if ((p3 | 0) == 10) { 15269 + b[q2 >> 2] = 0; 15270 + b[q2 + 4 >> 2] = 0; 15271 + b[o >> 2] = b[l >> 2]; 15272 + } 15273 + q2 = b[o >> 2] | 0; 15274 + T = r2; 15275 + return q2 | 0; 15276 + } 15277 + function Uc(c2, d2, f2, g2) { 15278 + c2 = c2 | 0; 15279 + d2 = d2 | 0; 15280 + f2 = f2 | 0; 15281 + g2 = g2 | 0; 15282 + var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, r2 = 0; 15283 + o = T; 15284 + T = T + 48 | 0; 15285 + l = o + 32 | 0; 15286 + k = o + 40 | 0; 15287 + m = o; 15288 + if (!(b[c2 >> 2] | 0)) { 15289 + n = g2; 15290 + b[n >> 2] = 0; 15291 + b[n + 4 >> 2] = 0; 15292 + n = 0; 15293 + T = o; 15294 + return n | 0; 15295 + } 15296 + Eb(l, 0, 0, 0); 15297 + j = l; 15298 + h = b[j >> 2] | 0; 15299 + j = b[j + 4 >> 2] | 0; 15300 + do { 15301 + if (d2 >>> 0 > 15) { 15302 + n = m; 15303 + b[n >> 2] = 0; 15304 + b[n + 4 >> 2] = 0; 15305 + b[m + 8 >> 2] = 4; 15306 + b[m + 12 >> 2] = -1; 15307 + n = m + 16 | 0; 15308 + f2 = m + 29 | 0; 15309 + b[n >> 2] = 0; 15310 + b[n + 4 >> 2] = 0; 15311 + b[n + 8 >> 2] = 0; 15312 + a2[n + 12 >> 0] = 0; 15313 + a2[f2 >> 0] = a2[k >> 0] | 0; 15314 + a2[f2 + 1 >> 0] = a2[k + 1 >> 0] | 0; 15315 + a2[f2 + 2 >> 0] = a2[k + 2 >> 0] | 0; 15316 + f2 = 4; 15317 + n = 9; 15318 + } else { 15319 + f2 = Xc(f2) | 0; 15320 + if (f2 | 0) { 15321 + l = m; 15322 + b[l >> 2] = 0; 15323 + b[l + 4 >> 2] = 0; 15324 + b[m + 8 >> 2] = f2; 15325 + b[m + 12 >> 2] = -1; 15326 + l = m + 16 | 0; 15327 + n = m + 29 | 0; 15328 + b[l >> 2] = 0; 15329 + b[l + 4 >> 2] = 0; 15330 + b[l + 8 >> 2] = 0; 15331 + a2[l + 12 >> 0] = 0; 15332 + a2[n >> 0] = a2[k >> 0] | 0; 15333 + a2[n + 1 >> 0] = a2[k + 1 >> 0] | 0; 15334 + a2[n + 2 >> 0] = a2[k + 2 >> 0] | 0; 15335 + n = 9; 15336 + break; 15337 + } 15338 + f2 = Fd((b[c2 + 8 >> 2] | 0) + 1 | 0, 32) | 0; 15339 + if (!f2) { 15340 + n = m; 15341 + b[n >> 2] = 0; 15342 + b[n + 4 >> 2] = 0; 15343 + b[m + 8 >> 2] = 13; 15344 + b[m + 12 >> 2] = -1; 15345 + n = m + 16 | 0; 15346 + f2 = m + 29 | 0; 15347 + b[n >> 2] = 0; 15348 + b[n + 4 >> 2] = 0; 15349 + b[n + 8 >> 2] = 0; 15350 + a2[n + 12 >> 0] = 0; 15351 + a2[f2 >> 0] = a2[k >> 0] | 0; 15352 + a2[f2 + 1 >> 0] = a2[k + 1 >> 0] | 0; 15353 + a2[f2 + 2 >> 0] = a2[k + 2 >> 0] | 0; 15354 + f2 = 13; 15355 + n = 9; 15356 + break; 15357 + } 15358 + Yc(c2, f2); 15359 + r2 = m; 15360 + b[r2 >> 2] = h; 15361 + b[r2 + 4 >> 2] = j; 15362 + j = m + 8 | 0; 15363 + b[j >> 2] = 0; 15364 + b[m + 12 >> 2] = d2; 15365 + b[m + 20 >> 2] = c2; 15366 + b[m + 24 >> 2] = f2; 15367 + a2[m + 28 >> 0] = 0; 15368 + h = m + 29 | 0; 15369 + a2[h >> 0] = a2[k >> 0] | 0; 15370 + a2[h + 1 >> 0] = a2[k + 1 >> 0] | 0; 15371 + a2[h + 2 >> 0] = a2[k + 2 >> 0] | 0; 15372 + b[m + 16 >> 2] = 3; 15373 + p3 = +Ba(f2); 15374 + p3 = p3 * +za(f2); 15375 + i = +q(+ +e[f2 >> 3]); 15376 + i = p3 / +t(+ +Ud(+i, + +q(+ +e[f2 + 8 >> 3]))) * 6371.007180918475 * 6371.007180918475; 15377 + h = m + 12 | 0; 15378 + f2 = b[h >> 2] | 0; 15379 + a: 15380 + do { 15381 + if ((f2 | 0) > 0) { 15382 + do { 15383 + qc(f2 + -1 | 0, l) | 0; 15384 + if (!(i / +e[l >> 3] > 10)) { 15385 + break a; 15386 + } 15387 + r2 = b[h >> 2] | 0; 15388 + f2 = r2 + -1 | 0; 15389 + b[h >> 2] = f2; 15390 + } while ((r2 | 0) > 1); 15391 + } 15392 + } while (0); 15393 + Rc(m); 15394 + h = g2; 15395 + b[h >> 2] = 0; 15396 + b[h + 4 >> 2] = 0; 15397 + h = m; 15398 + f2 = b[h >> 2] | 0; 15399 + h = b[h + 4 >> 2] | 0; 15400 + if (!((f2 | 0) == 0 & (h | 0) == 0)) { 15401 + do { 15402 + Gb(f2, h, d2, l) | 0; 15403 + k = l; 15404 + c2 = g2; 15405 + k = Gd(b[c2 >> 2] | 0, b[c2 + 4 >> 2] | 0, b[k >> 2] | 0, b[k + 4 >> 2] | 0) | 0; 15406 + c2 = H() | 0; 15407 + r2 = g2; 15408 + b[r2 >> 2] = k; 15409 + b[r2 + 4 >> 2] = c2; 15410 + Rc(m); 15411 + r2 = m; 15412 + f2 = b[r2 >> 2] | 0; 15413 + h = b[r2 + 4 >> 2] | 0; 15414 + } while (!((f2 | 0) == 0 & (h | 0) == 0)); 15415 + } 15416 + f2 = b[j >> 2] | 0; 15417 + } 15418 + } while (0); 15419 + r2 = f2; 15420 + T = o; 15421 + return r2 | 0; 15422 + } 15423 + function Vc(a3, c2, d2) { 15424 + a3 = a3 | 0; 15425 + c2 = c2 | 0; 15426 + d2 = d2 | 0; 15427 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; 15428 + if (!(Ca(c2, d2) | 0)) { 15429 + o = 0; 15430 + return o | 0; 15431 + } 15432 + c2 = Aa(c2) | 0; 15433 + f2 = +e[d2 >> 3]; 15434 + g2 = +e[d2 + 8 >> 3]; 15435 + g2 = c2 & g2 < 0 ? g2 + 6.283185307179586 : g2; 15436 + o = b[a3 >> 2] | 0; 15437 + if ((o | 0) <= 0) { 15438 + o = 0; 15439 + return o | 0; 15440 + } 15441 + n = b[a3 + 4 >> 2] | 0; 15442 + if (c2) { 15443 + c2 = 0; 15444 + m = g2; 15445 + d2 = -1; 15446 + a3 = 0; 15447 + a: 15448 + while (true) { 15449 + l = a3; 15450 + while (true) { 15451 + i = +e[n + (l << 4) >> 3]; 15452 + g2 = +e[n + (l << 4) + 8 >> 3]; 15453 + a3 = (d2 + 2 | 0) % (o | 0) | 0; 15454 + h = +e[n + (a3 << 4) >> 3]; 15455 + j = +e[n + (a3 << 4) + 8 >> 3]; 15456 + if (i > h) { 15457 + k = i; 15458 + i = j; 15459 + } else { 15460 + k = h; 15461 + h = i; 15462 + i = g2; 15463 + g2 = j; 15464 + } 15465 + f2 = f2 == h | f2 == k ? f2 + 0.0000000000000002220446049250313 : f2; 15466 + if (!(f2 < h | f2 > k)) { 15467 + break; 15468 + } 15469 + d2 = l + 1 | 0; 15470 + if ((d2 | 0) >= (o | 0)) { 15471 + d2 = 22; 15472 + break a; 15473 + } else { 15474 + a3 = l; 15475 + l = d2; 15476 + d2 = a3; 15477 + } 15478 + } 15479 + j = i < 0 ? i + 6.283185307179586 : i; 15480 + i = g2 < 0 ? g2 + 6.283185307179586 : g2; 15481 + m = j == m | i == m ? m + -0.0000000000000002220446049250313 : m; 15482 + k = j + (i - j) * ((f2 - h) / (k - h)); 15483 + if ((k < 0 ? k + 6.283185307179586 : k) > m) { 15484 + c2 = c2 ^ 1; 15485 + } 15486 + a3 = l + 1 | 0; 15487 + if ((a3 | 0) >= (o | 0)) { 15488 + d2 = 22; 15489 + break; 15490 + } else { 15491 + d2 = l; 15492 + } 15493 + } 15494 + if ((d2 | 0) == 22) { 15495 + return c2 | 0; 15496 + } 15497 + } else { 15498 + c2 = 0; 15499 + m = g2; 15500 + d2 = -1; 15501 + a3 = 0; 15502 + b: 15503 + while (true) { 15504 + l = a3; 15505 + while (true) { 15506 + i = +e[n + (l << 4) >> 3]; 15507 + g2 = +e[n + (l << 4) + 8 >> 3]; 15508 + a3 = (d2 + 2 | 0) % (o | 0) | 0; 15509 + h = +e[n + (a3 << 4) >> 3]; 15510 + j = +e[n + (a3 << 4) + 8 >> 3]; 15511 + if (i > h) { 15512 + k = i; 15513 + i = j; 15514 + } else { 15515 + k = h; 15516 + h = i; 15517 + i = g2; 15518 + g2 = j; 15519 + } 15520 + f2 = f2 == h | f2 == k ? f2 + 0.0000000000000002220446049250313 : f2; 15521 + if (!(f2 < h | f2 > k)) { 15522 + break; 15523 + } 15524 + d2 = l + 1 | 0; 15525 + if ((d2 | 0) >= (o | 0)) { 15526 + d2 = 22; 15527 + break b; 15528 + } else { 15529 + a3 = l; 15530 + l = d2; 15531 + d2 = a3; 15532 + } 15533 + } 15534 + m = i == m | g2 == m ? m + -0.0000000000000002220446049250313 : m; 15535 + if (i + (g2 - i) * ((f2 - h) / (k - h)) > m) { 15536 + c2 = c2 ^ 1; 15537 + } 15538 + a3 = l + 1 | 0; 15539 + if ((a3 | 0) >= (o | 0)) { 15540 + d2 = 22; 15541 + break; 15542 + } else { 15543 + d2 = l; 15544 + } 15545 + } 15546 + if ((d2 | 0) == 22) { 15547 + return c2 | 0; 15548 + } 15549 + } 15550 + return 0; 15551 + } 15552 + function Wc(a3, c2) { 15553 + a3 = a3 | 0; 15554 + c2 = c2 | 0; 15555 + var d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0; 15556 + r2 = b[a3 >> 2] | 0; 15557 + if (!r2) { 15558 + b[c2 >> 2] = 0; 15559 + b[c2 + 4 >> 2] = 0; 15560 + b[c2 + 8 >> 2] = 0; 15561 + b[c2 + 12 >> 2] = 0; 15562 + b[c2 + 16 >> 2] = 0; 15563 + b[c2 + 20 >> 2] = 0; 15564 + b[c2 + 24 >> 2] = 0; 15565 + b[c2 + 28 >> 2] = 0; 15566 + return; 15567 + } 15568 + s2 = c2 + 8 | 0; 15569 + e[s2 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15570 + t2 = c2 + 24 | 0; 15571 + e[t2 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15572 + e[c2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15573 + u2 = c2 + 16 | 0; 15574 + e[u2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15575 + if ((r2 | 0) <= 0) { 15576 + return; 15577 + } 15578 + o = b[a3 + 4 >> 2] | 0; 15579 + l = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15580 + m = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15581 + n = 0; 15582 + a3 = -1; 15583 + h = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15584 + i = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15585 + k = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15586 + f2 = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15587 + p3 = 0; 15588 + while (true) { 15589 + d2 = +e[o + (p3 << 4) >> 3]; 15590 + j = +e[o + (p3 << 4) + 8 >> 3]; 15591 + a3 = a3 + 2 | 0; 15592 + g2 = +e[o + (((a3 | 0) == (r2 | 0) ? 0 : a3) << 4) + 8 >> 3]; 15593 + if (d2 < h) { 15594 + e[s2 >> 3] = d2; 15595 + h = d2; 15596 + } 15597 + if (j < i) { 15598 + e[t2 >> 3] = j; 15599 + i = j; 15600 + } 15601 + if (d2 > k) { 15602 + e[c2 >> 3] = d2; 15603 + } else { 15604 + d2 = k; 15605 + } 15606 + if (j > f2) { 15607 + e[u2 >> 3] = j; 15608 + f2 = j; 15609 + } 15610 + l = j > 0 & j < l ? j : l; 15611 + m = j < 0 & j > m ? j : m; 15612 + n = n | +q(+(j - g2)) > 3.141592653589793; 15613 + a3 = p3 + 1 | 0; 15614 + if ((a3 | 0) == (r2 | 0)) { 15615 + break; 15616 + } else { 15617 + v2 = p3; 15618 + k = d2; 15619 + p3 = a3; 15620 + a3 = v2; 15621 + } 15622 + } 15623 + if (!n) { 15624 + return; 15625 + } 15626 + e[u2 >> 3] = m; 15627 + e[t2 >> 3] = l; 15628 + return; 15629 + } 15630 + function Xc(a3) { 15631 + a3 = a3 | 0; 15632 + return (a3 >>> 0 < 4 ? 0 : 15) | 0; 15633 + } 15634 + function Yc(a3, c2) { 15635 + a3 = a3 | 0; 15636 + c2 = c2 | 0; 15637 + var d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0; 15638 + r2 = b[a3 >> 2] | 0; 15639 + if (r2) { 15640 + s2 = c2 + 8 | 0; 15641 + e[s2 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15642 + t2 = c2 + 24 | 0; 15643 + e[t2 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15644 + e[c2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15645 + u2 = c2 + 16 | 0; 15646 + e[u2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15647 + if ((r2 | 0) > 0) { 15648 + g2 = b[a3 + 4 >> 2] | 0; 15649 + o = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15650 + p3 = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15651 + f2 = 0; 15652 + d2 = -1; 15653 + k = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15654 + l = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15655 + n = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15656 + i = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15657 + v2 = 0; 15658 + while (true) { 15659 + h = +e[g2 + (v2 << 4) >> 3]; 15660 + m = +e[g2 + (v2 << 4) + 8 >> 3]; 15661 + z2 = d2 + 2 | 0; 15662 + j = +e[g2 + (((z2 | 0) == (r2 | 0) ? 0 : z2) << 4) + 8 >> 3]; 15663 + if (h < k) { 15664 + e[s2 >> 3] = h; 15665 + k = h; 15666 + } 15667 + if (m < l) { 15668 + e[t2 >> 3] = m; 15669 + l = m; 15670 + } 15671 + if (h > n) { 15672 + e[c2 >> 3] = h; 15673 + } else { 15674 + h = n; 15675 + } 15676 + if (m > i) { 15677 + e[u2 >> 3] = m; 15678 + i = m; 15679 + } 15680 + o = m > 0 & m < o ? m : o; 15681 + p3 = m < 0 & m > p3 ? m : p3; 15682 + f2 = f2 | +q(+(m - j)) > 3.141592653589793; 15683 + d2 = v2 + 1 | 0; 15684 + if ((d2 | 0) == (r2 | 0)) { 15685 + break; 15686 + } else { 15687 + z2 = v2; 15688 + n = h; 15689 + v2 = d2; 15690 + d2 = z2; 15691 + } 15692 + } 15693 + if (f2) { 15694 + e[u2 >> 3] = p3; 15695 + e[t2 >> 3] = o; 15696 + } 15697 + } 15698 + } else { 15699 + b[c2 >> 2] = 0; 15700 + b[c2 + 4 >> 2] = 0; 15701 + b[c2 + 8 >> 2] = 0; 15702 + b[c2 + 12 >> 2] = 0; 15703 + b[c2 + 16 >> 2] = 0; 15704 + b[c2 + 20 >> 2] = 0; 15705 + b[c2 + 24 >> 2] = 0; 15706 + b[c2 + 28 >> 2] = 0; 15707 + } 15708 + z2 = a3 + 8 | 0; 15709 + d2 = b[z2 >> 2] | 0; 15710 + if ((d2 | 0) <= 0) { 15711 + return; 15712 + } 15713 + y2 = a3 + 12 | 0; 15714 + x2 = 0; 15715 + do { 15716 + g2 = b[y2 >> 2] | 0; 15717 + f2 = x2; 15718 + x2 = x2 + 1 | 0; 15719 + t2 = c2 + (x2 << 5) | 0; 15720 + u2 = b[g2 + (f2 << 3) >> 2] | 0; 15721 + if (u2) { 15722 + v2 = c2 + (x2 << 5) + 8 | 0; 15723 + e[v2 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15724 + a3 = c2 + (x2 << 5) + 24 | 0; 15725 + e[a3 >> 3] = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15726 + e[t2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15727 + w2 = c2 + (x2 << 5) + 16 | 0; 15728 + e[w2 >> 3] = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15729 + if ((u2 | 0) > 0) { 15730 + r2 = b[g2 + (f2 << 3) + 4 >> 2] | 0; 15731 + o = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15732 + p3 = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15733 + g2 = 0; 15734 + f2 = -1; 15735 + s2 = 0; 15736 + k = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15737 + l = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15738 + m = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15739 + i = -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; 15740 + while (true) { 15741 + h = +e[r2 + (s2 << 4) >> 3]; 15742 + n = +e[r2 + (s2 << 4) + 8 >> 3]; 15743 + f2 = f2 + 2 | 0; 15744 + j = +e[r2 + (((f2 | 0) == (u2 | 0) ? 0 : f2) << 4) + 8 >> 3]; 15745 + if (h < k) { 15746 + e[v2 >> 3] = h; 15747 + k = h; 15748 + } 15749 + if (n < l) { 15750 + e[a3 >> 3] = n; 15751 + l = n; 15752 + } 15753 + if (h > m) { 15754 + e[t2 >> 3] = h; 15755 + } else { 15756 + h = m; 15757 + } 15758 + if (n > i) { 15759 + e[w2 >> 3] = n; 15760 + i = n; 15761 + } 15762 + o = n > 0 & n < o ? n : o; 15763 + p3 = n < 0 & n > p3 ? n : p3; 15764 + g2 = g2 | +q(+(n - j)) > 3.141592653589793; 15765 + f2 = s2 + 1 | 0; 15766 + if ((f2 | 0) == (u2 | 0)) { 15767 + break; 15768 + } else { 15769 + A2 = s2; 15770 + s2 = f2; 15771 + m = h; 15772 + f2 = A2; 15773 + } 15774 + } 15775 + if (g2) { 15776 + e[w2 >> 3] = p3; 15777 + e[a3 >> 3] = o; 15778 + } 15779 + } 15780 + } else { 15781 + b[t2 >> 2] = 0; 15782 + b[t2 + 4 >> 2] = 0; 15783 + b[t2 + 8 >> 2] = 0; 15784 + b[t2 + 12 >> 2] = 0; 15785 + b[t2 + 16 >> 2] = 0; 15786 + b[t2 + 20 >> 2] = 0; 15787 + b[t2 + 24 >> 2] = 0; 15788 + b[t2 + 28 >> 2] = 0; 15789 + d2 = b[z2 >> 2] | 0; 15790 + } 15791 + } while ((x2 | 0) < (d2 | 0)); 15792 + return; 15793 + } 15794 + function Zc(a3, c2, d2) { 15795 + a3 = a3 | 0; 15796 + c2 = c2 | 0; 15797 + d2 = d2 | 0; 15798 + var e2 = 0, f2 = 0, g2 = 0; 15799 + if (!(Vc(a3, c2, d2) | 0)) { 15800 + f2 = 0; 15801 + return f2 | 0; 15802 + } 15803 + f2 = a3 + 8 | 0; 15804 + if ((b[f2 >> 2] | 0) <= 0) { 15805 + f2 = 1; 15806 + return f2 | 0; 15807 + } 15808 + e2 = a3 + 12 | 0; 15809 + a3 = 0; 15810 + while (true) { 15811 + g2 = a3; 15812 + a3 = a3 + 1 | 0; 15813 + if (Vc((b[e2 >> 2] | 0) + (g2 << 3) | 0, c2 + (a3 << 5) | 0, d2) | 0) { 15814 + a3 = 0; 15815 + e2 = 6; 15816 + break; 15817 + } 15818 + if ((a3 | 0) >= (b[f2 >> 2] | 0)) { 15819 + a3 = 1; 15820 + e2 = 6; 15821 + break; 15822 + } 15823 + } 15824 + if ((e2 | 0) == 6) { 15825 + return a3 | 0; 15826 + } 15827 + return 0; 15828 + } 15829 + function _c(a3, c2, d2, e2) { 15830 + a3 = a3 | 0; 15831 + c2 = c2 | 0; 15832 + d2 = d2 | 0; 15833 + e2 = e2 | 0; 15834 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0; 15835 + k = T; 15836 + T = T + 16 | 0; 15837 + i = k; 15838 + h = d2 + 8 | 0; 15839 + if (!(Vc(a3, c2, h) | 0)) { 15840 + j = 0; 15841 + T = k; 15842 + return j | 0; 15843 + } 15844 + j = a3 + 8 | 0; 15845 + a: 15846 + do { 15847 + if ((b[j >> 2] | 0) > 0) { 15848 + g2 = a3 + 12 | 0; 15849 + f2 = 0; 15850 + while (true) { 15851 + l = f2; 15852 + f2 = f2 + 1 | 0; 15853 + if (Vc((b[g2 >> 2] | 0) + (l << 3) | 0, c2 + (f2 << 5) | 0, h) | 0) { 15854 + f2 = 0; 15855 + break; 15856 + } 15857 + if ((f2 | 0) >= (b[j >> 2] | 0)) { 15858 + break a; 15859 + } 15860 + } 15861 + T = k; 15862 + return f2 | 0; 15863 + } 15864 + } while (0); 15865 + if ($c(a3, c2, d2, e2) | 0) { 15866 + l = 0; 15867 + T = k; 15868 + return l | 0; 15869 + } 15870 + b[i >> 2] = b[d2 >> 2]; 15871 + b[i + 4 >> 2] = h; 15872 + f2 = b[j >> 2] | 0; 15873 + b: 15874 + do { 15875 + if ((f2 | 0) > 0) { 15876 + a3 = a3 + 12 | 0; 15877 + h = 0; 15878 + g2 = f2; 15879 + while (true) { 15880 + f2 = b[a3 >> 2] | 0; 15881 + if ((b[f2 + (h << 3) >> 2] | 0) > 0) { 15882 + if (Vc(i, e2, b[f2 + (h << 3) + 4 >> 2] | 0) | 0) { 15883 + f2 = 0; 15884 + break b; 15885 + } 15886 + f2 = h + 1 | 0; 15887 + if ($c((b[a3 >> 2] | 0) + (h << 3) | 0, c2 + (f2 << 5) | 0, d2, e2) | 0) { 15888 + f2 = 0; 15889 + break b; 15890 + } 15891 + g2 = b[j >> 2] | 0; 15892 + } else { 15893 + f2 = h + 1 | 0; 15894 + } 15895 + if ((f2 | 0) < (g2 | 0)) { 15896 + h = f2; 15897 + } else { 15898 + f2 = 1; 15899 + break; 15900 + } 15901 + } 15902 + } else { 15903 + f2 = 1; 15904 + } 15905 + } while (0); 15906 + l = f2; 15907 + T = k; 15908 + return l | 0; 15909 + } 15910 + function $c(a3, c2, d2, f2) { 15911 + a3 = a3 | 0; 15912 + c2 = c2 | 0; 15913 + d2 = d2 | 0; 15914 + f2 = f2 | 0; 15915 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0, x2 = 0, y2 = 0, z2 = 0, A2 = 0; 15916 + y2 = T; 15917 + T = T + 176 | 0; 15918 + u2 = y2 + 172 | 0; 15919 + g2 = y2 + 168 | 0; 15920 + v2 = y2; 15921 + if (!(Da(c2, f2) | 0)) { 15922 + a3 = 0; 15923 + T = y2; 15924 + return a3 | 0; 15925 + } 15926 + Ea(c2, f2, u2, g2); 15927 + Wd(v2 | 0, d2 | 0, 168) | 0; 15928 + if ((b[d2 >> 2] | 0) > 0) { 15929 + c2 = 0; 15930 + do { 15931 + z2 = v2 + 8 + (c2 << 4) + 8 | 0; 15932 + t2 = +kc(+e[z2 >> 3], b[g2 >> 2] | 0); 15933 + e[z2 >> 3] = t2; 15934 + c2 = c2 + 1 | 0; 15935 + } while ((c2 | 0) < (b[d2 >> 2] | 0)); 15936 + } 15937 + r2 = +e[f2 >> 3]; 15938 + s2 = +e[f2 + 8 >> 3]; 15939 + t2 = +kc(+e[f2 + 16 >> 3], b[g2 >> 2] | 0); 15940 + p3 = +kc(+e[f2 + 24 >> 3], b[g2 >> 2] | 0); 15941 + a: 15942 + do { 15943 + if ((b[a3 >> 2] | 0) > 0) { 15944 + f2 = a3 + 4 | 0; 15945 + g2 = b[v2 >> 2] | 0; 15946 + if ((g2 | 0) <= 0) { 15947 + c2 = 0; 15948 + while (true) { 15949 + c2 = c2 + 1 | 0; 15950 + if ((c2 | 0) >= (b[a3 >> 2] | 0)) { 15951 + c2 = 0; 15952 + break a; 15953 + } 15954 + } 15955 + } 15956 + d2 = 0; 15957 + while (true) { 15958 + c2 = b[f2 >> 2] | 0; 15959 + o = +e[c2 + (d2 << 4) >> 3]; 15960 + q2 = +kc(+e[c2 + (d2 << 4) + 8 >> 3], b[u2 >> 2] | 0); 15961 + c2 = b[f2 >> 2] | 0; 15962 + d2 = d2 + 1 | 0; 15963 + z2 = (d2 | 0) % (b[a3 >> 2] | 0) | 0; 15964 + h = +e[c2 + (z2 << 4) >> 3]; 15965 + i = +kc(+e[c2 + (z2 << 4) + 8 >> 3], b[u2 >> 2] | 0); 15966 + if (((!(o >= r2) | !(h >= r2) ? !(o <= s2) | !(h <= s2) : 0) ? !(q2 <= p3) | !(i <= p3) : 0) ? !(q2 >= t2) | !(i >= t2) : 0) { 15967 + n = h - o; 15968 + l = i - q2; 15969 + c2 = 0; 15970 + do { 15971 + A2 = c2; 15972 + c2 = c2 + 1 | 0; 15973 + z2 = (c2 | 0) == (g2 | 0) ? 0 : c2; 15974 + h = +e[v2 + 8 + (A2 << 4) + 8 >> 3]; 15975 + i = +e[v2 + 8 + (z2 << 4) + 8 >> 3] - h; 15976 + j = +e[v2 + 8 + (A2 << 4) >> 3]; 15977 + k = +e[v2 + 8 + (z2 << 4) >> 3] - j; 15978 + m = n * i - l * k; 15979 + if ((m != 0 ? (w2 = q2 - h, x2 = o - j, k = (w2 * k - i * x2) / m, !(k < 0 | k > 1)) : 0) ? (m = (n * w2 - l * x2) / m, m >= 0 & m <= 1) : 0) { 15980 + c2 = 1; 15981 + break a; 15982 + } 15983 + } while ((c2 | 0) < (g2 | 0)); 15984 + } 15985 + if ((d2 | 0) >= (b[a3 >> 2] | 0)) { 15986 + c2 = 0; 15987 + break; 15988 + } 15989 + } 15990 + } else { 15991 + c2 = 0; 15992 + } 15993 + } while (0); 15994 + A2 = c2; 15995 + T = y2; 15996 + return A2 | 0; 15997 + } 15998 + function ad(a3, c2, d2, e2) { 15999 + a3 = a3 | 0; 16000 + c2 = c2 | 0; 16001 + d2 = d2 | 0; 16002 + e2 = e2 | 0; 16003 + var f2 = 0, g2 = 0, h = 0; 16004 + if ($c(a3, c2, d2, e2) | 0) { 16005 + g2 = 1; 16006 + return g2 | 0; 16007 + } 16008 + g2 = a3 + 8 | 0; 16009 + if ((b[g2 >> 2] | 0) <= 0) { 16010 + g2 = 0; 16011 + return g2 | 0; 16012 + } 16013 + f2 = a3 + 12 | 0; 16014 + a3 = 0; 16015 + while (true) { 16016 + h = a3; 16017 + a3 = a3 + 1 | 0; 16018 + if ($c((b[f2 >> 2] | 0) + (h << 3) | 0, c2 + (a3 << 5) | 0, d2, e2) | 0) { 16019 + a3 = 1; 16020 + f2 = 6; 16021 + break; 16022 + } 16023 + if ((a3 | 0) >= (b[g2 >> 2] | 0)) { 16024 + a3 = 0; 16025 + f2 = 6; 16026 + break; 16027 + } 16028 + } 16029 + if ((f2 | 0) == 6) { 16030 + return a3 | 0; 16031 + } 16032 + return 0; 16033 + } 16034 + function bd() { 16035 + return 8; 16036 + } 16037 + function cd() { 16038 + return 16; 16039 + } 16040 + function dd() { 16041 + return 168; 16042 + } 16043 + function ed() { 16044 + return 8; 16045 + } 16046 + function fd() { 16047 + return 16; 16048 + } 16049 + function gd() { 16050 + return 12; 16051 + } 16052 + function hd() { 16053 + return 8; 16054 + } 16055 + function id2(a3) { 16056 + a3 = a3 | 0; 16057 + return +(+((b[a3 >> 2] | 0) >>> 0) + 4294967296 * +(b[a3 + 4 >> 2] | 0)); 16058 + } 16059 + function jd(a3) { 16060 + a3 = a3 | 0; 16061 + var b2 = 0, c2 = 0; 16062 + c2 = +e[a3 >> 3]; 16063 + b2 = +e[a3 + 8 >> 3]; 16064 + return + +r(+(c2 * c2 + b2 * b2)); 16065 + } 16066 + function kd(a3, b2, c2, d2, f2) { 16067 + a3 = a3 | 0; 16068 + b2 = b2 | 0; 16069 + c2 = c2 | 0; 16070 + d2 = d2 | 0; 16071 + f2 = f2 | 0; 16072 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; 16073 + k = +e[a3 >> 3]; 16074 + j = +e[b2 >> 3] - k; 16075 + i = +e[a3 + 8 >> 3]; 16076 + h = +e[b2 + 8 >> 3] - i; 16077 + m = +e[c2 >> 3]; 16078 + g2 = +e[d2 >> 3] - m; 16079 + n = +e[c2 + 8 >> 3]; 16080 + l = +e[d2 + 8 >> 3] - n; 16081 + g2 = (g2 * (i - n) - (k - m) * l) / (j * l - h * g2); 16082 + e[f2 >> 3] = k + j * g2; 16083 + e[f2 + 8 >> 3] = i + h * g2; 16084 + return; 16085 + } 16086 + function ld(a3, b2) { 16087 + a3 = a3 | 0; 16088 + b2 = b2 | 0; 16089 + if (!(+q(+(+e[a3 >> 3] - +e[b2 >> 3])) < 0.00000011920928955078125)) { 16090 + b2 = 0; 16091 + return b2 | 0; 16092 + } 16093 + b2 = +q(+(+e[a3 + 8 >> 3] - +e[b2 + 8 >> 3])) < 0.00000011920928955078125; 16094 + return b2 | 0; 16095 + } 16096 + function md(a3, b2) { 16097 + a3 = a3 | 0; 16098 + b2 = b2 | 0; 16099 + var c2 = 0, d2 = 0, f2 = 0; 16100 + f2 = +e[a3 >> 3] - +e[b2 >> 3]; 16101 + d2 = +e[a3 + 8 >> 3] - +e[b2 + 8 >> 3]; 16102 + c2 = +e[a3 + 16 >> 3] - +e[b2 + 16 >> 3]; 16103 + return +(f2 * f2 + d2 * d2 + c2 * c2); 16104 + } 16105 + function nd(a3, b2) { 16106 + a3 = a3 | 0; 16107 + b2 = b2 | 0; 16108 + var c2 = 0, d2 = 0, f2 = 0; 16109 + c2 = +e[a3 >> 3]; 16110 + d2 = +t(+c2); 16111 + c2 = +u(+c2); 16112 + e[b2 + 16 >> 3] = c2; 16113 + c2 = +e[a3 + 8 >> 3]; 16114 + f2 = d2 * +t(+c2); 16115 + e[b2 >> 3] = f2; 16116 + c2 = d2 * +u(+c2); 16117 + e[b2 + 8 >> 3] = c2; 16118 + return; 16119 + } 16120 + function od(a3, c2, d2) { 16121 + a3 = a3 | 0; 16122 + c2 = c2 | 0; 16123 + d2 = d2 | 0; 16124 + var e2 = 0, f2 = 0, g2 = 0; 16125 + g2 = T; 16126 + T = T + 16 | 0; 16127 + f2 = g2; 16128 + e2 = Hb(a3, c2) | 0; 16129 + if ((d2 + -1 | 0) >>> 0 > 5) { 16130 + f2 = -1; 16131 + T = g2; 16132 + return f2 | 0; 16133 + } 16134 + e2 = (e2 | 0) != 0; 16135 + if ((d2 | 0) == 1 & e2) { 16136 + f2 = -1; 16137 + T = g2; 16138 + return f2 | 0; 16139 + } 16140 + do { 16141 + if (!(pd(a3, c2, f2) | 0)) { 16142 + if (e2) { 16143 + e2 = ((b[26352 + (d2 << 2) >> 2] | 0) + 5 - (b[f2 >> 2] | 0) | 0) % 5 | 0; 16144 + break; 16145 + } else { 16146 + e2 = ((b[26384 + (d2 << 2) >> 2] | 0) + 6 - (b[f2 >> 2] | 0) | 0) % 6 | 0; 16147 + break; 16148 + } 16149 + } else { 16150 + e2 = -1; 16151 + } 16152 + } while (0); 16153 + f2 = e2; 16154 + T = g2; 16155 + return f2 | 0; 16156 + } 16157 + function pd(a3, c2, d2) { 16158 + a3 = a3 | 0; 16159 + c2 = c2 | 0; 16160 + d2 = d2 | 0; 16161 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 16162 + k = T; 16163 + T = T + 32 | 0; 16164 + h = k + 16 | 0; 16165 + i = k; 16166 + e2 = Yb(a3, c2, h) | 0; 16167 + if (e2 | 0) { 16168 + d2 = e2; 16169 + T = k; 16170 + return d2 | 0; 16171 + } 16172 + g2 = Cb(a3, c2) | 0; 16173 + j = Pb(a3, c2) | 0; 16174 + sa(g2, i); 16175 + e2 = ta(g2, b[h >> 2] | 0) | 0; 16176 + a: 16177 + do { 16178 + if (oa(g2) | 0) { 16179 + do { 16180 + switch (g2 | 0) { 16181 + case 4: { 16182 + a3 = 0; 16183 + break; 16184 + } 16185 + case 14: { 16186 + a3 = 1; 16187 + break; 16188 + } 16189 + case 24: { 16190 + a3 = 2; 16191 + break; 16192 + } 16193 + case 38: { 16194 + a3 = 3; 16195 + break; 16196 + } 16197 + case 49: { 16198 + a3 = 4; 16199 + break; 16200 + } 16201 + case 58: { 16202 + a3 = 5; 16203 + break; 16204 + } 16205 + case 63: { 16206 + a3 = 6; 16207 + break; 16208 + } 16209 + case 72: { 16210 + a3 = 7; 16211 + break; 16212 + } 16213 + case 83: { 16214 + a3 = 8; 16215 + break; 16216 + } 16217 + case 97: { 16218 + a3 = 9; 16219 + break; 16220 + } 16221 + case 107: { 16222 + a3 = 10; 16223 + break; 16224 + } 16225 + case 117: { 16226 + a3 = 11; 16227 + break; 16228 + } 16229 + default: { 16230 + e2 = 1; 16231 + break a; 16232 + } 16233 + } 16234 + } while (0); 16235 + f2 = b[26416 + (a3 * 24 | 0) + 8 >> 2] | 0; 16236 + c2 = b[26416 + (a3 * 24 | 0) + 16 >> 2] | 0; 16237 + a3 = b[h >> 2] | 0; 16238 + if ((a3 | 0) != (b[i >> 2] | 0)) { 16239 + i = pa(g2) | 0; 16240 + a3 = b[h >> 2] | 0; 16241 + if (i | (a3 | 0) == (c2 | 0)) { 16242 + e2 = (e2 + 1 | 0) % 6 | 0; 16243 + } 16244 + } 16245 + if ((j | 0) == 3 & (a3 | 0) == (c2 | 0)) { 16246 + e2 = (e2 + 5 | 0) % 6 | 0; 16247 + f2 = 22; 16248 + break; 16249 + } 16250 + if ((j | 0) == 5 & (a3 | 0) == (f2 | 0)) { 16251 + e2 = (e2 + 1 | 0) % 6 | 0; 16252 + f2 = 22; 16253 + } else { 16254 + f2 = 22; 16255 + } 16256 + } else { 16257 + f2 = 22; 16258 + } 16259 + } while (0); 16260 + if ((f2 | 0) == 22) { 16261 + b[d2 >> 2] = e2; 16262 + e2 = 0; 16263 + } 16264 + d2 = e2; 16265 + T = k; 16266 + return d2 | 0; 16267 + } 16268 + function qd(a3, c2, d2, e2) { 16269 + a3 = a3 | 0; 16270 + c2 = c2 | 0; 16271 + d2 = d2 | 0; 16272 + e2 = e2 | 0; 16273 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0; 16274 + u2 = T; 16275 + T = T + 32 | 0; 16276 + t2 = u2 + 24 | 0; 16277 + r2 = u2 + 20 | 0; 16278 + p3 = u2 + 8 | 0; 16279 + o = u2 + 16 | 0; 16280 + n = u2; 16281 + j = (Hb(a3, c2) | 0) == 0; 16282 + j = j ? 6 : 5; 16283 + l = Qd(a3 | 0, c2 | 0, 52) | 0; 16284 + H() | 0; 16285 + l = l & 15; 16286 + if (j >>> 0 <= d2 >>> 0) { 16287 + e2 = 2; 16288 + T = u2; 16289 + return e2 | 0; 16290 + } 16291 + m = (l | 0) == 0; 16292 + if (!m ? (q2 = Rd(7, 0, (l ^ 15) * 3 | 0) | 0, (q2 & a3 | 0) == 0 & ((H() | 0) & c2 | 0) == 0) : 0) { 16293 + f2 = d2; 16294 + } else { 16295 + g2 = 4; 16296 + } 16297 + a: 16298 + do { 16299 + if ((g2 | 0) == 4) { 16300 + f2 = (Hb(a3, c2) | 0) != 0; 16301 + if (((f2 ? 4 : 5) | 0) < (d2 | 0)) { 16302 + e2 = 1; 16303 + T = u2; 16304 + return e2 | 0; 16305 + } 16306 + if (pd(a3, c2, t2) | 0) { 16307 + e2 = 1; 16308 + T = u2; 16309 + return e2 | 0; 16310 + } 16311 + g2 = (b[t2 >> 2] | 0) + d2 | 0; 16312 + if (f2) { 16313 + f2 = 26704 + (((g2 | 0) % 5 | 0) << 2) | 0; 16314 + } else { 16315 + f2 = 26736 + (((g2 | 0) % 6 | 0) << 2) | 0; 16316 + } 16317 + q2 = b[f2 >> 2] | 0; 16318 + if ((q2 | 0) == 7) { 16319 + e2 = 1; 16320 + T = u2; 16321 + return e2 | 0; 16322 + } 16323 + b[r2 >> 2] = 0; 16324 + f2 = ea(a3, c2, q2, r2, p3) | 0; 16325 + do { 16326 + if (!f2) { 16327 + i = p3; 16328 + k = b[i >> 2] | 0; 16329 + i = b[i + 4 >> 2] | 0; 16330 + h = i >>> 0 < c2 >>> 0 | (i | 0) == (c2 | 0) & k >>> 0 < a3 >>> 0; 16331 + g2 = h ? k : a3; 16332 + h = h ? i : c2; 16333 + if (!m ? (m = Rd(7, 0, (l ^ 15) * 3 | 0) | 0, (k & m | 0) == 0 & (i & (H() | 0) | 0) == 0) : 0) { 16334 + f2 = d2; 16335 + } else { 16336 + i = (d2 + -1 + j | 0) % (j | 0) | 0; 16337 + f2 = Hb(a3, c2) | 0; 16338 + if ((i | 0) < 0) { 16339 + I(27795, 27797, 246, 27806); 16340 + } 16341 + j = (f2 | 0) != 0; 16342 + if (((j ? 4 : 5) | 0) < (i | 0)) { 16343 + I(27795, 27797, 246, 27806); 16344 + } 16345 + if (pd(a3, c2, t2) | 0) { 16346 + I(27795, 27797, 246, 27806); 16347 + } 16348 + f2 = (b[t2 >> 2] | 0) + i | 0; 16349 + if (j) { 16350 + f2 = 26704 + (((f2 | 0) % 5 | 0) << 2) | 0; 16351 + } else { 16352 + f2 = 26736 + (((f2 | 0) % 6 | 0) << 2) | 0; 16353 + } 16354 + i = b[f2 >> 2] | 0; 16355 + if ((i | 0) == 7) { 16356 + I(27795, 27797, 246, 27806); 16357 + } 16358 + b[o >> 2] = 0; 16359 + f2 = ea(a3, c2, i, o, n) | 0; 16360 + if (f2 | 0) { 16361 + break; 16362 + } 16363 + k = n; 16364 + j = b[k >> 2] | 0; 16365 + k = b[k + 4 >> 2] | 0; 16366 + do { 16367 + if (k >>> 0 < h >>> 0 | (k | 0) == (h | 0) & j >>> 0 < g2 >>> 0) { 16368 + if (!(Hb(j, k) | 0)) { 16369 + g2 = b[26800 + ((((b[o >> 2] | 0) + (b[26768 + (i << 2) >> 2] | 0) | 0) % 6 | 0) << 2) >> 2] | 0; 16370 + } else { 16371 + g2 = ia(j, k, a3, c2) | 0; 16372 + } 16373 + f2 = Hb(j, k) | 0; 16374 + if ((g2 + -1 | 0) >>> 0 > 5) { 16375 + f2 = -1; 16376 + g2 = j; 16377 + h = k; 16378 + break; 16379 + } 16380 + f2 = (f2 | 0) != 0; 16381 + if ((g2 | 0) == 1 & f2) { 16382 + f2 = -1; 16383 + g2 = j; 16384 + h = k; 16385 + break; 16386 + } 16387 + do { 16388 + if (!(pd(j, k, t2) | 0)) { 16389 + if (f2) { 16390 + f2 = ((b[26352 + (g2 << 2) >> 2] | 0) + 5 - (b[t2 >> 2] | 0) | 0) % 5 | 0; 16391 + break; 16392 + } else { 16393 + f2 = ((b[26384 + (g2 << 2) >> 2] | 0) + 6 - (b[t2 >> 2] | 0) | 0) % 6 | 0; 16394 + break; 16395 + } 16396 + } else { 16397 + f2 = -1; 16398 + } 16399 + } while (0); 16400 + g2 = j; 16401 + h = k; 16402 + } else { 16403 + f2 = d2; 16404 + } 16405 + } while (0); 16406 + i = p3; 16407 + k = b[i >> 2] | 0; 16408 + i = b[i + 4 >> 2] | 0; 16409 + } 16410 + if ((g2 | 0) == (k | 0) & (h | 0) == (i | 0)) { 16411 + j = (Hb(k, i) | 0) != 0; 16412 + if (j) { 16413 + a3 = ia(k, i, a3, c2) | 0; 16414 + } else { 16415 + a3 = b[26800 + ((((b[r2 >> 2] | 0) + (b[26768 + (q2 << 2) >> 2] | 0) | 0) % 6 | 0) << 2) >> 2] | 0; 16416 + } 16417 + f2 = Hb(k, i) | 0; 16418 + if ((a3 + -1 | 0) >>> 0 <= 5 ? (s2 = (f2 | 0) != 0, !((a3 | 0) == 1 & s2)) : 0) { 16419 + do { 16420 + if (!(pd(k, i, t2) | 0)) { 16421 + if (s2) { 16422 + f2 = ((b[26352 + (a3 << 2) >> 2] | 0) + 5 - (b[t2 >> 2] | 0) | 0) % 5 | 0; 16423 + break; 16424 + } else { 16425 + f2 = ((b[26384 + (a3 << 2) >> 2] | 0) + 6 - (b[t2 >> 2] | 0) | 0) % 6 | 0; 16426 + break; 16427 + } 16428 + } else { 16429 + f2 = -1; 16430 + } 16431 + } while (0); 16432 + } else { 16433 + f2 = -1; 16434 + } 16435 + f2 = f2 + 1 | 0; 16436 + f2 = (f2 | 0) == 6 | j & (f2 | 0) == 5 ? 0 : f2; 16437 + } 16438 + c2 = h; 16439 + a3 = g2; 16440 + break a; 16441 + } 16442 + } while (0); 16443 + e2 = f2; 16444 + T = u2; 16445 + return e2 | 0; 16446 + } 16447 + } while (0); 16448 + s2 = Rd(f2 | 0, 0, 56) | 0; 16449 + t2 = H() | 0 | c2 & -2130706433 | 536870912; 16450 + b[e2 >> 2] = s2 | a3; 16451 + b[e2 + 4 >> 2] = t2; 16452 + e2 = 0; 16453 + T = u2; 16454 + return e2 | 0; 16455 + } 16456 + function rd(a3, c2, d2) { 16457 + a3 = a3 | 0; 16458 + c2 = c2 | 0; 16459 + d2 = d2 | 0; 16460 + var e2 = 0, f2 = 0, g2 = 0; 16461 + g2 = (Hb(a3, c2) | 0) == 0; 16462 + e2 = qd(a3, c2, 0, d2) | 0; 16463 + f2 = (e2 | 0) == 0; 16464 + if (g2) { 16465 + if (!f2) { 16466 + g2 = e2; 16467 + return g2 | 0; 16468 + } 16469 + e2 = qd(a3, c2, 1, d2 + 8 | 0) | 0; 16470 + if (e2 | 0) { 16471 + g2 = e2; 16472 + return g2 | 0; 16473 + } 16474 + e2 = qd(a3, c2, 2, d2 + 16 | 0) | 0; 16475 + if (e2 | 0) { 16476 + g2 = e2; 16477 + return g2 | 0; 16478 + } 16479 + e2 = qd(a3, c2, 3, d2 + 24 | 0) | 0; 16480 + if (e2 | 0) { 16481 + g2 = e2; 16482 + return g2 | 0; 16483 + } 16484 + e2 = qd(a3, c2, 4, d2 + 32 | 0) | 0; 16485 + if (!e2) { 16486 + return qd(a3, c2, 5, d2 + 40 | 0) | 0; 16487 + } else { 16488 + g2 = e2; 16489 + return g2 | 0; 16490 + } 16491 + } 16492 + if (!f2) { 16493 + g2 = e2; 16494 + return g2 | 0; 16495 + } 16496 + e2 = qd(a3, c2, 1, d2 + 8 | 0) | 0; 16497 + if (e2 | 0) { 16498 + g2 = e2; 16499 + return g2 | 0; 16500 + } 16501 + e2 = qd(a3, c2, 2, d2 + 16 | 0) | 0; 16502 + if (e2 | 0) { 16503 + g2 = e2; 16504 + return g2 | 0; 16505 + } 16506 + e2 = qd(a3, c2, 3, d2 + 24 | 0) | 0; 16507 + if (e2 | 0) { 16508 + g2 = e2; 16509 + return g2 | 0; 16510 + } 16511 + e2 = qd(a3, c2, 4, d2 + 32 | 0) | 0; 16512 + if (e2 | 0) { 16513 + g2 = e2; 16514 + return g2 | 0; 16515 + } 16516 + g2 = d2 + 40 | 0; 16517 + b[g2 >> 2] = 0; 16518 + b[g2 + 4 >> 2] = 0; 16519 + g2 = 0; 16520 + return g2 | 0; 16521 + } 16522 + function sd(a3, c2, d2) { 16523 + a3 = a3 | 0; 16524 + c2 = c2 | 0; 16525 + d2 = d2 | 0; 16526 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 16527 + j = T; 16528 + T = T + 192 | 0; 16529 + f2 = j; 16530 + g2 = j + 168 | 0; 16531 + h = Qd(a3 | 0, c2 | 0, 56) | 0; 16532 + H() | 0; 16533 + h = h & 7; 16534 + i = c2 & -2130706433 | 134217728; 16535 + e2 = Yb(a3, i, g2) | 0; 16536 + if (e2 | 0) { 16537 + i = e2; 16538 + T = j; 16539 + return i | 0; 16540 + } 16541 + c2 = Qd(a3 | 0, c2 | 0, 52) | 0; 16542 + H() | 0; 16543 + c2 = c2 & 15; 16544 + if (!(Hb(a3, i) | 0)) { 16545 + zb(g2, c2, h, 1, f2); 16546 + } else { 16547 + vb(g2, c2, h, 1, f2); 16548 + } 16549 + i = f2 + 8 | 0; 16550 + b[d2 >> 2] = b[i >> 2]; 16551 + b[d2 + 4 >> 2] = b[i + 4 >> 2]; 16552 + b[d2 + 8 >> 2] = b[i + 8 >> 2]; 16553 + b[d2 + 12 >> 2] = b[i + 12 >> 2]; 16554 + i = 0; 16555 + T = j; 16556 + return i | 0; 16557 + } 16558 + function td(a3, c2) { 16559 + a3 = a3 | 0; 16560 + c2 = c2 | 0; 16561 + var d2 = 0, e2 = 0, f2 = 0, g2 = 0; 16562 + f2 = T; 16563 + T = T + 16 | 0; 16564 + d2 = f2; 16565 + if (!(true & (c2 & 2013265920 | 0) == 536870912)) { 16566 + e2 = 0; 16567 + T = f2; 16568 + return e2 | 0; 16569 + } 16570 + e2 = c2 & -2130706433 | 134217728; 16571 + if (!(Db(a3, e2) | 0)) { 16572 + e2 = 0; 16573 + T = f2; 16574 + return e2 | 0; 16575 + } 16576 + g2 = Qd(a3 | 0, c2 | 0, 56) | 0; 16577 + H() | 0; 16578 + g2 = (qd(a3, e2, g2 & 7, d2) | 0) == 0; 16579 + e2 = d2; 16580 + e2 = g2 & ((b[e2 >> 2] | 0) == (a3 | 0) ? (b[e2 + 4 >> 2] | 0) == (c2 | 0) : 0) & 1; 16581 + T = f2; 16582 + return e2 | 0; 16583 + } 16584 + function ud(a3, c2, d2) { 16585 + a3 = a3 | 0; 16586 + c2 = c2 | 0; 16587 + d2 = d2 | 0; 16588 + var e2 = 0; 16589 + if ((c2 | 0) > 0) { 16590 + e2 = Fd(c2, 4) | 0; 16591 + b[a3 >> 2] = e2; 16592 + if (!e2) { 16593 + I(27819, 27842, 40, 27856); 16594 + } 16595 + } else { 16596 + b[a3 >> 2] = 0; 16597 + } 16598 + b[a3 + 4 >> 2] = c2; 16599 + b[a3 + 8 >> 2] = 0; 16600 + b[a3 + 12 >> 2] = d2; 16601 + return; 16602 + } 16603 + function vd(a3) { 16604 + a3 = a3 | 0; 16605 + var c2 = 0, d2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 16606 + g2 = a3 + 4 | 0; 16607 + h = a3 + 12 | 0; 16608 + i = a3 + 8 | 0; 16609 + a: 16610 + while (true) { 16611 + d2 = b[g2 >> 2] | 0; 16612 + c2 = 0; 16613 + while (true) { 16614 + if ((c2 | 0) >= (d2 | 0)) { 16615 + break a; 16616 + } 16617 + f2 = b[a3 >> 2] | 0; 16618 + j = b[f2 + (c2 << 2) >> 2] | 0; 16619 + if (!j) { 16620 + c2 = c2 + 1 | 0; 16621 + } else { 16622 + break; 16623 + } 16624 + } 16625 + c2 = f2 + (~~(+q(+(+s(10, + +(15 - (b[h >> 2] | 0) | 0)) * (+e[j >> 3] + +e[j + 8 >> 3]))) % +(d2 | 0)) >>> 0 << 2) | 0; 16626 + d2 = b[c2 >> 2] | 0; 16627 + b: 16628 + do { 16629 + if (d2 | 0) { 16630 + f2 = j + 32 | 0; 16631 + if ((d2 | 0) == (j | 0)) { 16632 + b[c2 >> 2] = b[f2 >> 2]; 16633 + } else { 16634 + d2 = d2 + 32 | 0; 16635 + c2 = b[d2 >> 2] | 0; 16636 + if (!c2) { 16637 + break; 16638 + } 16639 + while (true) { 16640 + if ((c2 | 0) == (j | 0)) { 16641 + break; 16642 + } 16643 + d2 = c2 + 32 | 0; 16644 + c2 = b[d2 >> 2] | 0; 16645 + if (!c2) { 16646 + break b; 16647 + } 16648 + } 16649 + b[d2 >> 2] = b[f2 >> 2]; 16650 + } 16651 + Ed(j); 16652 + b[i >> 2] = (b[i >> 2] | 0) + -1; 16653 + } 16654 + } while (0); 16655 + } 16656 + Ed(b[a3 >> 2] | 0); 16657 + return; 16658 + } 16659 + function wd(a3) { 16660 + a3 = a3 | 0; 16661 + var c2 = 0, d2 = 0, e2 = 0; 16662 + e2 = b[a3 + 4 >> 2] | 0; 16663 + d2 = 0; 16664 + while (true) { 16665 + if ((d2 | 0) >= (e2 | 0)) { 16666 + c2 = 0; 16667 + d2 = 4; 16668 + break; 16669 + } 16670 + c2 = b[(b[a3 >> 2] | 0) + (d2 << 2) >> 2] | 0; 16671 + if (!c2) { 16672 + d2 = d2 + 1 | 0; 16673 + } else { 16674 + d2 = 4; 16675 + break; 16676 + } 16677 + } 16678 + if ((d2 | 0) == 4) { 16679 + return c2 | 0; 16680 + } 16681 + return 0; 16682 + } 16683 + function xd(a3, c2) { 16684 + a3 = a3 | 0; 16685 + c2 = c2 | 0; 16686 + var d2 = 0, f2 = 0, g2 = 0, h = 0; 16687 + d2 = ~~(+q(+(+s(10, + +(15 - (b[a3 + 12 >> 2] | 0) | 0)) * (+e[c2 >> 3] + +e[c2 + 8 >> 3]))) % +(b[a3 + 4 >> 2] | 0)) >>> 0; 16688 + d2 = (b[a3 >> 2] | 0) + (d2 << 2) | 0; 16689 + f2 = b[d2 >> 2] | 0; 16690 + if (!f2) { 16691 + h = 1; 16692 + return h | 0; 16693 + } 16694 + h = c2 + 32 | 0; 16695 + do { 16696 + if ((f2 | 0) != (c2 | 0)) { 16697 + d2 = b[f2 + 32 >> 2] | 0; 16698 + if (!d2) { 16699 + h = 1; 16700 + return h | 0; 16701 + } 16702 + g2 = d2; 16703 + while (true) { 16704 + if ((g2 | 0) == (c2 | 0)) { 16705 + g2 = 8; 16706 + break; 16707 + } 16708 + d2 = b[g2 + 32 >> 2] | 0; 16709 + if (!d2) { 16710 + d2 = 1; 16711 + g2 = 10; 16712 + break; 16713 + } else { 16714 + f2 = g2; 16715 + g2 = d2; 16716 + } 16717 + } 16718 + if ((g2 | 0) == 8) { 16719 + b[f2 + 32 >> 2] = b[h >> 2]; 16720 + break; 16721 + } else if ((g2 | 0) == 10) { 16722 + return d2 | 0; 16723 + } 16724 + } else { 16725 + b[d2 >> 2] = b[h >> 2]; 16726 + } 16727 + } while (0); 16728 + Ed(c2); 16729 + h = a3 + 8 | 0; 16730 + b[h >> 2] = (b[h >> 2] | 0) + -1; 16731 + h = 0; 16732 + return h | 0; 16733 + } 16734 + function yd(a3, c2, d2) { 16735 + a3 = a3 | 0; 16736 + c2 = c2 | 0; 16737 + d2 = d2 | 0; 16738 + var f2 = 0, g2 = 0, h = 0, i = 0; 16739 + h = Dd(40) | 0; 16740 + if (!h) { 16741 + I(27872, 27842, 98, 27885); 16742 + } 16743 + b[h >> 2] = b[c2 >> 2]; 16744 + b[h + 4 >> 2] = b[c2 + 4 >> 2]; 16745 + b[h + 8 >> 2] = b[c2 + 8 >> 2]; 16746 + b[h + 12 >> 2] = b[c2 + 12 >> 2]; 16747 + g2 = h + 16 | 0; 16748 + b[g2 >> 2] = b[d2 >> 2]; 16749 + b[g2 + 4 >> 2] = b[d2 + 4 >> 2]; 16750 + b[g2 + 8 >> 2] = b[d2 + 8 >> 2]; 16751 + b[g2 + 12 >> 2] = b[d2 + 12 >> 2]; 16752 + b[h + 32 >> 2] = 0; 16753 + g2 = ~~(+q(+(+s(10, + +(15 - (b[a3 + 12 >> 2] | 0) | 0)) * (+e[c2 >> 3] + +e[c2 + 8 >> 3]))) % +(b[a3 + 4 >> 2] | 0)) >>> 0; 16754 + g2 = (b[a3 >> 2] | 0) + (g2 << 2) | 0; 16755 + f2 = b[g2 >> 2] | 0; 16756 + do { 16757 + if (!f2) { 16758 + b[g2 >> 2] = h; 16759 + } else { 16760 + while (true) { 16761 + if (jc(f2, c2) | 0 ? jc(f2 + 16 | 0, d2) | 0 : 0) { 16762 + break; 16763 + } 16764 + g2 = b[f2 + 32 >> 2] | 0; 16765 + f2 = (g2 | 0) == 0 ? f2 : g2; 16766 + if (!(b[f2 + 32 >> 2] | 0)) { 16767 + i = 10; 16768 + break; 16769 + } 16770 + } 16771 + if ((i | 0) == 10) { 16772 + b[f2 + 32 >> 2] = h; 16773 + break; 16774 + } 16775 + Ed(h); 16776 + i = f2; 16777 + return i | 0; 16778 + } 16779 + } while (0); 16780 + i = a3 + 8 | 0; 16781 + b[i >> 2] = (b[i >> 2] | 0) + 1; 16782 + i = h; 16783 + return i | 0; 16784 + } 16785 + function zd(a3, c2, d2) { 16786 + a3 = a3 | 0; 16787 + c2 = c2 | 0; 16788 + d2 = d2 | 0; 16789 + var f2 = 0, g2 = 0; 16790 + g2 = ~~(+q(+(+s(10, + +(15 - (b[a3 + 12 >> 2] | 0) | 0)) * (+e[c2 >> 3] + +e[c2 + 8 >> 3]))) % +(b[a3 + 4 >> 2] | 0)) >>> 0; 16791 + g2 = b[(b[a3 >> 2] | 0) + (g2 << 2) >> 2] | 0; 16792 + if (!g2) { 16793 + d2 = 0; 16794 + return d2 | 0; 16795 + } 16796 + if (!d2) { 16797 + a3 = g2; 16798 + while (true) { 16799 + if (jc(a3, c2) | 0) { 16800 + f2 = 10; 16801 + break; 16802 + } 16803 + a3 = b[a3 + 32 >> 2] | 0; 16804 + if (!a3) { 16805 + a3 = 0; 16806 + f2 = 10; 16807 + break; 16808 + } 16809 + } 16810 + if ((f2 | 0) == 10) { 16811 + return a3 | 0; 16812 + } 16813 + } 16814 + a3 = g2; 16815 + while (true) { 16816 + if (jc(a3, c2) | 0 ? jc(a3 + 16 | 0, d2) | 0 : 0) { 16817 + f2 = 10; 16818 + break; 16819 + } 16820 + a3 = b[a3 + 32 >> 2] | 0; 16821 + if (!a3) { 16822 + a3 = 0; 16823 + f2 = 10; 16824 + break; 16825 + } 16826 + } 16827 + if ((f2 | 0) == 10) { 16828 + return a3 | 0; 16829 + } 16830 + return 0; 16831 + } 16832 + function Ad(a3, c2) { 16833 + a3 = a3 | 0; 16834 + c2 = c2 | 0; 16835 + var d2 = 0; 16836 + d2 = ~~(+q(+(+s(10, + +(15 - (b[a3 + 12 >> 2] | 0) | 0)) * (+e[c2 >> 3] + +e[c2 + 8 >> 3]))) % +(b[a3 + 4 >> 2] | 0)) >>> 0; 16837 + a3 = b[(b[a3 >> 2] | 0) + (d2 << 2) >> 2] | 0; 16838 + if (!a3) { 16839 + d2 = 0; 16840 + return d2 | 0; 16841 + } 16842 + while (true) { 16843 + if (jc(a3, c2) | 0) { 16844 + c2 = 5; 16845 + break; 16846 + } 16847 + a3 = b[a3 + 32 >> 2] | 0; 16848 + if (!a3) { 16849 + a3 = 0; 16850 + c2 = 5; 16851 + break; 16852 + } 16853 + } 16854 + if ((c2 | 0) == 5) { 16855 + return a3 | 0; 16856 + } 16857 + return 0; 16858 + } 16859 + function Bd() { 16860 + return 27904; 16861 + } 16862 + function Cd(a3) { 16863 + a3 = +a3; 16864 + return ~~+Yd(+a3) | 0; 16865 + } 16866 + function Dd(a3) { 16867 + a3 = a3 | 0; 16868 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0, q2 = 0, r2 = 0, s2 = 0, t2 = 0, u2 = 0, v2 = 0, w2 = 0; 16869 + w2 = T; 16870 + T = T + 16 | 0; 16871 + n = w2; 16872 + do { 16873 + if (a3 >>> 0 < 245) { 16874 + k = a3 >>> 0 < 11 ? 16 : a3 + 11 & -8; 16875 + a3 = k >>> 3; 16876 + m = b[6977] | 0; 16877 + d2 = m >>> a3; 16878 + if (d2 & 3 | 0) { 16879 + c2 = (d2 & 1 ^ 1) + a3 | 0; 16880 + a3 = 27948 + (c2 << 1 << 2) | 0; 16881 + d2 = a3 + 8 | 0; 16882 + e2 = b[d2 >> 2] | 0; 16883 + f2 = e2 + 8 | 0; 16884 + g2 = b[f2 >> 2] | 0; 16885 + if ((g2 | 0) == (a3 | 0)) { 16886 + b[6977] = m & ~(1 << c2); 16887 + } else { 16888 + b[g2 + 12 >> 2] = a3; 16889 + b[d2 >> 2] = g2; 16890 + } 16891 + v2 = c2 << 3; 16892 + b[e2 + 4 >> 2] = v2 | 3; 16893 + v2 = e2 + v2 + 4 | 0; 16894 + b[v2 >> 2] = b[v2 >> 2] | 1; 16895 + v2 = f2; 16896 + T = w2; 16897 + return v2 | 0; 16898 + } 16899 + l = b[6979] | 0; 16900 + if (k >>> 0 > l >>> 0) { 16901 + if (d2 | 0) { 16902 + c2 = 2 << a3; 16903 + c2 = d2 << a3 & (c2 | 0 - c2); 16904 + c2 = (c2 & 0 - c2) + -1 | 0; 16905 + i = c2 >>> 12 & 16; 16906 + c2 = c2 >>> i; 16907 + d2 = c2 >>> 5 & 8; 16908 + c2 = c2 >>> d2; 16909 + g2 = c2 >>> 2 & 4; 16910 + c2 = c2 >>> g2; 16911 + a3 = c2 >>> 1 & 2; 16912 + c2 = c2 >>> a3; 16913 + e2 = c2 >>> 1 & 1; 16914 + e2 = (d2 | i | g2 | a3 | e2) + (c2 >>> e2) | 0; 16915 + c2 = 27948 + (e2 << 1 << 2) | 0; 16916 + a3 = c2 + 8 | 0; 16917 + g2 = b[a3 >> 2] | 0; 16918 + i = g2 + 8 | 0; 16919 + d2 = b[i >> 2] | 0; 16920 + if ((d2 | 0) == (c2 | 0)) { 16921 + a3 = m & ~(1 << e2); 16922 + b[6977] = a3; 16923 + } else { 16924 + b[d2 + 12 >> 2] = c2; 16925 + b[a3 >> 2] = d2; 16926 + a3 = m; 16927 + } 16928 + v2 = e2 << 3; 16929 + h = v2 - k | 0; 16930 + b[g2 + 4 >> 2] = k | 3; 16931 + f2 = g2 + k | 0; 16932 + b[f2 + 4 >> 2] = h | 1; 16933 + b[g2 + v2 >> 2] = h; 16934 + if (l | 0) { 16935 + e2 = b[6982] | 0; 16936 + c2 = l >>> 3; 16937 + d2 = 27948 + (c2 << 1 << 2) | 0; 16938 + c2 = 1 << c2; 16939 + if (!(a3 & c2)) { 16940 + b[6977] = a3 | c2; 16941 + c2 = d2; 16942 + a3 = d2 + 8 | 0; 16943 + } else { 16944 + a3 = d2 + 8 | 0; 16945 + c2 = b[a3 >> 2] | 0; 16946 + } 16947 + b[a3 >> 2] = e2; 16948 + b[c2 + 12 >> 2] = e2; 16949 + b[e2 + 8 >> 2] = c2; 16950 + b[e2 + 12 >> 2] = d2; 16951 + } 16952 + b[6979] = h; 16953 + b[6982] = f2; 16954 + v2 = i; 16955 + T = w2; 16956 + return v2 | 0; 16957 + } 16958 + g2 = b[6978] | 0; 16959 + if (g2) { 16960 + d2 = (g2 & 0 - g2) + -1 | 0; 16961 + f2 = d2 >>> 12 & 16; 16962 + d2 = d2 >>> f2; 16963 + e2 = d2 >>> 5 & 8; 16964 + d2 = d2 >>> e2; 16965 + h = d2 >>> 2 & 4; 16966 + d2 = d2 >>> h; 16967 + i = d2 >>> 1 & 2; 16968 + d2 = d2 >>> i; 16969 + j = d2 >>> 1 & 1; 16970 + j = b[28212 + ((e2 | f2 | h | i | j) + (d2 >>> j) << 2) >> 2] | 0; 16971 + d2 = j; 16972 + i = j; 16973 + j = (b[j + 4 >> 2] & -8) - k | 0; 16974 + while (true) { 16975 + a3 = b[d2 + 16 >> 2] | 0; 16976 + if (!a3) { 16977 + a3 = b[d2 + 20 >> 2] | 0; 16978 + if (!a3) { 16979 + break; 16980 + } 16981 + } 16982 + h = (b[a3 + 4 >> 2] & -8) - k | 0; 16983 + f2 = h >>> 0 < j >>> 0; 16984 + d2 = a3; 16985 + i = f2 ? a3 : i; 16986 + j = f2 ? h : j; 16987 + } 16988 + h = i + k | 0; 16989 + if (h >>> 0 > i >>> 0) { 16990 + f2 = b[i + 24 >> 2] | 0; 16991 + c2 = b[i + 12 >> 2] | 0; 16992 + do { 16993 + if ((c2 | 0) == (i | 0)) { 16994 + a3 = i + 20 | 0; 16995 + c2 = b[a3 >> 2] | 0; 16996 + if (!c2) { 16997 + a3 = i + 16 | 0; 16998 + c2 = b[a3 >> 2] | 0; 16999 + if (!c2) { 17000 + d2 = 0; 17001 + break; 17002 + } 17003 + } 17004 + while (true) { 17005 + e2 = c2 + 20 | 0; 17006 + d2 = b[e2 >> 2] | 0; 17007 + if (!d2) { 17008 + e2 = c2 + 16 | 0; 17009 + d2 = b[e2 >> 2] | 0; 17010 + if (!d2) { 17011 + break; 17012 + } else { 17013 + c2 = d2; 17014 + a3 = e2; 17015 + } 17016 + } else { 17017 + c2 = d2; 17018 + a3 = e2; 17019 + } 17020 + } 17021 + b[a3 >> 2] = 0; 17022 + d2 = c2; 17023 + } else { 17024 + d2 = b[i + 8 >> 2] | 0; 17025 + b[d2 + 12 >> 2] = c2; 17026 + b[c2 + 8 >> 2] = d2; 17027 + d2 = c2; 17028 + } 17029 + } while (0); 17030 + do { 17031 + if (f2 | 0) { 17032 + c2 = b[i + 28 >> 2] | 0; 17033 + a3 = 28212 + (c2 << 2) | 0; 17034 + if ((i | 0) == (b[a3 >> 2] | 0)) { 17035 + b[a3 >> 2] = d2; 17036 + if (!d2) { 17037 + b[6978] = g2 & ~(1 << c2); 17038 + break; 17039 + } 17040 + } else { 17041 + v2 = f2 + 16 | 0; 17042 + b[((b[v2 >> 2] | 0) == (i | 0) ? v2 : f2 + 20 | 0) >> 2] = d2; 17043 + if (!d2) { 17044 + break; 17045 + } 17046 + } 17047 + b[d2 + 24 >> 2] = f2; 17048 + c2 = b[i + 16 >> 2] | 0; 17049 + if (c2 | 0) { 17050 + b[d2 + 16 >> 2] = c2; 17051 + b[c2 + 24 >> 2] = d2; 17052 + } 17053 + c2 = b[i + 20 >> 2] | 0; 17054 + if (c2 | 0) { 17055 + b[d2 + 20 >> 2] = c2; 17056 + b[c2 + 24 >> 2] = d2; 17057 + } 17058 + } 17059 + } while (0); 17060 + if (j >>> 0 < 16) { 17061 + v2 = j + k | 0; 17062 + b[i + 4 >> 2] = v2 | 3; 17063 + v2 = i + v2 + 4 | 0; 17064 + b[v2 >> 2] = b[v2 >> 2] | 1; 17065 + } else { 17066 + b[i + 4 >> 2] = k | 3; 17067 + b[h + 4 >> 2] = j | 1; 17068 + b[h + j >> 2] = j; 17069 + if (l | 0) { 17070 + e2 = b[6982] | 0; 17071 + c2 = l >>> 3; 17072 + d2 = 27948 + (c2 << 1 << 2) | 0; 17073 + c2 = 1 << c2; 17074 + if (!(c2 & m)) { 17075 + b[6977] = c2 | m; 17076 + c2 = d2; 17077 + a3 = d2 + 8 | 0; 17078 + } else { 17079 + a3 = d2 + 8 | 0; 17080 + c2 = b[a3 >> 2] | 0; 17081 + } 17082 + b[a3 >> 2] = e2; 17083 + b[c2 + 12 >> 2] = e2; 17084 + b[e2 + 8 >> 2] = c2; 17085 + b[e2 + 12 >> 2] = d2; 17086 + } 17087 + b[6979] = j; 17088 + b[6982] = h; 17089 + } 17090 + v2 = i + 8 | 0; 17091 + T = w2; 17092 + return v2 | 0; 17093 + } else { 17094 + m = k; 17095 + } 17096 + } else { 17097 + m = k; 17098 + } 17099 + } else { 17100 + m = k; 17101 + } 17102 + } else if (a3 >>> 0 <= 4294967231) { 17103 + a3 = a3 + 11 | 0; 17104 + k = a3 & -8; 17105 + e2 = b[6978] | 0; 17106 + if (e2) { 17107 + f2 = 0 - k | 0; 17108 + a3 = a3 >>> 8; 17109 + if (a3) { 17110 + if (k >>> 0 > 16777215) { 17111 + j = 31; 17112 + } else { 17113 + m = (a3 + 1048320 | 0) >>> 16 & 8; 17114 + q2 = a3 << m; 17115 + i = (q2 + 520192 | 0) >>> 16 & 4; 17116 + q2 = q2 << i; 17117 + j = (q2 + 245760 | 0) >>> 16 & 2; 17118 + j = 14 - (i | m | j) + (q2 << j >>> 15) | 0; 17119 + j = k >>> (j + 7 | 0) & 1 | j << 1; 17120 + } 17121 + } else { 17122 + j = 0; 17123 + } 17124 + d2 = b[28212 + (j << 2) >> 2] | 0; 17125 + a: 17126 + do { 17127 + if (!d2) { 17128 + d2 = 0; 17129 + a3 = 0; 17130 + q2 = 61; 17131 + } else { 17132 + a3 = 0; 17133 + i = k << ((j | 0) == 31 ? 0 : 25 - (j >>> 1) | 0); 17134 + g2 = 0; 17135 + while (true) { 17136 + h = (b[d2 + 4 >> 2] & -8) - k | 0; 17137 + if (h >>> 0 < f2 >>> 0) { 17138 + if (!h) { 17139 + a3 = d2; 17140 + f2 = 0; 17141 + q2 = 65; 17142 + break a; 17143 + } else { 17144 + a3 = d2; 17145 + f2 = h; 17146 + } 17147 + } 17148 + q2 = b[d2 + 20 >> 2] | 0; 17149 + d2 = b[d2 + 16 + (i >>> 31 << 2) >> 2] | 0; 17150 + g2 = (q2 | 0) == 0 | (q2 | 0) == (d2 | 0) ? g2 : q2; 17151 + if (!d2) { 17152 + d2 = g2; 17153 + q2 = 61; 17154 + break; 17155 + } else { 17156 + i = i << 1; 17157 + } 17158 + } 17159 + } 17160 + } while (0); 17161 + if ((q2 | 0) == 61) { 17162 + if ((d2 | 0) == 0 & (a3 | 0) == 0) { 17163 + a3 = 2 << j; 17164 + a3 = (a3 | 0 - a3) & e2; 17165 + if (!a3) { 17166 + m = k; 17167 + break; 17168 + } 17169 + m = (a3 & 0 - a3) + -1 | 0; 17170 + h = m >>> 12 & 16; 17171 + m = m >>> h; 17172 + g2 = m >>> 5 & 8; 17173 + m = m >>> g2; 17174 + i = m >>> 2 & 4; 17175 + m = m >>> i; 17176 + j = m >>> 1 & 2; 17177 + m = m >>> j; 17178 + d2 = m >>> 1 & 1; 17179 + a3 = 0; 17180 + d2 = b[28212 + ((g2 | h | i | j | d2) + (m >>> d2) << 2) >> 2] | 0; 17181 + } 17182 + if (!d2) { 17183 + i = a3; 17184 + h = f2; 17185 + } else { 17186 + q2 = 65; 17187 + } 17188 + } 17189 + if ((q2 | 0) == 65) { 17190 + g2 = d2; 17191 + while (true) { 17192 + m = (b[g2 + 4 >> 2] & -8) - k | 0; 17193 + d2 = m >>> 0 < f2 >>> 0; 17194 + f2 = d2 ? m : f2; 17195 + a3 = d2 ? g2 : a3; 17196 + d2 = b[g2 + 16 >> 2] | 0; 17197 + if (!d2) { 17198 + d2 = b[g2 + 20 >> 2] | 0; 17199 + } 17200 + if (!d2) { 17201 + i = a3; 17202 + h = f2; 17203 + break; 17204 + } else { 17205 + g2 = d2; 17206 + } 17207 + } 17208 + } 17209 + if (((i | 0) != 0 ? h >>> 0 < ((b[6979] | 0) - k | 0) >>> 0 : 0) ? (l = i + k | 0, l >>> 0 > i >>> 0) : 0) { 17210 + g2 = b[i + 24 >> 2] | 0; 17211 + c2 = b[i + 12 >> 2] | 0; 17212 + do { 17213 + if ((c2 | 0) == (i | 0)) { 17214 + a3 = i + 20 | 0; 17215 + c2 = b[a3 >> 2] | 0; 17216 + if (!c2) { 17217 + a3 = i + 16 | 0; 17218 + c2 = b[a3 >> 2] | 0; 17219 + if (!c2) { 17220 + c2 = 0; 17221 + break; 17222 + } 17223 + } 17224 + while (true) { 17225 + f2 = c2 + 20 | 0; 17226 + d2 = b[f2 >> 2] | 0; 17227 + if (!d2) { 17228 + f2 = c2 + 16 | 0; 17229 + d2 = b[f2 >> 2] | 0; 17230 + if (!d2) { 17231 + break; 17232 + } else { 17233 + c2 = d2; 17234 + a3 = f2; 17235 + } 17236 + } else { 17237 + c2 = d2; 17238 + a3 = f2; 17239 + } 17240 + } 17241 + b[a3 >> 2] = 0; 17242 + } else { 17243 + v2 = b[i + 8 >> 2] | 0; 17244 + b[v2 + 12 >> 2] = c2; 17245 + b[c2 + 8 >> 2] = v2; 17246 + } 17247 + } while (0); 17248 + do { 17249 + if (g2) { 17250 + a3 = b[i + 28 >> 2] | 0; 17251 + d2 = 28212 + (a3 << 2) | 0; 17252 + if ((i | 0) == (b[d2 >> 2] | 0)) { 17253 + b[d2 >> 2] = c2; 17254 + if (!c2) { 17255 + e2 = e2 & ~(1 << a3); 17256 + b[6978] = e2; 17257 + break; 17258 + } 17259 + } else { 17260 + v2 = g2 + 16 | 0; 17261 + b[((b[v2 >> 2] | 0) == (i | 0) ? v2 : g2 + 20 | 0) >> 2] = c2; 17262 + if (!c2) { 17263 + break; 17264 + } 17265 + } 17266 + b[c2 + 24 >> 2] = g2; 17267 + a3 = b[i + 16 >> 2] | 0; 17268 + if (a3 | 0) { 17269 + b[c2 + 16 >> 2] = a3; 17270 + b[a3 + 24 >> 2] = c2; 17271 + } 17272 + a3 = b[i + 20 >> 2] | 0; 17273 + if (a3) { 17274 + b[c2 + 20 >> 2] = a3; 17275 + b[a3 + 24 >> 2] = c2; 17276 + } 17277 + } 17278 + } while (0); 17279 + b: 17280 + do { 17281 + if (h >>> 0 < 16) { 17282 + v2 = h + k | 0; 17283 + b[i + 4 >> 2] = v2 | 3; 17284 + v2 = i + v2 + 4 | 0; 17285 + b[v2 >> 2] = b[v2 >> 2] | 1; 17286 + } else { 17287 + b[i + 4 >> 2] = k | 3; 17288 + b[l + 4 >> 2] = h | 1; 17289 + b[l + h >> 2] = h; 17290 + c2 = h >>> 3; 17291 + if (h >>> 0 < 256) { 17292 + d2 = 27948 + (c2 << 1 << 2) | 0; 17293 + a3 = b[6977] | 0; 17294 + c2 = 1 << c2; 17295 + if (!(a3 & c2)) { 17296 + b[6977] = a3 | c2; 17297 + c2 = d2; 17298 + a3 = d2 + 8 | 0; 17299 + } else { 17300 + a3 = d2 + 8 | 0; 17301 + c2 = b[a3 >> 2] | 0; 17302 + } 17303 + b[a3 >> 2] = l; 17304 + b[c2 + 12 >> 2] = l; 17305 + b[l + 8 >> 2] = c2; 17306 + b[l + 12 >> 2] = d2; 17307 + break; 17308 + } 17309 + c2 = h >>> 8; 17310 + if (c2) { 17311 + if (h >>> 0 > 16777215) { 17312 + d2 = 31; 17313 + } else { 17314 + u2 = (c2 + 1048320 | 0) >>> 16 & 8; 17315 + v2 = c2 << u2; 17316 + t2 = (v2 + 520192 | 0) >>> 16 & 4; 17317 + v2 = v2 << t2; 17318 + d2 = (v2 + 245760 | 0) >>> 16 & 2; 17319 + d2 = 14 - (t2 | u2 | d2) + (v2 << d2 >>> 15) | 0; 17320 + d2 = h >>> (d2 + 7 | 0) & 1 | d2 << 1; 17321 + } 17322 + } else { 17323 + d2 = 0; 17324 + } 17325 + c2 = 28212 + (d2 << 2) | 0; 17326 + b[l + 28 >> 2] = d2; 17327 + a3 = l + 16 | 0; 17328 + b[a3 + 4 >> 2] = 0; 17329 + b[a3 >> 2] = 0; 17330 + a3 = 1 << d2; 17331 + if (!(e2 & a3)) { 17332 + b[6978] = e2 | a3; 17333 + b[c2 >> 2] = l; 17334 + b[l + 24 >> 2] = c2; 17335 + b[l + 12 >> 2] = l; 17336 + b[l + 8 >> 2] = l; 17337 + break; 17338 + } 17339 + c2 = b[c2 >> 2] | 0; 17340 + c: 17341 + do { 17342 + if ((b[c2 + 4 >> 2] & -8 | 0) != (h | 0)) { 17343 + e2 = h << ((d2 | 0) == 31 ? 0 : 25 - (d2 >>> 1) | 0); 17344 + while (true) { 17345 + d2 = c2 + 16 + (e2 >>> 31 << 2) | 0; 17346 + a3 = b[d2 >> 2] | 0; 17347 + if (!a3) { 17348 + break; 17349 + } 17350 + if ((b[a3 + 4 >> 2] & -8 | 0) == (h | 0)) { 17351 + c2 = a3; 17352 + break c; 17353 + } else { 17354 + e2 = e2 << 1; 17355 + c2 = a3; 17356 + } 17357 + } 17358 + b[d2 >> 2] = l; 17359 + b[l + 24 >> 2] = c2; 17360 + b[l + 12 >> 2] = l; 17361 + b[l + 8 >> 2] = l; 17362 + break b; 17363 + } 17364 + } while (0); 17365 + u2 = c2 + 8 | 0; 17366 + v2 = b[u2 >> 2] | 0; 17367 + b[v2 + 12 >> 2] = l; 17368 + b[u2 >> 2] = l; 17369 + b[l + 8 >> 2] = v2; 17370 + b[l + 12 >> 2] = c2; 17371 + b[l + 24 >> 2] = 0; 17372 + } 17373 + } while (0); 17374 + v2 = i + 8 | 0; 17375 + T = w2; 17376 + return v2 | 0; 17377 + } else { 17378 + m = k; 17379 + } 17380 + } else { 17381 + m = k; 17382 + } 17383 + } else { 17384 + m = -1; 17385 + } 17386 + } while (0); 17387 + d2 = b[6979] | 0; 17388 + if (d2 >>> 0 >= m >>> 0) { 17389 + c2 = d2 - m | 0; 17390 + a3 = b[6982] | 0; 17391 + if (c2 >>> 0 > 15) { 17392 + v2 = a3 + m | 0; 17393 + b[6982] = v2; 17394 + b[6979] = c2; 17395 + b[v2 + 4 >> 2] = c2 | 1; 17396 + b[a3 + d2 >> 2] = c2; 17397 + b[a3 + 4 >> 2] = m | 3; 17398 + } else { 17399 + b[6979] = 0; 17400 + b[6982] = 0; 17401 + b[a3 + 4 >> 2] = d2 | 3; 17402 + v2 = a3 + d2 + 4 | 0; 17403 + b[v2 >> 2] = b[v2 >> 2] | 1; 17404 + } 17405 + v2 = a3 + 8 | 0; 17406 + T = w2; 17407 + return v2 | 0; 17408 + } 17409 + h = b[6980] | 0; 17410 + if (h >>> 0 > m >>> 0) { 17411 + t2 = h - m | 0; 17412 + b[6980] = t2; 17413 + v2 = b[6983] | 0; 17414 + u2 = v2 + m | 0; 17415 + b[6983] = u2; 17416 + b[u2 + 4 >> 2] = t2 | 1; 17417 + b[v2 + 4 >> 2] = m | 3; 17418 + v2 = v2 + 8 | 0; 17419 + T = w2; 17420 + return v2 | 0; 17421 + } 17422 + if (!(b[7095] | 0)) { 17423 + b[7097] = 4096; 17424 + b[7096] = 4096; 17425 + b[7098] = -1; 17426 + b[7099] = -1; 17427 + b[7100] = 0; 17428 + b[7088] = 0; 17429 + b[7095] = n & -16 ^ 1431655768; 17430 + a3 = 4096; 17431 + } else { 17432 + a3 = b[7097] | 0; 17433 + } 17434 + i = m + 48 | 0; 17435 + j = m + 47 | 0; 17436 + g2 = a3 + j | 0; 17437 + f2 = 0 - a3 | 0; 17438 + k = g2 & f2; 17439 + if (k >>> 0 <= m >>> 0) { 17440 + v2 = 0; 17441 + T = w2; 17442 + return v2 | 0; 17443 + } 17444 + a3 = b[7087] | 0; 17445 + if (a3 | 0 ? (l = b[7085] | 0, n = l + k | 0, n >>> 0 <= l >>> 0 | n >>> 0 > a3 >>> 0) : 0) { 17446 + v2 = 0; 17447 + T = w2; 17448 + return v2 | 0; 17449 + } 17450 + d: 17451 + do { 17452 + if (!(b[7088] & 4)) { 17453 + d2 = b[6983] | 0; 17454 + e: 17455 + do { 17456 + if (d2) { 17457 + e2 = 28356; 17458 + while (true) { 17459 + n = b[e2 >> 2] | 0; 17460 + if (n >>> 0 <= d2 >>> 0 ? (n + (b[e2 + 4 >> 2] | 0) | 0) >>> 0 > d2 >>> 0 : 0) { 17461 + break; 17462 + } 17463 + a3 = b[e2 + 8 >> 2] | 0; 17464 + if (!a3) { 17465 + q2 = 128; 17466 + break e; 17467 + } else { 17468 + e2 = a3; 17469 + } 17470 + } 17471 + c2 = g2 - h & f2; 17472 + if (c2 >>> 0 < 2147483647) { 17473 + a3 = Zd(c2 | 0) | 0; 17474 + if ((a3 | 0) == ((b[e2 >> 2] | 0) + (b[e2 + 4 >> 2] | 0) | 0)) { 17475 + if ((a3 | 0) != (-1 | 0)) { 17476 + h = c2; 17477 + g2 = a3; 17478 + q2 = 145; 17479 + break d; 17480 + } 17481 + } else { 17482 + e2 = a3; 17483 + q2 = 136; 17484 + } 17485 + } else { 17486 + c2 = 0; 17487 + } 17488 + } else { 17489 + q2 = 128; 17490 + } 17491 + } while (0); 17492 + do { 17493 + if ((q2 | 0) == 128) { 17494 + d2 = Zd(0) | 0; 17495 + if ((d2 | 0) != (-1 | 0) ? (c2 = d2, o = b[7096] | 0, p3 = o + -1 | 0, c2 = ((p3 & c2 | 0) == 0 ? 0 : (p3 + c2 & 0 - o) - c2 | 0) + k | 0, o = b[7085] | 0, p3 = c2 + o | 0, c2 >>> 0 > m >>> 0 & c2 >>> 0 < 2147483647) : 0) { 17496 + n = b[7087] | 0; 17497 + if (n | 0 ? p3 >>> 0 <= o >>> 0 | p3 >>> 0 > n >>> 0 : 0) { 17498 + c2 = 0; 17499 + break; 17500 + } 17501 + a3 = Zd(c2 | 0) | 0; 17502 + if ((a3 | 0) == (d2 | 0)) { 17503 + h = c2; 17504 + g2 = d2; 17505 + q2 = 145; 17506 + break d; 17507 + } else { 17508 + e2 = a3; 17509 + q2 = 136; 17510 + } 17511 + } else { 17512 + c2 = 0; 17513 + } 17514 + } 17515 + } while (0); 17516 + do { 17517 + if ((q2 | 0) == 136) { 17518 + d2 = 0 - c2 | 0; 17519 + if (!(i >>> 0 > c2 >>> 0 & (c2 >>> 0 < 2147483647 & (e2 | 0) != (-1 | 0)))) { 17520 + if ((e2 | 0) == (-1 | 0)) { 17521 + c2 = 0; 17522 + break; 17523 + } else { 17524 + h = c2; 17525 + g2 = e2; 17526 + q2 = 145; 17527 + break d; 17528 + } 17529 + } 17530 + a3 = b[7097] | 0; 17531 + a3 = j - c2 + a3 & 0 - a3; 17532 + if (a3 >>> 0 >= 2147483647) { 17533 + h = c2; 17534 + g2 = e2; 17535 + q2 = 145; 17536 + break d; 17537 + } 17538 + if ((Zd(a3 | 0) | 0) == (-1 | 0)) { 17539 + Zd(d2 | 0) | 0; 17540 + c2 = 0; 17541 + break; 17542 + } else { 17543 + h = a3 + c2 | 0; 17544 + g2 = e2; 17545 + q2 = 145; 17546 + break d; 17547 + } 17548 + } 17549 + } while (0); 17550 + b[7088] = b[7088] | 4; 17551 + q2 = 143; 17552 + } else { 17553 + c2 = 0; 17554 + q2 = 143; 17555 + } 17556 + } while (0); 17557 + if (((q2 | 0) == 143 ? k >>> 0 < 2147483647 : 0) ? (t2 = Zd(k | 0) | 0, p3 = Zd(0) | 0, r2 = p3 - t2 | 0, s2 = r2 >>> 0 > (m + 40 | 0) >>> 0, !((t2 | 0) == (-1 | 0) | s2 ^ 1 | t2 >>> 0 < p3 >>> 0 & ((t2 | 0) != (-1 | 0) & (p3 | 0) != (-1 | 0)) ^ 1)) : 0) { 17558 + h = s2 ? r2 : c2; 17559 + g2 = t2; 17560 + q2 = 145; 17561 + } 17562 + if ((q2 | 0) == 145) { 17563 + c2 = (b[7085] | 0) + h | 0; 17564 + b[7085] = c2; 17565 + if (c2 >>> 0 > (b[7086] | 0) >>> 0) { 17566 + b[7086] = c2; 17567 + } 17568 + j = b[6983] | 0; 17569 + f: 17570 + do { 17571 + if (j) { 17572 + c2 = 28356; 17573 + while (true) { 17574 + a3 = b[c2 >> 2] | 0; 17575 + d2 = b[c2 + 4 >> 2] | 0; 17576 + if ((g2 | 0) == (a3 + d2 | 0)) { 17577 + q2 = 154; 17578 + break; 17579 + } 17580 + e2 = b[c2 + 8 >> 2] | 0; 17581 + if (!e2) { 17582 + break; 17583 + } else { 17584 + c2 = e2; 17585 + } 17586 + } 17587 + if (((q2 | 0) == 154 ? (u2 = c2 + 4 | 0, (b[c2 + 12 >> 2] & 8 | 0) == 0) : 0) ? g2 >>> 0 > j >>> 0 & a3 >>> 0 <= j >>> 0 : 0) { 17588 + b[u2 >> 2] = d2 + h; 17589 + v2 = (b[6980] | 0) + h | 0; 17590 + t2 = j + 8 | 0; 17591 + t2 = (t2 & 7 | 0) == 0 ? 0 : 0 - t2 & 7; 17592 + u2 = j + t2 | 0; 17593 + t2 = v2 - t2 | 0; 17594 + b[6983] = u2; 17595 + b[6980] = t2; 17596 + b[u2 + 4 >> 2] = t2 | 1; 17597 + b[j + v2 + 4 >> 2] = 40; 17598 + b[6984] = b[7099]; 17599 + break; 17600 + } 17601 + if (g2 >>> 0 < (b[6981] | 0) >>> 0) { 17602 + b[6981] = g2; 17603 + } 17604 + d2 = g2 + h | 0; 17605 + c2 = 28356; 17606 + while (true) { 17607 + if ((b[c2 >> 2] | 0) == (d2 | 0)) { 17608 + q2 = 162; 17609 + break; 17610 + } 17611 + a3 = b[c2 + 8 >> 2] | 0; 17612 + if (!a3) { 17613 + break; 17614 + } else { 17615 + c2 = a3; 17616 + } 17617 + } 17618 + if ((q2 | 0) == 162 ? (b[c2 + 12 >> 2] & 8 | 0) == 0 : 0) { 17619 + b[c2 >> 2] = g2; 17620 + l = c2 + 4 | 0; 17621 + b[l >> 2] = (b[l >> 2] | 0) + h; 17622 + l = g2 + 8 | 0; 17623 + l = g2 + ((l & 7 | 0) == 0 ? 0 : 0 - l & 7) | 0; 17624 + c2 = d2 + 8 | 0; 17625 + c2 = d2 + ((c2 & 7 | 0) == 0 ? 0 : 0 - c2 & 7) | 0; 17626 + k = l + m | 0; 17627 + i = c2 - l - m | 0; 17628 + b[l + 4 >> 2] = m | 3; 17629 + g: 17630 + do { 17631 + if ((j | 0) == (c2 | 0)) { 17632 + v2 = (b[6980] | 0) + i | 0; 17633 + b[6980] = v2; 17634 + b[6983] = k; 17635 + b[k + 4 >> 2] = v2 | 1; 17636 + } else { 17637 + if ((b[6982] | 0) == (c2 | 0)) { 17638 + v2 = (b[6979] | 0) + i | 0; 17639 + b[6979] = v2; 17640 + b[6982] = k; 17641 + b[k + 4 >> 2] = v2 | 1; 17642 + b[k + v2 >> 2] = v2; 17643 + break; 17644 + } 17645 + a3 = b[c2 + 4 >> 2] | 0; 17646 + if ((a3 & 3 | 0) == 1) { 17647 + h = a3 & -8; 17648 + e2 = a3 >>> 3; 17649 + h: 17650 + do { 17651 + if (a3 >>> 0 < 256) { 17652 + a3 = b[c2 + 8 >> 2] | 0; 17653 + d2 = b[c2 + 12 >> 2] | 0; 17654 + if ((d2 | 0) == (a3 | 0)) { 17655 + b[6977] = b[6977] & ~(1 << e2); 17656 + break; 17657 + } else { 17658 + b[a3 + 12 >> 2] = d2; 17659 + b[d2 + 8 >> 2] = a3; 17660 + break; 17661 + } 17662 + } else { 17663 + g2 = b[c2 + 24 >> 2] | 0; 17664 + a3 = b[c2 + 12 >> 2] | 0; 17665 + do { 17666 + if ((a3 | 0) == (c2 | 0)) { 17667 + d2 = c2 + 16 | 0; 17668 + e2 = d2 + 4 | 0; 17669 + a3 = b[e2 >> 2] | 0; 17670 + if (!a3) { 17671 + a3 = b[d2 >> 2] | 0; 17672 + if (!a3) { 17673 + a3 = 0; 17674 + break; 17675 + } 17676 + } else { 17677 + d2 = e2; 17678 + } 17679 + while (true) { 17680 + f2 = a3 + 20 | 0; 17681 + e2 = b[f2 >> 2] | 0; 17682 + if (!e2) { 17683 + f2 = a3 + 16 | 0; 17684 + e2 = b[f2 >> 2] | 0; 17685 + if (!e2) { 17686 + break; 17687 + } else { 17688 + a3 = e2; 17689 + d2 = f2; 17690 + } 17691 + } else { 17692 + a3 = e2; 17693 + d2 = f2; 17694 + } 17695 + } 17696 + b[d2 >> 2] = 0; 17697 + } else { 17698 + v2 = b[c2 + 8 >> 2] | 0; 17699 + b[v2 + 12 >> 2] = a3; 17700 + b[a3 + 8 >> 2] = v2; 17701 + } 17702 + } while (0); 17703 + if (!g2) { 17704 + break; 17705 + } 17706 + d2 = b[c2 + 28 >> 2] | 0; 17707 + e2 = 28212 + (d2 << 2) | 0; 17708 + do { 17709 + if ((b[e2 >> 2] | 0) != (c2 | 0)) { 17710 + v2 = g2 + 16 | 0; 17711 + b[((b[v2 >> 2] | 0) == (c2 | 0) ? v2 : g2 + 20 | 0) >> 2] = a3; 17712 + if (!a3) { 17713 + break h; 17714 + } 17715 + } else { 17716 + b[e2 >> 2] = a3; 17717 + if (a3 | 0) { 17718 + break; 17719 + } 17720 + b[6978] = b[6978] & ~(1 << d2); 17721 + break h; 17722 + } 17723 + } while (0); 17724 + b[a3 + 24 >> 2] = g2; 17725 + d2 = c2 + 16 | 0; 17726 + e2 = b[d2 >> 2] | 0; 17727 + if (e2 | 0) { 17728 + b[a3 + 16 >> 2] = e2; 17729 + b[e2 + 24 >> 2] = a3; 17730 + } 17731 + d2 = b[d2 + 4 >> 2] | 0; 17732 + if (!d2) { 17733 + break; 17734 + } 17735 + b[a3 + 20 >> 2] = d2; 17736 + b[d2 + 24 >> 2] = a3; 17737 + } 17738 + } while (0); 17739 + c2 = c2 + h | 0; 17740 + f2 = h + i | 0; 17741 + } else { 17742 + f2 = i; 17743 + } 17744 + c2 = c2 + 4 | 0; 17745 + b[c2 >> 2] = b[c2 >> 2] & -2; 17746 + b[k + 4 >> 2] = f2 | 1; 17747 + b[k + f2 >> 2] = f2; 17748 + c2 = f2 >>> 3; 17749 + if (f2 >>> 0 < 256) { 17750 + d2 = 27948 + (c2 << 1 << 2) | 0; 17751 + a3 = b[6977] | 0; 17752 + c2 = 1 << c2; 17753 + if (!(a3 & c2)) { 17754 + b[6977] = a3 | c2; 17755 + c2 = d2; 17756 + a3 = d2 + 8 | 0; 17757 + } else { 17758 + a3 = d2 + 8 | 0; 17759 + c2 = b[a3 >> 2] | 0; 17760 + } 17761 + b[a3 >> 2] = k; 17762 + b[c2 + 12 >> 2] = k; 17763 + b[k + 8 >> 2] = c2; 17764 + b[k + 12 >> 2] = d2; 17765 + break; 17766 + } 17767 + c2 = f2 >>> 8; 17768 + do { 17769 + if (!c2) { 17770 + e2 = 0; 17771 + } else { 17772 + if (f2 >>> 0 > 16777215) { 17773 + e2 = 31; 17774 + break; 17775 + } 17776 + u2 = (c2 + 1048320 | 0) >>> 16 & 8; 17777 + v2 = c2 << u2; 17778 + t2 = (v2 + 520192 | 0) >>> 16 & 4; 17779 + v2 = v2 << t2; 17780 + e2 = (v2 + 245760 | 0) >>> 16 & 2; 17781 + e2 = 14 - (t2 | u2 | e2) + (v2 << e2 >>> 15) | 0; 17782 + e2 = f2 >>> (e2 + 7 | 0) & 1 | e2 << 1; 17783 + } 17784 + } while (0); 17785 + c2 = 28212 + (e2 << 2) | 0; 17786 + b[k + 28 >> 2] = e2; 17787 + a3 = k + 16 | 0; 17788 + b[a3 + 4 >> 2] = 0; 17789 + b[a3 >> 2] = 0; 17790 + a3 = b[6978] | 0; 17791 + d2 = 1 << e2; 17792 + if (!(a3 & d2)) { 17793 + b[6978] = a3 | d2; 17794 + b[c2 >> 2] = k; 17795 + b[k + 24 >> 2] = c2; 17796 + b[k + 12 >> 2] = k; 17797 + b[k + 8 >> 2] = k; 17798 + break; 17799 + } 17800 + c2 = b[c2 >> 2] | 0; 17801 + i: 17802 + do { 17803 + if ((b[c2 + 4 >> 2] & -8 | 0) != (f2 | 0)) { 17804 + e2 = f2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); 17805 + while (true) { 17806 + d2 = c2 + 16 + (e2 >>> 31 << 2) | 0; 17807 + a3 = b[d2 >> 2] | 0; 17808 + if (!a3) { 17809 + break; 17810 + } 17811 + if ((b[a3 + 4 >> 2] & -8 | 0) == (f2 | 0)) { 17812 + c2 = a3; 17813 + break i; 17814 + } else { 17815 + e2 = e2 << 1; 17816 + c2 = a3; 17817 + } 17818 + } 17819 + b[d2 >> 2] = k; 17820 + b[k + 24 >> 2] = c2; 17821 + b[k + 12 >> 2] = k; 17822 + b[k + 8 >> 2] = k; 17823 + break g; 17824 + } 17825 + } while (0); 17826 + u2 = c2 + 8 | 0; 17827 + v2 = b[u2 >> 2] | 0; 17828 + b[v2 + 12 >> 2] = k; 17829 + b[u2 >> 2] = k; 17830 + b[k + 8 >> 2] = v2; 17831 + b[k + 12 >> 2] = c2; 17832 + b[k + 24 >> 2] = 0; 17833 + } 17834 + } while (0); 17835 + v2 = l + 8 | 0; 17836 + T = w2; 17837 + return v2 | 0; 17838 + } 17839 + c2 = 28356; 17840 + while (true) { 17841 + a3 = b[c2 >> 2] | 0; 17842 + if (a3 >>> 0 <= j >>> 0 ? (v2 = a3 + (b[c2 + 4 >> 2] | 0) | 0, v2 >>> 0 > j >>> 0) : 0) { 17843 + break; 17844 + } 17845 + c2 = b[c2 + 8 >> 2] | 0; 17846 + } 17847 + f2 = v2 + -47 | 0; 17848 + a3 = f2 + 8 | 0; 17849 + a3 = f2 + ((a3 & 7 | 0) == 0 ? 0 : 0 - a3 & 7) | 0; 17850 + f2 = j + 16 | 0; 17851 + a3 = a3 >>> 0 < f2 >>> 0 ? j : a3; 17852 + c2 = a3 + 8 | 0; 17853 + d2 = h + -40 | 0; 17854 + t2 = g2 + 8 | 0; 17855 + t2 = (t2 & 7 | 0) == 0 ? 0 : 0 - t2 & 7; 17856 + u2 = g2 + t2 | 0; 17857 + t2 = d2 - t2 | 0; 17858 + b[6983] = u2; 17859 + b[6980] = t2; 17860 + b[u2 + 4 >> 2] = t2 | 1; 17861 + b[g2 + d2 + 4 >> 2] = 40; 17862 + b[6984] = b[7099]; 17863 + d2 = a3 + 4 | 0; 17864 + b[d2 >> 2] = 27; 17865 + b[c2 >> 2] = b[7089]; 17866 + b[c2 + 4 >> 2] = b[7090]; 17867 + b[c2 + 8 >> 2] = b[7091]; 17868 + b[c2 + 12 >> 2] = b[7092]; 17869 + b[7089] = g2; 17870 + b[7090] = h; 17871 + b[7092] = 0; 17872 + b[7091] = c2; 17873 + c2 = a3 + 24 | 0; 17874 + do { 17875 + u2 = c2; 17876 + c2 = c2 + 4 | 0; 17877 + b[c2 >> 2] = 7; 17878 + } while ((u2 + 8 | 0) >>> 0 < v2 >>> 0); 17879 + if ((a3 | 0) != (j | 0)) { 17880 + g2 = a3 - j | 0; 17881 + b[d2 >> 2] = b[d2 >> 2] & -2; 17882 + b[j + 4 >> 2] = g2 | 1; 17883 + b[a3 >> 2] = g2; 17884 + c2 = g2 >>> 3; 17885 + if (g2 >>> 0 < 256) { 17886 + d2 = 27948 + (c2 << 1 << 2) | 0; 17887 + a3 = b[6977] | 0; 17888 + c2 = 1 << c2; 17889 + if (!(a3 & c2)) { 17890 + b[6977] = a3 | c2; 17891 + c2 = d2; 17892 + a3 = d2 + 8 | 0; 17893 + } else { 17894 + a3 = d2 + 8 | 0; 17895 + c2 = b[a3 >> 2] | 0; 17896 + } 17897 + b[a3 >> 2] = j; 17898 + b[c2 + 12 >> 2] = j; 17899 + b[j + 8 >> 2] = c2; 17900 + b[j + 12 >> 2] = d2; 17901 + break; 17902 + } 17903 + c2 = g2 >>> 8; 17904 + if (c2) { 17905 + if (g2 >>> 0 > 16777215) { 17906 + e2 = 31; 17907 + } else { 17908 + u2 = (c2 + 1048320 | 0) >>> 16 & 8; 17909 + v2 = c2 << u2; 17910 + t2 = (v2 + 520192 | 0) >>> 16 & 4; 17911 + v2 = v2 << t2; 17912 + e2 = (v2 + 245760 | 0) >>> 16 & 2; 17913 + e2 = 14 - (t2 | u2 | e2) + (v2 << e2 >>> 15) | 0; 17914 + e2 = g2 >>> (e2 + 7 | 0) & 1 | e2 << 1; 17915 + } 17916 + } else { 17917 + e2 = 0; 17918 + } 17919 + d2 = 28212 + (e2 << 2) | 0; 17920 + b[j + 28 >> 2] = e2; 17921 + b[j + 20 >> 2] = 0; 17922 + b[f2 >> 2] = 0; 17923 + c2 = b[6978] | 0; 17924 + a3 = 1 << e2; 17925 + if (!(c2 & a3)) { 17926 + b[6978] = c2 | a3; 17927 + b[d2 >> 2] = j; 17928 + b[j + 24 >> 2] = d2; 17929 + b[j + 12 >> 2] = j; 17930 + b[j + 8 >> 2] = j; 17931 + break; 17932 + } 17933 + c2 = b[d2 >> 2] | 0; 17934 + j: 17935 + do { 17936 + if ((b[c2 + 4 >> 2] & -8 | 0) != (g2 | 0)) { 17937 + e2 = g2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); 17938 + while (true) { 17939 + d2 = c2 + 16 + (e2 >>> 31 << 2) | 0; 17940 + a3 = b[d2 >> 2] | 0; 17941 + if (!a3) { 17942 + break; 17943 + } 17944 + if ((b[a3 + 4 >> 2] & -8 | 0) == (g2 | 0)) { 17945 + c2 = a3; 17946 + break j; 17947 + } else { 17948 + e2 = e2 << 1; 17949 + c2 = a3; 17950 + } 17951 + } 17952 + b[d2 >> 2] = j; 17953 + b[j + 24 >> 2] = c2; 17954 + b[j + 12 >> 2] = j; 17955 + b[j + 8 >> 2] = j; 17956 + break f; 17957 + } 17958 + } while (0); 17959 + u2 = c2 + 8 | 0; 17960 + v2 = b[u2 >> 2] | 0; 17961 + b[v2 + 12 >> 2] = j; 17962 + b[u2 >> 2] = j; 17963 + b[j + 8 >> 2] = v2; 17964 + b[j + 12 >> 2] = c2; 17965 + b[j + 24 >> 2] = 0; 17966 + } 17967 + } else { 17968 + v2 = b[6981] | 0; 17969 + if ((v2 | 0) == 0 | g2 >>> 0 < v2 >>> 0) { 17970 + b[6981] = g2; 17971 + } 17972 + b[7089] = g2; 17973 + b[7090] = h; 17974 + b[7092] = 0; 17975 + b[6986] = b[7095]; 17976 + b[6985] = -1; 17977 + b[6990] = 27948; 17978 + b[6989] = 27948; 17979 + b[6992] = 27956; 17980 + b[6991] = 27956; 17981 + b[6994] = 27964; 17982 + b[6993] = 27964; 17983 + b[6996] = 27972; 17984 + b[6995] = 27972; 17985 + b[6998] = 27980; 17986 + b[6997] = 27980; 17987 + b[7000] = 27988; 17988 + b[6999] = 27988; 17989 + b[7002] = 27996; 17990 + b[7001] = 27996; 17991 + b[7004] = 28004; 17992 + b[7003] = 28004; 17993 + b[7006] = 28012; 17994 + b[7005] = 28012; 17995 + b[7008] = 28020; 17996 + b[7007] = 28020; 17997 + b[7010] = 28028; 17998 + b[7009] = 28028; 17999 + b[7012] = 28036; 18000 + b[7011] = 28036; 18001 + b[7014] = 28044; 18002 + b[7013] = 28044; 18003 + b[7016] = 28052; 18004 + b[7015] = 28052; 18005 + b[7018] = 28060; 18006 + b[7017] = 28060; 18007 + b[7020] = 28068; 18008 + b[7019] = 28068; 18009 + b[7022] = 28076; 18010 + b[7021] = 28076; 18011 + b[7024] = 28084; 18012 + b[7023] = 28084; 18013 + b[7026] = 28092; 18014 + b[7025] = 28092; 18015 + b[7028] = 28100; 18016 + b[7027] = 28100; 18017 + b[7030] = 28108; 18018 + b[7029] = 28108; 18019 + b[7032] = 28116; 18020 + b[7031] = 28116; 18021 + b[7034] = 28124; 18022 + b[7033] = 28124; 18023 + b[7036] = 28132; 18024 + b[7035] = 28132; 18025 + b[7038] = 28140; 18026 + b[7037] = 28140; 18027 + b[7040] = 28148; 18028 + b[7039] = 28148; 18029 + b[7042] = 28156; 18030 + b[7041] = 28156; 18031 + b[7044] = 28164; 18032 + b[7043] = 28164; 18033 + b[7046] = 28172; 18034 + b[7045] = 28172; 18035 + b[7048] = 28180; 18036 + b[7047] = 28180; 18037 + b[7050] = 28188; 18038 + b[7049] = 28188; 18039 + b[7052] = 28196; 18040 + b[7051] = 28196; 18041 + v2 = h + -40 | 0; 18042 + t2 = g2 + 8 | 0; 18043 + t2 = (t2 & 7 | 0) == 0 ? 0 : 0 - t2 & 7; 18044 + u2 = g2 + t2 | 0; 18045 + t2 = v2 - t2 | 0; 18046 + b[6983] = u2; 18047 + b[6980] = t2; 18048 + b[u2 + 4 >> 2] = t2 | 1; 18049 + b[g2 + v2 + 4 >> 2] = 40; 18050 + b[6984] = b[7099]; 18051 + } 18052 + } while (0); 18053 + c2 = b[6980] | 0; 18054 + if (c2 >>> 0 > m >>> 0) { 18055 + t2 = c2 - m | 0; 18056 + b[6980] = t2; 18057 + v2 = b[6983] | 0; 18058 + u2 = v2 + m | 0; 18059 + b[6983] = u2; 18060 + b[u2 + 4 >> 2] = t2 | 1; 18061 + b[v2 + 4 >> 2] = m | 3; 18062 + v2 = v2 + 8 | 0; 18063 + T = w2; 18064 + return v2 | 0; 18065 + } 18066 + } 18067 + v2 = Bd() | 0; 18068 + b[v2 >> 2] = 12; 18069 + v2 = 0; 18070 + T = w2; 18071 + return v2 | 0; 18072 + } 18073 + function Ed(a3) { 18074 + a3 = a3 | 0; 18075 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 18076 + if (!a3) { 18077 + return; 18078 + } 18079 + d2 = a3 + -8 | 0; 18080 + f2 = b[6981] | 0; 18081 + a3 = b[a3 + -4 >> 2] | 0; 18082 + c2 = a3 & -8; 18083 + j = d2 + c2 | 0; 18084 + do { 18085 + if (!(a3 & 1)) { 18086 + e2 = b[d2 >> 2] | 0; 18087 + if (!(a3 & 3)) { 18088 + return; 18089 + } 18090 + h = d2 + (0 - e2) | 0; 18091 + g2 = e2 + c2 | 0; 18092 + if (h >>> 0 < f2 >>> 0) { 18093 + return; 18094 + } 18095 + if ((b[6982] | 0) == (h | 0)) { 18096 + a3 = j + 4 | 0; 18097 + c2 = b[a3 >> 2] | 0; 18098 + if ((c2 & 3 | 0) != 3) { 18099 + i = h; 18100 + c2 = g2; 18101 + break; 18102 + } 18103 + b[6979] = g2; 18104 + b[a3 >> 2] = c2 & -2; 18105 + b[h + 4 >> 2] = g2 | 1; 18106 + b[h + g2 >> 2] = g2; 18107 + return; 18108 + } 18109 + d2 = e2 >>> 3; 18110 + if (e2 >>> 0 < 256) { 18111 + a3 = b[h + 8 >> 2] | 0; 18112 + c2 = b[h + 12 >> 2] | 0; 18113 + if ((c2 | 0) == (a3 | 0)) { 18114 + b[6977] = b[6977] & ~(1 << d2); 18115 + i = h; 18116 + c2 = g2; 18117 + break; 18118 + } else { 18119 + b[a3 + 12 >> 2] = c2; 18120 + b[c2 + 8 >> 2] = a3; 18121 + i = h; 18122 + c2 = g2; 18123 + break; 18124 + } 18125 + } 18126 + f2 = b[h + 24 >> 2] | 0; 18127 + a3 = b[h + 12 >> 2] | 0; 18128 + do { 18129 + if ((a3 | 0) == (h | 0)) { 18130 + c2 = h + 16 | 0; 18131 + d2 = c2 + 4 | 0; 18132 + a3 = b[d2 >> 2] | 0; 18133 + if (!a3) { 18134 + a3 = b[c2 >> 2] | 0; 18135 + if (!a3) { 18136 + a3 = 0; 18137 + break; 18138 + } 18139 + } else { 18140 + c2 = d2; 18141 + } 18142 + while (true) { 18143 + e2 = a3 + 20 | 0; 18144 + d2 = b[e2 >> 2] | 0; 18145 + if (!d2) { 18146 + e2 = a3 + 16 | 0; 18147 + d2 = b[e2 >> 2] | 0; 18148 + if (!d2) { 18149 + break; 18150 + } else { 18151 + a3 = d2; 18152 + c2 = e2; 18153 + } 18154 + } else { 18155 + a3 = d2; 18156 + c2 = e2; 18157 + } 18158 + } 18159 + b[c2 >> 2] = 0; 18160 + } else { 18161 + i = b[h + 8 >> 2] | 0; 18162 + b[i + 12 >> 2] = a3; 18163 + b[a3 + 8 >> 2] = i; 18164 + } 18165 + } while (0); 18166 + if (f2) { 18167 + c2 = b[h + 28 >> 2] | 0; 18168 + d2 = 28212 + (c2 << 2) | 0; 18169 + if ((b[d2 >> 2] | 0) == (h | 0)) { 18170 + b[d2 >> 2] = a3; 18171 + if (!a3) { 18172 + b[6978] = b[6978] & ~(1 << c2); 18173 + i = h; 18174 + c2 = g2; 18175 + break; 18176 + } 18177 + } else { 18178 + i = f2 + 16 | 0; 18179 + b[((b[i >> 2] | 0) == (h | 0) ? i : f2 + 20 | 0) >> 2] = a3; 18180 + if (!a3) { 18181 + i = h; 18182 + c2 = g2; 18183 + break; 18184 + } 18185 + } 18186 + b[a3 + 24 >> 2] = f2; 18187 + c2 = h + 16 | 0; 18188 + d2 = b[c2 >> 2] | 0; 18189 + if (d2 | 0) { 18190 + b[a3 + 16 >> 2] = d2; 18191 + b[d2 + 24 >> 2] = a3; 18192 + } 18193 + c2 = b[c2 + 4 >> 2] | 0; 18194 + if (c2) { 18195 + b[a3 + 20 >> 2] = c2; 18196 + b[c2 + 24 >> 2] = a3; 18197 + i = h; 18198 + c2 = g2; 18199 + } else { 18200 + i = h; 18201 + c2 = g2; 18202 + } 18203 + } else { 18204 + i = h; 18205 + c2 = g2; 18206 + } 18207 + } else { 18208 + i = d2; 18209 + h = d2; 18210 + } 18211 + } while (0); 18212 + if (h >>> 0 >= j >>> 0) { 18213 + return; 18214 + } 18215 + a3 = j + 4 | 0; 18216 + e2 = b[a3 >> 2] | 0; 18217 + if (!(e2 & 1)) { 18218 + return; 18219 + } 18220 + if (!(e2 & 2)) { 18221 + if ((b[6983] | 0) == (j | 0)) { 18222 + j = (b[6980] | 0) + c2 | 0; 18223 + b[6980] = j; 18224 + b[6983] = i; 18225 + b[i + 4 >> 2] = j | 1; 18226 + if ((i | 0) != (b[6982] | 0)) { 18227 + return; 18228 + } 18229 + b[6982] = 0; 18230 + b[6979] = 0; 18231 + return; 18232 + } 18233 + if ((b[6982] | 0) == (j | 0)) { 18234 + j = (b[6979] | 0) + c2 | 0; 18235 + b[6979] = j; 18236 + b[6982] = h; 18237 + b[i + 4 >> 2] = j | 1; 18238 + b[h + j >> 2] = j; 18239 + return; 18240 + } 18241 + f2 = (e2 & -8) + c2 | 0; 18242 + d2 = e2 >>> 3; 18243 + do { 18244 + if (e2 >>> 0 < 256) { 18245 + c2 = b[j + 8 >> 2] | 0; 18246 + a3 = b[j + 12 >> 2] | 0; 18247 + if ((a3 | 0) == (c2 | 0)) { 18248 + b[6977] = b[6977] & ~(1 << d2); 18249 + break; 18250 + } else { 18251 + b[c2 + 12 >> 2] = a3; 18252 + b[a3 + 8 >> 2] = c2; 18253 + break; 18254 + } 18255 + } else { 18256 + g2 = b[j + 24 >> 2] | 0; 18257 + a3 = b[j + 12 >> 2] | 0; 18258 + do { 18259 + if ((a3 | 0) == (j | 0)) { 18260 + c2 = j + 16 | 0; 18261 + d2 = c2 + 4 | 0; 18262 + a3 = b[d2 >> 2] | 0; 18263 + if (!a3) { 18264 + a3 = b[c2 >> 2] | 0; 18265 + if (!a3) { 18266 + d2 = 0; 18267 + break; 18268 + } 18269 + } else { 18270 + c2 = d2; 18271 + } 18272 + while (true) { 18273 + e2 = a3 + 20 | 0; 18274 + d2 = b[e2 >> 2] | 0; 18275 + if (!d2) { 18276 + e2 = a3 + 16 | 0; 18277 + d2 = b[e2 >> 2] | 0; 18278 + if (!d2) { 18279 + break; 18280 + } else { 18281 + a3 = d2; 18282 + c2 = e2; 18283 + } 18284 + } else { 18285 + a3 = d2; 18286 + c2 = e2; 18287 + } 18288 + } 18289 + b[c2 >> 2] = 0; 18290 + d2 = a3; 18291 + } else { 18292 + d2 = b[j + 8 >> 2] | 0; 18293 + b[d2 + 12 >> 2] = a3; 18294 + b[a3 + 8 >> 2] = d2; 18295 + d2 = a3; 18296 + } 18297 + } while (0); 18298 + if (g2 | 0) { 18299 + a3 = b[j + 28 >> 2] | 0; 18300 + c2 = 28212 + (a3 << 2) | 0; 18301 + if ((b[c2 >> 2] | 0) == (j | 0)) { 18302 + b[c2 >> 2] = d2; 18303 + if (!d2) { 18304 + b[6978] = b[6978] & ~(1 << a3); 18305 + break; 18306 + } 18307 + } else { 18308 + e2 = g2 + 16 | 0; 18309 + b[((b[e2 >> 2] | 0) == (j | 0) ? e2 : g2 + 20 | 0) >> 2] = d2; 18310 + if (!d2) { 18311 + break; 18312 + } 18313 + } 18314 + b[d2 + 24 >> 2] = g2; 18315 + a3 = j + 16 | 0; 18316 + c2 = b[a3 >> 2] | 0; 18317 + if (c2 | 0) { 18318 + b[d2 + 16 >> 2] = c2; 18319 + b[c2 + 24 >> 2] = d2; 18320 + } 18321 + a3 = b[a3 + 4 >> 2] | 0; 18322 + if (a3 | 0) { 18323 + b[d2 + 20 >> 2] = a3; 18324 + b[a3 + 24 >> 2] = d2; 18325 + } 18326 + } 18327 + } 18328 + } while (0); 18329 + b[i + 4 >> 2] = f2 | 1; 18330 + b[h + f2 >> 2] = f2; 18331 + if ((i | 0) == (b[6982] | 0)) { 18332 + b[6979] = f2; 18333 + return; 18334 + } 18335 + } else { 18336 + b[a3 >> 2] = e2 & -2; 18337 + b[i + 4 >> 2] = c2 | 1; 18338 + b[h + c2 >> 2] = c2; 18339 + f2 = c2; 18340 + } 18341 + a3 = f2 >>> 3; 18342 + if (f2 >>> 0 < 256) { 18343 + d2 = 27948 + (a3 << 1 << 2) | 0; 18344 + c2 = b[6977] | 0; 18345 + a3 = 1 << a3; 18346 + if (!(c2 & a3)) { 18347 + b[6977] = c2 | a3; 18348 + a3 = d2; 18349 + c2 = d2 + 8 | 0; 18350 + } else { 18351 + c2 = d2 + 8 | 0; 18352 + a3 = b[c2 >> 2] | 0; 18353 + } 18354 + b[c2 >> 2] = i; 18355 + b[a3 + 12 >> 2] = i; 18356 + b[i + 8 >> 2] = a3; 18357 + b[i + 12 >> 2] = d2; 18358 + return; 18359 + } 18360 + a3 = f2 >>> 8; 18361 + if (a3) { 18362 + if (f2 >>> 0 > 16777215) { 18363 + e2 = 31; 18364 + } else { 18365 + h = (a3 + 1048320 | 0) >>> 16 & 8; 18366 + j = a3 << h; 18367 + g2 = (j + 520192 | 0) >>> 16 & 4; 18368 + j = j << g2; 18369 + e2 = (j + 245760 | 0) >>> 16 & 2; 18370 + e2 = 14 - (g2 | h | e2) + (j << e2 >>> 15) | 0; 18371 + e2 = f2 >>> (e2 + 7 | 0) & 1 | e2 << 1; 18372 + } 18373 + } else { 18374 + e2 = 0; 18375 + } 18376 + a3 = 28212 + (e2 << 2) | 0; 18377 + b[i + 28 >> 2] = e2; 18378 + b[i + 20 >> 2] = 0; 18379 + b[i + 16 >> 2] = 0; 18380 + c2 = b[6978] | 0; 18381 + d2 = 1 << e2; 18382 + a: 18383 + do { 18384 + if (!(c2 & d2)) { 18385 + b[6978] = c2 | d2; 18386 + b[a3 >> 2] = i; 18387 + b[i + 24 >> 2] = a3; 18388 + b[i + 12 >> 2] = i; 18389 + b[i + 8 >> 2] = i; 18390 + } else { 18391 + a3 = b[a3 >> 2] | 0; 18392 + b: 18393 + do { 18394 + if ((b[a3 + 4 >> 2] & -8 | 0) != (f2 | 0)) { 18395 + e2 = f2 << ((e2 | 0) == 31 ? 0 : 25 - (e2 >>> 1) | 0); 18396 + while (true) { 18397 + d2 = a3 + 16 + (e2 >>> 31 << 2) | 0; 18398 + c2 = b[d2 >> 2] | 0; 18399 + if (!c2) { 18400 + break; 18401 + } 18402 + if ((b[c2 + 4 >> 2] & -8 | 0) == (f2 | 0)) { 18403 + a3 = c2; 18404 + break b; 18405 + } else { 18406 + e2 = e2 << 1; 18407 + a3 = c2; 18408 + } 18409 + } 18410 + b[d2 >> 2] = i; 18411 + b[i + 24 >> 2] = a3; 18412 + b[i + 12 >> 2] = i; 18413 + b[i + 8 >> 2] = i; 18414 + break a; 18415 + } 18416 + } while (0); 18417 + h = a3 + 8 | 0; 18418 + j = b[h >> 2] | 0; 18419 + b[j + 12 >> 2] = i; 18420 + b[h >> 2] = i; 18421 + b[i + 8 >> 2] = j; 18422 + b[i + 12 >> 2] = a3; 18423 + b[i + 24 >> 2] = 0; 18424 + } 18425 + } while (0); 18426 + j = (b[6985] | 0) + -1 | 0; 18427 + b[6985] = j; 18428 + if (j | 0) { 18429 + return; 18430 + } 18431 + a3 = 28364; 18432 + while (true) { 18433 + a3 = b[a3 >> 2] | 0; 18434 + if (!a3) { 18435 + break; 18436 + } else { 18437 + a3 = a3 + 8 | 0; 18438 + } 18439 + } 18440 + b[6985] = -1; 18441 + return; 18442 + } 18443 + function Fd(a3, c2) { 18444 + a3 = a3 | 0; 18445 + c2 = c2 | 0; 18446 + var d2 = 0; 18447 + if (a3) { 18448 + d2 = B(c2, a3) | 0; 18449 + if ((c2 | a3) >>> 0 > 65535) { 18450 + d2 = ((d2 >>> 0) / (a3 >>> 0) | 0 | 0) == (c2 | 0) ? d2 : -1; 18451 + } 18452 + } else { 18453 + d2 = 0; 18454 + } 18455 + a3 = Dd(d2) | 0; 18456 + if (!a3) { 18457 + return a3 | 0; 18458 + } 18459 + if (!(b[a3 + -4 >> 2] & 3)) { 18460 + return a3 | 0; 18461 + } 18462 + Xd(a3 | 0, 0, d2 | 0) | 0; 18463 + return a3 | 0; 18464 + } 18465 + function Gd(a3, b2, c2, d2) { 18466 + a3 = a3 | 0; 18467 + b2 = b2 | 0; 18468 + c2 = c2 | 0; 18469 + d2 = d2 | 0; 18470 + c2 = a3 + c2 >>> 0; 18471 + return (G(b2 + d2 + (c2 >>> 0 < a3 >>> 0 | 0) >>> 0 | 0), c2 | 0) | 0; 18472 + } 18473 + function Hd(a3, b2, c2, d2) { 18474 + a3 = a3 | 0; 18475 + b2 = b2 | 0; 18476 + c2 = c2 | 0; 18477 + d2 = d2 | 0; 18478 + d2 = b2 - d2 - (c2 >>> 0 > a3 >>> 0 | 0) >>> 0; 18479 + return (G(d2 | 0), a3 - c2 >>> 0 | 0) | 0; 18480 + } 18481 + function Id(a3) { 18482 + a3 = a3 | 0; 18483 + return (a3 ? 31 - (E(a3 ^ a3 - 1) | 0) | 0 : 32) | 0; 18484 + } 18485 + function Jd(a3, c2, d2, e2, f2) { 18486 + a3 = a3 | 0; 18487 + c2 = c2 | 0; 18488 + d2 = d2 | 0; 18489 + e2 = e2 | 0; 18490 + f2 = f2 | 0; 18491 + var g2 = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p3 = 0; 18492 + l = a3; 18493 + j = c2; 18494 + k = j; 18495 + h = d2; 18496 + n = e2; 18497 + i = n; 18498 + if (!k) { 18499 + g2 = (f2 | 0) != 0; 18500 + if (!i) { 18501 + if (g2) { 18502 + b[f2 >> 2] = (l >>> 0) % (h >>> 0); 18503 + b[f2 + 4 >> 2] = 0; 18504 + } 18505 + n = 0; 18506 + f2 = (l >>> 0) / (h >>> 0) >>> 0; 18507 + return (G(n | 0), f2) | 0; 18508 + } else { 18509 + if (!g2) { 18510 + n = 0; 18511 + f2 = 0; 18512 + return (G(n | 0), f2) | 0; 18513 + } 18514 + b[f2 >> 2] = a3 | 0; 18515 + b[f2 + 4 >> 2] = c2 & 0; 18516 + n = 0; 18517 + f2 = 0; 18518 + return (G(n | 0), f2) | 0; 18519 + } 18520 + } 18521 + g2 = (i | 0) == 0; 18522 + do { 18523 + if (h) { 18524 + if (!g2) { 18525 + g2 = (E(i | 0) | 0) - (E(k | 0) | 0) | 0; 18526 + if (g2 >>> 0 <= 31) { 18527 + m = g2 + 1 | 0; 18528 + i = 31 - g2 | 0; 18529 + c2 = g2 - 31 >> 31; 18530 + h = m; 18531 + a3 = l >>> (m >>> 0) & c2 | k << i; 18532 + c2 = k >>> (m >>> 0) & c2; 18533 + g2 = 0; 18534 + i = l << i; 18535 + break; 18536 + } 18537 + if (!f2) { 18538 + n = 0; 18539 + f2 = 0; 18540 + return (G(n | 0), f2) | 0; 18541 + } 18542 + b[f2 >> 2] = a3 | 0; 18543 + b[f2 + 4 >> 2] = j | c2 & 0; 18544 + n = 0; 18545 + f2 = 0; 18546 + return (G(n | 0), f2) | 0; 18547 + } 18548 + g2 = h - 1 | 0; 18549 + if (g2 & h | 0) { 18550 + i = (E(h | 0) | 0) + 33 - (E(k | 0) | 0) | 0; 18551 + p3 = 64 - i | 0; 18552 + m = 32 - i | 0; 18553 + j = m >> 31; 18554 + o = i - 32 | 0; 18555 + c2 = o >> 31; 18556 + h = i; 18557 + a3 = m - 1 >> 31 & k >>> (o >>> 0) | (k << m | l >>> (i >>> 0)) & c2; 18558 + c2 = c2 & k >>> (i >>> 0); 18559 + g2 = l << p3 & j; 18560 + i = (k << p3 | l >>> (o >>> 0)) & j | l << m & i - 33 >> 31; 18561 + break; 18562 + } 18563 + if (f2 | 0) { 18564 + b[f2 >> 2] = g2 & l; 18565 + b[f2 + 4 >> 2] = 0; 18566 + } 18567 + if ((h | 0) == 1) { 18568 + o = j | c2 & 0; 18569 + p3 = a3 | 0 | 0; 18570 + return (G(o | 0), p3) | 0; 18571 + } else { 18572 + p3 = Id(h | 0) | 0; 18573 + o = k >>> (p3 >>> 0) | 0; 18574 + p3 = k << 32 - p3 | l >>> (p3 >>> 0) | 0; 18575 + return (G(o | 0), p3) | 0; 18576 + } 18577 + } else { 18578 + if (g2) { 18579 + if (f2 | 0) { 18580 + b[f2 >> 2] = (k >>> 0) % (h >>> 0); 18581 + b[f2 + 4 >> 2] = 0; 18582 + } 18583 + o = 0; 18584 + p3 = (k >>> 0) / (h >>> 0) >>> 0; 18585 + return (G(o | 0), p3) | 0; 18586 + } 18587 + if (!l) { 18588 + if (f2 | 0) { 18589 + b[f2 >> 2] = 0; 18590 + b[f2 + 4 >> 2] = (k >>> 0) % (i >>> 0); 18591 + } 18592 + o = 0; 18593 + p3 = (k >>> 0) / (i >>> 0) >>> 0; 18594 + return (G(o | 0), p3) | 0; 18595 + } 18596 + g2 = i - 1 | 0; 18597 + if (!(g2 & i)) { 18598 + if (f2 | 0) { 18599 + b[f2 >> 2] = a3 | 0; 18600 + b[f2 + 4 >> 2] = g2 & k | c2 & 0; 18601 + } 18602 + o = 0; 18603 + p3 = k >>> ((Id(i | 0) | 0) >>> 0); 18604 + return (G(o | 0), p3) | 0; 18605 + } 18606 + g2 = (E(i | 0) | 0) - (E(k | 0) | 0) | 0; 18607 + if (g2 >>> 0 <= 30) { 18608 + c2 = g2 + 1 | 0; 18609 + i = 31 - g2 | 0; 18610 + h = c2; 18611 + a3 = k << i | l >>> (c2 >>> 0); 18612 + c2 = k >>> (c2 >>> 0); 18613 + g2 = 0; 18614 + i = l << i; 18615 + break; 18616 + } 18617 + if (!f2) { 18618 + o = 0; 18619 + p3 = 0; 18620 + return (G(o | 0), p3) | 0; 18621 + } 18622 + b[f2 >> 2] = a3 | 0; 18623 + b[f2 + 4 >> 2] = j | c2 & 0; 18624 + o = 0; 18625 + p3 = 0; 18626 + return (G(o | 0), p3) | 0; 18627 + } 18628 + } while (0); 18629 + if (!h) { 18630 + k = i; 18631 + j = 0; 18632 + i = 0; 18633 + } else { 18634 + m = d2 | 0 | 0; 18635 + l = n | e2 & 0; 18636 + k = Gd(m | 0, l | 0, -1, -1) | 0; 18637 + d2 = H() | 0; 18638 + j = i; 18639 + i = 0; 18640 + do { 18641 + e2 = j; 18642 + j = g2 >>> 31 | j << 1; 18643 + g2 = i | g2 << 1; 18644 + e2 = a3 << 1 | e2 >>> 31 | 0; 18645 + n = a3 >>> 31 | c2 << 1 | 0; 18646 + Hd(k | 0, d2 | 0, e2 | 0, n | 0) | 0; 18647 + p3 = H() | 0; 18648 + o = p3 >> 31 | ((p3 | 0) < 0 ? -1 : 0) << 1; 18649 + i = o & 1; 18650 + a3 = Hd(e2 | 0, n | 0, o & m | 0, (((p3 | 0) < 0 ? -1 : 0) >> 31 | ((p3 | 0) < 0 ? -1 : 0) << 1) & l | 0) | 0; 18651 + c2 = H() | 0; 18652 + h = h - 1 | 0; 18653 + } while ((h | 0) != 0); 18654 + k = j; 18655 + j = 0; 18656 + } 18657 + h = 0; 18658 + if (f2 | 0) { 18659 + b[f2 >> 2] = a3; 18660 + b[f2 + 4 >> 2] = c2; 18661 + } 18662 + o = (g2 | 0) >>> 31 | (k | h) << 1 | (h << 1 | g2 >>> 31) & 0 | j; 18663 + p3 = (g2 << 1 | 0 >>> 31) & -2 | i; 18664 + return (G(o | 0), p3) | 0; 18665 + } 18666 + function Kd(a3, b2, c2, d2) { 18667 + a3 = a3 | 0; 18668 + b2 = b2 | 0; 18669 + c2 = c2 | 0; 18670 + d2 = d2 | 0; 18671 + var e2 = 0, f2 = 0, g2 = 0, h = 0, i = 0, j = 0; 18672 + j = b2 >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; 18673 + i = ((b2 | 0) < 0 ? -1 : 0) >> 31 | ((b2 | 0) < 0 ? -1 : 0) << 1; 18674 + f2 = d2 >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; 18675 + e2 = ((d2 | 0) < 0 ? -1 : 0) >> 31 | ((d2 | 0) < 0 ? -1 : 0) << 1; 18676 + h = Hd(j ^ a3 | 0, i ^ b2 | 0, j | 0, i | 0) | 0; 18677 + g2 = H() | 0; 18678 + a3 = f2 ^ j; 18679 + b2 = e2 ^ i; 18680 + return Hd((Jd(h, g2, Hd(f2 ^ c2 | 0, e2 ^ d2 | 0, f2 | 0, e2 | 0) | 0, H() | 0, 0) | 0) ^ a3 | 0, (H() | 0) ^ b2 | 0, a3 | 0, b2 | 0) | 0; 18681 + } 18682 + function Ld(a3, b2) { 18683 + a3 = a3 | 0; 18684 + b2 = b2 | 0; 18685 + var c2 = 0, d2 = 0, e2 = 0, f2 = 0; 18686 + f2 = a3 & 65535; 18687 + e2 = b2 & 65535; 18688 + c2 = B(e2, f2) | 0; 18689 + d2 = a3 >>> 16; 18690 + a3 = (c2 >>> 16) + (B(e2, d2) | 0) | 0; 18691 + e2 = b2 >>> 16; 18692 + b2 = B(e2, f2) | 0; 18693 + return (G((a3 >>> 16) + (B(e2, d2) | 0) + (((a3 & 65535) + b2 | 0) >>> 16) | 0), a3 + b2 << 16 | c2 & 65535 | 0) | 0; 18694 + } 18695 + function Md(a3, b2, c2, d2) { 18696 + a3 = a3 | 0; 18697 + b2 = b2 | 0; 18698 + c2 = c2 | 0; 18699 + d2 = d2 | 0; 18700 + var e2 = 0, f2 = 0; 18701 + e2 = a3; 18702 + f2 = c2; 18703 + c2 = Ld(e2, f2) | 0; 18704 + a3 = H() | 0; 18705 + return (G((B(b2, f2) | 0) + (B(d2, e2) | 0) + a3 | a3 & 0 | 0), c2 | 0 | 0) | 0; 18706 + } 18707 + function Nd(a3, c2, d2, e2) { 18708 + a3 = a3 | 0; 18709 + c2 = c2 | 0; 18710 + d2 = d2 | 0; 18711 + e2 = e2 | 0; 18712 + var f2 = 0, g2 = 0, h = 0, i = 0, j = 0, k = 0; 18713 + f2 = T; 18714 + T = T + 16 | 0; 18715 + i = f2 | 0; 18716 + h = c2 >> 31 | ((c2 | 0) < 0 ? -1 : 0) << 1; 18717 + g2 = ((c2 | 0) < 0 ? -1 : 0) >> 31 | ((c2 | 0) < 0 ? -1 : 0) << 1; 18718 + k = e2 >> 31 | ((e2 | 0) < 0 ? -1 : 0) << 1; 18719 + j = ((e2 | 0) < 0 ? -1 : 0) >> 31 | ((e2 | 0) < 0 ? -1 : 0) << 1; 18720 + a3 = Hd(h ^ a3 | 0, g2 ^ c2 | 0, h | 0, g2 | 0) | 0; 18721 + c2 = H() | 0; 18722 + Jd(a3, c2, Hd(k ^ d2 | 0, j ^ e2 | 0, k | 0, j | 0) | 0, H() | 0, i) | 0; 18723 + e2 = Hd(b[i >> 2] ^ h | 0, b[i + 4 >> 2] ^ g2 | 0, h | 0, g2 | 0) | 0; 18724 + d2 = H() | 0; 18725 + T = f2; 18726 + return (G(d2 | 0), e2) | 0; 18727 + } 18728 + function Od(a3, c2, d2, e2) { 18729 + a3 = a3 | 0; 18730 + c2 = c2 | 0; 18731 + d2 = d2 | 0; 18732 + e2 = e2 | 0; 18733 + var f2 = 0, g2 = 0; 18734 + g2 = T; 18735 + T = T + 16 | 0; 18736 + f2 = g2 | 0; 18737 + Jd(a3, c2, d2, e2, f2) | 0; 18738 + T = g2; 18739 + return (G(b[f2 + 4 >> 2] | 0), b[f2 >> 2] | 0) | 0; 18740 + } 18741 + function Pd(a3, b2, c2) { 18742 + a3 = a3 | 0; 18743 + b2 = b2 | 0; 18744 + c2 = c2 | 0; 18745 + if ((c2 | 0) < 32) { 18746 + G(b2 >> c2 | 0); 18747 + return a3 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; 18748 + } 18749 + G(((b2 | 0) < 0 ? -1 : 0) | 0); 18750 + return b2 >> c2 - 32 | 0; 18751 + } 18752 + function Qd(a3, b2, c2) { 18753 + a3 = a3 | 0; 18754 + b2 = b2 | 0; 18755 + c2 = c2 | 0; 18756 + if ((c2 | 0) < 32) { 18757 + G(b2 >>> c2 | 0); 18758 + return a3 >>> c2 | (b2 & (1 << c2) - 1) << 32 - c2; 18759 + } 18760 + G(0); 18761 + return b2 >>> c2 - 32 | 0; 18762 + } 18763 + function Rd(a3, b2, c2) { 18764 + a3 = a3 | 0; 18765 + b2 = b2 | 0; 18766 + c2 = c2 | 0; 18767 + if ((c2 | 0) < 32) { 18768 + G(b2 << c2 | (a3 & (1 << c2) - 1 << 32 - c2) >>> 32 - c2 | 0); 18769 + return a3 << c2; 18770 + } 18771 + G(a3 << c2 - 32 | 0); 18772 + return 0; 18773 + } 18774 + function Sd(a3, b2, c2) { 18775 + a3 = a3 | 0; 18776 + b2 = b2 | 0; 18777 + c2 = c2 | 0; 18778 + b2 = E(b2) | 0; 18779 + if ((b2 | 0) == 32) { 18780 + b2 = b2 + (E(a3) | 0) | 0; 18781 + } 18782 + G(0); 18783 + return b2 | 0; 18784 + } 18785 + function Td(a3, b2) { 18786 + a3 = +a3; 18787 + b2 = +b2; 18788 + if (a3 != a3) { 18789 + return +b2; 18790 + } 18791 + if (b2 != b2) { 18792 + return +a3; 18793 + } 18794 + return +D(+a3, +b2); 18795 + } 18796 + function Ud(a3, b2) { 18797 + a3 = +a3; 18798 + b2 = +b2; 18799 + if (a3 != a3) { 18800 + return +b2; 18801 + } 18802 + if (b2 != b2) { 18803 + return +a3; 18804 + } 18805 + return +C(+a3, +b2); 18806 + } 18807 + function Vd(a3) { 18808 + a3 = +a3; 18809 + return a3 >= 0 ? +p2(a3 + 0.5) : +A(a3 - 0.5); 18810 + } 18811 + function Wd(c2, d2, e2) { 18812 + c2 = c2 | 0; 18813 + d2 = d2 | 0; 18814 + e2 = e2 | 0; 18815 + var f2 = 0, g2 = 0, h = 0; 18816 + if ((e2 | 0) >= 8192) { 18817 + L(c2 | 0, d2 | 0, e2 | 0) | 0; 18818 + return c2 | 0; 18819 + } 18820 + h = c2 | 0; 18821 + g2 = c2 + e2 | 0; 18822 + if ((c2 & 3) == (d2 & 3)) { 18823 + while (c2 & 3) { 18824 + if (!e2) { 18825 + return h | 0; 18826 + } 18827 + a2[c2 >> 0] = a2[d2 >> 0] | 0; 18828 + c2 = c2 + 1 | 0; 18829 + d2 = d2 + 1 | 0; 18830 + e2 = e2 - 1 | 0; 18831 + } 18832 + e2 = g2 & -4 | 0; 18833 + f2 = e2 - 64 | 0; 18834 + while ((c2 | 0) <= (f2 | 0)) { 18835 + b[c2 >> 2] = b[d2 >> 2]; 18836 + b[c2 + 4 >> 2] = b[d2 + 4 >> 2]; 18837 + b[c2 + 8 >> 2] = b[d2 + 8 >> 2]; 18838 + b[c2 + 12 >> 2] = b[d2 + 12 >> 2]; 18839 + b[c2 + 16 >> 2] = b[d2 + 16 >> 2]; 18840 + b[c2 + 20 >> 2] = b[d2 + 20 >> 2]; 18841 + b[c2 + 24 >> 2] = b[d2 + 24 >> 2]; 18842 + b[c2 + 28 >> 2] = b[d2 + 28 >> 2]; 18843 + b[c2 + 32 >> 2] = b[d2 + 32 >> 2]; 18844 + b[c2 + 36 >> 2] = b[d2 + 36 >> 2]; 18845 + b[c2 + 40 >> 2] = b[d2 + 40 >> 2]; 18846 + b[c2 + 44 >> 2] = b[d2 + 44 >> 2]; 18847 + b[c2 + 48 >> 2] = b[d2 + 48 >> 2]; 18848 + b[c2 + 52 >> 2] = b[d2 + 52 >> 2]; 18849 + b[c2 + 56 >> 2] = b[d2 + 56 >> 2]; 18850 + b[c2 + 60 >> 2] = b[d2 + 60 >> 2]; 18851 + c2 = c2 + 64 | 0; 18852 + d2 = d2 + 64 | 0; 18853 + } 18854 + while ((c2 | 0) < (e2 | 0)) { 18855 + b[c2 >> 2] = b[d2 >> 2]; 18856 + c2 = c2 + 4 | 0; 18857 + d2 = d2 + 4 | 0; 18858 + } 18859 + } else { 18860 + e2 = g2 - 4 | 0; 18861 + while ((c2 | 0) < (e2 | 0)) { 18862 + a2[c2 >> 0] = a2[d2 >> 0] | 0; 18863 + a2[c2 + 1 >> 0] = a2[d2 + 1 >> 0] | 0; 18864 + a2[c2 + 2 >> 0] = a2[d2 + 2 >> 0] | 0; 18865 + a2[c2 + 3 >> 0] = a2[d2 + 3 >> 0] | 0; 18866 + c2 = c2 + 4 | 0; 18867 + d2 = d2 + 4 | 0; 18868 + } 18869 + } 18870 + while ((c2 | 0) < (g2 | 0)) { 18871 + a2[c2 >> 0] = a2[d2 >> 0] | 0; 18872 + c2 = c2 + 1 | 0; 18873 + d2 = d2 + 1 | 0; 18874 + } 18875 + return h | 0; 18876 + } 18877 + function Xd(c2, d2, e2) { 18878 + c2 = c2 | 0; 18879 + d2 = d2 | 0; 18880 + e2 = e2 | 0; 18881 + var f2 = 0, g2 = 0, h = 0, i = 0; 18882 + h = c2 + e2 | 0; 18883 + d2 = d2 & 255; 18884 + if ((e2 | 0) >= 67) { 18885 + while (c2 & 3) { 18886 + a2[c2 >> 0] = d2; 18887 + c2 = c2 + 1 | 0; 18888 + } 18889 + f2 = h & -4 | 0; 18890 + i = d2 | d2 << 8 | d2 << 16 | d2 << 24; 18891 + g2 = f2 - 64 | 0; 18892 + while ((c2 | 0) <= (g2 | 0)) { 18893 + b[c2 >> 2] = i; 18894 + b[c2 + 4 >> 2] = i; 18895 + b[c2 + 8 >> 2] = i; 18896 + b[c2 + 12 >> 2] = i; 18897 + b[c2 + 16 >> 2] = i; 18898 + b[c2 + 20 >> 2] = i; 18899 + b[c2 + 24 >> 2] = i; 18900 + b[c2 + 28 >> 2] = i; 18901 + b[c2 + 32 >> 2] = i; 18902 + b[c2 + 36 >> 2] = i; 18903 + b[c2 + 40 >> 2] = i; 18904 + b[c2 + 44 >> 2] = i; 18905 + b[c2 + 48 >> 2] = i; 18906 + b[c2 + 52 >> 2] = i; 18907 + b[c2 + 56 >> 2] = i; 18908 + b[c2 + 60 >> 2] = i; 18909 + c2 = c2 + 64 | 0; 18910 + } 18911 + while ((c2 | 0) < (f2 | 0)) { 18912 + b[c2 >> 2] = i; 18913 + c2 = c2 + 4 | 0; 18914 + } 18915 + } 18916 + while ((c2 | 0) < (h | 0)) { 18917 + a2[c2 >> 0] = d2; 18918 + c2 = c2 + 1 | 0; 18919 + } 18920 + return h - e2 | 0; 18921 + } 18922 + function Yd(a3) { 18923 + a3 = +a3; 18924 + return a3 >= 0 ? +p2(a3 + 0.5) : +A(a3 - 0.5); 18925 + } 18926 + function Zd(a3) { 18927 + a3 = a3 | 0; 18928 + var c2 = 0, d2 = 0, e2 = 0; 18929 + e2 = K() | 0; 18930 + d2 = b[g >> 2] | 0; 18931 + c2 = d2 + a3 | 0; 18932 + if ((a3 | 0) > 0 & (c2 | 0) < (d2 | 0) | (c2 | 0) < 0) { 18933 + N(c2 | 0) | 0; 18934 + J(12); 18935 + return -1; 18936 + } 18937 + if ((c2 | 0) > (e2 | 0)) { 18938 + if (!(M(c2 | 0) | 0)) { 18939 + J(12); 18940 + return -1; 18941 + } 18942 + } 18943 + b[g >> 2] = c2; 18944 + return d2 | 0; 18945 + } 18946 + return { 18947 + ___divdi3: Kd, 18948 + ___muldi3: Md, 18949 + ___remdi3: Nd, 18950 + ___uremdi3: Od, 18951 + _areNeighborCells: ib, 18952 + _bitshift64Ashr: Pd, 18953 + _bitshift64Lshr: Qd, 18954 + _bitshift64Shl: Rd, 18955 + _calloc: Fd, 18956 + _cellAreaKm2: xc, 18957 + _cellAreaM2: yc, 18958 + _cellAreaRads2: wc, 18959 + _cellToBoundary: _b, 18960 + _cellToCenterChild: Kb, 18961 + _cellToChildPos: dc, 18962 + _cellToChildren: Ib, 18963 + _cellToChildrenSize: Gb, 18964 + _cellToLatLng: Zb, 18965 + _cellToLocalIj: Jc, 18966 + _cellToParent: Fb, 18967 + _cellToVertex: qd, 18968 + _cellToVertexes: rd, 18969 + _cellsToDirectedEdge: jb, 18970 + _cellsToLinkedMultiPolygon: na, 18971 + _childPosToCell: ec, 18972 + _compactCells: Lb, 18973 + _destroyLinkedMultiPolygon: Ec, 18974 + _directedEdgeToBoundary: pb, 18975 + _directedEdgeToCells: nb, 18976 + _edgeLengthKm: Ac, 18977 + _edgeLengthM: Bc, 18978 + _edgeLengthRads: zc, 18979 + _emscripten_replace_memory: W, 18980 + _free: Ed, 18981 + _getBaseCellNumber: Cb, 18982 + _getDirectedEdgeDestination: lb, 18983 + _getDirectedEdgeOrigin: kb, 18984 + _getHexagonAreaAvgKm2: qc, 18985 + _getHexagonAreaAvgM2: rc, 18986 + _getHexagonEdgeLengthAvgKm: sc, 18987 + _getHexagonEdgeLengthAvgM: tc, 18988 + _getIcosahedronFaces: ac, 18989 + _getNumCells: uc, 18990 + _getPentagons: cc, 18991 + _getRes0Cells: ya, 18992 + _getResolution: Bb, 18993 + _greatCircleDistanceKm: mc, 18994 + _greatCircleDistanceM: nc, 18995 + _greatCircleDistanceRads: lc, 18996 + _gridDisk: aa, 18997 + _gridDiskDistances: ba, 18998 + _gridDistance: Lc, 18999 + _gridPathCells: Nc, 19000 + _gridPathCellsSize: Mc, 19001 + _gridRing: fa, 19002 + _gridRingUnsafe: ga, 19003 + _i64Add: Gd, 19004 + _i64Subtract: Hd, 19005 + _isPentagon: Hb, 19006 + _isResClassIII: Ob, 19007 + _isValidCell: Db, 19008 + _isValidDirectedEdge: mb, 19009 + _isValidVertex: td, 19010 + _latLngToCell: Wb, 19011 + _llvm_ctlz_i64: Sd, 19012 + _llvm_maxnum_f64: Td, 19013 + _llvm_minnum_f64: Ud, 19014 + _llvm_round_f64: Vd, 19015 + _localIjToCell: Kc, 19016 + _malloc: Dd, 19017 + _maxFaceCount: $b, 19018 + _maxGridDiskSize: $, 19019 + _maxPolygonToCellsSize: ja, 19020 + _maxPolygonToCellsSizeExperimental: Uc, 19021 + _memcpy: Wd, 19022 + _memset: Xd, 19023 + _originToDirectedEdges: ob, 19024 + _pentagonCount: bc, 19025 + _polygonToCells: la, 19026 + _polygonToCellsExperimental: Tc, 19027 + _readInt64AsDoubleFromPointer: id2, 19028 + _res0CellCount: xa, 19029 + _round: Yd, 19030 + _sbrk: Zd, 19031 + _sizeOfCellBoundary: dd, 19032 + _sizeOfCoordIJ: hd, 19033 + _sizeOfGeoLoop: ed, 19034 + _sizeOfGeoPolygon: fd, 19035 + _sizeOfH3Index: bd, 19036 + _sizeOfLatLng: cd, 19037 + _sizeOfLinkedGeoPolygon: gd, 19038 + _uncompactCells: Mb, 19039 + _uncompactCellsSize: Nb, 19040 + _vertexToLatLng: sd, 19041 + establishStackSpace: _, 19042 + stackAlloc: X, 19043 + stackRestore: Z, 19044 + stackSave: Y 19045 + }; 19046 + }(asmGlobalArg, asmLibraryArg, buffer); 19047 + var ___divdi3 = Module["___divdi3"] = asm["___divdi3"]; 19048 + var ___muldi3 = Module["___muldi3"] = asm["___muldi3"]; 19049 + var ___remdi3 = Module["___remdi3"] = asm["___remdi3"]; 19050 + var ___uremdi3 = Module["___uremdi3"] = asm["___uremdi3"]; 19051 + var _areNeighborCells = Module["_areNeighborCells"] = asm["_areNeighborCells"]; 19052 + var _bitshift64Ashr = Module["_bitshift64Ashr"] = asm["_bitshift64Ashr"]; 19053 + var _bitshift64Lshr = Module["_bitshift64Lshr"] = asm["_bitshift64Lshr"]; 19054 + var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; 19055 + var _calloc = Module["_calloc"] = asm["_calloc"]; 19056 + var _cellAreaKm2 = Module["_cellAreaKm2"] = asm["_cellAreaKm2"]; 19057 + var _cellAreaM2 = Module["_cellAreaM2"] = asm["_cellAreaM2"]; 19058 + var _cellAreaRads2 = Module["_cellAreaRads2"] = asm["_cellAreaRads2"]; 19059 + var _cellToBoundary = Module["_cellToBoundary"] = asm["_cellToBoundary"]; 19060 + var _cellToCenterChild = Module["_cellToCenterChild"] = asm["_cellToCenterChild"]; 19061 + var _cellToChildPos = Module["_cellToChildPos"] = asm["_cellToChildPos"]; 19062 + var _cellToChildren = Module["_cellToChildren"] = asm["_cellToChildren"]; 19063 + var _cellToChildrenSize = Module["_cellToChildrenSize"] = asm["_cellToChildrenSize"]; 19064 + var _cellToLatLng = Module["_cellToLatLng"] = asm["_cellToLatLng"]; 19065 + var _cellToLocalIj = Module["_cellToLocalIj"] = asm["_cellToLocalIj"]; 19066 + var _cellToParent = Module["_cellToParent"] = asm["_cellToParent"]; 19067 + var _cellToVertex = Module["_cellToVertex"] = asm["_cellToVertex"]; 19068 + var _cellToVertexes = Module["_cellToVertexes"] = asm["_cellToVertexes"]; 19069 + var _cellsToDirectedEdge = Module["_cellsToDirectedEdge"] = asm["_cellsToDirectedEdge"]; 19070 + var _cellsToLinkedMultiPolygon = Module["_cellsToLinkedMultiPolygon"] = asm["_cellsToLinkedMultiPolygon"]; 19071 + var _childPosToCell = Module["_childPosToCell"] = asm["_childPosToCell"]; 19072 + var _compactCells = Module["_compactCells"] = asm["_compactCells"]; 19073 + var _destroyLinkedMultiPolygon = Module["_destroyLinkedMultiPolygon"] = asm["_destroyLinkedMultiPolygon"]; 19074 + var _directedEdgeToBoundary = Module["_directedEdgeToBoundary"] = asm["_directedEdgeToBoundary"]; 19075 + var _directedEdgeToCells = Module["_directedEdgeToCells"] = asm["_directedEdgeToCells"]; 19076 + var _edgeLengthKm = Module["_edgeLengthKm"] = asm["_edgeLengthKm"]; 19077 + var _edgeLengthM = Module["_edgeLengthM"] = asm["_edgeLengthM"]; 19078 + var _edgeLengthRads = Module["_edgeLengthRads"] = asm["_edgeLengthRads"]; 19079 + var _emscripten_replace_memory = Module["_emscripten_replace_memory"] = asm["_emscripten_replace_memory"]; 19080 + var _free = Module["_free"] = asm["_free"]; 19081 + var _getBaseCellNumber = Module["_getBaseCellNumber"] = asm["_getBaseCellNumber"]; 19082 + var _getDirectedEdgeDestination = Module["_getDirectedEdgeDestination"] = asm["_getDirectedEdgeDestination"]; 19083 + var _getDirectedEdgeOrigin = Module["_getDirectedEdgeOrigin"] = asm["_getDirectedEdgeOrigin"]; 19084 + var _getHexagonAreaAvgKm2 = Module["_getHexagonAreaAvgKm2"] = asm["_getHexagonAreaAvgKm2"]; 19085 + var _getHexagonAreaAvgM2 = Module["_getHexagonAreaAvgM2"] = asm["_getHexagonAreaAvgM2"]; 19086 + var _getHexagonEdgeLengthAvgKm = Module["_getHexagonEdgeLengthAvgKm"] = asm["_getHexagonEdgeLengthAvgKm"]; 19087 + var _getHexagonEdgeLengthAvgM = Module["_getHexagonEdgeLengthAvgM"] = asm["_getHexagonEdgeLengthAvgM"]; 19088 + var _getIcosahedronFaces = Module["_getIcosahedronFaces"] = asm["_getIcosahedronFaces"]; 19089 + var _getNumCells = Module["_getNumCells"] = asm["_getNumCells"]; 19090 + var _getPentagons = Module["_getPentagons"] = asm["_getPentagons"]; 19091 + var _getRes0Cells = Module["_getRes0Cells"] = asm["_getRes0Cells"]; 19092 + var _getResolution = Module["_getResolution"] = asm["_getResolution"]; 19093 + var _greatCircleDistanceKm = Module["_greatCircleDistanceKm"] = asm["_greatCircleDistanceKm"]; 19094 + var _greatCircleDistanceM = Module["_greatCircleDistanceM"] = asm["_greatCircleDistanceM"]; 19095 + var _greatCircleDistanceRads = Module["_greatCircleDistanceRads"] = asm["_greatCircleDistanceRads"]; 19096 + var _gridDisk = Module["_gridDisk"] = asm["_gridDisk"]; 19097 + var _gridDiskDistances = Module["_gridDiskDistances"] = asm["_gridDiskDistances"]; 19098 + var _gridDistance = Module["_gridDistance"] = asm["_gridDistance"]; 19099 + var _gridPathCells = Module["_gridPathCells"] = asm["_gridPathCells"]; 19100 + var _gridPathCellsSize = Module["_gridPathCellsSize"] = asm["_gridPathCellsSize"]; 19101 + var _gridRing = Module["_gridRing"] = asm["_gridRing"]; 19102 + var _gridRingUnsafe = Module["_gridRingUnsafe"] = asm["_gridRingUnsafe"]; 19103 + var _i64Add = Module["_i64Add"] = asm["_i64Add"]; 19104 + var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; 19105 + var _isPentagon = Module["_isPentagon"] = asm["_isPentagon"]; 19106 + var _isResClassIII = Module["_isResClassIII"] = asm["_isResClassIII"]; 19107 + var _isValidCell = Module["_isValidCell"] = asm["_isValidCell"]; 19108 + var _isValidDirectedEdge = Module["_isValidDirectedEdge"] = asm["_isValidDirectedEdge"]; 19109 + var _isValidVertex = Module["_isValidVertex"] = asm["_isValidVertex"]; 19110 + var _latLngToCell = Module["_latLngToCell"] = asm["_latLngToCell"]; 19111 + var _llvm_ctlz_i64 = Module["_llvm_ctlz_i64"] = asm["_llvm_ctlz_i64"]; 19112 + var _llvm_maxnum_f64 = Module["_llvm_maxnum_f64"] = asm["_llvm_maxnum_f64"]; 19113 + var _llvm_minnum_f64 = Module["_llvm_minnum_f64"] = asm["_llvm_minnum_f64"]; 19114 + var _llvm_round_f64 = Module["_llvm_round_f64"] = asm["_llvm_round_f64"]; 19115 + var _localIjToCell = Module["_localIjToCell"] = asm["_localIjToCell"]; 19116 + var _malloc = Module["_malloc"] = asm["_malloc"]; 19117 + var _maxFaceCount = Module["_maxFaceCount"] = asm["_maxFaceCount"]; 19118 + var _maxGridDiskSize = Module["_maxGridDiskSize"] = asm["_maxGridDiskSize"]; 19119 + var _maxPolygonToCellsSize = Module["_maxPolygonToCellsSize"] = asm["_maxPolygonToCellsSize"]; 19120 + var _maxPolygonToCellsSizeExperimental = Module["_maxPolygonToCellsSizeExperimental"] = asm["_maxPolygonToCellsSizeExperimental"]; 19121 + var _memcpy = Module["_memcpy"] = asm["_memcpy"]; 19122 + var _memset = Module["_memset"] = asm["_memset"]; 19123 + var _originToDirectedEdges = Module["_originToDirectedEdges"] = asm["_originToDirectedEdges"]; 19124 + var _pentagonCount = Module["_pentagonCount"] = asm["_pentagonCount"]; 19125 + var _polygonToCells = Module["_polygonToCells"] = asm["_polygonToCells"]; 19126 + var _polygonToCellsExperimental = Module["_polygonToCellsExperimental"] = asm["_polygonToCellsExperimental"]; 19127 + var _readInt64AsDoubleFromPointer = Module["_readInt64AsDoubleFromPointer"] = asm["_readInt64AsDoubleFromPointer"]; 19128 + var _res0CellCount = Module["_res0CellCount"] = asm["_res0CellCount"]; 19129 + var _round = Module["_round"] = asm["_round"]; 19130 + var _sbrk = Module["_sbrk"] = asm["_sbrk"]; 19131 + var _sizeOfCellBoundary = Module["_sizeOfCellBoundary"] = asm["_sizeOfCellBoundary"]; 19132 + var _sizeOfCoordIJ = Module["_sizeOfCoordIJ"] = asm["_sizeOfCoordIJ"]; 19133 + var _sizeOfGeoLoop = Module["_sizeOfGeoLoop"] = asm["_sizeOfGeoLoop"]; 19134 + var _sizeOfGeoPolygon = Module["_sizeOfGeoPolygon"] = asm["_sizeOfGeoPolygon"]; 19135 + var _sizeOfH3Index = Module["_sizeOfH3Index"] = asm["_sizeOfH3Index"]; 19136 + var _sizeOfLatLng = Module["_sizeOfLatLng"] = asm["_sizeOfLatLng"]; 19137 + var _sizeOfLinkedGeoPolygon = Module["_sizeOfLinkedGeoPolygon"] = asm["_sizeOfLinkedGeoPolygon"]; 19138 + var _uncompactCells = Module["_uncompactCells"] = asm["_uncompactCells"]; 19139 + var _uncompactCellsSize = Module["_uncompactCellsSize"] = asm["_uncompactCellsSize"]; 19140 + var _vertexToLatLng = Module["_vertexToLatLng"] = asm["_vertexToLatLng"]; 19141 + var establishStackSpace = Module["establishStackSpace"] = asm["establishStackSpace"]; 19142 + var stackAlloc = Module["stackAlloc"] = asm["stackAlloc"]; 19143 + var stackRestore = Module["stackRestore"] = asm["stackRestore"]; 19144 + var stackSave = Module["stackSave"] = asm["stackSave"]; 19145 + Module["asm"] = asm; 19146 + Module["cwrap"] = cwrap; 19147 + Module["setValue"] = setValue2; 19148 + Module["getValue"] = getValue; 19149 + if (memoryInitializer) { 19150 + if (!isDataURI(memoryInitializer)) { 19151 + memoryInitializer = locateFile(memoryInitializer); 19152 + } 19153 + { 19154 + addRunDependency("memory initializer"); 19155 + var applyMemoryInitializer = function(data) { 19156 + if (data.byteLength) { 19157 + data = new Uint8Array(data); 19158 + } 19159 + HEAPU8.set(data, GLOBAL_BASE); 19160 + if (Module["memoryInitializerRequest"]) { 19161 + delete Module["memoryInitializerRequest"].response; 19162 + } 19163 + removeRunDependency("memory initializer"); 19164 + }; 19165 + var doBrowserLoad = function() { 19166 + readAsync(memoryInitializer, applyMemoryInitializer, function() { 19167 + throw "could not load memory initializer " + memoryInitializer; 19168 + }); 19169 + }; 19170 + var memoryInitializerBytes = tryParseAsDataURI(memoryInitializer); 19171 + if (memoryInitializerBytes) { 19172 + applyMemoryInitializer(memoryInitializerBytes.buffer); 19173 + } else if (Module["memoryInitializerRequest"]) { 19174 + var useRequest = function() { 19175 + var request = Module["memoryInitializerRequest"]; 19176 + var response = request.response; 19177 + if (request.status !== 200 && request.status !== 0) { 19178 + var data = tryParseAsDataURI(Module["memoryInitializerRequestURL"]); 19179 + if (data) { 19180 + response = data.buffer; 19181 + } else { 19182 + console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: " + request.status + ", retrying " + memoryInitializer); 19183 + doBrowserLoad(); 19184 + return; 19185 + } 19186 + } 19187 + applyMemoryInitializer(response); 19188 + }; 19189 + if (Module["memoryInitializerRequest"].response) { 19190 + setTimeout(useRequest, 0); 19191 + } else { 19192 + Module["memoryInitializerRequest"].addEventListener("load", useRequest); 19193 + } 19194 + } else { 19195 + doBrowserLoad(); 19196 + } 19197 + } 19198 + } 19199 + var calledRun; 19200 + dependenciesFulfilled = function runCaller() { 19201 + if (!calledRun) { 19202 + run2(); 19203 + } 19204 + if (!calledRun) { 19205 + dependenciesFulfilled = runCaller; 19206 + } 19207 + }; 19208 + function run2(args) { 19209 + args = args || arguments_; 19210 + if (runDependencies > 0) { 19211 + return; 19212 + } 19213 + preRun(); 19214 + if (runDependencies > 0) { 19215 + return; 19216 + } 19217 + function doRun() { 19218 + if (calledRun) { 19219 + return; 19220 + } 19221 + calledRun = true; 19222 + if (ABORT) { 19223 + return; 19224 + } 19225 + initRuntime(); 19226 + preMain(); 19227 + if (Module["onRuntimeInitialized"]) { 19228 + Module["onRuntimeInitialized"](); 19229 + } 19230 + postRun(); 19231 + } 19232 + if (Module["setStatus"]) { 19233 + Module["setStatus"]("Running..."); 19234 + setTimeout(function() { 19235 + setTimeout(function() { 19236 + Module["setStatus"](""); 19237 + }, 1); 19238 + doRun(); 19239 + }, 1); 19240 + } else { 19241 + doRun(); 19242 + } 19243 + } 19244 + Module["run"] = run2; 19245 + function abort(what) { 19246 + if (Module["onAbort"]) { 19247 + Module["onAbort"](what); 19248 + } 19249 + what += ""; 19250 + out(what); 19251 + err(what); 19252 + ABORT = true; 19253 + throw "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; 19254 + } 19255 + Module["abort"] = abort; 19256 + if (Module["preInit"]) { 19257 + if (typeof Module["preInit"] == "function") { 19258 + Module["preInit"] = [Module["preInit"]]; 19259 + } 19260 + while (Module["preInit"].length > 0) { 19261 + Module["preInit"].pop()(); 19262 + } 19263 + } 19264 + run2(); 19265 + return libh32; 19266 + }(typeof libh3 === "object" ? libh3 : {}); 19267 + var NUMBER = "number"; 19268 + var H3_ERROR = NUMBER; 19269 + var BOOLEAN = NUMBER; 19270 + var H3_LOWER = NUMBER; 19271 + var H3_UPPER = NUMBER; 19272 + var RESOLUTION = NUMBER; 19273 + var POINTER = NUMBER; 19274 + var BINDINGS = [ 19275 + ["sizeOfH3Index", NUMBER], 19276 + ["sizeOfLatLng", NUMBER], 19277 + ["sizeOfCellBoundary", NUMBER], 19278 + ["sizeOfGeoLoop", NUMBER], 19279 + ["sizeOfGeoPolygon", NUMBER], 19280 + ["sizeOfLinkedGeoPolygon", NUMBER], 19281 + ["sizeOfCoordIJ", NUMBER], 19282 + ["readInt64AsDoubleFromPointer", NUMBER], 19283 + ["isValidCell", BOOLEAN, [H3_LOWER, H3_UPPER]], 19284 + ["latLngToCell", H3_ERROR, [NUMBER, NUMBER, RESOLUTION, POINTER]], 19285 + ["cellToLatLng", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19286 + ["cellToBoundary", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19287 + ["maxGridDiskSize", H3_ERROR, [NUMBER, POINTER]], 19288 + ["gridDisk", H3_ERROR, [H3_LOWER, H3_UPPER, NUMBER, POINTER]], 19289 + ["gridDiskDistances", H3_ERROR, [H3_LOWER, H3_UPPER, NUMBER, POINTER, POINTER]], 19290 + ["gridRing", H3_ERROR, [H3_LOWER, H3_UPPER, NUMBER, POINTER]], 19291 + ["gridRingUnsafe", H3_ERROR, [H3_LOWER, H3_UPPER, NUMBER, POINTER]], 19292 + ["maxPolygonToCellsSize", H3_ERROR, [POINTER, RESOLUTION, NUMBER, POINTER]], 19293 + ["polygonToCells", H3_ERROR, [POINTER, RESOLUTION, NUMBER, POINTER]], 19294 + ["maxPolygonToCellsSizeExperimental", H3_ERROR, [POINTER, RESOLUTION, NUMBER, POINTER]], 19295 + ["polygonToCellsExperimental", H3_ERROR, [POINTER, RESOLUTION, NUMBER, NUMBER, NUMBER, POINTER]], 19296 + ["cellsToLinkedMultiPolygon", H3_ERROR, [POINTER, NUMBER, POINTER]], 19297 + ["destroyLinkedMultiPolygon", null, [POINTER]], 19298 + ["compactCells", H3_ERROR, [POINTER, POINTER, NUMBER, NUMBER]], 19299 + ["uncompactCells", H3_ERROR, [POINTER, NUMBER, NUMBER, POINTER, NUMBER, RESOLUTION]], 19300 + ["uncompactCellsSize", H3_ERROR, [POINTER, NUMBER, NUMBER, RESOLUTION, POINTER]], 19301 + ["isPentagon", BOOLEAN, [H3_LOWER, H3_UPPER]], 19302 + ["isResClassIII", BOOLEAN, [H3_LOWER, H3_UPPER]], 19303 + ["getBaseCellNumber", NUMBER, [H3_LOWER, H3_UPPER]], 19304 + ["getResolution", NUMBER, [H3_LOWER, H3_UPPER]], 19305 + ["maxFaceCount", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19306 + ["getIcosahedronFaces", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19307 + ["cellToParent", H3_ERROR, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19308 + ["cellToChildren", H3_ERROR, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19309 + ["cellToCenterChild", H3_ERROR, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19310 + ["cellToChildrenSize", H3_ERROR, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19311 + ["cellToChildPos", H3_ERROR, [H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19312 + ["childPosToCell", H3_ERROR, [NUMBER, NUMBER, H3_LOWER, H3_UPPER, RESOLUTION, POINTER]], 19313 + ["areNeighborCells", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], 19314 + ["cellsToDirectedEdge", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], 19315 + ["getDirectedEdgeOrigin", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19316 + ["getDirectedEdgeDestination", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19317 + ["isValidDirectedEdge", BOOLEAN, [H3_LOWER, H3_UPPER]], 19318 + ["directedEdgeToCells", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19319 + ["originToDirectedEdges", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19320 + ["directedEdgeToBoundary", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19321 + ["gridDistance", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], 19322 + ["gridPathCells", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], 19323 + ["gridPathCellsSize", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, POINTER]], 19324 + ["cellToLocalIj", H3_ERROR, [H3_LOWER, H3_UPPER, H3_LOWER, H3_UPPER, NUMBER, POINTER]], 19325 + ["localIjToCell", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER, NUMBER, POINTER]], 19326 + ["getHexagonAreaAvgM2", H3_ERROR, [RESOLUTION, POINTER]], 19327 + ["getHexagonAreaAvgKm2", H3_ERROR, [RESOLUTION, POINTER]], 19328 + ["getHexagonEdgeLengthAvgM", H3_ERROR, [RESOLUTION, POINTER]], 19329 + ["getHexagonEdgeLengthAvgKm", H3_ERROR, [RESOLUTION, POINTER]], 19330 + ["greatCircleDistanceM", NUMBER, [POINTER, POINTER]], 19331 + ["greatCircleDistanceKm", NUMBER, [POINTER, POINTER]], 19332 + ["greatCircleDistanceRads", NUMBER, [POINTER, POINTER]], 19333 + ["cellAreaM2", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19334 + ["cellAreaKm2", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19335 + ["cellAreaRads2", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19336 + ["edgeLengthM", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19337 + ["edgeLengthKm", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19338 + ["edgeLengthRads", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19339 + ["getNumCells", H3_ERROR, [RESOLUTION, POINTER]], 19340 + ["getRes0Cells", H3_ERROR, [POINTER]], 19341 + ["res0CellCount", NUMBER], 19342 + ["getPentagons", H3_ERROR, [NUMBER, POINTER]], 19343 + ["pentagonCount", NUMBER], 19344 + ["cellToVertex", H3_ERROR, [H3_LOWER, H3_UPPER, NUMBER, POINTER]], 19345 + ["cellToVertexes", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19346 + ["vertexToLatLng", H3_ERROR, [H3_LOWER, H3_UPPER, POINTER]], 19347 + ["isValidVertex", BOOLEAN, [H3_LOWER, H3_UPPER]] 19348 + ]; 19349 + var E_SUCCESS = 0; 19350 + var E_FAILED = 1; 19351 + var E_DOMAIN = 2; 19352 + var E_LATLNG_DOMAIN = 3; 19353 + var E_RES_DOMAIN = 4; 19354 + var E_CELL_INVALID = 5; 19355 + var E_DIR_EDGE_INVALID = 6; 19356 + var E_UNDIR_EDGE_INVALID = 7; 19357 + var E_VERTEX_INVALID = 8; 19358 + var E_PENTAGON = 9; 19359 + var E_DUPLICATE_INPUT = 10; 19360 + var E_NOT_NEIGHBORS = 11; 19361 + var E_RES_MISMATCH = 12; 19362 + var E_MEMORY_ALLOC = 13; 19363 + var E_MEMORY_BOUNDS = 14; 19364 + var E_OPTION_INVALID = 15; 19365 + var H3_ERROR_MSGS = {}; 19366 + H3_ERROR_MSGS[E_SUCCESS] = "Success"; 19367 + H3_ERROR_MSGS[E_FAILED] = "The operation failed but a more specific error is not available"; 19368 + H3_ERROR_MSGS[E_DOMAIN] = "Argument was outside of acceptable range"; 19369 + H3_ERROR_MSGS[E_LATLNG_DOMAIN] = "Latitude or longitude arguments were outside of acceptable range"; 19370 + H3_ERROR_MSGS[E_RES_DOMAIN] = "Resolution argument was outside of acceptable range"; 19371 + H3_ERROR_MSGS[E_CELL_INVALID] = "Cell argument was not valid"; 19372 + H3_ERROR_MSGS[E_DIR_EDGE_INVALID] = "Directed edge argument was not valid"; 19373 + H3_ERROR_MSGS[E_UNDIR_EDGE_INVALID] = "Undirected edge argument was not valid"; 19374 + H3_ERROR_MSGS[E_VERTEX_INVALID] = "Vertex argument was not valid"; 19375 + H3_ERROR_MSGS[E_PENTAGON] = "Pentagon distortion was encountered"; 19376 + H3_ERROR_MSGS[E_DUPLICATE_INPUT] = "Duplicate input"; 19377 + H3_ERROR_MSGS[E_NOT_NEIGHBORS] = "Cell arguments were not neighbors"; 19378 + H3_ERROR_MSGS[E_RES_MISMATCH] = "Cell arguments had incompatible resolutions"; 19379 + H3_ERROR_MSGS[E_MEMORY_ALLOC] = "Memory allocation failed"; 19380 + H3_ERROR_MSGS[E_MEMORY_BOUNDS] = "Bounds of provided memory were insufficient"; 19381 + H3_ERROR_MSGS[E_OPTION_INVALID] = "Mode or flags argument was not valid"; 19382 + var E_UNKNOWN_UNIT = 1000; 19383 + var E_ARRAY_LENGTH = 1001; 19384 + var E_NULL_INDEX = 1002; 19385 + var JS_ERROR_MESSAGES = {}; 19386 + JS_ERROR_MESSAGES[E_UNKNOWN_UNIT] = "Unknown unit"; 19387 + JS_ERROR_MESSAGES[E_ARRAY_LENGTH] = "Array length out of bounds"; 19388 + JS_ERROR_MESSAGES[E_NULL_INDEX] = "Got unexpected null value for H3 index"; 19389 + var UNKNOWN_ERROR_MSG = "Unknown error"; 19390 + function createError(messages, errCode, meta2) { 19391 + var hasValue = meta2 && "value" in meta2; 19392 + var err = new Error((messages[errCode] || UNKNOWN_ERROR_MSG) + " (code: " + errCode + (hasValue ? ", value: " + meta2.value : "") + ")"); 19393 + err.code = errCode; 19394 + return err; 19395 + } 19396 + function H3LibraryError(errCode, value3) { 19397 + var meta2 = arguments.length === 2 ? { 19398 + value: value3 19399 + } : {}; 19400 + return createError(H3_ERROR_MSGS, errCode, meta2); 19401 + } 19402 + function JSBindingError(errCode, value3) { 19403 + var meta2 = arguments.length === 2 ? { 19404 + value: value3 19405 + } : {}; 19406 + return createError(JS_ERROR_MESSAGES, errCode, meta2); 19407 + } 19408 + function throwIfError(errCode) { 19409 + if (errCode !== 0) { 19410 + throw H3LibraryError(errCode); 19411 + } 19412 + } 19413 + var H3 = {}; 19414 + BINDINGS.forEach(function bind(def) { 19415 + H3[def[0]] = libh3.cwrap.apply(libh3, def); 19416 + }); 19417 + var BASE_16 = 16; 19418 + var SZ_INT = 4; 19419 + var SZ_DBL = 8; 19420 + var SZ_H3INDEX = H3.sizeOfH3Index(); 19421 + var SZ_LATLNG = H3.sizeOfLatLng(); 19422 + var SZ_CELLBOUNDARY = H3.sizeOfCellBoundary(); 19423 + var SZ_GEOPOLYGON = H3.sizeOfGeoPolygon(); 19424 + var SZ_GEOLOOP = H3.sizeOfGeoLoop(); 19425 + var SZ_LINKED_GEOPOLYGON = H3.sizeOfLinkedGeoPolygon(); 19426 + var SZ_COORDIJ = H3.sizeOfCoordIJ(); 19427 + function validateH3Index(h3Index) { 19428 + if (!h3Index) { 19429 + throw JSBindingError(E_NULL_INDEX); 19430 + } 19431 + return h3Index; 19432 + } 19433 + var MAX_JS_ARRAY_LENGTH = Math.pow(2, 32) - 1; 19434 + function hexFrom32Bit(num) { 19435 + if (num >= 0) { 19436 + return num.toString(BASE_16); 19437 + } 19438 + num = num & 2147483647; 19439 + var tempStr = zeroPad(8, num.toString(BASE_16)); 19440 + var topNum = (parseInt(tempStr[0], BASE_16) + 8).toString(BASE_16); 19441 + tempStr = topNum + tempStr.substring(1); 19442 + return tempStr; 19443 + } 19444 + function splitLongToH3Index(lower, upper) { 19445 + return hexFrom32Bit(upper) + zeroPad(8, hexFrom32Bit(lower)); 19446 + } 19447 + function zeroPad(fullLen, numStr) { 19448 + var numZeroes = fullLen - numStr.length; 19449 + var outStr = ""; 19450 + for (var i = 0;i < numZeroes; i++) { 19451 + outStr += "0"; 19452 + } 19453 + outStr = outStr + numStr; 19454 + return outStr; 19455 + } 19456 + var UPPER_BIT_DIVISOR = Math.pow(2, 32); 19457 + function readH3IndexFromPointer(cAddress, offset) { 19458 + if (offset === undefined) 19459 + offset = 0; 19460 + var lower = libh3.getValue(cAddress + SZ_H3INDEX * offset, "i32"); 19461 + var upper = libh3.getValue(cAddress + SZ_H3INDEX * offset + SZ_INT, "i32"); 19462 + return upper ? splitLongToH3Index(lower, upper) : null; 19463 + } 19464 + function latLngToCell(lat, lng, res) { 19465 + var latLng = libh3._malloc(SZ_LATLNG); 19466 + libh3.HEAPF64.set([lat, lng].map(degsToRads), latLng / SZ_DBL); 19467 + var h3Index = libh3._malloc(SZ_H3INDEX); 19468 + try { 19469 + throwIfError(H3.latLngToCell(latLng, res, h3Index)); 19470 + return validateH3Index(readH3IndexFromPointer(h3Index)); 19471 + } finally { 19472 + libh3._free(h3Index); 19473 + libh3._free(latLng); 19474 + } 19475 + } 19476 + function degsToRads(deg) { 19477 + return deg * Math.PI / 180; 19478 + } 19479 + 5314 19480 // build/dev/javascript/client/client_ffi.mjs 19481 + function toList2(array3) { 19482 + let list4 = new Empty; 19483 + for (let i = array3.length - 1;i >= 0; i--) { 19484 + list4 = new NonEmpty(array3[i], list4); 19485 + } 19486 + return list4; 19487 + } 5315 19488 function fetchUrl(url) { 5316 19489 return fetch(url).then((response) => { 5317 19490 return response.text().then((text4) => { 5318 19491 return new Ok([response.status, text4]); 5319 19492 }); 5320 19493 }).catch((error) => { 5321 - return new Error(error.message || "Network error"); 19494 + return new Error2(error.message || "Network error"); 5322 19495 }); 5323 19496 } 19497 + function searchLocations(query) { 19498 + if (!query || query.trim().length < 2) { 19499 + return Promise.resolve(new Ok(toList2([]))); 19500 + } 19501 + const url = new URL("https://nominatim.openstreetmap.org/search"); 19502 + url.searchParams.set("format", "json"); 19503 + url.searchParams.set("q", query.trim()); 19504 + url.searchParams.set("limit", "5"); 19505 + url.searchParams.set("addressdetails", "1"); 19506 + return fetch(url.toString(), { 19507 + headers: { 19508 + "User-Agent": "lustre-fullstack-app/1.0" 19509 + } 19510 + }).then((response) => { 19511 + if (!response.ok) { 19512 + throw new Error2(`Nominatim API error: ${response.statusText}`); 19513 + } 19514 + return response.json(); 19515 + }).then((results) => { 19516 + return new Ok(toList2(results)); 19517 + }).catch((error) => { 19518 + console.error("Error fetching locations from Nominatim:", error); 19519 + return new Error2(error.message || "Failed to fetch locations"); 19520 + }); 19521 + } 19522 + function latLonToH3(lat, lon, resolution = 5) { 19523 + return latLngToCell(lat, lon, resolution); 19524 + } 19525 + var debounceTimer = null; 19526 + function debounce(callback, delay) { 19527 + if (debounceTimer !== null) { 19528 + clearTimeout(debounceTimer); 19529 + } 19530 + debounceTimer = setTimeout(() => { 19531 + callback(); 19532 + debounceTimer = null; 19533 + }, delay); 19534 + return () => { 19535 + if (debounceTimer !== null) { 19536 + clearTimeout(debounceTimer); 19537 + debounceTimer = null; 19538 + } 19539 + }; 19540 + } 5324 19541 5325 19542 // build/dev/javascript/client/pages/home.mjs 5326 19543 function view2() { ··· 5370 19587 let char = $[0]; 5371 19588 return new Ok(uppercase(char)); 5372 19589 } else { 5373 - return new Error(undefined); 19590 + return new Error2(undefined); 5374 19591 } 5375 19592 }); 5376 19593 let _pipe$3 = take(_pipe$2, 2); ··· 5389 19606 } 5390 19607 } 5391 19608 5392 - // build/dev/javascript/client/ui/button.mjs 5393 - class Default extends CustomType { 5394 - } 5395 - class Primary extends CustomType { 5396 - } 5397 - class Link extends CustomType { 5398 - } 5399 - class Sm2 extends CustomType { 5400 - } 5401 - class Md2 extends CustomType { 5402 - } 5403 - function button2(attributes, variant, size2, children) { 5404 - let _block; 5405 - if (size2 instanceof Sm2) { 5406 - _block = "px-3 py-1.5 text-xs"; 5407 - } else if (size2 instanceof Md2) { 5408 - _block = "px-4 py-2 text-sm"; 5409 - } else { 5410 - _block = "px-6 py-3 text-base"; 5411 - } 5412 - let size_classes = _block; 5413 - let _block$1; 5414 - if (variant instanceof Default) { 5415 - _block$1 = "text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded"; 5416 - } else if (variant instanceof Primary) { 5417 - _block$1 = "text-zinc-300 bg-zinc-800 hover:bg-zinc-700 rounded"; 5418 - } else if (variant instanceof Link) { 5419 - _block$1 = "text-zinc-500 hover:text-zinc-300 px-2 py-1"; 5420 - } else { 5421 - _block$1 = "bg-red-900 text-red-100 border border-red-800 hover:bg-red-800 hover:border-red-700 rounded"; 5422 - } 5423 - let variant_classes = _block$1; 5424 - let base_classes = size_classes + " " + variant_classes + " transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"; 5425 - return button(prepend(class$(base_classes), attributes), children); 5426 - } 5427 - 5428 19609 // build/dev/javascript/client/pages/profile.mjs 5429 19610 function view3(p2) { 5430 19611 return div(toList([class$("space-y-8")]), toList([ ··· 5452 19633 } 5453 19634 })() 5454 19635 ])), 5455 - button2(toList([]), new Default, new Md2, toList([text3("Edit Profile")])) 19636 + a(toList([ 19637 + href("/profile/" + unwrap(p2.handle, p2.did) + "/edit"), 19638 + class$("px-4 py-2 text-sm text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded transition-colors cursor-pointer") 19639 + ]), toList([text3("Edit Profile")])) 5456 19640 ])), 5457 19641 div(toList([class$("space-y-6 pt-6 border-t border-zinc-800")]), toList([ 5458 19642 (() => { ··· 5495 19679 ])); 5496 19680 } 5497 19681 19682 + // build/dev/javascript/lustre/lustre/event.mjs 19683 + function is_immediate_event(name) { 19684 + if (name === "input") { 19685 + return true; 19686 + } else if (name === "change") { 19687 + return true; 19688 + } else if (name === "focus") { 19689 + return true; 19690 + } else if (name === "focusin") { 19691 + return true; 19692 + } else if (name === "focusout") { 19693 + return true; 19694 + } else if (name === "blur") { 19695 + return true; 19696 + } else if (name === "select") { 19697 + return true; 19698 + } else { 19699 + return false; 19700 + } 19701 + } 19702 + function on(name, handler) { 19703 + return event(name, map2(handler, (msg) => { 19704 + return new Handler(false, false, msg); 19705 + }), empty_list, never, never, is_immediate_event(name), 0, 0); 19706 + } 19707 + function prevent_default(event4) { 19708 + if (event4 instanceof Event2) { 19709 + return new Event2(event4.kind, event4.name, event4.handler, event4.include, always, event4.stop_propagation, event4.immediate, event4.debounce, event4.throttle); 19710 + } else { 19711 + return event4; 19712 + } 19713 + } 19714 + function on_click(msg) { 19715 + return on("click", success(msg)); 19716 + } 19717 + function on_input(msg) { 19718 + return on("input", subfield(toList(["target", "value"]), string2, (value3) => { 19719 + return success(msg(value3)); 19720 + })); 19721 + } 19722 + function formdata_decoder() { 19723 + let string_value_decoder = field(0, string2, (key2) => { 19724 + return field(1, one_of(map2(string2, (var0) => { 19725 + return new Ok(var0); 19726 + }), toList([success(new Error2(undefined))])), (value3) => { 19727 + let _pipe2 = value3; 19728 + let _pipe$12 = map4(_pipe2, (_capture) => { 19729 + return new$7(key2, _capture); 19730 + }); 19731 + return success(_pipe$12); 19732 + }); 19733 + }); 19734 + let _pipe = string_value_decoder; 19735 + let _pipe$1 = list2(_pipe); 19736 + return map2(_pipe$1, values2); 19737 + } 19738 + function on_submit(msg) { 19739 + let _pipe = on("submit", subfield(toList(["detail", "formData"]), formdata_decoder(), (formdata) => { 19740 + let _pipe2 = formdata; 19741 + let _pipe$1 = msg(_pipe2); 19742 + return success(_pipe$1); 19743 + })); 19744 + return prevent_default(_pipe); 19745 + } 19746 + function on_focus(msg) { 19747 + return on("focus", success(msg)); 19748 + } 19749 + function on_blur(msg) { 19750 + return on("blur", success(msg)); 19751 + } 19752 + 19753 + // build/dev/javascript/client/ui/button.mjs 19754 + class Default extends CustomType { 19755 + } 19756 + class Primary extends CustomType { 19757 + } 19758 + class Link extends CustomType { 19759 + } 19760 + class Sm2 extends CustomType { 19761 + } 19762 + class Md2 extends CustomType { 19763 + } 19764 + function button2(attributes, variant, size2, children) { 19765 + let _block; 19766 + if (size2 instanceof Sm2) { 19767 + _block = "px-3 py-1.5 text-xs"; 19768 + } else if (size2 instanceof Md2) { 19769 + _block = "px-4 py-2 text-sm"; 19770 + } else { 19771 + _block = "px-6 py-3 text-base"; 19772 + } 19773 + let size_classes = _block; 19774 + let _block$1; 19775 + if (variant instanceof Default) { 19776 + _block$1 = "text-zinc-400 border border-zinc-800 hover:border-zinc-700 hover:text-zinc-300 rounded"; 19777 + } else if (variant instanceof Primary) { 19778 + _block$1 = "text-zinc-300 bg-zinc-800 hover:bg-zinc-700 rounded"; 19779 + } else if (variant instanceof Link) { 19780 + _block$1 = "text-zinc-500 hover:text-zinc-300 px-2 py-1"; 19781 + } else { 19782 + _block$1 = "bg-red-900 text-red-100 border border-red-800 hover:bg-red-800 hover:border-red-700 rounded"; 19783 + } 19784 + let variant_classes = _block$1; 19785 + let base_classes = size_classes + " " + variant_classes + " transition-colors cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"; 19786 + return button(prepend(class$(base_classes), attributes), children); 19787 + } 19788 + 19789 + // build/dev/javascript/client/ui/input.mjs 19790 + function input2(attributes) { 19791 + let classes = "w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed"; 19792 + return input(prepend(class$(classes), attributes)); 19793 + } 19794 + 19795 + // build/dev/javascript/client/utils/location.mjs 19796 + class NominatimResult extends CustomType { 19797 + constructor(display_name, lat, lon, place_id, address) { 19798 + super(); 19799 + this.display_name = display_name; 19800 + this.lat = lat; 19801 + this.lon = lon; 19802 + this.place_id = place_id; 19803 + this.address = address; 19804 + } 19805 + } 19806 + class NominatimAddress extends CustomType { 19807 + constructor(city, state, country) { 19808 + super(); 19809 + this.city = city; 19810 + this.state = state; 19811 + this.country = country; 19812 + } 19813 + } 19814 + class LocationData extends CustomType { 19815 + constructor(name, lat, lon, h3_index) { 19816 + super(); 19817 + this.name = name; 19818 + this.lat = lat; 19819 + this.lon = lon; 19820 + this.h3_index = h3_index; 19821 + } 19822 + } 19823 + function nominatim_address_decoder() { 19824 + return field("city", optional(string2), (city) => { 19825 + return field("state", optional(string2), (state) => { 19826 + return field("country", optional(string2), (country) => { 19827 + return success(new NominatimAddress(unwrap(city, ""), unwrap(state, ""), unwrap(country, ""))); 19828 + }); 19829 + }); 19830 + }); 19831 + } 19832 + function nominatim_result_decoder() { 19833 + return field("display_name", string2, (display_name) => { 19834 + return field("lat", string2, (lat) => { 19835 + return field("lon", string2, (lon) => { 19836 + return field("place_id", int2, (place_id) => { 19837 + return field("address", nominatim_address_decoder(), (address) => { 19838 + return success(new NominatimResult(display_name, lat, lon, place_id, address)); 19839 + }); 19840 + }); 19841 + }); 19842 + }); 19843 + }); 19844 + } 19845 + 19846 + // build/dev/javascript/client/ui/location_input.mjs 19847 + class Model extends CustomType { 19848 + constructor(input_value, selected_location, suggestions, is_loading, show_dropdown) { 19849 + super(); 19850 + this.input_value = input_value; 19851 + this.selected_location = selected_location; 19852 + this.suggestions = suggestions; 19853 + this.is_loading = is_loading; 19854 + this.show_dropdown = show_dropdown; 19855 + } 19856 + } 19857 + class UserTypedQuery extends CustomType { 19858 + constructor($0) { 19859 + super(); 19860 + this[0] = $0; 19861 + } 19862 + } 19863 + class UserClickedSuggestion extends CustomType { 19864 + constructor($0) { 19865 + super(); 19866 + this[0] = $0; 19867 + } 19868 + } 19869 + class UserFocusedInput extends CustomType { 19870 + } 19871 + class UserBlurredInput extends CustomType { 19872 + } 19873 + class GotSearchResults extends CustomType { 19874 + constructor($0) { 19875 + super(); 19876 + this[0] = $0; 19877 + } 19878 + } 19879 + function init2(initial_value) { 19880 + return new Model((() => { 19881 + if (initial_value instanceof Some) { 19882 + let loc = initial_value[0]; 19883 + return loc.name; 19884 + } else { 19885 + return ""; 19886 + } 19887 + })(), initial_value, toList([]), false, false); 19888 + } 19889 + function debounced_search_effect(query) { 19890 + return from((dispatch) => { 19891 + debounce(() => { 19892 + let _pipe = searchLocations(query); 19893 + let _pipe$1 = map_promise(_pipe, (result) => { 19894 + if (result instanceof Ok) { 19895 + let dynamic_list = result[0]; 19896 + let decoded_results = filter_map(dynamic_list, (dyn) => { 19897 + return run(dyn, nominatim_result_decoder()); 19898 + }); 19899 + return dispatch(new GotSearchResults(new Ok(decoded_results))); 19900 + } else { 19901 + let err = result[0]; 19902 + return dispatch(new GotSearchResults(new Error2(err))); 19903 + } 19904 + }); 19905 + then_await(_pipe$1, (_) => { 19906 + return resolve(undefined); 19907 + }); 19908 + return; 19909 + }, 300); 19910 + return; 19911 + }); 19912 + } 19913 + function format_location_name(result) { 19914 + let parts = toList([]); 19915 + let _block; 19916 + let $ = result.address.city; 19917 + if ($ === "") { 19918 + _block = parts; 19919 + } else { 19920 + let city = $; 19921 + _block = append(parts, toList([city])); 19922 + } 19923 + let parts$1 = _block; 19924 + let _block$1; 19925 + let $1 = result.address.state; 19926 + if ($1 === "") { 19927 + _block$1 = parts$1; 19928 + } else { 19929 + let state = $1; 19930 + _block$1 = append(parts$1, toList([state])); 19931 + } 19932 + let parts$2 = _block$1; 19933 + let _block$2; 19934 + let $2 = result.address.country; 19935 + if ($2 === "") { 19936 + _block$2 = parts$2; 19937 + } else { 19938 + let country = $2; 19939 + _block$2 = append(parts$2, toList([country])); 19940 + } 19941 + let parts$3 = _block$2; 19942 + if (parts$3 instanceof Empty) { 19943 + return result.display_name; 19944 + } else { 19945 + return join(parts$3, ", "); 19946 + } 19947 + } 19948 + function update2(model, msg) { 19949 + if (msg instanceof UserTypedQuery) { 19950 + let query = msg[0]; 19951 + let model$1 = new Model(query, model.selected_location, model.suggestions, model.is_loading, model.show_dropdown); 19952 + let $ = string_length(query) >= 2; 19953 + if ($) { 19954 + let model$2 = new Model(model$1.input_value, model$1.selected_location, model$1.suggestions, true, true); 19955 + return [model$2, debounced_search_effect(query)]; 19956 + } else { 19957 + return [ 19958 + new Model(model$1.input_value, new None, toList([]), model$1.is_loading, false), 19959 + none() 19960 + ]; 19961 + } 19962 + } else if (msg instanceof UserClickedSuggestion) { 19963 + let result = msg[0]; 19964 + let _block; 19965 + let $ = parse_float(result.lat); 19966 + if ($ instanceof Ok) { 19967 + let v = $[0]; 19968 + _block = v; 19969 + } else { 19970 + _block = 0; 19971 + } 19972 + let lat = _block; 19973 + let _block$1; 19974 + let $1 = parse_float(result.lon); 19975 + if ($1 instanceof Ok) { 19976 + let v = $1[0]; 19977 + _block$1 = v; 19978 + } else { 19979 + _block$1 = 0; 19980 + } 19981 + let lon = _block$1; 19982 + let h3_index = latLonToH3(lat, lon); 19983 + let formatted_name = format_location_name(result); 19984 + let location_data = new LocationData(formatted_name, lat, lon, h3_index); 19985 + return [ 19986 + new Model(formatted_name, new Some(location_data), toList([]), model.is_loading, false), 19987 + none() 19988 + ]; 19989 + } else if (msg instanceof UserFocusedInput) { 19990 + let $ = string_length(model.input_value) >= 2; 19991 + if ($) { 19992 + let model$1 = new Model(model.input_value, model.selected_location, model.suggestions, true, true); 19993 + return [model$1, debounced_search_effect(model$1.input_value)]; 19994 + } else { 19995 + return [model, none()]; 19996 + } 19997 + } else if (msg instanceof UserBlurredInput) { 19998 + return [model, none()]; 19999 + } else { 20000 + let result = msg[0]; 20001 + if (result instanceof Ok) { 20002 + let results = result[0]; 20003 + return [ 20004 + new Model(model.input_value, model.selected_location, results, false, !isEqual(results, toList([]))), 20005 + none() 20006 + ]; 20007 + } else { 20008 + return [ 20009 + new Model(model.input_value, model.selected_location, toList([]), false, model.show_dropdown), 20010 + none() 20011 + ]; 20012 + } 20013 + } 20014 + } 20015 + function input_element(value3, placeholder2, _) { 20016 + return input(toList([ 20017 + type_("text"), 20018 + value(value3), 20019 + placeholder(placeholder2), 20020 + class$("w-full px-3 py-2 pr-10 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700"), 20021 + on_input((var0) => { 20022 + return new UserTypedQuery(var0); 20023 + }), 20024 + on_focus(new UserFocusedInput), 20025 + on_blur(new UserBlurredInput) 20026 + ])); 20027 + } 20028 + function icon_element() { 20029 + return div(toList([ 20030 + class$("absolute right-3 top-1/2 -translate-y-1/2 text-zinc-500") 20031 + ]), toList([text3("\uD83D\uDCCD")])); 20032 + } 20033 + function suggestion_item(result) { 20034 + return button(toList([ 20035 + type_("button"), 20036 + class$("w-full px-4 py-3 text-left hover:bg-zinc-800 transition-colors border-b border-zinc-800 last:border-b-0"), 20037 + on_click(new UserClickedSuggestion(result)) 20038 + ]), toList([ 20039 + div(toList([class$("flex items-start gap-2")]), toList([ 20040 + div(toList([class$("text-zinc-500 mt-1 flex-shrink-0")]), toList([text3("\uD83D\uDCCD")])), 20041 + div(toList([class$("text-sm text-zinc-300")]), toList([text3(format_location_name(result))])) 20042 + ])) 20043 + ])); 20044 + } 20045 + function dropdown_element(show, suggestions) { 20046 + let $ = show && !isEqual(suggestions, toList([])); 20047 + if ($) { 20048 + return div(toList([ 20049 + class$("absolute z-50 w-full mt-1 bg-zinc-900 border border-zinc-800 rounded-lg shadow-lg max-h-60 overflow-y-auto") 20050 + ]), map(suggestions, suggestion_item)); 20051 + } else { 20052 + return none2(); 20053 + } 20054 + } 20055 + function view4(model, placeholder2) { 20056 + return div(toList([class$("relative")]), toList([ 20057 + div(toList([class$("relative")]), toList([ 20058 + input_element(model.input_value, placeholder2, model.is_loading), 20059 + icon_element() 20060 + ])), 20061 + dropdown_element(model.show_dropdown, model.suggestions) 20062 + ])); 20063 + } 20064 + 20065 + // build/dev/javascript/client/ui/textarea.mjs 20066 + function textarea2(attributes, value3) { 20067 + let classes = "w-full px-3 py-2 bg-zinc-900 border border-zinc-800 rounded text-sm text-zinc-300 focus:outline-none focus:border-zinc-700 disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[100px]"; 20068 + return textarea(prepend(class$(classes), attributes), value3); 20069 + } 20070 + 20071 + // build/dev/javascript/client/pages/profile_edit.mjs 20072 + class DisplayNameUpdated extends CustomType { 20073 + constructor($0) { 20074 + super(); 20075 + this[0] = $0; 20076 + } 20077 + } 20078 + class DescriptionUpdated extends CustomType { 20079 + constructor($0) { 20080 + super(); 20081 + this[0] = $0; 20082 + } 20083 + } 20084 + class InterestsUpdated extends CustomType { 20085 + constructor($0) { 20086 + super(); 20087 + this[0] = $0; 20088 + } 20089 + } 20090 + class AvatarFileSelected extends CustomType { 20091 + constructor($0) { 20092 + super(); 20093 + this[0] = $0; 20094 + } 20095 + } 20096 + class LocationInputMsg extends CustomType { 20097 + constructor($0) { 20098 + super(); 20099 + this[0] = $0; 20100 + } 20101 + } 20102 + class FormSubmitted extends CustomType { 20103 + } 20104 + class CancelClicked extends CustomType { 20105 + } 20106 + class FormData2 extends CustomType { 20107 + constructor(display_name, description, location_input, interests, avatar_preview_url) { 20108 + super(); 20109 + this.display_name = display_name; 20110 + this.description = description; 20111 + this.location_input = location_input; 20112 + this.interests = interests; 20113 + this.avatar_preview_url = avatar_preview_url; 20114 + } 20115 + } 20116 + function init_form_data(profile) { 20117 + if (profile instanceof Some) { 20118 + let p2 = profile[0]; 20119 + let _block; 20120 + let $ = p2.interests; 20121 + if ($ instanceof Some) { 20122 + let list4 = $[0]; 20123 + _block = join(list4, ", "); 20124 + } else { 20125 + _block = ""; 20126 + } 20127 + let interests_str = _block; 20128 + let _block$1; 20129 + let $1 = p2.home_town; 20130 + if ($1 instanceof Some) { 20131 + _block$1 = new None; 20132 + } else { 20133 + _block$1 = $1; 20134 + } 20135 + let location_data = _block$1; 20136 + return new FormData2(unwrap(p2.display_name, ""), unwrap(p2.description, ""), init2(location_data), interests_str, p2.avatar_url); 20137 + } else { 20138 + return new FormData2("", "", init2(new None), "", new None); 20139 + } 20140 + } 20141 + function view5(profile, form_data, handle2, on_msg) { 20142 + return div(toList([class$("space-y-8")]), toList([ 20143 + div(toList([class$("border-b border-zinc-800 pb-6")]), toList([ 20144 + button(toList([ 20145 + class$("inline-flex items-center gap-2 text-zinc-400 hover:text-zinc-200 transition-colors mb-4"), 20146 + on_click(on_msg(new CancelClicked)) 20147 + ]), toList([text3("← Back to Profile")])), 20148 + h2(toList([class$("text-3xl font-bold text-white mb-2")]), toList([text3("Profile Settings")])), 20149 + p(toList([class$("text-zinc-500 text-sm")]), toList([text3("@" + handle2)])) 20150 + ])), 20151 + form(toList([ 20152 + class$("space-y-6"), 20153 + on_submit((_) => { 20154 + return on_msg(new FormSubmitted); 20155 + }) 20156 + ]), toList([ 20157 + div(toList([ 20158 + class$("bg-zinc-900 border border-zinc-800 rounded-lg p-6 space-y-6") 20159 + ]), toList([ 20160 + div(toList([class$("space-y-2")]), toList([ 20161 + label(toList([class$("text-sm font-medium text-white")]), toList([text3("Avatar")])), 20162 + div(toList([class$("flex items-center gap-4")]), toList([ 20163 + avatar(form_data.avatar_preview_url, unwrap((() => { 20164 + let _pipe = profile; 20165 + return then$(_pipe, (p2) => { 20166 + return p2.display_name; 20167 + }); 20168 + })(), handle2), new Lg), 20169 + label(toList([ 20170 + attribute2("for", "avatar-upload"), 20171 + class$("cursor-pointer px-4 py-2 bg-zinc-800 hover:bg-zinc-700 text-zinc-300 rounded text-sm transition-colors") 20172 + ]), toList([text3("Change Avatar")])), 20173 + input(toList([ 20174 + type_("file"), 20175 + id("avatar-upload"), 20176 + accept(toList(["image/*"])), 20177 + class$("hidden") 20178 + ])) 20179 + ])) 20180 + ])), 20181 + div(toList([class$("space-y-2")]), toList([ 20182 + label(toList([class$("text-sm font-medium text-white")]), toList([text3("Display Name")])), 20183 + input2(toList([ 20184 + type_("text"), 20185 + placeholder("Your display name"), 20186 + value(form_data.display_name), 20187 + on_input((value3) => { 20188 + return on_msg(new DisplayNameUpdated(value3)); 20189 + }) 20190 + ])) 20191 + ])), 20192 + div(toList([class$("space-y-2")]), toList([ 20193 + label(toList([class$("text-sm font-medium text-white")]), toList([text3("Description")])), 20194 + textarea2(toList([ 20195 + placeholder("Tell us about yourself..."), 20196 + on_input((value3) => { 20197 + return on_msg(new DescriptionUpdated(value3)); 20198 + }) 20199 + ]), form_data.description) 20200 + ])), 20201 + div(toList([class$("space-y-2")]), toList([ 20202 + label(toList([class$("text-sm font-medium text-white")]), toList([text3("Home Town")])), 20203 + (() => { 20204 + let _pipe = view4(form_data.location_input, "Search for your hometown..."); 20205 + return map6(_pipe, (msg) => { 20206 + return on_msg(new LocationInputMsg(msg)); 20207 + }); 20208 + })() 20209 + ])), 20210 + div(toList([class$("space-y-2")]), toList([ 20211 + label(toList([class$("text-sm font-medium text-white")]), toList([text3("Interests")])), 20212 + p(toList([class$("text-xs text-zinc-400")]), toList([ 20213 + text3("Enter your interests, separated by commas") 20214 + ])), 20215 + input2(toList([ 20216 + type_("text"), 20217 + placeholder("e.g., web development, photography, hiking"), 20218 + value(form_data.interests), 20219 + on_input((value3) => { 20220 + return on_msg(new InterestsUpdated(value3)); 20221 + }) 20222 + ])) 20223 + ])) 20224 + ])), 20225 + div(toList([class$("flex justify-end gap-3")]), toList([ 20226 + button2(toList([ 20227 + type_("button"), 20228 + on_click(on_msg(new CancelClicked)) 20229 + ]), new Default, new Md2, toList([text3("Cancel")])), 20230 + button2(toList([type_("submit")]), new Primary, new Md2, toList([text3("Save Changes")])) 20231 + ])) 20232 + ])) 20233 + ])); 20234 + } 20235 + 5498 20236 // build/dev/javascript/client/ui/layout.mjs 5499 20237 class User extends CustomType { 5500 20238 constructor(name, handle2) { ··· 5571 20309 this.handle = handle2; 5572 20310 } 5573 20311 } 20312 + class ProfileEdit extends CustomType { 20313 + constructor(handle2) { 20314 + super(); 20315 + this.handle = handle2; 20316 + } 20317 + } 5574 20318 class NotFound extends CustomType { 5575 20319 constructor(uri) { 5576 20320 super(); ··· 5593 20337 this.error = error; 5594 20338 } 5595 20339 } 5596 - class Model extends CustomType { 5597 - constructor(route, profile_state) { 20340 + class Model2 extends CustomType { 20341 + constructor(route, profile_state, edit_form_data) { 5598 20342 super(); 5599 20343 this.route = route; 5600 20344 this.profile_state = profile_state; 20345 + this.edit_form_data = edit_form_data; 5601 20346 } 5602 20347 } 5603 20348 ··· 5609 20354 } 5610 20355 5611 20356 class ProfileFetched extends CustomType { 20357 + constructor($0) { 20358 + super(); 20359 + this[0] = $0; 20360 + } 20361 + } 20362 + 20363 + class ProfileEditMsg extends CustomType { 5612 20364 constructor($0) { 5613 20365 super(); 5614 20366 this[0] = $0; ··· 5647 20399 return new NotFound(uri); 5648 20400 } 5649 20401 } else { 5650 - return new NotFound(uri); 20402 + let $3 = $2.tail; 20403 + if ($3 instanceof Empty) { 20404 + let $4 = $.head; 20405 + if ($4 === "profile") { 20406 + let $5 = $2.head; 20407 + if ($5 === "edit") { 20408 + let handle2 = $1.head; 20409 + return new ProfileEdit(handle2); 20410 + } else { 20411 + return new NotFound(uri); 20412 + } 20413 + } else { 20414 + return new NotFound(uri); 20415 + } 20416 + } else { 20417 + return new NotFound(uri); 20418 + } 5651 20419 } 5652 20420 } 5653 20421 } ··· 5657 20425 let _pipe$1 = parse_route(_pipe); 5658 20426 return new UserNavigatedTo(_pipe$1); 5659 20427 } 5660 - function init2(_) { 20428 + function init3(_) { 5661 20429 let _block; 5662 20430 let $ = do_initial_uri(); 5663 20431 if ($ instanceof Ok) { ··· 5672 20440 if (route instanceof Profile2) { 5673 20441 if (prerendered_profile instanceof Some) { 5674 20442 let profile_data = prerendered_profile[0]; 5675 - let model2 = new Model(route, new Loaded(profile_data)); 20443 + let model2 = new Model2(route, new Loaded(profile_data), init_form_data(new None)); 20444 + _block$1 = [model2, none()]; 20445 + } else { 20446 + let model2 = new Model2(route, new Failed("Profile not found"), init_form_data(new None)); 20447 + _block$1 = [model2, none()]; 20448 + } 20449 + } else if (route instanceof ProfileEdit) { 20450 + if (prerendered_profile instanceof Some) { 20451 + let profile_data = prerendered_profile[0]; 20452 + let model2 = new Model2(route, new Loaded(profile_data), init_form_data(new Some(profile_data))); 5676 20453 _block$1 = [model2, none()]; 5677 20454 } else { 5678 - let model2 = new Model(route, new Failed("Profile not found")); 20455 + let model2 = new Model2(route, new Failed("Profile not found"), init_form_data(new None)); 5679 20456 _block$1 = [model2, none()]; 5680 20457 } 5681 20458 } else { 5682 - let model2 = new Model(route, new NotAsked); 20459 + let model2 = new Model2(route, new NotAsked, init_form_data(new None)); 5683 20460 _block$1 = [model2, none()]; 5684 20461 } 5685 20462 let $1 = _block$1; ··· 5717 20494 } else { 5718 20495 let status = $; 5719 20496 console_log("Got status: " + inspect2(status)); 5720 - return new Error("API request failed"); 20497 + return new Error2("API request failed"); 5721 20498 } 5722 20499 } else { 5723 20500 let err = body_result[0]; 5724 20501 console_log("Fetch error: " + err); 5725 - return new Error(err); 20502 + return new Error2(err); 5726 20503 } 5727 20504 }); 5728 20505 tap(_pipe$1, (result) => { ··· 5731 20508 return; 5732 20509 }); 5733 20510 } 5734 - function update2(model, msg) { 20511 + function update3(model, msg) { 5735 20512 if (msg instanceof UserNavigatedTo) { 5736 20513 let route = msg.route; 5737 - let model$1 = new Model(route, model.profile_state); 20514 + let model$1 = new Model2(route, model.profile_state, model.edit_form_data); 5738 20515 if (route instanceof Profile2) { 5739 20516 let handle2 = route.handle; 5740 20517 console_log("Navigating to profile: " + handle2); 5741 - let model$2 = new Model(model$1.route, new Loading); 5742 - return [model$2, fetch_profile(handle2)]; 20518 + let $ = model$1.profile_state; 20519 + if ($ instanceof Loaded) { 20520 + let p2 = $[0]; 20521 + let $1 = p2.handle; 20522 + if ($1 instanceof Some) { 20523 + let loaded_handle = $1[0]; 20524 + if (loaded_handle === handle2) { 20525 + return [model$1, none()]; 20526 + } else { 20527 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20528 + return [model$2, fetch_profile(handle2)]; 20529 + } 20530 + } else { 20531 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20532 + return [model$2, fetch_profile(handle2)]; 20533 + } 20534 + } else { 20535 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20536 + return [model$2, fetch_profile(handle2)]; 20537 + } 20538 + } else if (route instanceof ProfileEdit) { 20539 + let handle2 = route.handle; 20540 + console_log("Navigating to profile edit: " + handle2); 20541 + let $ = model$1.profile_state; 20542 + if ($ instanceof Loaded) { 20543 + let p2 = $[0]; 20544 + let $1 = p2.handle; 20545 + if ($1 instanceof Some) { 20546 + let loaded_handle = $1[0]; 20547 + if (loaded_handle === handle2) { 20548 + let form_data = init_form_data(new Some(p2)); 20549 + return [ 20550 + new Model2(model$1.route, model$1.profile_state, form_data), 20551 + none() 20552 + ]; 20553 + } else { 20554 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20555 + return [model$2, fetch_profile(handle2)]; 20556 + } 20557 + } else { 20558 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20559 + return [model$2, fetch_profile(handle2)]; 20560 + } 20561 + } else { 20562 + let model$2 = new Model2(model$1.route, new Loading, model$1.edit_form_data); 20563 + return [model$2, fetch_profile(handle2)]; 20564 + } 5743 20565 } else { 5744 20566 return [model$1, none()]; 5745 20567 } 5746 - } else { 20568 + } else if (msg instanceof ProfileFetched) { 5747 20569 let result = msg[0]; 5748 20570 console_log("Profile fetched result: " + inspect2(result)); 5749 20571 let _block; 5750 20572 if (result instanceof Ok) { 5751 - let $ = result[0]; 5752 - if ($ instanceof Some) { 5753 - let profile_data = $[0]; 20573 + let $2 = result[0]; 20574 + if ($2 instanceof Some) { 20575 + let profile_data = $2[0]; 5754 20576 _block = new Loaded(profile_data); 5755 20577 } else { 5756 20578 _block = new Failed("Profile not found"); ··· 5760 20582 _block = new Failed(error); 5761 20583 } 5762 20584 let profile_state = _block; 5763 - return [new Model(model.route, profile_state), none()]; 20585 + let _block$1; 20586 + let $ = model.route; 20587 + if ($ instanceof ProfileEdit && profile_state instanceof Loaded) { 20588 + let profile_data = profile_state[0]; 20589 + _block$1 = init_form_data(new Some(profile_data)); 20590 + } else { 20591 + _block$1 = model.edit_form_data; 20592 + } 20593 + let edit_form_data = _block$1; 20594 + return [ 20595 + new Model2(model.route, profile_state, edit_form_data), 20596 + none() 20597 + ]; 20598 + } else { 20599 + let edit_msg = msg[0]; 20600 + if (edit_msg instanceof DisplayNameUpdated) { 20601 + let value3 = edit_msg[0]; 20602 + let _block; 20603 + let _record = model.edit_form_data; 20604 + _block = new FormData2(value3, _record.description, _record.location_input, _record.interests, _record.avatar_preview_url); 20605 + let form_data = _block; 20606 + return [ 20607 + new Model2(model.route, model.profile_state, form_data), 20608 + none() 20609 + ]; 20610 + } else if (edit_msg instanceof DescriptionUpdated) { 20611 + let value3 = edit_msg[0]; 20612 + let _block; 20613 + let _record = model.edit_form_data; 20614 + _block = new FormData2(_record.display_name, value3, _record.location_input, _record.interests, _record.avatar_preview_url); 20615 + let form_data = _block; 20616 + return [ 20617 + new Model2(model.route, model.profile_state, form_data), 20618 + none() 20619 + ]; 20620 + } else if (edit_msg instanceof InterestsUpdated) { 20621 + let value3 = edit_msg[0]; 20622 + let _block; 20623 + let _record = model.edit_form_data; 20624 + _block = new FormData2(_record.display_name, _record.description, _record.location_input, value3, _record.avatar_preview_url); 20625 + let form_data = _block; 20626 + return [ 20627 + new Model2(model.route, model.profile_state, form_data), 20628 + none() 20629 + ]; 20630 + } else if (edit_msg instanceof AvatarFileSelected) { 20631 + return [model, none()]; 20632 + } else if (edit_msg instanceof LocationInputMsg) { 20633 + let location_msg = edit_msg[0]; 20634 + let $ = update2(model.edit_form_data.location_input, location_msg); 20635 + let location_model; 20636 + let location_effect; 20637 + location_model = $[0]; 20638 + location_effect = $[1]; 20639 + let _block; 20640 + let _record = model.edit_form_data; 20641 + _block = new FormData2(_record.display_name, _record.description, location_model, _record.interests, _record.avatar_preview_url); 20642 + let form_data = _block; 20643 + return [ 20644 + new Model2(model.route, model.profile_state, form_data), 20645 + (() => { 20646 + let _pipe = location_effect; 20647 + return map5(_pipe, (msg2) => { 20648 + return new ProfileEditMsg(new LocationInputMsg(msg2)); 20649 + }); 20650 + })() 20651 + ]; 20652 + } else if (edit_msg instanceof FormSubmitted) { 20653 + console_log("Profile form submitted"); 20654 + return [model, none()]; 20655 + } else { 20656 + let $ = model.route; 20657 + if ($ instanceof ProfileEdit) { 20658 + let handle2 = $.handle; 20659 + return [ 20660 + model, 20661 + push("/profile/" + handle2, new None, new None) 20662 + ]; 20663 + } else { 20664 + return [model, none()]; 20665 + } 20666 + } 5764 20667 } 5765 20668 } 5766 20669 function view_not_found() { ··· 5769 20672 p(toList([class$("text-zinc-400")]), toList([text3("The page you're looking for doesn't exist.")])) 5770 20673 ])); 5771 20674 } 5772 - function view4(model) { 20675 + function view6(model) { 5773 20676 let user = new Some(new User(new Some("Chad Miller"), "chadtmiller.com")); 5774 20677 return layout(user, toList([ 5775 20678 (() => { ··· 5798 20701 p(toList([class$("text-zinc-400")]), toList([text3(error)])) 5799 20702 ])); 5800 20703 } 20704 + } else if ($ instanceof ProfileEdit) { 20705 + let handle2 = $.handle; 20706 + let $1 = model.profile_state; 20707 + if ($1 instanceof NotAsked) { 20708 + return div(toList([class$("text-center py-12")]), toList([ 20709 + p(toList([class$("text-zinc-400")]), toList([text3("Loading profile...")])) 20710 + ])); 20711 + } else if ($1 instanceof Loading) { 20712 + return div(toList([class$("text-center py-12")]), toList([ 20713 + p(toList([class$("text-zinc-400")]), toList([text3("Loading profile...")])) 20714 + ])); 20715 + } else if ($1 instanceof Loaded) { 20716 + let p2 = $1[0]; 20717 + return view5(new Some(p2), model.edit_form_data, handle2, (var0) => { 20718 + return new ProfileEditMsg(var0); 20719 + }); 20720 + } else { 20721 + let error = $1.error; 20722 + return div(toList([class$("text-center py-12")]), toList([ 20723 + h2(toList([ 20724 + class$("text-2xl font-bold text-white mb-4") 20725 + ]), toList([text3("Error")])), 20726 + p(toList([class$("text-zinc-400")]), toList([text3(error)])) 20727 + ])); 20728 + } 5801 20729 } else { 5802 20730 return view_not_found(); 5803 20731 } ··· 5805 20733 ])); 5806 20734 } 5807 20735 function main() { 5808 - let app = application(init2, update2, view4); 20736 + let app = application(init3, update3, view6); 5809 20737 let $ = start3(app, "#app", undefined); 5810 20738 if (!($ instanceof Ok)) { 5811 - throw makeError("let_assert", FILEPATH, "client", 23, "main", "Pattern match failed, no pattern matched the value.", { value: $, start: 575, end: 624, pattern_start: 586, pattern_end: 591 }); 20739 + throw makeError("let_assert", FILEPATH, "client", 25, "main", "Pattern match failed, no pattern matched the value.", { value: $, start: 626, end: 675, pattern_start: 637, pattern_end: 642 }); 5812 20740 } 5813 20741 return; 5814 20742 }
+1
server/src/server.gleam
··· 54 54 55 55 // Profile routes - prerender with data 56 56 Get, ["profile", handle] -> serve_profile(handle) 57 + Get, ["profile", handle, "edit"] -> serve_profile(handle) 57 58 58 59 // Everything else gets our base HTML 59 60 Get, _ -> serve_index(option.None)