From 77b8c802e673d4f0ed75c4a838ce6c11d8b8f535 Mon Sep 17 00:00:00 2001 From: misode Date: Fri, 18 Feb 2022 21:55:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=201812d?= =?UTF-8?q?5d2a6002cef2919c1c36e0e2656d6305db8=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 +-- advancement/index.html | 6 ++-- assets/blockstate/index.html | 6 ++-- assets/en.c743275d.js | 2 -- assets/en.c743275d.js.map | 1 - assets/en.e896b0a6.js | 2 ++ assets/en.e896b0a6.js.map | 1 + assets/index.92940780.js | 2 ++ assets/index.92940780.js.map | 1 + assets/index.da908f73.js | 2 -- assets/index.da908f73.js.map | 1 - assets/index.html | 6 ++-- assets/model/index.html | 6 ++-- assets/vendor.50c0a5f7.js.map | 1 - ...{vendor.50c0a5f7.js => vendor.a42db564.js} | 16 +++++----- assets/vendor.a42db564.js.map | 1 + changelog/index.html | 6 ++-- dimension-type/index.html | 6 ++-- dimension/index.html | 6 ++-- index.html | 4 +-- item-modifier/index.html | 6 ++-- loot-table/index.html | 6 ++-- predicate/index.html | 6 ++-- recipe/index.html | 6 ++-- sounds/index.html | 6 ++-- world/index.html | 6 ++-- worldgen/biome/index.html | 6 ++-- worldgen/carver/index.html | 6 ++-- worldgen/density-function/index.html | 31 +++++++++++++++++++ worldgen/feature/index.html | 6 ++-- worldgen/index.html | 6 ++-- worldgen/noise-settings/index.html | 6 ++-- worldgen/noise/index.html | 6 ++-- worldgen/placed-feature/index.html | 6 ++-- worldgen/processor-list/index.html | 6 ++-- worldgen/structure-feature/index.html | 6 ++-- worldgen/structure-set/index.html | 31 +++++++++++++++++++ worldgen/surface-builder/index.html | 6 ++-- worldgen/template-pool/index.html | 6 ++-- 39 files changed, 153 insertions(+), 91 deletions(-) delete mode 100644 assets/en.c743275d.js delete mode 100644 assets/en.c743275d.js.map create mode 100644 assets/en.e896b0a6.js create mode 100644 assets/en.e896b0a6.js.map create mode 100644 assets/index.92940780.js create mode 100644 assets/index.92940780.js.map delete mode 100644 assets/index.da908f73.js delete mode 100644 assets/index.da908f73.js.map delete mode 100644 assets/vendor.50c0a5f7.js.map rename assets/{vendor.50c0a5f7.js => vendor.a42db564.js} (84%) create mode 100644 assets/vendor.a42db564.js.map create mode 100644 worldgen/density-function/index.html create mode 100644 worldgen/structure-set/index.html diff --git a/404.html b/404.html index 9af9b726..7c2451d1 100644 --- a/404.html +++ b/404.html @@ -20,8 +20,8 @@ 404 - - + + diff --git a/advancement/index.html b/advancement/index.html index 92fd9813..e40071fb 100644 --- a/advancement/index.html +++ b/advancement/index.html @@ -17,11 +17,11 @@ - Advancement Generator Minecraft 1.17, 1.18, latest + Advancement Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/assets/blockstate/index.html b/assets/blockstate/index.html index aedc6b69..ba0456b6 100644 --- a/assets/blockstate/index.html +++ b/assets/blockstate/index.html @@ -17,11 +17,11 @@ - Blockstate Generator Minecraft 1.17, 1.18, latest + Blockstate Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/assets/en.c743275d.js b/assets/en.c743275d.js deleted file mode 100644 index e6f6fa5b..00000000 --- a/assets/en.c743275d.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=JSON.parse('{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can\'t spawn and chorus fruit can\'t teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Firstperson righthand","display_position.thirdperson_lefthand":"Firstperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.isBaby":"Baby","entity.isOnFire":"On fire","entity.isSneaking":"Sneaking","entity.isSprinting":"Sprinting","entity.isSwimming":"Swimming","entity.location":"Location","entity.nbt":"NBT","entity.player":"Player","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.disallowed_tag_prefix":"Tags cannot start with \\"#\\" here","error.disallowed_tag":"Tags aren\'t allowed here","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.expected_tag":"Expected a tag starting with \\"#\\"","error.height_multiple":"Height has to be multiple of %0%","error.invalid_empty_list":"Array cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.invalid_resource_location":"Resource location contains invalid characters","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.allowed_tree_position":"Allowed tree position","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","generator_structure.type":"Type","generator_structure.concentric_rings.distance":"Distance","generator_structure.concentric_rings.spread":"Spread","generator_structure.concentric_rings.count":"Count","generator_structure.random_spread.spread_type":"Spread type","generator_structure.random_spread.spread_type.linear":"Linear","generator_structure.random_spread.spread_type.triangular":"Triangular","generator_structure.random_spread.spacing":"Spacing","generator_structure.random_spread.separation":"Separation","generator_structure.random_spread.salt":"Salt","generator_structure.random_spread.locate_offset":"Locate offset","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Feature","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can\'t run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.stone_depth.secondary_depth_range":"Secondary depth range","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of \'Offset * Size vertical * 4\' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of \'Size * Size vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of \'Offset * Size Vertical * 4\' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of \'Size * Size Vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.string":"Reference","placed_feature.object":"Inline","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.string":"Single","tag.list":"Multiple","tag.list.string":"Reference","tag.list.object":"Inline","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.alter_ground.provider":"State provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/structure_placement.concentric_rings":"Concentric rings","worldgen/structure_placement.random_spread":"Random spread","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight"}');export default e; -//# sourceMappingURL=en.c743275d.js.map diff --git a/assets/en.c743275d.js.map b/assets/en.c743275d.js.map deleted file mode 100644 index 64495ec4..00000000 --- a/assets/en.c743275d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"en.c743275d.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/en.e896b0a6.js b/assets/en.e896b0a6.js new file mode 100644 index 00000000..5109a47f --- /dev/null +++ b/assets/en.e896b0a6.js @@ -0,0 +1,2 @@ +var e=JSON.parse('{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce to chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show toast","advancement.display.title":"Title","advancement.parent":"Parent advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee nest destroyed","advancement_trigger.bred_animals":"Bred animals","advancement_trigger.brewed_potion":"Brewed potion","advancement_trigger.changed_dimension":"Changed dimension","advancement_trigger.channeled_lightning":"Channeled lightning","advancement_trigger.construct_beacon":"Construct beacon","advancement_trigger.consume_item":"Consume item","advancement_trigger.cured_zombie_villager":"Cured zombie villager","advancement_trigger.effects_changed":"Effects changed","advancement_trigger.enchanted_item":"Enchanted item","advancement_trigger.enter_block":"Enter block","advancement_trigger.entity_hurt_player":"Entity hurt player","advancement_trigger.entity_killed_player":"Entity killed player","advancement_trigger.fall_from_height":"Fall from height","advancement_trigger.filled_bucket":"Filled bucket","advancement_trigger.fishing_rod_hooked":"Fishing rod hooked","advancement_trigger.hero_of_the_village":"Hero of the village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory changed","advancement_trigger.item_durability_changed":"Item durability changed","advancement_trigger.item_used_on_block":"Item used on block","advancement_trigger.killed_by_crossbow":"Killed by crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether travel","advancement_trigger.placed_block":"Placed block","advancement_trigger.player_generates_container_loot":"Player generates container loot","advancement_trigger.player_hurt_entity":"Player hurt entity","advancement_trigger.player_killed_entity":"Player killed entity","advancement_trigger.recipe_unlocked":"Recipe unlocked","advancement_trigger.ride_entity_in_lava":"Ride entity in lava","advancement_trigger.safely_harvest_honey":"Safely harvest honey","advancement_trigger.shot_crossbow":"Shot crossbow","advancement_trigger.slept_in_bed":"Slept in bed","advancement_trigger.slide_down_block":"Slide down block","advancement_trigger.summoned_entity":"Summoned entity","advancement_trigger.tame_animal":"Tame animal","advancement_trigger.target_hit":"Target hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown item picked up by entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used ender eye","advancement_trigger.used_totem":"Used totem","advancement_trigger.villager_trade":"Villager trade","advancement_trigger.voluntary_exile":"Voluntary exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor toughness","attribute.generic_attack_damage":"Attack damage","attribute.generic_attack_knockback":"Attack knockback","attribute.generic_attack_speed":"Attack speed","attribute.generic_flying_speed":"Flying speed","attribute.generic_follow_range":"Follow range","attribute.generic_knockback_resistance":"Knockback resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max health","attribute.generic_movement_speed":"Movement speed","attribute.horse.jump_strength":"Jump strength","attribute.zombie.spawn_reinforcements":"Spawn reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply base","attribute_modifier.operation.multiply_total":"Multiply total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","axis.x":"X","axis.y":"Y","axis.z":"Z","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature spawn probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick chance","biome.effects.ambient_sound":"Ambient sound","biome.effects.fog_color":"Fog color","biome.effects.foliage_color":"Foliage color","biome.effects.grass_color":"Grass color","biome.effects.grass_color_modifier":"Grass color modifier","biome.effects.grass_color_modifier.dark_forest":"Dark forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood sound","biome.effects.mood_sound.block_search_extent":"Block search extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max delay","biome.effects.music.min_delay":"Min delay","biome.effects.music.replace_current_music":"Replace current music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky color","biome.effects.water_color":"Water color","biome.effects.water_fog_color":"Water fog color","biome.features":"Placed features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player spawn friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max count","biome.spawners.entry.minCount":"Min count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water ambient","biome.spawners.water_creature":"Water creature","biome.starts":"Structure starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block state","block.tag":"Block tag","block_definition.multipart":"Multipart","block_definition.variants":"Variants","block_definition.multipart.entry":"Part","block_definition.multipart.entry.when":"When","block_definition.multipart.entry.apply":"Apply","block_placer.column_placer.extra_size":"Extra size","block_placer.column_placer.min_size":"Min size","block_placer.type":"Type","block_predicate.type":"Type","block_predicate.all_of.predicates":"Predicates","block_predicate.any_of.predicates":"Predicates","block_predicate.inside_world_bounds.offset":"Offset","block_predicate.matching_blocks.offset":"Offset","block_predicate.matching_blocks.blocks":"Blocks","block_predicate.matching_blocks.blocks.entry":"Block","block_predicate.matching_fluids.offset":"Offset","block_predicate.matching_fluids.fluids":"Fluids","block_predicate.matching_fluids.fluids.entry":"Fluid","block_predicate.would_survive.offset":"Offset","block_predicate.would_survive.state":"State","block_predicate_type.all_of":"All of","block_predicate_type.any_of":"Any of","block_predicate_type.inside_world_bounds":"Inside world bounds","block_predicate_type.matching_blocks":"Matching blocks","block_predicate_type.matching_fluids":"Matching fluids","block_predicate_type.not":"Not","block_predicate_type.replaceable":"Replaceable","block_predicate_type.solid":"Solid","block_predicate_type.true":"True","block_predicate_type.would_survive":"Would survive","block_predicate.not.predicate":"Predicate","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.dual_noise_provider.seed":"Seed","block_state_provider.dual_noise_provider.noise":"Noise","block_state_provider.dual_noise_provider.scale":"Scale","block_state_provider.dual_noise_provider.variety":"Variety","block_state_provider.dual_noise_provider.slow_noise":"Slow noise","block_state_provider.dual_noise_provider.slow_scale":"Slow scale","block_state_provider.dual_noise_provider.states":"States","block_state_provider.noise_threshold_provider.seed":"Seed","block_state_provider.noise_threshold_provider.noise":"Noise","block_state_provider.noise_threshold_provider.scale":"Scale","block_state_provider.noise_threshold_provider.threshold":"Threshold","block_state_provider.noise_threshold_provider.high_chance":"High chance","block_state_provider.noise_threshold_provider.default_state":"Default state","block_state_provider.noise_threshold_provider.low_states":"Low states","block_state_provider.noise_threshold_provider.high_states":"High states","block_state_provider.noise_provider.seed":"Seed","block_state_provider.noise_provider.noise":"Noise","block_state_provider.noise_provider.scale":"Scale","block_state_provider.noise_provider.states":"States","block_state_provider.randomized_int_state_provider.property":"Property","block_state_provider.randomized_int_state_provider.values":"Values","block_state_provider.randomized_int_state_provider.source":"Source","block_state_provider.rotated_block_provider.state":"State","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.aquifers_enabled":"Aquifers enabled","carver.config.canyon.bottom_inclusive":"Bottom inclusive","carver.config.canyon.top_inclusive":"Top inclusive","carver.config.canyon.vertical_rotation":"Vertical rotation","carver.config.canyon.shape":"Shape","carver.config.canyon.shape.distance_factor":"Distance factor","carver.config.canyon.shape.thickness":"Thickness","carver.config.canyon.shape.width_smoothness":"Width smoothness","carver.config.canyon.shape.horizontal_radius_factor":"Horizontal radius factor","carver.config.canyon.shape.vertical_radius_default_factor":"Vertical radius default factor","carver.config.canyon.shape.vertical_radius_center_factor":"Vertical radius center factor","carver.config.cave.horizontal_radius_multiplier":"Horizontal radius multiplier","carver.config.cave.vertical_radius_multiplier":"Vertical radius multiplier","carver.config.cave.floor_level":"Floor level","carver.config.debug_settings":"Debug settings","carver.config.debug_settings.debug_mode":"Debug mode","carver.config.debug_settings.air_state":"Air state","carver.config.debug_settings.water_state":"Water state","carver.config.debug_settings.lava_state":"Lava state","carver.config.debug_settings.barrier_state":"Barrier state","carver.config.lava_level":"Lava level","carver.config.probability":"Probability","carver.config.y":"Y","carver.config.yScale":"Y scale","carver.type":"Type","cave_surface.ceiling":"Ceiling","cave_surface.floor":"Floor","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block state","condition.condition":"Condition","condition.damage_source":"Damage source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X offset","condition.location_check.offsetY":"Y offset","condition.location_check.offsetZ":"Z offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting multiplier","condition.reference.name":"Predicate name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block entity","copy_source.direct_killer":"Direct killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer player","copy_source.this":"This","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of bees inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source entity","criterion.entity_killed_player.killing_blow":"Killing blow","criterion.fall_from_height.distance":"Distance","criterion.fall_from_height.start_position":"Start position","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots empty","criterion.inventory_changed.slots.full":"Slots full","criterion.inventory_changed.slots.occupied":"Slots occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.killed_by_crossbow.unique_entity_types":"Amount of unique entity types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered location","criterion.nether_travel.exited":"Exited location","criterion.nether_travel.start_position":"Start position","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim entity","criterion.player_killed_entity.entity":"Victim entity","criterion.player_killed_entity.killing_blow":"Killing blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.ride_entity_in_lava.distance":"Distance","criterion.ride_entity_in_lava.start_position":"Start position","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem item","criterion.villager_trade.item":"Purchased item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage dealt","damage.source_entity":"Source entity","damage.taken":"Damage taken","damage.type":"Damage type","damage_source.bypasses_armor":"Bypass armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source entity","decorator.block_predicate_filter.predicate":"Predicate","decorator.carving_mask.step":"Step","decorator.cave_surface.surface":"Surface","decorator.cave_surface.floor_to_ceiling_search_range":"Search range","decorator.cave_surface.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","decorator.cave_surface.allow_water":"Allow water","decorator.chance.chance":"Chance","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra chance","decorator.count_extra.extra_count":"Extra count","decorator.count_multilayer.count":"Count","decorator.count_on_every_layer.count":"Count","decorator.count_noise.above_noise":"Above noise","decorator.count_noise.below_noise":"Below noise","decorator.count_noise.noise_level":"Noise level","decorator.noise_threshold_count.above_noise":"Above noise","decorator.noise_threshold_count.below_noise":"Below noise","decorator.noise_threshold_count.noise_level":"Noise level","decorator.count_noise_biased.noise_factor":"Noise factor","decorator.count_noise_biased.noise_offset":"Noise offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise to count ratio","decorator.noise_based_count.noise_factor":"Noise factor","decorator.noise_based_count.noise_offset":"Noise offset","decorator.noise_based_count.noise_to_count_ratio":"Noise to count ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.environment_scan.direction_of_search":"Direction","decorator.environment_scan.max_steps":"Max steps","decorator.environment_scan.target_condition":"Target condition","decorator.glowstone.count":"Count","decorator.heightmap.heightmap":"Heightmap","decorator.heightmap_spread_double.heightmap":"Heightmap","decorator.lava_lake.chance":"Chance","decorator.range.bottom_inclusive":"Bottom inclusive","decorator.range.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.range.height":"Height","decorator.height_range.height":"Height","decorator.random_offset.xz_spread":"XZ spread","decorator.random_offset.y_spread":"Y spread","decorator.surface_relative_threshold_filter.heightmap":"Heightmap","decorator.surface_relative_threshold_filter.min_inclusive":"Min inclusive","decorator.surface_relative_threshold_filter.max_inclusive":"Max inclusive","decorator.water_depth_threshold.max_water_depth":"Max water depth","decorator.surface_water_depth_filter.max_water_depth":"Max water depth","decorator.type":"Type","density_function.string":"Reference","density_function.number":"Constant","density_function.object":"Inline","density_function.type":"Type","density_function.argument":"Argument","density_function.argument1":"Argument 1","density_function.argument2":"Argument 2","density_function.input":"Input","density_function.min":"Min","density_function.max":"Max","density_function.xz_scale":"XZ scale","density_function.y_scale":"Y scale","density_function.min_inclusive":"Min inclusive","density_function.when_in_range":"When in range","density_function.when_out_of_range":"When out of range","density_function.noise":"Noise parameters","density_function.shift_x":"Shift X","density_function.shift_y":"Shift Y","density_function.shift_z":"Shift Z","density_function.spline":"Spline","density_function.min_value":"Min value","density_function.max_value":"Max value","density_function.continentalness":"Continentalness","density_function.erosion":"Erosion","density_function.weirdness":"Weirdness","density_function.rarity_value_mapper":"Rarity value mapper","density_function.from_y":"From Y","density_function.to_y":"To Y","density_function.from_value":"From value","density_function.to_value":"To value","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome source","dimension.overworld":"Overworld","dimension.the_end":"The end","dimension.the_nether":"The nether","dimension.type":"Dimension type","dimension.type.object":"Inline","dimension.type.string":"Reference","dimension_type.ambient_light":"Ambient light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The end","dimension_type.effects.the_nether":"The nether","dimension_type.fixed_time":"Fixed time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical height","dimension_type.logical_height.help":"Portals can\'t spawn and chorus fruit can\'t teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn anchor works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","direction.up":"Up","direction.down":"Down","direction.north":"North","direction.east":"East","direction.south":"South","direction.west":"West","display_position.firstperson_righthand":"Firstperson righthand","display_position.firstperson_lefthand":"Firstperson lefthand","display_position.thirdperson_righthand":"Firstperson righthand","display_position.thirdperson_lefthand":"Firstperson lefthand","display_position.gui":"GUI","display_position.head":"Head","display_position.ground":"Ground","display_position.fixed":"Fixed","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua affinity","enchantment.bane_of_arthropods":"Bane of arthropods","enchantment.binding_curse":"Curse of binding","enchantment.blast_protection":"Blast protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather falling","enchantment.fire_aspect":"Fire aspect","enchantment.fire_protection":"Fire protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of vanishing","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing hook","entity.fishing_hook.in_open_water":"In open water","entity.flags":"Flags","entity.isBaby":"Baby","entity.isOnFire":"On fire","entity.isSneaking":"Sneaking","entity.isSprinting":"Sprinting","entity.isSwimming":"Swimming","entity.location":"Location","entity.nbt":"NBT","entity.player":"Player","entity.targeted_entity":"Targeted entity","entity.team":"Team","entity.type":"Entity","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer player","entity_source.this":"This","entry":"Entry","error":"Error","error.disallowed_tag_prefix":"Tags cannot start with \\"#\\" here","error.disallowed_tag":"Tags aren\'t allowed here","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.expected_tag":"Expected a tag starting with \\"#\\"","error.height_multiple":"Height has to be multiple of %0%","error.invalid_empty_list":"Array cannot be empty","error.invalid_enum_option":"Invalid option \\"%0%\\"","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.invalid_number_enum":"Expected one of %0%","error.invalid_resource_location":"Resource location contains invalid characters","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_column.direction":"Direction","feature.block_column.allowed_placement":"Allowed placement","feature.block_column.prioritize_tip":"Prioritize tip","feature.block_column.layers":"Layers","feature.block_column.layers.entry.height":"Height","feature.block_column.layers.entry.state":"State","feature.block_pile.state_provider":"State provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far dripstone chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block layer thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height deviation","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column":"Column chance distance","feature.dripstone_cluster.max_distance_from_edge_affecting_chance_of_dripstone_column.help":"Max distance from the edge affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height bias distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max height difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness deviation","feature.dripstone_cluster.wetness_mean":"Wetness mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal beam target","feature.end_spike.crystal_invulnerable":"Crystal invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block placer","feature.flower.can_replace":"Can replace","feature.flower.need_water":"Need water","feature.flower.feature":"Placed feature","feature.flower.project":"Project","feature.flower.state_provider":"State provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X spread","feature.flower.xz_spread":"XZ spread","feature.flower.yspread":"Y spread","feature.flower.y_spread":"Y spread","feature.flower.zspread":"Z spread","feature.forest_rock.state":"State","feature.fossil.max_empty_corners_allowed":"Max empty corners","feature.fossil.max_empty_corners_allowed.help":"If more corners are exposed to air, feature placement is cancelled.","feature.fossil.fossil_structures":"Fossil structures","feature.fossil.overlay_structures":"Overlay structures","feature.fossil.fossil_processors":"Fossil processors","feature.fossil.fossil_processors.string":"Reference","feature.fossil.fossil_processors.object":"Inline","feature.fossil.overlay_processors":"Overlay processors","feature.fossil.overlay_processors.string":"Reference","feature.fossil.overlay_processors.object":"Inline","feature.geode.blocks":"Blocks","feature.geode.blocks.filling_provider":"Filling","feature.geode.blocks.inner_layer_provider":"Inner layer","feature.geode.blocks.alternate_inner_layer_provider":"Alternate inner layer","feature.geode.blocks.middle_layer_provider":"Middle layer","feature.geode.blocks.outer_layer_provider":"Outer layer","feature.geode.blocks.inner_placements":"Inner placements","feature.geode.blocks.cannot_replace":"Cannot replace","feature.geode.blocks.cannot_replace.help":"Blocks that will not be replaced by the geode.","feature.geode.blocks.invalid_blocks":"Invalid blocks","feature.geode.blocks.invalid_blocks.help":"When encountering an invalid block, feature placement is cancelled.","feature.geode.layers":"Layers","feature.geode.layers.filling":"Filling","feature.geode.layers.inner_layer":"Inner layer","feature.geode.layers.middle_layer":"Middle layer","feature.geode.layers.outer_layer":"Outer layer","feature.geode.crack":"Crack","feature.geode.crack.generate_crack_chance":"Crack chance","feature.geode.crack.base_crack_size":"Crack size","feature.geode.crack.crack_point_offset":"Crack point offset","feature.geode.noise_multiplier":"Noise multiplier","feature.geode.use_potential_placements_chance":"Inner placements chance","feature.geode.use_alternate_layer0_chance":"Alternate inner layer chance","feature.geode.placements_require_layer0_alternate":"Placements require alternate layer","feature.geode.outer_wall_distance":"Outer wall distance","feature.geode.distribution_points":"Distribution points","feature.geode.point_offset":"Point offset","feature.geode.min_gen_offset":"Min gen offset","feature.geode.max_gen_offset":"Max gen offset","feature.geode.invalid_blocks_threshold":"Invalid blocks threshold","feature.glow_lichen.can_be_placed_on":"Can be placed on","feature.glow_lichen.can_be_placed_on.entry":"Block state","feature.glow_lichen.can_place_on_ceiling":"Can place on ceiling","feature.glow_lichen.can_place_on_floor":"Can place on floor","feature.glow_lichen.can_place_on_wall":"Can place on wall","feature.glow_lichen.chance_of_spreading":"Chance of spreading","feature.glow_lichen.search_range":"Search range","feature.growing_plant.direction":"Direction","feature.growing_plant.allow_water":"Allow water","feature.growing_plant.height_distribution":"Height distribution","feature.growing_plant.body_provider":"Body provider","feature.growing_plant.head_provider":"Head provider","feature.huge_brown_mushroom.cap_provider":"Cap provider","feature.huge_brown_mushroom.foliage_radius":"Foliage radius","feature.huge_brown_mushroom.stem_provider":"Stem provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid base","feature.huge_red_mushroom.cap_provider":"Cap provider","feature.huge_red_mushroom.foliage_radius":"Foliage radius","feature.huge_red_mushroom.stem_provider":"Stem provider","feature.ice_patch.half_height":"Half height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.lake.fluid":"Fluid","feature.lake.barrier":"Barrier","feature.large_dripstone.column_radius":"Column radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to cave height ratio","feature.large_dripstone.min_bluntness_for_wind":"Min bluntness for wind","feature.large_dripstone.min_radius_for_wind":"Min radius for wind","feature.large_dripstone.stalactite_bluntness":"Stalactite bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite bluntness","feature.large_dripstone.wind_speed":"Wind speed","feature.nether_forest_vegetation.state_provider":"State provider","feature.nether_forest_vegetation.spread_width":"Spread width","feature.nether_forest_vegetation.spread_height":"Spread height","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_bonemeal_flower.allowed_on":"Allowed on","feature.no_bonemeal_flower.blacklist":"Blacklist","feature.no_bonemeal_flower.block_placer":"Block placer","feature.no_bonemeal_flower.can_replace":"Can replace","feature.no_bonemeal_flower.disallowed_on":"Disallowed on","feature.no_bonemeal_flower.need_water":"Need water","feature.no_bonemeal_flower.feature":"Placed feature","feature.no_bonemeal_flower.only_in_air":"Only in air","feature.no_bonemeal_flower.project":"Project","feature.no_bonemeal_flower.state_provider":"State provider","feature.no_bonemeal_flower.tries":"Tries","feature.no_bonemeal_flower.whitelist":"Whitelist","feature.no_bonemeal_flower.xspread":"X spread","feature.no_bonemeal_flower.xz_spread":"XZ spread","feature.no_bonemeal_flower.yspread":"Y spread","feature.no_bonemeal_flower.y_spread":"Y spread","feature.no_bonemeal_flower.zspread":"Z spread","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Inline","feature.ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.ore.size":"Size","feature.ore.state":"State","feature.ore.target":"Target","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard on exposure chance","feature.scattered_ore.discard_chance_on_air_exposure.help":"The chance that feature placement will be discarded if the ore is exposed to air blocks.","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.pointed_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.pointed_dripstone.chance_of_directional_spread":"Chance of directional spread","feature.pointed_dripstone.chance_of_spread_radius2":"Chance of spread radius 2","feature.pointed_dripstone.chance_of_spread_radius3":"Chance of spread radius 3","feature.random_boolean_selector.feature_false":"Placed feature 1","feature.random_boolean_selector.feature_true":"Placed feature 2","feature.random_patch.allowed_on":"Allowed on","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block placer","feature.random_patch.can_replace":"Can replace","feature.random_patch.disallowed_on":"Disallowed on","feature.random_patch.need_water":"Need water","feature.random_patch.feature":"Placed feature","feature.random_patch.only_in_air":"Only in air","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X spread","feature.random_patch.xz_spread":"XZ spread","feature.random_patch.yspread":"Y spread","feature.random_patch.y_spread":"Y spread","feature.random_patch.zspread":"Z spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Placed feature","feature.replace_single_block.targets":"Targets","feature.replace_single_block.targets.entry.target":"Target","feature.replace_single_block.targets.entry.state":"State","feature.root_system.required_vertical_space_for_tree":"Required vertical tree space","feature.root_system.root_radius":"Root radius","feature.root_system.root_placement_attempts":"Root placement attempts","feature.root_system.root_column_max_height":"Root max height","feature.root_system.hanging_root_radius":"Hanging roots radius","feature.root_system.hanging_roots_vertical_span":"Hanging roots vertical span","feature.root_system.hanging_root_placement_attempts":"Hanging roots attempts","feature.root_system.allowed_vertical_water_for_tree":"Max water depth","feature.root_system.root_replaceable":"Root replaceable","feature.root_system.root_state_provider":"Root","feature.root_system.hanging_root_state_provider":"Hanging roots","feature.root_system.allowed_tree_position":"Allowed tree position","feature.root_system.feature":"Tree feature","feature.sea_pickle.count":"Count","feature.seagrass.probability":"Probability","feature.simple_block.place_in":"Place in","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place on","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Placed feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of taller dripstone","feature.small_dripstone.empty_space_search_radius":"Empty space search radius","feature.small_dripstone.max_offset_from_origin":"Max offset from origin","feature.small_dripstone.max_placements":"Max placements","feature.spring_feature.hole_count":"Hole count","feature.spring_feature.required_block_below":"Required block below","feature.spring_feature.rock_count":"Rock count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree decorator","feature.tree.foliage_placer":"Foliage placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore vines","feature.tree.leaves_provider":"Leaves provider","feature.tree.foliage_provider":"Foliage provider","feature.tree.force_dirt":"Force dirt","feature.tree.dirt_provider":"Dirt provider","feature.tree.sapling_provider":"Sapling provider","feature.tree.max_water_depth":"Max water depth","feature.tree.minimum_size":"Minimum size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower size","feature.tree.minimum_size.middle_size":"Middle size","feature.tree.minimum_size.min_clipped_height":"Min clipped height","feature.tree.minimum_size.type":"Minimum size","feature.tree.minimum_size.upper_limit":"Upper limit","feature.tree.minimum_size.upper_size":"Upper size","feature.tree.trunk_placer":"Trunk placer","feature.tree.trunk_provider":"Trunk provider","feature.twisting_vines.spread_width":"Spread width","feature.twisting_vines.spread_height":"Spread height","feature.twisting_vines.max_height":"Max height","feature.type":"Type","feature.underwater_magma.floor_search_range":"Floor search range","feature.underwater_magma.placement_radius_around_floor":"Placement radius","feature.underwater_magma.placement_probability_per_valid_position":"Probability","feature.underwater_magma.placement_probability_per_valid_position.help":"The probability of placing magma per valid position.","feature.vegetation_patch.depth":"Depth","feature.vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.vegetation_patch.ground_state":"Ground state","feature.vegetation_patch.replaceable":"Replaceable","feature.vegetation_patch.surface":"Surface","feature.vegetation_patch.vegetation_chance":"Vegetation chance","feature.vegetation_patch.vegetation_feature":"Vegetation feature","feature.vegetation_patch.vertical_range":"Vertical range","feature.vegetation_patch.xz_radius":"XZ radius","feature.waterlogged_vegetation_patch.depth":"Depth","feature.waterlogged_vegetation_patch.extra_bottom_block_chance":"Extra bottom block chance","feature.waterlogged_vegetation_patch.extra_edge_column_chance":"Extra edge column chance","feature.waterlogged_vegetation_patch.ground_state":"Ground state","feature.waterlogged_vegetation_patch.replaceable":"Replaceable","feature.waterlogged_vegetation_patch.surface":"Surface","feature.waterlogged_vegetation_patch.vegetation_chance":"Vegetation chance","feature.waterlogged_vegetation_patch.vegetation_feature":"Vegetation feature","feature.waterlogged_vegetation_patch.vertical_range":"Vertical range","feature.waterlogged_vegetation_patch.xz_radius":"XZ radius","float_provider.value.deviation":"Deviation","float_provider.value.mean":"Mean","float_provider.value.min":"Min","float_provider.value.min_inclusive":"Min exclusive","float_provider.value.max":"Max","float_provider.value.max_exclusive":"Max exclusive","float_provider.value.plateau":"Plateau","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid state","fluid.tag":"Fluid tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk height","foliage_placer.type":"Type","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with bonus count","function.apply_bonus.formula.ore_drops":"Ore drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform bonus count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip existing chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_contents.type":"Type","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_loot_table.name":"Loot table name","function.set_loot_table.seed":"Seed","function.set_loot_table.type":"Type","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_potion.id":"Potion","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity noise","generator.biome_source.large_biomes":"Large biomes","generator.biome_source.legacy_biome_init_layer":"Legacy biome init layer","generator.biome_source.preset":"Biomes preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes seed","generator.biome_source.temperature_noise":"Temperature noise","generator.biome_source.type":"Biome source","generator.biome_source.weirdness_noise":"Weirdness noise","generator.seed":"Dimension seed","generator.settings":"Generator settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.object":"Inline","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Reference","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome.parameters.continentalness":"Continentalness","generator_biome.parameters.erosion":"Erosion","generator_biome.parameters.depth":"Depth","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","height_provider.inner":"Inner","height_provider.min_inclusive":"Min inclusive","height_provider.max_inclusive":"Max inclusive","height_provider.plateau":"Plateau","height_provider.value":"Value","height_provider.type.number":"Constant","height_provider.type.constant":"Constant+","height_provider.type.uniform":"Uniform","height_provider.type.biased_to_bottom":"Biased to bottom","height_provider.type.very_biased_to_bottom":"Very biased to bottom","height_provider.type.trapezoid":"Trapezoid","heightmap_type.MOTION_BLOCKING":"Motion blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion blocking (Ignore Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean floor (World Gen)","heightmap_type.WORLD_SURFACE":"World surface","heightmap_type.WORLD_SURFACE_IGNORE_SNOW":"World surface (Ignore Snow)","heightmap_type.WORLD_SURFACE_WG":"World surface (World Gen)","hide_source":"Hide source","int_provider.value":"Value","int_provider.value.deviation":"Deviation","int_provider.value.mean":"Mean","int_provider.value.min_inclusive":"Min inclusive","int_provider.value.max_inclusive":"Max inclusive","int_provider.value.source":"Source","int_provider.distribution":"Distribution","int_provider.distribution.entry.weight":"Weight","int_provider.distribution.entry.data":"Provider","int_provider.type.number":"Constant","int_provider.type.constant":"Constant+","int_provider.type.uniform":"Uniform","int_provider.type.biased_to_bottom":"Biased to bottom","int_provider.type.clamped":"Clamped","int_provider.type.clamped_normal":"Clamped normal","int_provider.type.weighted_list":"Weighted list","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item tag","item_model_predicates.angle":"Angle","item_model_predicates.blocking":"Blocking","item_model_predicates.broken":"Broken","item_model_predicates.cast":"Cast","item_model_predicates.charged":"Charged","item_model_predicates.cooldown":"Cooldown","item_model_predicates.custom_model_data":"Custom model data","item_model_predicates.damage":"Damage","item_model_predicates.damaged":"Damaged","item_model_predicates.firework":"Firework","item_model_predicates.lefthanded":"Lefthanded","item_model_predicates.pull":"Pull","item_model_predicates.pulling":"Pulling","item_model_predicates.throwing":"Throwing","item_model_predicates.time":"Time","item_transform.rotation":"Rotation","item_transform.translation":"Translation","item_transform.scale":"Scale","key.advancements":"Advancements","key.attack":"Attack/destroy","key.back":"Walk backwards","key.chat":"Open chat","key.command":"Open command","key.drop":"Drop selected item","key.forward":"Walk forwards","key.fullscreen":"Toggle fullscreen","key.hotbar.1":"Hotbar slot 1","key.hotbar.2":"Hotbar slot 2","key.hotbar.3":"Hotbar slot 3","key.hotbar.4":"Hotbar slot 4","key.hotbar.5":"Hotbar slot 5","key.hotbar.6":"Hotbar slot 6","key.hotbar.7":"Hotbar slot 7","key.hotbar.8":"Hotbar slot 8","key.hotbar.9":"Hotbar slot 9","key.inventory":"Open/close inventory","key.jump":"Jump","key.left":"Strafe left","key.loadToolbarActivator":"Load toolbar activator","key.pickItem":"Pick block","key.playerlist":"List players","key.right":"Strafe right","key.saveToolbarActivator":"Save toolbar activator","key.screenshot":"Take screenshot","key.smoothCamera":"Toggle cinematic camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap item with offhand","key.togglePerspective":"Toggle perspective","key.use":"Use item/place block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Feature","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible light level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block state properties","loot_condition_type.damage_source_properties":"Damage source properties","loot_condition_type.entity_properties":"Entity properties","loot_condition_type.entity_scores":"Entity scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by player","loot_condition_type.location_check":"Location check","loot_condition_type.match_tool":"Match tool","loot_condition_type.random_chance":"Random chance","loot_condition_type.random_chance_with_looting":"Random chance with looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives explosion","loot_condition_type.table_bonus":"Table bonus","loot_condition_type.time_check":"Time check","loot_condition_type.value_check":"Value check","loot_condition_type.weather_check":"Weather check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot table name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item tag name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_entry.functions":"Functions","loot_entry.functions.entry":"Function","loot_function_type.apply_bonus":"Apply bonus","loot_function_type.copy_name":"Copy name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy block states","loot_function_type.enchant_randomly":"Enchant randomly","loot_function_type.enchant_with_levels":"Enchant with levels","loot_function_type.exploration_map":"Exploration map properties","loot_function_type.explosion_decay":"Explosion decay","loot_function_type.fill_player_head":"Fill player head","loot_function_type.furnace_smelt":"Furnace smelt","loot_function_type.limit_count":"Limit count","loot_function_type.looting_enchant":"Looting enchant","loot_function_type.set_attributes":"Set attributes","loot_function_type.set_banner_pattern":"Set banner pattern","loot_function_type.set_contents":"Set contents","loot_function_type.set_count":"Set count","loot_function_type.set_damage":"Set damage","loot_function_type.set_data":"Set data","loot_function_type.set_enchantments":"Set enchantments","loot_function_type.set_loot_table":"Set loot table","loot_function_type.set_lore":"Set lore","loot_function_type.set_name":"Set name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_potion":"Set potion","loot_function_type.set_stew_effect":"Set stew effect","loot_pool.bonus_rolls":"Bonus rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can\'t run due to conditions.","loot_pool_entry_type.tag":"Item tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","material_condition.biome.biome_is":"Biome","material_condition.noise_threshold.noise":"Noise","material_condition.noise_threshold.min_threshold":"Min threshold","material_condition.noise_threshold.max_threshold":"Max threshold","material_condition.not.invert":"Invert","material_condition.stone_depth.offset":"Offset","material_condition.stone_depth.surface_type":"Surface","material_condition.stone_depth.add_surface_depth":"Add surface depth","material_condition.stone_depth.add_surface_secondary_depth":"Add surface secondary depth","material_condition.stone_depth.secondary_depth_range":"Secondary depth range","material_condition.vertical_gradient.random_name":"Random name","material_condition.vertical_gradient.true_at_and_below":"True at and below","material_condition.vertical_gradient.false_at_and_above":"False at and above","material_condition.water.offset":"Offset","material_condition.water.surface_depth_multiplier":"Surface depth multiplier","material_condition.water.add_stone_depth":"Add stone depth","material_condition.y_above.anchor":"Anchor","material_condition.y_above.surface_depth_multiplier":"Surface depth multiplier","material_condition.y_above.add_stone_depth":"Add stone depth","material_rule.condition.if_true":"If true","material_rule.condition.then_run":"Then run","material_rule.block.result_state":"Result state","material_rule.sequence.sequence":"Sequence","material_rule.sequence.sequence.entry":"Rule","mob_category.monster":"Monster","mob_category.creature":"Creature","mob_category.ambient":"Ambient","mob_category.axolotls":"Axolotls","mob_category.underground_water_creature":"Underground water creature","mob_category.water_creature":"Water creature","mob_category.water_ambient":"Water ambient","mob_category.misc":"Misc","model.parent":"Parent","model.ambientocclusion":"Ambient occlusion","model.gui_light":"GUI light","model.textures":"Textures","model.elements":"Elements","model.elements.entry":"Element","model_element.from":"From","model_element.to":"To","model_element.rotation":"Rotation","model_element.rotation.origin":"Origin","model_element.rotation.axis":"Axis","model_element.rotation.angle":"Angle","model_element.rotation.rescale":"Rescale","model_element.shade":"Shade","model_element.faces":"Faces","model_element.faces.texture":"Texture","model_element.faces.uv":"UV","model_element.faces.cullface":"Cullface","model_element.faces.rotation":"Rotation","model_element.faces.tintindex":"Tint index","model.display":"Display","model.overrides":"Overrides","model.overrides.entry":"Override","model_override.predicate":"Predicate","model_override.model":"Model","model_variant.object":"Single","model_variant.list":"Multiple","model_variant.model":"Model","model_variant.x":"X rotation","model_variant.y":"Y rotation","model_variant.uvlock":"UV lock","model_variant.weight":"Weight","multipart_condition.OR":"Or","multipart_condition.object":"Condition","multipart_condition.or":"Or","multipart_condition.OR.entry":"Condition","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_parameters.string":"Reference","noise_parameters.object":"Inline","noise_parameters.amplitudes":"Amplitudes","noise_parameters.amplitudes.entry":"Octave %0%","noise_parameters.firstOctave":"First octave","noise_settings.aquifers_enabled":"Aquifers enabled","noise_settings.bedrock_floor_position":"Bedrock floor position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock roof position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate enabled","noise_settings.default_block":"Default block","noise_settings.default_fluid":"Default fluid","noise_settings.disable_mob_generation":"Disable mob generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.legacy_random_source":"Legacy random source","noise_settings.min_surface_level":"Min surface level","noise_settings.name":"Name","noise_settings.noise":"Noise options","noise_settings.noise_caves_enabled":"Noise caves enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of \'Offset * Size vertical * 4\' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of \'Size * Size vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island noise override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.large_biomes":"Large biomes","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random density offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ factor","noise_settings.noise.sampling.xz_scale":"XZ scale","noise_settings.noise.sampling.y_factor":"Y factor","noise_settings.noise.sampling.y_scale":"Y scale","noise_settings.noise.simplex_surface_noise":"Simplex surface noise","noise_settings.noise.size_horizontal":"Size horizontal","noise_settings.noise.size_vertical":"Size vertical","noise_settings.noise.top_slide":"Top slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of \'Offset * Size Vertical * 4\' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of \'Size * Size Vertical * 4\' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.terrain_shaper":"Terrain shaper","noise_settings.noodle_caves_enabled":"Noodle caves enabled","noise_settings.ore_veins_enabled":"Ore veins enabled","noise_settings.sea_level":"Sea level","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","noise_settings.surface_rule":"Surface rule","noise_settings.noise_router":"Noise router","noise_settings.noise_router.barrier":"Barrier","noise_settings.noise_router.fluid_level_floodedness":"Fluid level floodedness","noise_settings.noise_router.fluid_level_spread":"Fluid level spread","noise_settings.noise_router.lava":"Lava","noise_settings.noise_router.temperature":"Temperature","noise_settings.noise_router.vegetation":"Vegetation","noise_settings.noise_router.continents":"Continents","noise_settings.noise_router.erosion":"Erosion","noise_settings.noise_router.depth":"Depth","noise_settings.noise_router.initial_density_without_jaggedness":"Initial density without jaggedness","noise_settings.noise_router.final_density":"Final density","noise_settings.noise_router.vein_toggle":"Vein toggle","noise_settings.noise_router.vein_ridged":"Vein ridged","noise_settings.noise_router.vein_gap":"Vein gap","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","placed_feature.string":"Reference","placed_feature.object":"Inline","placed_feature.feature":"Configured feature","placed_feature.placement":"Placement","placed_feature.placement.entry":"Modifier","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game mode","player.level":"XP level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","pos_rule_test.always_true":"Always true","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis aligned linear pos","pos_rule_test.linear_pos":"Linear pos","pos_rule_test.max_chance":"Max chance","pos_rule_test.max_dist":"Max dist","pos_rule_test.min_chance":"Min chance","pos_rule_test.min_dist":"Min dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input predicate","processor_rule.location_predicate":"Location predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output state","processor_rule.position_predicate":"Position predicate","processors.object":"Inline","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","recipe.type":"Type","recipe.group":"Group","recipe.group.help":"Identifier to group multiple recipes in the recipe book.","recipe.ingredients":"Ingredients","recipe.ingredient":"Ingredient","recipe.ingredient.item":"Item","recipe.ingredient.tag":"Item tag","recipe.pattern":"Pattern","recipe.pattern.entry":"Row","recipe.key":"Key","recipe.key.item":"Item","recipe.key.tag":"Item tag","recipe.result":"Result","recipe.result.item":"Item","recipe.result.count":"Count","recipe.experience":"Experience","recipe.cookingtime":"Cooking time","recipe.count":"Count","recipe.base":"Base","recipe.base.item":"Item","recipe.base.tag":"Item tag","recipe.addition":"Addition","recipe.addition.item":"Item","recipe.addition.tag":"Item tag","advancement.requirements":"Requirements","rule_test.always_true":"Always true","rule_test.block":"Block","rule_test.block_match":"Block match","rule_test.block_state":"State","rule_test.blockstate_match":"Block state match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random block match","rule_test.random_blockstate_match":"Random block state match","rule_test.tag":"Tag","rule_test.tag_match":"Tag match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed by team","statistic.type.killed_by":"Killed by","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked up","statistic.type.teamkill":"Killed team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster probability","structure_feature.config":"Config","structure_feature.is_beached":"Is beached","structure_feature.large_probability":"Large probability","structure_feature.portal_type":"Portal type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","structure_feature.biomes":"Biomes","structure_feature.adapt_noise":"Adapt noise","structure_feature.adapt_noise.help":"Whether it should add extra terrain below the structure.","structure_feature.spawn_overrides":"Spawn overrides","structure_placement.type":"Type","structure_placement.concentric_rings.distance":"Distance","structure_placement.concentric_rings.spread":"Spread","structure_placement.concentric_rings.count":"Count","structure_placement.random_spread.spread_type":"Spread type","structure_placement.random_spread.spread_type.linear":"Linear","structure_placement.random_spread.spread_type.triangular":"Triangular","structure_placement.random_spread.spacing":"Spacing","structure_placement.random_spread.spacing.help":"The average distance in chunks between two structures of this type.","structure_placement.random_spread.separation":"Separation","structure_placement.random_spread.separation.help":"The minumum distance in chunks between two structures of this type.","structure_placement.random_spread.salt":"Salt","structure_placement.random_spread.locate_offset":"Locate offset","structure_set.structures":"Structures","structure_set.structures.entry":"Structure","structure_set.structures.entry.structure":"Structure feature","structure_set.structures.entry.weight":"Weight","structure_set.placement":"Placement","surface_builder.config":"Config","surface_builder.top_material":"Top material","surface_builder.type":"Type","surface_builder.under_material":"Under material","surface_builder.underwater_material":"Underwater material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.string":"Single","tag.list":"Multiple","tag.list.string":"Reference","tag.list.object":"Inline","tag.replace":"Replace","tag.values":"Values","terrain_shaper.offset":"Offset","terrain_shaper.factor":"Factor","terrain_shaper.jaggedness":"Jaggedness","terrain_spline.number":"Constant","terrain_spline.object":"Spline","terrain_spline.coordinate":"Coordinate","terrain_spline.coordinate.continents":"Continents","terrain_spline.coordinate.erosion":"Erosion","terrain_spline.coordinate.weirdness":"Weirdness","terrain_spline.coordinate.ridges":"Ridges","terrain_spline.points":"Points","terrain_spline.points.entry":"Point","terrain_spline.points.entry.location":"Location","terrain_spline.points.entry.value":"Value","terrain_spline.points.entry.derivative":"Derivative","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Placed feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain text","text_component.object.translation":"Translated text","text_component.object.score":"Score value","text_component.object.selector":"Entity name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy to clipboard","text_component_object.clickEvent.action.open_file":"Open file","text_component_object.clickEvent.action.open_url":"Open url","text_component_object.clickEvent.action.run_command":"Run command","text_component_object.clickEvent.action.suggest_command":"Suggest command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show entity","text_component_object.hoverEvent.action.show_item":"Show item","text_component_object.hoverEvent.action.show_text":"Show text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","texture.alias":"Alias","texture.reference":"Reference","tree_decorator.alter_ground.provider":"State provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base height","trunk_placer.height_rand_a":"Height random A","trunk_placer.height_rand_b":"Height random B","trunk_placer.bending_trunk_placer.bend_length":"Bend length","trunk_placer.bending_trunk_placer.min_height_for_leaves":"Min height for leaves","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above bottom","vertical_anchor.below_top":"Below top","world.bonus_chest":"Spawn bonus chest","world.generate_features":"Generate features","world.seed":"Seed","world_settings.bonus_chest":"Spawn bonus chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate features","world_settings.seed":"World seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The end","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.dual_noise_provider":"Dual noise provider","worldgen/block_state_provider_type.forest_flower_provider":"Flower forest","worldgen/block_state_provider_type.noise_threshold_provider":"Noise threshold provider","worldgen/block_state_provider_type.noise_provider":"Noise provider","worldgen/block_state_provider_type.plain_flower_provider":"Plain flower","worldgen/block_state_provider_type.randomized_int_state_provider":"Randomized int","worldgen/block_state_provider_type.rotated_block_provider":"Rotated block","worldgen/block_state_provider_type.simple_state_provider":"Simple state","worldgen/block_state_provider_type.weighted_state_provider":"Weighted state","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether cave","worldgen/carver.underwater_canyon":"Underwater canyon","worldgen/carver.underwater_cave":"Underwater cave","worldgen/chunk_generator.debug":"Debug world","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/decorator.carving_mask":"Carving mask","worldgen/decorator.cave_surface":"Cave surface","worldgen/decorator.chance":"Chance","worldgen/decorator.count":"Count","worldgen/decorator.count_extra":"Count extra","worldgen/decorator.count_multilayer":"Count multilayer","worldgen/decorator.count_noise":"Count noise","worldgen/decorator.count_noise_biased":"Count noise biased","worldgen/decorator.dark_oak_tree":"Dark oak tree","worldgen/decorator.decorated":"Decorated","worldgen/decorator.end_gateway":"End gateway","worldgen/decorator.heightmap":"Heightmap","worldgen/decorator.heightmap_spread_double":"Heightmap spread double","worldgen/decorator.iceberg":"Iceberg","worldgen/decorator.lava_lake":"Lava lake","worldgen/decorator.nope":"Nothing","worldgen/decorator.range":"Range","worldgen/decorator.spread_32_above":"Spread 32 above","worldgen/decorator.square":"Square","worldgen/decorator.water_depth_threshold":"Water depth threshold","worldgen/density_function_type.abs":"Abs","worldgen/density_function_type.add":"Add","worldgen/density_function_type.beardifier":"Beardifier","worldgen/density_function_type.blend_alpha":"Blend alpha","worldgen/density_function_type.blend_density":"Blend density","worldgen/density_function_type.blend_offset":"Blend offset","worldgen/density_function_type.cache_2d":"Cache 2D","worldgen/density_function_type.cache_all_in_cell":"Cache all in cell","worldgen/density_function_type.cache_once":"Cache once","worldgen/density_function_type.clamp":"Clamp","worldgen/density_function_type.constant":"Constant","worldgen/density_function_type.cube":"Cube","worldgen/density_function_type.end_islands":"End islands","worldgen/density_function_type.flat_cache":"Flat cache","worldgen/density_function_type.half_negative":"Half negative","worldgen/density_function_type.interpolated":"Interpolated","worldgen/density_function_type.max":"Max","worldgen/density_function_type.min":"Min","worldgen/density_function_type.mul":"Mul","worldgen/density_function_type.noise":"Noise","worldgen/density_function_type.old_blended_noise":"Old blended noise","worldgen/density_function_type.quarter_negative":"Quarter negative","worldgen/density_function_type.range_choice":"Range Choice","worldgen/density_function_type.shift":"Shift","worldgen/density_function_type.shift_a":"Shift A","worldgen/density_function_type.shift_b":"Shift B","worldgen/density_function_type.shifted_noise":"Shifted noise","worldgen/density_function_type.slide":"Slide","worldgen/density_function_type.square":"Square","worldgen/density_function_type.squeeze":"Squeeze","worldgen/density_function_type.terrain_shaper_spline":"Terrain shaper spline","worldgen/density_function_type.weird_scaled_sampler":"Weird scaled sampler","worldgen/density_function_type.y_clamped_gradient":"Y clamped gradient","worldgen/feature.bamboo":"Bamboo","worldgen/feature.basalt_columns":"Basalt columns","worldgen/feature.basalt_pillar":"Basalt pillar","worldgen/feature.block_column":"Block column","worldgen/feature.block_pile":"Block pile","worldgen/feature.blue_ice":"Blue ice","worldgen/feature.bonus_chest":"Bonus chest","worldgen/feature.chorus_plant":"Chorus plant","worldgen/feature.coral_claw":"Coral claw","worldgen/feature.coral_mushroom":"Coral mushroom","worldgen/feature.coral_tree":"Coral tree","worldgen/feature.decorated":"Decorated","worldgen/feature.delta_feature":"Delta feature","worldgen/feature.desert_well":"Desert well","worldgen/feature.disk":"Disk","worldgen/feature.dripstone_cluster":"Dripstone cluster","worldgen/feature.end_gateway":"End gateway","worldgen/feature.end_island":"End island","worldgen/feature.end_spike":"End spike","worldgen/feature.fill_layer":"Fill layer","worldgen/feature.flower":"Flower","worldgen/feature.forest_rock":"Forest rock","worldgen/feature.fossil":"Fossil","worldgen/feature.freeze_top_layer":"Freeze top layer","worldgen/feature.geode":"Geode","worldgen/feature.glow_lichen":"Glow lichen","worldgen/feature.glowstone_blob":"Glowstone blob","worldgen/feature.growing_plant":"Growing plant","worldgen/feature.huge_brown_mushroom":"Huge brown mushroom","worldgen/feature.huge_fungus":"Huge fungus","worldgen/feature.huge_red_mushroom":"Huge red mushroom","worldgen/feature.ice_patch":"Ice patch","worldgen/feature.ice_spike":"Ice spike","worldgen/feature.iceberg":"Iceberg","worldgen/feature.kelp":"Kelp","worldgen/feature.lake":"Lake","worldgen/feature.large_dripstone":"Large dripstone","worldgen/feature.monster_room":"Monster room","worldgen/feature.nether_forest_vegetation":"Nether forest vegetation","worldgen/feature.netherrack_replace_blobs":"Netherrack replace blobs","worldgen/feature.no_bonemeal_flower":"No bonemeal flower","worldgen/feature.no_op":"Nothing","worldgen/feature.ore":"Ore","worldgen/feature.pointed_dripstone":"Pointed dripstone","worldgen/feature.random_boolean_selector":"Random boolean selector","worldgen/feature.random_patch":"Random patch","worldgen/feature.random_selector":"Random selector","worldgen/feature.replace_single_block":"Replace single block","worldgen/feature.root_system":"Root system","worldgen/feature.scattered_ore":"Scattered ore","worldgen/feature.sea_pickle":"Sea pickle","worldgen/feature.seagrass":"Seagrass","worldgen/feature.simple_block":"Simple block","worldgen/feature.simple_random_selector":"Simple random selector","worldgen/feature.small_dripstone":"Small dripstone","worldgen/feature.spring_feature":"Spring feature","worldgen/feature.tree":"Tree","worldgen/feature.twisting_vines":"Twisting vines","worldgen/feature.underwater_magma":"Underwater magma","worldgen/feature.vegetation_patch":"Vegetation patch","worldgen/feature.vines":"Vines","worldgen/feature.void_start_platform":"Void start platform","worldgen/feature.waterlogged_vegetation_patch":"Waterlogged vegetation patch","worldgen/feature.weeping_vines":"Weeping vines","worldgen/feature_size_type.three_layers_feature_size":"Three layers","worldgen/feature_size_type.two_layers_feature_size":"Two layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega pine","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/material_condition.above_preliminary_surface":"Above preliminary surface","worldgen/material_condition.biome":"Biome","worldgen/material_condition.hole":"Hole","worldgen/material_condition.noise_threshold":"Noise threshold","worldgen/material_condition.not":"Not","worldgen/material_condition.steep":"Steep","worldgen/material_condition.stone_depth":"Stone depth","worldgen/material_condition.temperature":"Temperature","worldgen/material_condition.vertical_gradient":"Vertical gradient","worldgen/material_condition.water":"Water","worldgen/material_condition.y_above":"Y above","worldgen/material_rule.bandlands":"Bandlands","worldgen/material_rule.block":"Block","worldgen/material_rule.condition":"Condition","worldgen/material_rule.sequence":"Sequence","worldgen/placement_modifier_type.biome":"Biome","worldgen/placement_modifier_type.block_predicate_filter":"Block predicate filter","worldgen/placement_modifier_type.carving_mask":"Carving mask","worldgen/placement_modifier_type.count":"Count","worldgen/placement_modifier_type.count_on_every_layer":"Count on every layer","worldgen/placement_modifier_type.environment_scan":"Environment scan","worldgen/placement_modifier_type.height_range":"Height range","worldgen/placement_modifier_type.heightmap":"Heightmap","worldgen/placement_modifier_type.in_square":"In square","worldgen/placement_modifier_type.noise_based_count":"Noise based count","worldgen/placement_modifier_type.noise_threshold_count":"Noise threshold count","worldgen/placement_modifier_type.random_offset":"Random offset","worldgen/placement_modifier_type.rarity_filter":"Rarity filter","worldgen/placement_modifier_type.surface_relative_threshold_filter":"Surface relative threshold filter","worldgen/placement_modifier_type.surface_water_depth_filter":"Surface water depth filter","worldgen/structure_placement.concentric_rings":"Concentric rings","worldgen/structure_placement.random_spread":"Random spread","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone replace","worldgen/structure_processor.block_age":"Block age","worldgen/structure_processor.block_ignore":"Block ignore","worldgen/structure_processor.block_rot":"Block rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw replacement","worldgen/structure_processor.lava_submerged_block":"Lava submerged block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter ground","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave vine","worldgen/tree_decorator_type.trunk_vine":"Trunk vine","worldgen/trunk_placer_type.bending_trunk_placer":"Bending","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight"}');export default e; +//# sourceMappingURL=en.e896b0a6.js.map diff --git a/assets/en.e896b0a6.js.map b/assets/en.e896b0a6.js.map new file mode 100644 index 00000000..411557d2 --- /dev/null +++ b/assets/en.e896b0a6.js.map @@ -0,0 +1 @@ +{"version":3,"file":"en.e896b0a6.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/assets/index.92940780.js b/assets/index.92940780.js new file mode 100644 index 00000000..02215b34 --- /dev/null +++ b/assets/index.92940780.js @@ -0,0 +1,2 @@ +var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,r as u,l as h,g as m,b as p,s as f,c as g,d as v,e as w,j as _,f as y,h as b,i as x,k,q as C,A,F as M,m as j,n as I,o as z,p as E,t as O,u as L,v as S,Z as $,w as P,x as D,z as V,B as N,C as B,J as T,D as F,E as R,R as H,G as J,H as W,I as U,K as G,L as Y,M as q,N as Z,O as K,P as X,Q}from"./vendor.a42db564.js";var ee;function te({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function ne({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&Ee[e],t&&d("span",null,t))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(ee||(ee={}));var oe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","ref":"1.18.1"},{"id":"1.18.2","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/density_function","url":"worldgen/density-function","category":"worldgen","schema":"density_function","minVersion":"1.18.2"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_set","url":"worldgen/structure-set","category":"worldgen","schema":"structure_set","minVersion":"1.18.2"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function re(e){return"object"==typeof e&&null!==e}const ae=e=>("0"+e.toString(16)).substr(-2);function ie(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,ae).join("")}function se(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function le(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new h.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new h.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function ce(e){let t=0;for(let n=0;n=0&&(e=e.slice(0,t)),de(e)}function he(e){const t=ue(e).replace(/^\//,"").replace(/\/$/,"");return oe.generators.find((e=>e.url===t))}function me(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function pe(e,t){const n=m(),o=me(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));p(`${t?de(t):ue(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function fe(e){const t=Math.abs(ce(e));return[t%256,(t>>8)%256,(t>>16)%256]}function ge(e){return e*e}function ve(e,t,n){return Math.max(e,Math.min(t,n))}function we(e,t,n){return n<0?e:n>1?t:_e(n,e,t)}function _e(e,t,n){return t+e*(n-t)}function ye(e){return e instanceof Error?e.message:`${e}`}const be=u();function xe(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;o{}:e=>{const t=e.target.value;null==l||l(t)},h=f(null);c((()=>{r&&h.current&&h.current.select()}),[r]);const m=s&&ie();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Ee[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:i,list:m}),s&&d("datalist",{id:m},s.map((e=>d("option",{value:e})))))}function Ae({cooldown:e,invert:t,initial:n}={}){const[o,r]=g(n),a=f(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function Me({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=f(null),s=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{s.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===s.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-s.current[0],r=e.offsetY-s.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],u.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{u.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),s.current=[e.offsetX,e.offsetY]},a=()=>{s.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const h=f(),m=f(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;await t(r),a===m.current&&n.putImageData(r,0,0)},{canvas:i,redraw:h.current}}function je(){const[e,t]=g(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function Ie(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function ze(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:i}=e,[c,u]=je();return d("div",s({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(ne,l(s({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},i))}const Ee={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),square:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})),square_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function Oe({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Ee.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}function Le(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const Se=Le("TextInput","text",(e=>e)),$e=Le("NumberInput","number",(e=>Number(e))),Pe=Le("RangeInput","range",(e=>Number(e)));function De({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=g(""),i=v((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(w,null,d(Ce,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},i.map((e=>d(ne,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===i.length&&d(ne,{label:null!=o?o:"No results"})))}const Ve="https://raw.githubusercontent.com/misode/technical-changes/main";let Ne=null;async function Be(){if(!Ne){const e=await(await fetch(`${Ve}/index.json`)).json();Ne=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Ve}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${Ve}/${e.id}/${t.id}.md`)).text()).map((r=>s({version:t,group:e,order:1e3*n+o},r)))}(e,Te(n),t,o))))).flat()}(Te(e),t))))).flat().map((e=>l(s({},e),{tags:[e.group.id,...e.tags]})))}return Ne}function Te(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:re(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const Fe="https://raw.githubusercontent.com/misode/mcmeta";function Re(e,t){return`${Fe}/${e.dynamic?t:`${e.ref}-${t}`}`}async function He(e,t,n){const o=oe.versions.find((t=>t.id===e));o?(o.dynamic&&(""!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${ye(t)}`)}}((e=>e.startsWith(`${Fe}/summary`))),localStorage.setItem("cached_latest_version","")),o.ref=""),await Promise.all([Je(o,t),We(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(oe.versions)}`)}async function Je(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await Ge(`${Re(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",ye(n))}}async function We(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await Ge(`${Re(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",ye(n))}}async function Ue(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=oe.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${Re(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${ye(r)}`)}}async function Ge(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${ye(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const Ye=["1.15","1.16","1.17","1.18","1.18.2"],qe={},Ze={},Ke={1.15:_,1.16:y,1.17:b,1.18:x,"1.18.2":k};let Xe,Qe,et,tt;async function nt(e){return qe[e]||(qe[e]=(async()=>{try{const t=Ke[e].getCollections(),n={};await He(e,t,n);const o=Ke[e].getSchemas(t);return qe[e]={collections:t,schemas:o,blockStates:n},qe[e]}catch(t){throw new Error(`Cannot get version "${e}": ${ye(t)}`)}})()),qe[e]}function ot(e,t,n){const o=oe.versions.findIndex((t=>t.id===e)),r=t?oe.versions.findIndex((e=>e.id===t)):0,a=n?oe.versions.findIndex((e=>e.id===n)):oe.versions.length-1;return r<=o&&o<=a}const rt={},at=function(e,t){if(!t)return e();if(void 0===tt){const e=document.createElement("link").relList;tt=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in rt)return;rt[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":tt,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var it,st,lt=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/density_function":"Density Function","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/structure_set":"Structure Set","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),ct=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:lt});(st=it||(it={})).ID_LANGUAGE="language",st.ID_THEME="theme",st.ID_VERSION="schema_version",st.ID_INDENT="indentation",st.ID_FORMAT="output_format",st.ID_SOUNDS_VERSION="minecraft_sounds_version",st.ID_PROJECTS="misode_projects",st.getLanguage=function(){var e;return null!=(e=localStorage.getItem(st.ID_LANGUAGE))?e:"en"},st.getTheme=function(){var e;return null!=(e=localStorage.getItem(st.ID_THEME))?e:"dark"},st.getVersion=function(){const e=localStorage.getItem(st.ID_VERSION);return e&&Ye.includes(e)?e:"latest"===e?"1.18.2":"1.18"},st.getIndent=function(){var e;return null!=(e=localStorage.getItem(st.ID_INDENT))?e:"2_spaces"},st.getFormat=function(){var e;return null!=(e=localStorage.getItem(st.ID_FORMAT))?e:"json"},st.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(st.ID_SOUNDS_VERSION))?e:"latest"},st.getProjects=function(){const e=localStorage.getItem(st.ID_PROJECTS);return e?JSON.parse(e):[gt]},st.setLanguage=function(e){e&&localStorage.setItem(st.ID_LANGUAGE,e)},st.setTheme=function(e){e&&localStorage.setItem(st.ID_THEME,e)},st.setVersion=function(e){e&&localStorage.setItem(st.ID_VERSION,e)},st.setIndent=function(e){e&&localStorage.setItem(st.ID_INDENT,e)},st.setFormat=function(e){e&&localStorage.setItem(st.ID_FORMAT,e)},st.setSoundsVersion=function(e){e&&localStorage.setItem(st.ID_SOUNDS_VERSION,e)},st.setProjects=function(e){e&&localStorage.setItem(st.ID_PROJECTS,JSON.stringify(e))};const dt=C({lang:"none",locale:e=>e,changeLanguage:()=>{}}),ut={fallback:lt};function ht(e,t,...n){var o,r,a,i,s;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(s=null!=(i=null!=(a=null==(o=ut[e])?void 0:o[t])?a:null==(r=ut.en)?void 0:r[t])?i:ut.fallback[t])?s:t,n)}async function mt(e){if(ut[e])return;const t=oe.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return at((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return at((()=>Promise.resolve().then((function(){return ct}))),void 0);case"../../locales/es.json":return at((()=>import("./es.d3abba45.js")),void 0);case"../../locales/fr.json":return at((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return at((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return at((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return at((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return at((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return at((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return at((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return at((()=>import("./zh-cn.a421074a.js")),void 0);case"../../locales/zh-tw.json":return at((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return at((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return at((()=>import("./de.6c6a67f3.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return at((()=>import("./en.e896b0a6.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return at((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return at((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return at((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return at((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return at((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return at((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return at((()=>import("./ru.9fcdec57.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return at((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return at((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return at((()=>import("./zh-tw.292626d0.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);ut[e]=s(s({},n.default),o.default)}function pt(){return M(dt)}function ft({children:e}){const[t,n]=g("none"),o=A(((e,...n)=>ht(t,e,...n)),[t]),r=A((async e=>{await mt(e),ee.setLanguage(e),it.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=it.getLanguage();await Promise.all([mt("en"),..."en"!==e?[mt(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(dt.Provider,{value:a},e)}const gt={name:"Drafts",namespace:"draft",files:[]},vt=C({project:gt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function wt(){return M(vt)}function _t({children:e}){const[t,n]=g(it.getProjects()),[o,r]=g(gt.name),a=v((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:gt}),[t,o]),[i,c]=g(void 0),u=v((()=>{if(i)return a.files.find((e=>e.type===i[0]&&e.id===i[1]))}),[a,i]),h=A((e=>{it.setProjects(e),n(e)}),[]),m=A((e=>{h(t.map((t=>t.name===o?s(s({},t),e):t)))}),[t,o]),f=A(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,i=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&i)return!1;m({files:a.files.map((o=>o.type===e&&o.id===t?l(s(s({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(i)return!1;m({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else m({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[m,a,u]),w=A(((e,t)=>{const n=oe.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),p(de(n.url))}),[]),_=A((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:m,updateFile:f,openFile:w,closeFile:_};return d(vt.Provider,{value:y},e)}function yt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=oe.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const bt=C({theme:"dark",changeTheme:()=>{}});function xt({children:e}){const[t,n]=g(it.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const o=A((e=>{ee.setTheme(e),it.setTheme(e),n(e)}),[]),r={theme:t,changeTheme:o};return d(bt.Provider,{value:r},e)}const kt=C({title:"",changeTitle:()=>{}});function Ct(e,t){const n=M(kt);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function At({children:e}){const{locale:t}=pt(),[n,o]=g(t("title.home")),r={title:n,changeTitle:A(((e,t)=>{null!=t||(t=oe.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(kt.Provider,{value:r},e)}const Mt=C({version:"1.18",changeVersion:()=>{}});function jt(){return M(Mt)}function It({children:e}){const[t,n]=g(it.getVersion()),o=me(m()).get("version");c((()=>{Ye.includes(o)&&t!==o&&n(o)}),[t,o]);const r=A((e=>{me(m()).has("version")&&pe({version:e}),ee.setVersion(e),it.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(Mt.Provider,{value:a},e)}let zt=!1;const Et={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Ot,Lt;async function St(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return xe(n,Ot)||(Ot=be(n),Lt=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new $(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?Vt:Dt;break;case"overworld":e="1.18"===t.version?await async function(){return(await Ue("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){zt||(await P(D),zt=!0,console.debug(`Loaded deepslate-rs from "${D}"`))}();const n=new ke,o=e=>"number"==typeof e?[e,e]:e,[r,a,i,l,c,d,u,h,m,p,f,g,v,w]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(_)[0]),d.push(o(_)[1]),u.push(o(y)[0]),h.push(o(y)[1]),m.push(o(b)[0]),p.push(o(b)[1]),f.push(o(x)[0]),g.push(o(x)[1]),v.push(k),w.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const _=j(new Float64Array(r),new Float64Array(a),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(m),new Float64Array(p),new Float64Array(f),new Float64Array(g),new Float64Array(v),new Int32Array(w)),y=I(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=z(_,y,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(r=n.getA(a[0]))?r:"unknown"},getBiomes:(e,t,o,r,a,i,s,l,c)=>[...z(_,y,e,t,o,r,a,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,t,n){const o=E(y,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,i,s,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:i,erosion:s,weirdness:l}},getClimates(e,n,o,r,a,i,l,c,d,u){const h=E(y,n,o,r,a,i,l,c,d,u),m=[];for(let p=0;p{var r;const a=e[`${n}_noise`];return a.firstOctave=ve(null!=(r=a.firstOctave)?r:-7,-100,-1),new L(new S(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=ge(l.altitude-a[0])+ge(l.temperature-a[1])+ge(l.humidity-a[2])+ge(l.weirdness-a[3])+ge(l.offset);eo.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(Ft(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return ve(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(ve(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let i=0;i=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=s{Ut(t,null==e?void 0:e.decorator,n).forEach((t=>Wt(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Wt(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void Wt(t,a.feature,n);Wt(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;Wt(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},Yt={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat(){var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200){var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,Nt[ve(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>Ut(t,null==e?void 0:e.outer,n).flatMap((t=>Ut(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Rt(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(i=null==e?void 0:e.baseline)?i:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>Rt(t,Math.max(n.seaLevel,Nt[ve(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Nt[ve(0,63,t[0])]);return Rt(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Rt(t,Math.max(n.seaLevel,Nt[ve(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o[t],range:(e,t,n)=>{var o,r,a;return Rt(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return Rt(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,i;return Rt(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Rt(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Rt(t,Nt[ve(0,63,t[0])]),magma:(e,t,n)=>Rt(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=Nt[ve(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]i?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function qt(e,t,n){var o;let r=[e];for(const a of t){Zt[Ft(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>Zt[Ft(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const Zt={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Rt(t,function(e,t){var n,o,r,a;if(!re(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return Ht(e);switch(Ft(e.type)){case"constant":return Ht(e.value);case"uniform":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=Ht(e.min_inclusive),a=Ht(e.max_inclusive),i=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(i+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive),a=null!=(r=e.inner)?r:1,i=n+a+t.nextInt(o-n-a+1),s=n+t.nextInt(i-n);return n+t.nextInt(s-n+a)}case"trapezoid":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const i=(o-n-r)/2,s=o-n-i;return n+t.nextInt(s+1)+t.nextInt(i+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>Rt(e,Math.max(t.seaLevel,Nt[ve(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),i=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),s=Math.max(0,Math.ceil((i+(null!=n?n:0))*e));return new Array(s).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class Kt{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new S(e);this.minLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new V(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(i=n,s=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],_e(s,_e(i,l,c),_e(i,d,u)))}var i,s,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,i=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*l/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=we(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=we(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=V.wrap(e*o*d),m=V.wrap(t*r*d),p=V.wrap(n*o*d),f=r*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(s+=g.sample(h,m,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(l+=v.sample(h,m,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*a*d),V.wrap(t*i*d),V.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return we(s/512,l/512,(c/10+1)/2)}}const Xt={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let Qt,en,tn=[];function nn(e,t,n){var o,r,a,i;if(ot(n.version,"1.18")){const{settings:a,generator:i}=function(e,t){const n=T.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!xe(o,Qt)){Qt=be(o),tn=[];const e=new $("unknown");en=new F(t.seed,e,n)}return{settings:n,generator:en}}(e,n),s=new rn(-n.offset,n.width,a.noise.minY,a.noise.height);s.generate(i,null!=(o=n.biome)?o:"minecraft:plains");const l=t.data;for(let e=0;e0?0:e[t+1]>0?150:255}class rn{constructor(e,t,n,o){this.minX=e,this.done=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=tn.find((e=>e.pos[0]===a));return i?(this.done[r]=!0,i):new R(n,o,N.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n),e.buildSurface(n,t),this.done[o]=!0,tn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const an=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],sn=O.overworld(),ln=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=pt(),[i,l]=g(2),[u,m]=g(void 0),[p,v]=g(new Set(["biomes"])),_=f([0,0]),y=f(1),b=f(void 0),x=BigInt(e.get(new h.Path(["generator","seed"]))),k=function(e){if("string"!=typeof e){e=T.fromJson(h.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}(e.get(new h.Path(["generator","settings"]))),C=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return sn;default:return O.fromJson({offset:0,factor:0,jaggedness:0})}return O.fromJson(h.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new h.Path(["generator","settings"]))),A=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,k,C):"",M=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:j,redraw:I}=Me({size:()=>[200/y.current,200/y.current],async draw(e){const n={octaves:k,shaper:C,biomeColors:{},layers:p,offset:_.current,scale:i,seed:x,res:y.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:i}=await St(e,n),s=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],m=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...h,64,65,1,...m):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),g=0===f.length||null==(r=i.getClimates)?void 0:r.call(i,new Set(f),...h,64,65,1,...m);for(let v=0;v<200;v+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+v*u,o=v/n.res*200/n.res+e/n.res,r=(v+l)*n.scale,h=(e+c)*n.scale;let m=[50,50,50];if(n.layers.has("biomes"))m=$t(null!=(a=null==p?void 0:p[o])?a:i.getBiome(r,64,h),n.biomeColors);else if(g&&f[0]){const e=g[o][f[0]],[t,n]=Et[f[0]],r=(e-t)/(n-t)*256;m=[r,r,r]}s[t]=m[0],s[t+1]=m[1],s[t+2]=m[2],s[t+3]=255}}(t,e,n),4===y.current&&(clearTimeout(b.current),b.current=setTimeout((()=>{y.current=1,I()}),150))},async onDrag(e,t){_.current[0]=_.current[0]+200*e,_.current[1]=_.current[1]+200*t,clearTimeout(b.current),y.current="multi_noise"===M?4:1,I()},async onHover(e,n){const r={octaves:k,shaper:C,biomeColors:{},layers:p,offset:_.current,scale:i,seed:x,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await St(e,o),[i,l]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return s({biome:a.getBiome(i,64,l)},null==(r=a.getClimate)?void 0:r.call(a,i,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);m(a)},onLeave(){m(void 0)}},[A,i,x,p]);c((()=>{n&&(y.current="multi_noise"===M?4:1,I())}),[A,i,x,p,n]);const z=e=>{_.current[0]=_.current[0]*i/e,_.current[1]=_.current[1]*i/e,l(e)};return d(w,null,d("div",{class:"controls preview-controls"},u&&d(ne,{label:u.biome,class:"no-pointer"}),"multi_noise"===M&&d(ze,{icon:"stack",tooltip:a("configure_layers")},an.map((e=>{const t=p.has(e);return d(ne,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{v(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===M||"checkerboard"===M)&&d(w,null,d(ne,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>z(1.5*i)}),d(ne,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>z(i/1.5)})),"multi_noise"===M&&d(ne,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>le(e)})),(null==u?void 0:u.temperature)&&d("div",{class:"controls secondary-controls"},d(ne,{class:"no-pointer",label:Object.entries(u).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:j,width:"200",height:"200"}))};const cn=({data:e,version:t,shown:n})=>{const{locale:o}=pt(),[r,a]=g(4),[i,s]=g(se()),{canvas:l,redraw:u}=Me({size:()=>[16*r,16*r],async draw(n){Tt(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,i,n]),d(w,null,d("div",{class:"controls preview-controls"},d(ne,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(ne,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(ne,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>s(se())})),d("canvas",{ref:l,width:"64",height:"64"}))},dn=({data:e,shown:t,version:n})=>{const{locale:o}=pt(),[r,a]=g(se()),[i,s]=g(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:m,redraw:p}=Me({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:i,seed:r,version:n};!function(e,t,n){const o=new S(n.seed),r=H.fromJson(h.DataModel.unwrapLists(e)),a=new L(o,r),i=-n.offset[0]-100,s=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+i)*n.scale,r=(e+s)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,p()}},[u,i,r]);c((()=>{t&&p()}),[u,i,r,t]);const v=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(w,null,d("div",{class:"controls preview-controls"},d(ne,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>v(1.5*i)}),d(ne,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>v(i/1.5)}),d(ne,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(se())})),d("canvas",{ref:m,width:"256",height:"256"}))},un=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=pt(),[i,s]=g(se()),[l,u]=g("minecraft:plains"),[h,m]=g(.2),[p,_]=g(.1),[y,b]=g(!1),[x,k]=g(void 0),C=f(0),A=f(void 0),M=JSON.stringify([e,h,p]),j=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:I,redraw:z}=Me({size:()=>[j,j],async draw(t){const o={biome:l,biomeDepth:p,biomeScale:h,offset:C.current,width:t.width,seed:i,version:n};nn(e,t,o)},async onDrag(e){C.current+=e*j,z()},async onHover(t,n){var o,r;const a=Math.floor(t*j-C.current),i=j-Math.max(1,Math.ceil(n*j))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),s=function(e,t){const n=tn.find((t=>N.minBlockX(t.pos)<=e&&N.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(B.create(e,t,0))}(a,i);k(s?`Y=${i} (${s.getName().replace(/^minecraft:/,"")})`:`Y=${i}`)},onLeave(){k(void 0)}},[M,i]);c((()=>{A.current&&clearInterval(A.current),t&&(z(),y&&(A.current=setInterval((()=>{C.current-=8,z()}),100)))}),[M,i,t,l,h,p,y]);const E=v((()=>{var e;return null!=(e=null==et?void 0:et.get("worldgen/biome"))?e:[]}),[n]);return d(w,null,d("div",{class:"controls preview-controls"},x&&d(ne,{label:x,class:"no-pointer"}),d(ze,{icon:"gear",tooltip:a("terrain_settings")},ot(n,void 0,"1.17")?d(w,null,d(Ce,{label:a("preview.scale"),value:`${h}`,onChange:e=>m(Number(e))}),d(Ce,{label:a("preview.depth"),value:`${p}`,onChange:e=>_(Number(e))})):d(Ce,{label:a("preview.biome"),value:l,onChange:u,dataList:E,larger:!0}),d(ne,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(ne,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>s(se())})),d("canvas",{ref:I,width:j,height:j}))},hn=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function mn({model:e,version:t,id:n,shown:o}){var r;const[,a]=g(0);if(Ie(e,(()=>{a((e=>e+1))})),!e)return d(w,null);if("dimension"===n&&(null==(r=e.get(new h.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new h.Path(["generator","biome_source"]));if(n)return d(ln,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(dn,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(un,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&ot(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(cn,s({},{model:e,version:t,shown:o,data:n}))}return d(w,null)}function pn(e,t){return e.schema.hook(fn,new h.ModelPath(e),e.data,{blockStates:t})}const fn={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const s="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;s&&!Object.keys(null!=(a=s.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const i=a[e].hook(this,t.push(e),n[e],o);null!=i&&(r[e]=i)}));for(const i of Object.getOwnPropertySymbols(n))r[i]=n[i];return r}},gn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},vn={json:{parse:W.parse,stringify:(e,t)=>W.stringify(e,null,t)+"\n"},yaml:{parse:U.load,stringify:(e,t)=>U.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function wn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:i,onError:s}){const{locale:l}=pt(),[u,m]=g(it.getIndent()),[p,v]=g(it.getFormat()),_=f(null),y=f(),b=f(),x=f(),k=A(((e,t)=>{const n=pn(e,t);return vn[p].stringify(n,gn[u])}),[u,p]);c((()=>{y.current=()=>{if(t&&n)try{const e=k(t,n);x.current.getSession().setValue(e)}catch(e){s(`Error getting JSON output: ${ye(e)}`),console.error(e),x.current.setValue("")}},b.current=()=>{const e=x.current.getValue();if(0!==e.length)try{const n=vn[p].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){s(`Error importing: ${ye(n)}`),console.error(n)}}}),[t,n,u,p]),c((()=>{x.current=J.edit("editor"),x.current.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),x.current.$blockScrolling=1/0,x.current.on("blur",(e=>b.current(e))),x.current.getSession().setMode("ace/mode/json")}),[]),Ie(t,(()=>{y.current()})),c((()=>{t&&y.current()}),[t]),c((()=>{x.current.setOption("useSoftTabs","tabs"!==u),x.current.setOption("tabSize","tabs"===u?4:gn[u]),x.current.getSession().setMode(`ace/mode/${p}`),y.current()}),[u,p]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(k(t,n)).then((()=>{i()}))}),[o]),c((()=>{if(r&&t&&n&&_.current){const o=encodeURIComponent(k(t,n));_.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),_.current.setAttribute("download",`${e}.${p}`),_.current.click()}}),[r]),c((()=>{a&&x.current&&(x.current.setValue(""),x.current.selectAll())}),[a]);return d(w,null,d("div",{class:"controls source-controls"},d(ze,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(gn).map((([e])=>d(ne,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,it.setIndent(t),void m(t);var t}}))),d("hr",null),Object.keys(vn).map((e=>d(ne,{label:l(`format.${e}`),active:p===e,onClick:()=>{return t=e,it.setFormat(t),void v(t);var t}}))))),d("pre",{id:"editor",class:"source"}),d("a",{ref:_,style:"display: none;"}))}class _n extends h.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const yn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","structure_placement.type","density_function.type"],bn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],xn=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],kn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type"],Cn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],An=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],Mn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],jn=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function In({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[i,s,l]=e.schema.hook(zn,a,be(e.data),t,n,o,{});return(null==(r=null==s?void 0:s.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},i,s),d("div",{class:"node-body"},l)):l}const zn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,i)=>[null,d(Ln,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,s,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new h.ModelPath(o.getModel(),new h.Path(o.getArray(),[t.context])):o,[m,p,f]=c.node.hook(this,u,r,a,i,s,l);if(1===e.length)return[m,p,f];const g=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,v=d("select",{value:c.type,onChange:n=>(n=>{var a;const i=null!=(a=e.find((e=>e.type===n)))?a:c,s=i.node.default(),l=i.change?i.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==s?void 0:s.type)?s.config.feature:s;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},Nn(a,g.contextPush(e.type))))));return[m,d(w,null,v,p),f]},list({children:e,config:t},n,o,r,a,i,c){const{expand:u,collapse:m,isToggled:p}=On(),[f,v]=g(50),_=n.getContext().join(".");if(An.includes(_)){return[d(w,null,[...Array(t.maxLength)].map(((e,t)=>d(Bn,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(w,null,[...Array(t.maxLength)].map(((t,s)=>{var l;return e.hook(this,n.modelPush(s),null==(l=null==o?void 0:o[s])?void 0:l.node,r,a,i,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":ht(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ie()},...o])}},Ee.plus_circle),d(w,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},g)=>{if(g===f)return d("div",{class:"node node-header"},d("label",null,ht(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>v(Math.min(f+50,o.length))},ht(r,"entries_hidden.more","50")),d("button",{onClick:()=>v(o.length)},ht(r,"entries_hidden.all")));if(g>f)return null;const w=n.push(g).contextPush("entry"),_="object"===e.type(w),y=p(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(Bn,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(r,"expand")}\n${ht(r,"expand_all","Ctrl")}`,onClick:u(h)},Ee.chevron_right),d("label",null,Nn(r,w,`${g}`)),d(En,{key:h,path:w,value:t,schema:e}));return d(Pn,l(s({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:i,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(g,0,{id:ie(),node:be(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},c),{index:(0===g?1:0)+(g===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(r,"collapse")}\n${ht(r,"collapse_all","Ctrl")}`,onClick:m(h)},Ee.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ht(r,"remove"),onClick:()=>w.set(void 0)},Ee.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":ht(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[g-1],e[g]]=[e[g],e[g-1]],n.model.set(n,e)},disabled:0===g},Ee.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":ht(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[g+1],e[g]]=[e[g],e[g+1]],n.model.set(n,e)},disabled:g===o.length-1},Ee.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":ht(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ie()}])}},Ee.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c,u){var m,p,f,g,v;const{expand:_,collapse:y,isToggled:b}=On(),x=new h.ModelPath(jn,new h.Path([Vn(o.toString())])),k="block_state_map"===(null==(m=n.validation)?void 0:m.validator)?null==c?void 0:c[h.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?h.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,h.StringNode(null,{enum:t})]));return Object.entries(null!=(g=k.properties)?g:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),h.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c,u)}return[null,d(w,null,C.hook(this,x,null!=(v=x.get())?v:"",a,i,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":ht(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Ee.plus_circle)),d(w,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var m,p,f,g;const v=o.modelPush(t),w="object"===e.type(v),x=b(t);if(w&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Bn,{lang:a,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(a,"expand")}\n${ht(a,"expand_all","Ctrl")}`,onClick:_(t)},Ee.chevron_right),d("label",null,t),d(En,{key:t,path:v,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(p=null==(m=k.properties)?void 0:m[t])?p:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(g=k.properties)?void 0:g[t].includes(n))&&o.model.errors.add(v,"error.invalid_enum_option",n);return d(Pn,l(s({key:t,schema:C,path:v,value:n},{lang:a,version:i,states:c,ctx:u}),{label:t}),w&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(a,"collapse")}\n${ht(a,"collapse_all","Ctrl")}`,onClick:y(t)},Ee.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ht(a,"remove"),onClick:()=>v.set(void 0)},Ee.trashcan))})))]},number:(e,t,n,o,r,a,i)=>[null,d(Sn,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u,m){var p;const{expand:f,collapse:g,isToggled:v}=On();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&re(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Rn(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(Xe),feature:Qe},{context:"feature.decorated"})},i=h.ObjectNode(a,{context:"feature"}),s=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new _n(i,(e=>{if(e.startsWith(s))return new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new h.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new h.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return Rn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];Rn(c.data,o);const r=new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(s);return c.set(new h.Path,Hn(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];Rn(c.data,t),t.splice(o,1);const r=Hn(e,t);return c.set(new h.Path,r,n)}{const r=new h.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new h.ModelPath(e,new h.Path(t.getArray(),["feature"])).push(n)}let _=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(h.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":ht(i,"expand"),onClick:t},Ee.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":ht(i,"remove"),onClick:e},Ee.trashcan)}const b=r.getContext().join(".");if(Mn.includes(b)){const e=v("");if(_=d(w,null,d("button",{class:"toggle tooltipped tip-se","aria-label":ht(i,e?"collapse":"expand"),onClick:e?g(""):f("")},e?Ee.chevron_down:Ee.chevron_right)),!e)return[_,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(s({},m),{loot:null==a?void 0:a.type}):m,k=d(w,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,l,h;const m=o(r,e),p=m.getContext().join(".");if(bn.includes(p))return null;const[f,g,v]=t.hook(this,m,a[e],i,c,u,x);if(!(f||g||(null!=(h=null==(l=null==(n=null==v?void 0:v.props)?void 0:n.children)?void 0:l.length)?h:0)>0))return null;const b="object"===t.type(m)&&xn.includes(p),k=kn.includes(p);return b||k?(_=d(w,null,_,d(Bn,{lang:i,path:m}),d(Tn,{lang:i,path:m}),f),y=d(w,null,y,g),b?v:null):d(Pn,s({key:e,schema:t,path:m,value:a[e]},{lang:i,version:c,states:u,ctx:x}))})));return[_,y,k]},string:(e,t,n,o,r,a,i)=>[null,d($n,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null]};function En({path:e,value:t}){var n,o,r,a,i;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const s of Object.values(null!=t?t:{}))if("string"==typeof s)return d("label",null,s.replace(/^minecraft:/,""));return null}function On(){const[e,t]=g(new Map),[n,o]=g(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function Ln({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(w,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},ht(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},ht(o,"true")))}function Sn({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(w,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>le(e.model),class:"tooltipped tip-se","aria-label":ht(r,"generate_new_seed")},Ee.sync))}function $n({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:i,states:s}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),m=e.getContext().join("."),p=Dn(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Cn.includes(m))return d("textarea",{value:null!=r?r:"",onBlur:c});if(Dn(n)&&!n.additional||yn.includes(m)){let t=new h.Path([]);return Dn(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):Dn(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},ht(a,"unset")),u.map((e=>d("option",{value:e},Nn(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(Dn(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ie(),t=p?(e=>oe.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(w,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${i}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":ht(a,"follow_reference")},Ee.link_external))}{const t=null==s?void 0:s[h.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const Pn=G((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:i,ctx:c,actions:u,children:h}){var m;const p=t.type(n),f=t.category(n),g=n.getContext().join("."),[v,w]=je(),_=l(s({},c),{depth:(null!=(m=c.depth)?m:0)+1});delete _.index;const[y,b,x]=t.hook(zn,n,o,r,a,i,_);return d("div",{class:`node ${p}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(Bn,{lang:r,path:n}),d(Tn,{lang:r,path:n}),h,y,d("label",null,null!=e?e:Nn(r,n,`${n.last()}`),v&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(ne,{icon:e.icon,tooltip:ht(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:ht(r,e.label)))})),d("div",{class:"menu-item"},d(ne,{icon:"clippy",tooltip:ht(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(g)}),d("span",null,g)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&xe(e.ctx,t.ctx)&&xe(e.value,t.value)));function Dn(e){return!!(null==e?void 0:e.enum)}function Vn(e){var t,n=0;for(t=0;te.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=ht(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Fn("node-error","issue_opened",a)}function Tn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=ht(e,n);return o===n?null:Fn("node-help","info",o)}const Fn=(e,t,n)=>{const[o,r]=je();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Ee[t],d("span",{class:"icon-popup"},n))};function Rn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:re(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Rn(null!=(o=e.config.feature)?o:"",t)):e}function Hn(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Hn(e,t)}}}function Jn({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=pt();if(!t||!n||"none"===r)return d(w,null);const[a]=Y((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(w,null);const[,i]=g(0);return Ie(t,(()=>{i((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(In,s({},{model:t,lang:r,version:e,blockStates:n})))}const Wn={system:"device_desktop",dark:"moon",light:"sun"};function Un(){const{lang:e,locale:t,changeLanguage:n}=pt(),{theme:o,changeTheme:r}=M(bt),{version:a}=jt(),{title:i}=Ct(),s=he(m());return d("header",null,d("div",{class:"title"},d(q,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},Gn.home),d("h1",null,i),s&&d(ze,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},oe.generators.filter((e=>e.category===(null==s?void 0:s.category)&&ot(a,e.minVersion))).map((e=>d(ne,{label:t(e.id),active:e.id===s.id,onClick:()=>p(de(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(ze,{icon:"globe",tooltip:t("language")},oe.languages.map((({code:t,name:o})=>d(ne,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(ze,{icon:Wn[o],tooltip:t("theme")},Object.entries(Wn).map((([e,n])=>d(ne,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},Ee.mark_github)))))}const Gn={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function Yn({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:i,delayedPlay:s}){const{locale:l}=pt(),{version:u}=jt(),[h,m]=g(!0),[p,v]=g(!1),[w,_]=g(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,i;const s=e[t];_(0===(null!=(a=null==(n=null==s?void 0:s.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(i=null==s?void 0:s.sounds)?i:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,i=t,`${Re(oe.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${i}.ogg`);var a,i;const s=new Z.Howl({src:[n],format:["ogg"],volume:r,rate:o});s.on("end",(()=>{v(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&m(!1)};return"loaded"===s.state()?setTimeout((()=>l())):s.on("load",(()=>{l()})),s})),m(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(h||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),v(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{s&&setTimeout((()=>x()),50*n)}),[s]),c((()=>()=>k()),[]);const[C,A]=g(!1),M=f(void 0);return d("div",{class:`sound-config${h?" loading":p?" playing":""}${w?" invalid":""}`},d(ne,{class:"play",icon:w?"alert":h?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":h?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d(Se,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d($e,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(Pe,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(Pe,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(ne,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),A(!0),void 0!==M.current&&clearTimeout(M.current),M.current=setTimeout((()=>{A(!1)}),2e3)}}),d(ne,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{i(),k()}}))}function qn({title:e,desc:t,link:n,icon:o,children:r}){const a=d(w,null,d("div",{class:"tool-head"},o&&Gn[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function Zn({entries:e,onSelect:t,indent:n}){const o=v((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=v((()=>e.filter((e=>!e.includes("/")))),e),[a,i]=g(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(Kn,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void i(new Set(a));var t}}),!a.has(e)&&d(Zn,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(Kn,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function Kn({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Ee[e],t)}function Xn({category:e}){const{locale:t}=pt();return Ct(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},oe.generators.filter((t=>t.category===e)).map((e=>d(qn,{title:t(e.id),link:de(e.url)})))))}function Qn({}){const{locale:e}=pt(),[t,n]=g(null);Ct(e("title.changelog"));const[o,r]=g([]);c((()=>{Be().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const[a,i]=g(""),[s,l]=g([]),u=e=>{s.includes(e)?l(s.filter((t=>t!==e))):l([...s,e])},h=v((()=>{const e=a.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===s.length?o:o.filter((t=>{if(!s.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[o,a,s]),[m,p]=g(!0),f=v((()=>h.sort(((e,t)=>m?t.order-e.order:e.order-t.order))),[h,m]);return d("main",null,d(te,{type:"text",id:"changelog"}),t&&d(Oe,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d(Se,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:e("changelog.search"),value:a,onChange:i}),d(ne,{icon:m?"sort_desc":"sort_asc",label:m?"Newest first":"Oldest first",onClick:()=>p(!m)})),s.length>0&&d("div",{class:"changelog-tags"},s.map((e=>d(no,{label:e,onClick:()=>l(s.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},f.map((e=>d(eo,{change:e,activeTags:s,toggleTag:u})))))}function eo({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(to,s({},e.version)),d(to,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(no,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:K(e.content)}}))}function to({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function no({label:e,active:t,onClick:n}){const o="breaking"===e?5:ce(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Ee.alert,e)}function oo({}){var e;const{locale:t}=pt(),{version:n,changeVersion:o}=jt(),{project:r,file:a,updateFile:i,openFile:u,closeFile:f}=wt(),[v,_]=g(null),[y,b]=Y();if(y)return d("main",null,d(Oe,{error:`Something went wrong rendering the generator: ${y.message}`,onDismiss:b}));const x=he(m());if(!x)return d("main",null,d(Oe,{error:`Cannot find generator "${m()}"`}));const k=oe.versions.filter((e=>ot(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));Ct(t("title.generator",t(x.id)),k),ot(n,x.minVersion)||_(`The minimum version for this generator is ${x.minVersion}`),ot(n,void 0,x.maxVersion)||_(`This generator is not available in versions above ${x.maxVersion}`);const C=me(m()).get("preset");c((()=>{A&&C&&R(C).then((e=>{null==A||A.reset(h.DataModel.wrapLists(e),!1),pe({version:n,preset:C})}))}),[C]);const[A,M]=g(null),[j,I]=g(null);c((()=>{_(null),M(null),async function(e){return(await nt(e)).blockStates}(n).then((e=>I(e))),async function(e,t){var n;if(!Ze[t]||Ze[t].version!==e){const r=await nt(e);Xe=h.Reference(r.schemas,"configured_decorator"),Qe=h.ChoiceNode([{type:"string",node:h.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:h.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=oe.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new h.DataModel(n,{wrapLists:!0});Ze[t]?o.reset(Ze[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ze[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${ye(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return Ze[t].model}(n,x.id).then((async e=>{if(ee.setGenerator(x.id),C){const t=await R(C);e.reset(h.DataModel.wrapLists(t),!1)}M(e)})).catch((e=>{console.error(e),_(ye(e))}))}),[n,x.id]);const[z,E]=g(!1);Ie(A,(()=>{pe({version:void 0,preset:void 0}),_(null),E(!0)}));const[O,L]=g(""),[S,$]=Ae(),[P,D]=Ae(),V=()=>{if(O!==(null==a?void 0:a.id)&&O&&A&&j){const e=pn(A,j);i(x.id,null==a?void 0:a.id,{id:O,data:e})?$():(D(),a&&L(null==a?void 0:a.id))}else a&&L(null==a?void 0:a.id)};c((()=>{a&&L(a.id)}),[a]),c((()=>{var e;A&&(L(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type&&A.reset(h.DataModel.wrapLists(a.data)),E(!1))}),[a,A]);const N=e=>{e.ctrlKey&&"z"===e.key?(ee.generatorEvent("undo","Hotkey"),null==A||A.undo()):e.ctrlKey&&"y"===e.key&&(ee.generatorEvent("redo","Hotkey"),null==A||A.redo())},B=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),A&&j&&a)){ee.generatorEvent("save","Hotkey");const e=pn(A,j);i(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),$()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",B),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",B)})),[A,j,a]);const[T,F]=g([]);c((()=>{(async function(e){const t=await nt(e);return et=t.collections,t.collections})(n).then((e=>{F(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),_(e.message)}))}),[n,x.id]);const R=async e=>{var t,o,r;try{const a=await Ue(n,null!=(t=x.path)?t:x.id,e),i=null==A?void 0:A.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==i&&(a.generator.seed=i,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=i)),a}catch(a){_(ye(a))}},[H,J]=g(window.innerWidth>820),[W,U]=g(0),[G,q]=g(0),[Z,K]=g(0),[X,Q]=Ae(),[re,ae]=g(!1),ie=hn.includes(x.id)&&!("worldgen/configured_feature"===x.id&&ot(n,"1.18"));re&&!ie&&ae(!1);let se=1;ie&&(se+=1),H&&(se+=2);return d(w,null,d("main",{class:re?"has-preview":""},d(te,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(ze,{icon:"repo",label:r.name,relative:!1},d(ne,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>p("/project")}),a&&d(ne,{icon:"file",label:t("project.new_file"),onClick:f}),d(De,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d(Se,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:O,onChange:L,onEnter:V,onBlur:V}),a&&d(ne,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&i(x.id,a.id,{})}})),z?d("div",{class:"status-icon"},Ee.dot_fill):S?d("div",{class:"status-icon active"},Ee.check):P&&d("div",{class:"status-icon danger"},Ee.x)),d("div",{class:"generator-controls"},d(ne,{icon:"upload",label:t("import"),onClick:()=>{ee.generatorEvent("import"),J(!0),K(Z+1)}}),d(ze,{icon:"archive",label:t("presets"),relative:!1},d(De,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:T,onSelect:e=>{ee.generatorEvent("load-preset",e),pe({version:n,preset:e})}})),d(ze,{icon:"tag",label:n,tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(ne,{label:e,active:e===n,onClick:()=>o(e)})))),d(ze,{icon:"kebab_horizontal",tooltip:t("more")},d(ne,{icon:"history",label:t("reset"),onClick:()=>{ee.generatorEvent("reset"),null==A||A.reset(h.DataModel.wrapLists(A.schema.default()),!0)}}),d(ne,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),ee.generatorEvent("undo","Menu"),null==A||A.undo()}}),d(ne,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),ee.generatorEvent("redo","Menu"),null==A||A.redo()}})))),v&&d(Oe,{error:v,onDismiss:()=>_(null)}),d(Jn,l(s({},{model:A,version:n,blockStates:j}),{onError:_}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*se}px;`},d("div",{class:`popup-action action-preview${ie?" shown":""} tooltipped tip-nw`,"aria-label":t(re?"hide_preview":"show_preview"),onClick:()=>{ee.generatorEvent("toggle-preview",re?"hidden":"visible"),ae(!re),!re&&H&&J(!1)}},re?Ee.x_circle:Ee.play),d("div",{class:`popup-action action-download${H?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{ee.generatorEvent("download"),q(G+1)}},Ee.download),d("div",{class:`popup-action action-copy${H?" shown":""}${X?" active":""} tooltipped tip-nw`,"aria-label":t(X?"copied":"copy"),onClick:()=>{ee.generatorEvent("copy"),U(W+1)}},X?Ee.check:Ee.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(H?"hide_output":"show_output"),onClick:()=>{ee.generatorEvent("toggle-output",H?"hidden":"visible"),J(!H),U(0),q(0),K(0)}},H?Ee.chevron_right:Ee.code)),d("div",{class:"popup-preview"+(re?" shown":"")},d(mn,l(s({},{model:A,version:n,id:x.id}),{shown:re,onError:_}))),d("div",{class:"popup-source"+(H?" shown":"")},d(wn,l(s({},{model:A,blockStates:j,doCopy:W,doDownload:G,doImport:Z}),{name:null!=(e=x.schema)?e:"data",copySuccess:Q,onError:_}))))}function ro({}){const{locale:e}=pt();return Ct(e("title.home")),d("main",null,d("div",{class:"home"},d(qn,{title:"Data packs"},oe.generators.filter((e=>!e.category)).map((t=>d(qn,{title:e(t.id),link:de(t.url)}))),d(qn,{title:e("worldgen"),link:"/worldgen/"})),d(qn,{title:"Resource packs"},oe.generators.filter((e=>"assets"===e.category)).map((t=>d(qn,{title:e(t.id),link:de(t.url)})))),d(qn,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(qn,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(qn,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(qn,{title:"Technical Changelog",link:"/changelog/"})))}function ao({}){const{locale:e}=pt(),{project:t,openFile:n}=wt();Ct(e("title.project",t.name));const o=v((()=>t.files.map(yt)),t.files);return d("main",null,d(te,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(Zn,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function io({}){const{locale:e}=pt(),{version:t,changeVersion:n}=jt(),[o,r]=g(null);Ct(e("title.sounds"));const[a,i]=g({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=oe.versions.find((t=>t.id===e));try{const e=`${Re(t,"summary")}/sounds/data.min.json`;return await Ge(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${ye(n)}`)}})(t).then(i).catch((e=>{console.error(e),r(ye(e))}))}),[t]);const[h,m]=g(""),[p,v]=g([]),_=()=>{v([{id:ie(),sound:h,delay:0,pitch:1,volume:1},...p])},y=e=>()=>{v(p.filter((t=>t.id!==e)))},[b,x]=g(0),k=f(null);return d("main",null,d(te,{type:"text",id:"sounds"}),o&&d(Oe,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(w,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d(Se,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:m,onEnter:_}),d(ne,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:_})),p.length>1&&d(ne,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(ne,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=p.some((e=>e.delay>0)),t=p.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(ze,{icon:"tag",label:t},oe.versions.reverse().map((e=>d(ne,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},p.map((e=>{return d(Yn,l(s(s({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{v(p.map((n=>n.id===t?s(s({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},u.map((e=>d("option",{key:e,value:e})))))}function so(){return d(w,null,d(Un,null),d(X,{onChange:e=>{setTimeout((()=>ee.pageview(de(e.url))))}},d(ro,{path:"/"}),d(Xn,{path:"/worldgen",category:"worldgen"}),d(Xn,{path:"/assets",category:"assets"}),d(io,{path:"/sounds"}),d(Qn,{path:"/changelog"}),d(ao,{path:"/project"}),d(oo,{default:!0})))}function lo(){return d(ft,null,d(xt,null,d(It,null,d(At,null,d(_t,null,d(so,null))))))}Q(d(lo,null),document.body); +//# sourceMappingURL=index.92940780.js.map diff --git a/assets/index.92940780.js.map b/assets/index.92940780.js.map new file mode 100644 index 00000000..6e058f6b --- /dev/null +++ b/assets/index.92940780.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.92940780.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn
\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn
\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t
\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(//g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map()\n}\n\nexport function setSeachParams(modifications: Record, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap {\n\tprivate readonly forward: Map\n\tprivate readonly backward: Map\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn
e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && {label}}\n\t\t\n\t\t{dataList && \n\t\t\t{dataList.map(e => }\n\t
\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise,\n\tonDrag?: (dx: number, dy: number) => Promise,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef(null)\n\n\tconst dragStart = useRef()\n\tconst dragRequest = useRef()\n\tconst dragPending = useRef([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\tawait draw(img)\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn
\n\t\t\n\t\t{active &&
\n\t\t\t{children}\n\t\t
}\n\t
\n}\n","export const Octicon = {\n\talert: ,\n\tarchive: ,\n\tarrow_left: ,\n\tarrow_right: ,\n\tcheck: ,\n\tchevron_down: ,\n\tchevron_right: ,\n\tchevron_up: ,\n\tclippy: ,\n\tcode: ,\n\tdash: ,\n\tdevice_desktop: ,\n\tdot_fill: ,\n\tdownload: ,\n\tduplicate: ,\n\teye: ,\n\teye_closed: ,\n\tfile: ,\n\tfile_directory: ,\n\tgear: ,\n\tglobe: ,\n\thistory: ,\n\tinfo: ,\n\tissue_opened: ,\n\tkebab_horizontal: ,\n\tlink: ,\n\tlink_external: ,\n\tmark_github: ,\n\tmoon: ,\n\tplay: ,\n\tplus: ,\n\tplus_circle: ,\n\trepo: ,\n\tsearch: ,\n\tsort_asc: ,\n\tsort_desc: ,\n\tsquare: ,\n\tsquare_fill: ,\n\tstack: ,\n\tsun: ,\n\tsync: ,\n\ttag: ,\n\tterminal: ,\n\tthree_bars: ,\n\ttrashcan: ,\n\tunfold: ,\n\tupload: ,\n\tx: ,\n\tx_circle: ,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn
\n\t\t{onDismiss &&
{Octicon.x}
}\n\t\t

{error}

\n\t\t

If you think this is a bug, you can report it on GitHub

\n\t
\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes\n\ntype BaseInputProps = Omit & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn \n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t\n\t\t
\n\t\t\t{results.map(v => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && }\n\t\t
\n\t\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type ChangelogEntry = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: ChangelogEntry[] | Promise | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets'\n\nfunction mcmeta(version: Version, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nasync function getData(url: string, fn: (v: any) => T = (v: any) => v): Promise {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport * as java182 from '@mcschema/java-1.18.2'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n\t'1.18.2': java182,\n}\n\nexport let CachedDecorator: INode\nexport let CachedFeature: INode\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\tif (version === 'latest') return '1.18.2' // Upgrade path, remove in the future\n\t\treturn '1.18'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext({\n\ttheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tchangeTheme,\n\t}\n\n\treturn \n\t\t{children}\n\t\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, LegacyRandom, NormalNoise, TerrainShaper } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tshaper: TerrainShaper,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): string\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): string[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(layers: Set<keyof typeof LAYERS>, xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(new Set(layers), ...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome, options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, options.shaper.toJson(), `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(state.biome as string)\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn (state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = options.version === '1.18' ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (options.version === '1.18') {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn BiomeIds.getA(ids[0]) ?? 'unknown'\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => BiomeIds.getA(id) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(layers, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tconst point = TerrainShaper.point(c, e, w)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t\t...layers.has('offset') && { offset: options.shaper.offset(point) },\n\t\t\t\t\t\t\t\t...layers.has('factor') && { factor: options.shaper.factor(point) },\n\t\t\t\t\t\t\t\t...layers.has('jaggedness') && { jaggedness: options.shaper.jaggedness(point) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn minBiome\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome ?? 'minecraft:plains')\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { NoiseGeneratorSettings, TerrainShaper } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness', 'offset', 'factor', 'jaggedness'] as const\n\nconst OverworldShaper = TerrainShaper.overworld()\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\n\tconst shaper = getShaper(model.get(new Path(['generator', 'settings'])))\n\tconst state = shown ? calculateState(data, octaves, shaper) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>, shaper: TerrainShaper) {\n\treturn JSON.stringify([data, octaves, shaper.toJson()])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n\nexport function getShaper(obj: any): TerrainShaper {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn OverworldShaper\n\t\t\tdefault:\n\t\t\t\treturn TerrainShaper.fromJson({ offset: 0, factor: 0, jaggedness: 0 })\n\t\t}\n\t}\n\treturn TerrainShaper.fromJson(DataModel.unwrapLists(obj?.noise?.terrain_shaper))\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().replace(/^minecraft:/, '')})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport brace from 'brace'\nimport 'brace/mode/json'\nimport 'brace/mode/yaml'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst editor = useRef<brace.Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.getSession().setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format])\n\n\tuseEffect(() => {\n\t\teditor.current = brace.edit('editor')\n\t\teditor.current.setOptions({\n\t\t\tfontSize: 14,\n\t\t\tshowFoldWidgets: false,\n\t\t\thighlightSelectedWord: false,\n\t\t})\n\t\teditor.current.$blockScrolling = Infinity\n\t\teditor.current.on('blur', e => onImport.current(e))\n\t\teditor.current.getSession().setMode('ace/mode/json')\n\t}, [])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\teditor.current.setOption('useSoftTabs', indent !== 'tabs')\n\t\teditor.current.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\teditor.current.getSession().setMode(`ace/mode/${format}`)\n\t\tretransform.current()\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.selectAll()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<pre id=\"editor\" class=\"source\"></pre>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, toggled ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{toggled ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!toggled) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { marked } from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { ChangelogEntry, ChangelogVersion } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<ChangelogEntry[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changelogs\n\t\treturn changelogs.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(true)\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog-controls\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t\t</div>\n\t\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{tags.map(tag => <Tag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t</div>}\n\t\t</div>\n\t\t<div class=\"changelog\">\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t<Change change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</main>\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <Tag label={tag} onClick={() => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nfunction Tag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn <main><ErrorPanel error={`Something went wrong rendering the generator: ${errorBoundary.message}`} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSeachParams({ version, preset: currentPreset })\n\t\t\t})\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id })\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={version} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={v} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"sounds\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","value","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","generatorEvent","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","model","seed","dimensions","get","Path","set","keys","forEach","s2","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","split","map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","key","delete","search","encodeURIComponent","str","abs","hashString","a2","b","c","max","min","lerp","e","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","[object Object]","forward","backward","this","defaultValue","large","larger","doSelect","placeholder","dataList","onChange","onInput","value2","target","ref","useRef","current","select","dataListId","hexId","stopPropagation","list","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","hider","invalidated","listener","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","sort_asc","sort_desc","square","square_fill","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","evt","fn","onKeyDown","onEnter","displayName","name","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","useMemo","terms","trim","filter","every","includes","t","BtnInput","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","versionId","collectionTarget","blockStateTarget","versions","getItem","matches","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","JSON","stringify","data","getData","mcmeta","register","properties","default","registry","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","1.18.2","java182","CachedDecorator","CachedFeature","CachedCollections","scriptRel","collections","getCollections","blockStates","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","changeTheme","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","shaper","toJson","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","climate","climate_noise","w","layers","result","point","TerrainShaper","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","checkVersion","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:deepslate","minecraft:bedrock","minecraft:grass_block","minecraft:dirt","minecraft:gravel","minecraft:sand","minecraft:sandstone","minecraft:netherrack","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:basalt","minecraft:end_stone","generatorCache","chunkCache","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","done","chunks","cached","Chunk","ChunkPos","create","Z","forcedBiome","chunk","buildSurface","chunkIndex","OverworldShaper","overworld","BiomeSourcePreview","shown","setScale","focused","setFocused","setLayers","Set","refineTimeout","legacyRandomSource","getOctaves","terrain_shaper","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimates","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","getClimate","changeScale","newScale","BtnMenu","enabled","newSeed","k","toUpperCase","toFixed","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","autoScroll","setAutoScroll","scrollInterval","worldY","min_y","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","setInterval","allBiomes","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","onImport","editor","getSerializedOutput","model2","blockStates2","getOutput","output","getSession","setValue","getValue","wrapLists","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","setMode","setOption","clipboard","writeText","click","selectAll","data-cy","changeIndent","changeFormat","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","onBlur","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","completed","copyActive","setCopyActive","copyTimeout","spellcheck","step","desc","roots","groups","root","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setTags","toggleTag","filteredChangelogs","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"+uBAAiBA,gBCQEC,KAAEA,KAAMC,cAChB,6BACAC,eAAe,sBAAmBC,SACvC,eAAgBC,mBACRC,SAEV,MAEK,MAAD,CAAKC,oBAAkB,mBAAmBC,eAAcP,EAAMQ,MAAM,eAAeP,GAAAA,iBCLvEQ,KAAEA,QAAMC,SAAOC,EAAQH,MAAOI,UAAOC,aAASC,UAAYC,aACrE,MAAD,CAAKP,MAAO,MAAMG,EAAS,UAAY,KAAKC,EAAQ,IAAIA,IAAU,KAAKC,EAAU,yBAAmBC,IAAc,OAAS,KAAMC,QAAAA,EAAkBC,aAAYH,GACpKJ,GAAQQ,GAAQR,GAChBC,KAAU,OAAD,KAAOA,cFdFQ,SACVC,EAAU,OACVC,EAAe,uBAQNC,EAAkBC,EAAgBZ,MAC7C,OAAQ,QAASW,EAAUC,EAAQZ,cAGpBa,EAAeC,MAC9B,MAAO,YAAYD,IAASC,KAGhBC,kBAASC,MACrB,MAAO,OAAQA,MACf,OAAQ,eAGIC,qBAAYC,KAjBP,EAkBIA,KAClBT,EAAS,eAAgBS,MAGhBC,kBAASC,KAxBP,EAyBIA,KACfX,EAAS,YAAaW,MAGbC,oBAAWC,KA5BP,EA6BIA,KACjBZ,EAAc,cAAeY,MAGpBC,oBAAWC,KA/BP,EAgCIA,KACjBd,EAAc,cAAec,MAGpBC,sBAAaC,KAnCP,EAoCIA,MAGVC,wBAAef,EAAgBZ,KACxCU,EAAcE,EAAQZ,KAhDbX,wmGGUQuC,SACF,iBAARA,GAA4B,OAARA,EAGnC,MAAMC,GAAWC,QAAuBA,EAAIC,SAAS,KAAKC,uBAEpCC,EAAS,QAC1BC,EAAM,IAAIC,WAAWF,EAAS,iBAC3BG,OAAOC,gBAAgBH,GACvBI,MAAMC,KAAKL,EAAKL,IAASW,KAAK,yBAI9BC,OAAOC,KAAKC,MAAMD,KAAKE,SAAWC,OAAOC,+BAGzBC,SACjBC,EAAON,KAAKC,MAAuB,WAAjBD,KAAKE,UAA2B,WAClDK,EAAaF,EAAMG,IAAI,IAAIC,OAAK,CAAC,kBACjCC,IAAI,IAAID,OAAK,CAAC,SAAUH,GAAM,GACV,iBAAfC,GAA0C,OAAfA,UAC9BI,KAAKJ,GAAYK,eACjBF,IAAI,IAAID,OAAK,CAAC,aAAc5D,EAAI,YAAa,SAAUyD,GAAM,KAC7DI,IAAI,IAAID,OAAK,CAAC,aAAc5D,EAAI,YAAa,eAAgB,SAAUyD,GAAM,QAG/EI,IAAI,IAAID,OAAK,CAAC,YAAa,SAAUH,GAAM,KAC3CI,IAAI,IAAID,OAAK,CAAC,YAAa,eAAgB,SAAUH,eAQjCO,OACtBC,EAAI,UACAC,EAAI,EAAGA,EAAIF,EAAEtB,OAAQwB,MACxBf,KAAKgB,KAAK,GAAIF,GAAKD,EAAEI,WAAWF,GAAK,SACnCD,cAGiBI,SACjB,IAAIA,KAAOC,WAAW,KAAM,iBAGZD,SACjBE,EAAcF,EAAIG,QAAQ,YAC5BD,GAAe,MACZF,EAAII,MAAM,EAAGF,IAEbG,GAASL,eAGYA,SACtBM,EAAaC,GAAQP,GAAKQ,QAAQ,MAAO,IAAIA,QAAQ,MAAO,WAC3DC,GAAOC,WAAWC,SAAUC,EAAEZ,MAAQM,gBAGdN,SACzBE,EAAcF,EAAIG,QAAQ,YAC5BD,GAAe,KACZF,EAAII,MAAMF,EAAc,GACvB,IAAIW,IAAIb,EAAIc,MAAM,KAAKC,eACvB9D,EAAQ+D,EAAMb,QAAQ,gBACxBlD,EAAqB,CAAC+D,EAAO,QAC1B,CAACC,mBAAmBD,EAAMZ,MAAM,EAAGnD,IAASgE,mBAAmBD,EAAMZ,MAAMnD,EAAQ,UAGrF,IAAI4D,gBAGmBK,EAAmDC,SAC3EnB,EAAMoB,IACNC,EAAeC,GAAgBtB,UAC9BuB,QAAQL,GAAexB,SAAQ,EAAE8B,EAAKtE,WAC9B,IAAVA,IAAkCuE,OAAOD,KAC3BhC,IAAIgC,EAAKtE,YAEtBwE,EAAShD,MAAMC,KAAK0C,GAAcN,KAAI,EAAES,EAAKtE,KAClD,GAAGyE,mBAAmBH,MAAQG,mBAAmBzE,SAC5C,GAAGiE,EAAUd,GAASc,GAAWZ,GAAQP,KAAyB,IAAlB0B,EAAOrD,OAAe,GAAK,IAAIqD,EAAO9C,KAAK,UAAU,eAG9EgD,SACvBhC,EAAId,KAAK+C,IAAIC,GAAWF,UACvB,CAAChC,EAAI,QAAW,GAAK,QAAW,IAAM,iBAGvBmC,UACfA,EAAIA,cAGUA,EAAWC,EAAWC,UACpCnD,KAAKoD,IAAIH,EAAGjD,KAAKqD,IAAIH,EAAGC,gBAGJF,EAAWC,EAAWC,UAC7CA,EAAI,EACAF,EACGE,EAAI,EACPD,EAEAI,GAAKH,EAAGF,EAAGC,eAICD,EAAWC,EAAWC,UACnCD,EAAID,KAASC,eAeGK,UACnBA,aAAaC,MAAcD,EAAEE,QAC1B,GAAGF,UAGEG,GAAYC,gBASCV,EAAQC,MAC7BD,IAAMC,SAAU,KAEhBD,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,IACvDD,EAAEW,cAAgBV,EAAEU,mBAAoB,MACxCrE,EAAQwB,KACRnB,MAAMiE,QAAQZ,GAAI,MACZA,EAAE1D,OACPA,GAAU2D,EAAE3D,cAAe,MAC1BwB,EAAI,EAAGA,EAAIxB,EAAQwB,QAClB+C,GAAUb,EAAElC,GAAImC,EAAEnC,WAAY,SAE7B,KAEJkC,EAAEc,UAAYC,OAAOC,UAAUF,eAAgBd,EAAEc,YAAcb,EAAEa,aACjEd,EAAE5D,WAAa2E,OAAOC,UAAU5E,gBAAiB4D,EAAE5D,aAAe6D,EAAE7D,iBAClEsB,EAAOqD,OAAOrD,KAAKsC,QAChBtC,EAAKpB,OACVA,IAAWyE,OAAOrD,KAAKuC,GAAG3D,cAAe,MACxCwB,EAAIxB,EAAgB,GAARwB,SACXiD,OAAOC,UAAUC,eAAeC,KAAKjB,EAAGvC,EAAKI,WAAY,MAC1DA,EAAIxB,EAAgB,GAARwB,KAAY,OACtB2B,EAAM/B,EAAKI,OACZ+C,GAAUb,EAAEP,GAAMQ,EAAER,WAAc,SAEjC,SAEDO,GAAMA,GAAKC,GAAMA,WAOxBkB,mBACMC,QAAU,IAAItC,SACduC,SAAW,IAAIvC,IAGdqC,IAAInB,EAAMC,QACXmB,QAAQ3D,IAAIuC,EAAGC,QACfoB,SAAS5D,IAAIwC,EAAGD,GAGfmB,KAAK1B,UACJ6B,KAAKD,SAAS9D,IAAIkC,GAGnB0B,KAAK1B,UACJ6B,KAAKF,QAAQ7D,IAAIkC,GAGlB0B,SAAS1B,EAAQ8B,SACjBtB,EAAIqB,KAAKF,QAAQ7D,IAAIkC,eACjB,IAANQ,QACExC,IAAIgC,EAAK8B,GACPA,GAEDtB,gBC9LgB7F,KAAEA,QAAMC,QAAOmH,SAAOC,WAAQC,QAAUvG,cAAOwG,WAAaC,WAAUC,UACxFC,OAAuB,IAAbD,EAAyB,OAAYvB,UAC9CyB,EAASzB,EAAE0B,OAA4B7G,iBAClC4G,IAGNE,EAAMC,EAAyB,SAC3B,KACLR,GAAYO,EAAIE,WACfA,QAAQC,WAEX,CAACV,UAEEW,EAAaT,GAAYU,cAEvB,MAAD,CAAKnI,MAAO,iBAAiBqH,EAAQ,cAAgB,MAAMC,EAAS,eAAiB,KAAM/G,WAAc4F,EAAEiC,mBAChHnI,GAAQQ,GAAQR,GAChBC,KAAU,OAAD,KAAOA,KAChB,QAAD,CAAO4H,IAAAA,EAAUtI,KAAK,OAAOwB,MAAAA,EAAc0G,SAAUC,EAASH,YAAAA,EAA0Ba,KAAMH,IAC7FT,KAAa,WAAD,CAAUhI,GAAIyI,GACzBT,EAAS5C,UAAU,SAAD,CAAQ7D,MAAOmF,qBC5BJmC,SAAEA,SAAUC,UAAQC,GAAkC,UAC/ErI,EAAQsI,GAAaC,EAASF,GAC/BG,EAAUZ,OAA2B,SAUpC,CAAC5H,EARQ,QACLoI,QACc,IAApBI,EAAQX,sBAAoCW,EAAQX,WAChDA,QAAUY,YAAW,SAClBL,WACRD,IAAY,oBCXSO,KAAEA,OAAMC,SAAMC,UAAQC,UAASC,GAMtDC,SACIC,EAASpB,EAA0B,MAEnCqB,EAAYrB,IACZsB,EAActB,IACduB,EAAcvB,EAAa,CAAC,EAAG,IAC/BwB,EAAWxB,GAAO,MAEd,WACHyB,EAAerD,MACV6B,QAAU,CAAC7B,EAAEsD,QAAStD,EAAEuD,UAE7BC,EAAexD,YACM,IAAtBiD,EAAUpB,QAAuB,OAC9B4B,EAAIzD,EAAEsD,QAAWN,EAAOnB,QAAQ6B,YAChCC,EAAI3D,EAAEuD,QAAWP,EAAOnB,QAAQ+B,oCAC5BH,EAAGE,QAGTf,eACCiB,EAAK7D,EAAEsD,QAAUL,EAAUpB,QAAQ,GACnCiC,EAAK9D,EAAEuD,QAAUN,EAAUpB,QAAQ,GAC5B,OAAY,IAAPiC,MACLjC,QAAU,CAACsB,EAAYtB,QAAQ,GAAKgC,EAAIV,EAAYtB,QAAQ,GAAKiC,GACxEV,EAASvB,+BACQqB,EAAYrB,WACrBA,QAAUkC,uBAAsBC,YAClCnC,SAAU,QACboC,EAAKd,EAAYtB,QAAQ,GAAKmB,EAAOnB,QAAQ6B,YAC7CQ,EAAKf,EAAYtB,QAAQ,GAAKmB,EAAOnB,QAAQ+B,eACvC/B,QAAU,CAAC,EAAG,0BACXoC,EAAIC,MACVrC,SAAU,SAIZA,QAAU,CAAC7B,EAAEsD,QAAStD,EAAEuD,UAE7BY,EAAY,OACPtC,aAAU,GAEfuC,EAAe,4BAIdvC,QAAQwC,iBAAiB,YAAahB,KACtCxB,QAAQwC,iBAAiB,YAAab,KACtC3B,QAAQwC,iBAAiB,aAAcD,YACrCE,KAAKD,iBAAiB,UAAWF,GAEnC,0BACCtC,YAAS0C,oBAAoB,YAAalB,cAC1CxB,YAAS0C,oBAAoB,YAAaf,cAC1C3B,YAAS0C,oBAAoB,aAAcH,YACzCE,KAAKC,oBAAoB,UAAWJ,MAE5C,UAAIpB,IAAU,GAAIC,EAAOnB,gBAEtB2C,EAAS5C,IACT6C,EAAc7C,EAAO,YACpBC,QAAUmC,gBACVU,EAAM1B,EAAOnB,QAAQ8C,WAAW,MAChCrH,EAAIoF,MACHb,QAAQ+C,MAAQtH,EAAE,KAClBuE,QAAQgD,OAASvH,EAAE,SACpBwH,EAAMJ,EAAIK,aAAa,EAAG,EAAGzH,EAAE,GAAIA,EAAE,IACrC0H,EAAWP,EAAY5C,SAAW,QAClCc,EAAKmC,GACPE,IAAaP,EAAY5C,WACxBoD,aAAaH,EAAK,EAAG,IAIpB,CACN9B,OAAAA,EACAwB,OAAQA,EAAO3C,6BCnFT7H,EAAQsI,GAAaC,GAAS,GAE/B2C,EAAQ,QACH,cAGD,KACLlL,aACMsK,KAAKD,iBAAiB,QAASa,YAC/BZ,KAAKD,iBAAiB,cAAea,IAExC,cACGZ,KAAKC,oBAAoB,QAASW,YAClCZ,KAAKC,oBAAoB,cAAeW,MAEhD,CAAClL,IAEG,CAACA,EAAQ,IAAMsI,GAAU,gBCjBRxF,EAAqCqI,SACvDC,EAAW,CAChBvE,cACK/D,KACSA,QAKL,gBACFuI,YAAYD,GACZ,gBACCE,eAAeF,MAErB,CAACtI,gBCJmByI,SACjBzL,KAAEA,QAAMC,WAAOyL,UAAUtL,aAASC,WAAYsL,GAAaF,GAC1DvL,EAAQsI,GAAaoD,cAEpB,MAADC,GAAK9L,MAAO,aAAwB,IAAb2L,EAAqB,eAAiB,KAAUD,KAC5EK,GAADC,OAAS,CAAC/L,KAAAA,EAAMC,MAAAA,EAAOG,QAAAA,EAASC,WAAAA,IAAhC,CAA6CC,QAASkI,KACrDtI,KAAW,MAAD,CAAKH,MAAM,aACpB4L,cCnBHK,QAAQ,MAAD,CAAKC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,8TACtHC,UAAU,MAAD,CAAKJ,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qcACxHE,aAAa,MAAD,CAAKL,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,8JAC3HG,cAAc,MAAD,CAAKN,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,iKAC5HI,QAAQ,MAAD,CAAKP,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qIACtHK,eAAe,MAAD,CAAKR,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,oIAC7HM,gBAAgB,MAAD,CAAKT,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,mIAC9HO,aAAa,MAAD,CAAKV,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,mIAC3HQ,SAAS,MAAD,CAAKX,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,gYACvHS,OAAO,MAAD,CAAKZ,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,+NACrHU,OAAO,MAAD,CAAKb,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,wEACrHW,iBAAiB,MAAD,CAAKd,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,kaAC/HY,WAAW,MAAD,CAAKf,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,mCACzHa,WAAW,MAAD,CAAKhB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,wMACzHc,YAAY,MAAD,CAAKjB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMqB,EAAE,2HAA+H,OAAD,CAAMD,YAAU,UAAUC,EAAE,oOAAwO,OAAD,CAAMA,EAAE,mNAC/ee,MAAM,MAAD,CAAKlB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,6nBACpHgB,aAAa,MAAD,CAAKnB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,4xBAC3HiB,OAAO,MAAD,CAAKpB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,0UACrHkB,iBAAiB,MAAD,CAAKrB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,kLAC/HmB,OAAO,MAAD,CAAKtB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qvEACrHoB,QAAQ,MAAD,CAAKvB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,isBACtHqB,UAAU,MAAD,CAAKxB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,ySACxHsB,OAAO,MAAD,CAAKzB,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,uOACrHuB,eAAe,MAAD,CAAK1B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,kKAC7HwB,mBAAmB,MAAD,CAAK3B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMqB,EAAE,wHAC7GyB,OAAO,MAAD,CAAK5B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qWACrH0B,gBAAgB,MAAD,CAAK7B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,uWAC9H2B,cAAc,MAAD,CAAK9B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,8jBAC5H4B,OAAO,MAAD,CAAK/B,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sLACrH6B,OAAO,MAAD,CAAKhC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,kLACrH8B,OAAO,MAAD,CAAKjC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,oIACrH+B,cAAc,MAAD,CAAKlC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,iMAC5HgC,OAAO,MAAD,CAAKnC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,6WACrH7G,SAAS,MAAD,CAAK0G,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sIACvHiC,WAAW,MAAD,CAAKpC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sUACzHkC,YAAY,MAAD,CAAKrC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qNAAyN,OAAD,CAAMA,EAAE,oHAC1VmC,SAAS,MAAD,CAAKtC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,wOACvHoC,cAAc,MAAD,CAAKvC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,4HAC5HqC,QAAQ,MAAD,CAAKxC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,ikBACtHsC,MAAM,MAAD,CAAKzC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,gtBACpHuC,OAAO,MAAD,CAAK1C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sZACrHwC,MAAM,MAAD,CAAK3C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qWACpHyC,WAAW,MAAD,CAAK5C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,2ZACzH0C,aAAa,MAAD,CAAK7C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sMAC3H2C,WAAW,MAAD,CAAK9C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,sXACzH4C,SAAS,MAAD,CAAK/C,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMqB,EAAE,iiBACnG6C,SAAS,MAAD,CAAKhD,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,qMACvHzC,IAAI,MAAD,CAAKsC,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,2LAClH8C,WAAW,MAAD,CAAKjD,MAAM,6BAA6BC,QAAQ,YAAYpB,MAAM,KAAKC,OAAO,QAAM,OAAD,CAAMoB,YAAU,UAAUC,EAAE,+SC3C/F+C,MAAEA,YAAOC,aAC3B,MAAD,CAAKrP,MAAM,SAChBqP,KAAc,MAAD,CAAKrP,MAAM,gBAAgBO,QAAS8O,GAAY5O,GAAQmJ,KACrE,KAAD,KAAKwF,KACJ,IAAD,KAAG,mDAA+C,IAAD,CAAGE,KAAK,wDAAwDzH,OAAO,UAAS,wCCD5H0H,EAAa7D,UACZhE,EAAWgE,EAAMhE,WAAc8H,gBAC9BxO,EAASwO,EAAI3H,OAA4B7G,iBACzC0G,oBAAW+H,EAAGzO,MAEf0O,EAAYhE,EAAMiE,UAAaH,aACpB,UAAZA,EAAIlK,IAAiB,OAClBtE,EAASwO,EAAI3H,OAA4B7G,iBACzC2O,mBAAUF,EAAGzO,gBAGb,QAAD8K,OAAWJ,GAAW,CAAElM,KAAAA,EAAMkI,SAAAA,EAAUgI,UAAAA,eAEtCE,YAAcC,EACjBN,QAGKO,GAAYC,GAAU,YAAa,WAAaC,IAEhDC,GAAcF,GAAU,cAAe,aAAehN,OAAOiN,KAE7DE,GAAaH,GAAU,aAAc,YAAchN,OAAOiN,kBCrB5CG,OAAEA,WAAQC,oBAAUC,YAAmBC,UAC1D9K,EAAQ+K,GAAa7H,EAAS,IAC/B8H,EAAUC,GAAQ,iBACjBC,EAAQlL,EAAOmL,OAAO/L,MAAM,YAC3B,0BAAQgM,WAAYF,EAAMG,UAAWb,EAAEc,SAASC,UAAQ,KAC7D,CAACZ,EAAQ3K,sBAGVwL,GAAD,CAAU/Q,KAAK,SAASoH,OAAK,EAACrG,MAAOwE,EAAQkC,SAAU6I,EAAWhJ,SAAU,EAAGC,kBAAa6I,IAAqB,aAChH,MAAD,CAAKrQ,MAAM,eACTwQ,EAAQ3L,UAAUkH,GAAD,CAAKzG,IAAK0K,EAAG9P,MAAO8P,EAAGzP,QAAS,UAAM6P,WAAWJ,OAC/C,IAAnBQ,EAAQrO,UAAiB4J,GAAD,CAAK7L,YAAOoQ,IAAa,iBClBrD,MAAMjC,GAAO,kEAeb,IAAI4C,GAAkE,6BAGhEA,GAAY,OACVlQ,cAAqBmQ,MAAM,GAAG7C,kBAAoB8C,iBACpCC,QAAQC,IAC3BtQ,EAAM8D,KAAI,CAACyM,EAAO3N,IASrBwG,eAA0BmH,EAAyBC,SAC5CxQ,cAAqBmQ,MAAM,GAAG7C,MAAQiD,EAAM7R,kBAAkB0R,oBACtDC,QAAQC,IACrBtQ,EAAM8D,KAAI,CAACrD,EAASmC,IAItBwG,eAA8BmH,EAAyB9P,EAA2B+P,EAAoBC,UAUtG,SAAwBC,UAChBA,EAAK7M,MAAM,QAChBC,eACMlB,EAAI+N,EAAMzN,QAAQ,WACjB,CACN0N,KAAMD,EAAME,UAAU,EAAGjO,GAAGgN,OAAO/L,MAAM,KACzCiN,QAASH,EAAMxN,MAAMP,EAAI,GAAGgN,OAC1B5M,WAAW,KAAM,KACjBA,WAAW,UAAW,YAhBpB+N,aADmBZ,MAAM,GAAG7C,MAAQiD,EAAM7R,MAAM+B,EAAQ/B,UAAUgS,QAC7C5M,WAC3BrD,QAAAA,EACA8P,MAAAA,EACAS,MAAoB,IAAbR,EAAoBC,GACxBQ,KAVuBC,CAAeX,EAAOY,GAAa1Q,GAAU+P,EAAY5N,OACjFwO,OAbuBC,CAAWF,GAAaZ,GAAQ3N,OACtDwO,OAAOtN,eACNmN,IACHL,KAAM,CAACK,EAAOV,MAAM7R,MAAOuS,EAAOL,iBAG7BV,GAiCR,YAAsBzP,SACE,iBAAZA,EACH,CACN/B,GAAI+B,EACJ6Q,QAAS7Q,EAAQ8Q,MAAM,kBAAoB,sBAAwB9Q,EAAUA,EAAQ8Q,MAAM,8BAAgC,aAAe9Q,EAAQuC,WAAW,IAAK,KAAKA,WAAW,MAAO,gBAAkB,MAElMwO,GAAS/Q,GACZA,EAED,CAAE/B,GAAI,UAAW4S,QAAS,MCjElC,CAAC,OAAQ,OAAQ,QAAQ7O,YAAagP,aAAaC,WAAW,SAASzC,OACvE,CAAC,gBAAiB,4BAA4BxM,YAAagP,aAAaC,WAAW,UAAUzC,OAC7F0C,OAAOnN,OAAO,aAEd,MAWMoN,GAAY,kDAIlB,YAAgBnR,EAAkBhC,SAC1B,GAAGmT,MAAanR,EAAQoR,QAAUpT,EAAO,GAAGgC,EAAQsG,OAAOtI,wBAGnCqT,EAAmBC,EAAsCC,SAClFvR,EAAU+C,GAAOyO,SAASvO,SAAUuL,EAAEvQ,KAAOoT,IAC9CrR,GAKDA,EAAQoR,UAhBS,KAiBhBJ,aAAaS,QA1BU,iCA6H7B9I,eAA8B+I,aAEtBC,QAAcT,OAAOU,KAhIV,qBAiITC,MAAM,iDACRC,EAA+B,aAE1BC,WAAiBJ,EAAM5P,OAC7B2P,EAAQK,EAAQzP,QACV0P,KAAKL,EAAM5N,OAAOgO,YAGrBF,MAAM,6BAA6BC,EAASnR,iCAC9CiP,QAAQC,IAAIiC,SACVnN,WACAsN,KAAK,oDAAwDpN,GAAQF,OAhHtEuN,KAAsB5P,EAAI6P,WAAW,GAAGhB,6BACjCiB,QA5Ba,wBASP,OAqBZ9L,IArBY,UAwBfsJ,QAAQC,IAAI,CACjBwC,GAAgBrS,EAASsR,GACzBgB,GAAmBtS,EAASuR,cAdpB3D,MAAM,+BAA+B5N,QAAcuS,KAAKC,UAAUzP,GAAOyO,aAkBnF7I,kBAA+B3I,EAAkBqG,WACxCwL,MAAM,qBAAqB7R,EAAQ/B,gBAEpCwU,QAAaC,GAAQ,GAAGC,GAAO3S,EAAS,iDACnC/B,KAAMwU,IACTG,SAAS3U,EAAIwU,EAAKxU,GAAIoF,KAAKsB,GAAc,aAAeA,WAExDA,WACAsN,KAAK,4CAA6CpN,GAAQF,KAIpEgE,kBAAkC3I,EAAkBqG,WAC3CwL,MAAM,wBAAwB7R,EAAQ/B,gBAEvCwU,QAAaC,GAAQ,GAAGC,GAAO3S,EAAS,6CACnC/B,KAAMwU,IACT,aAAexU,GAAM,CAC3B4U,WAAYJ,EAAKxU,GAAI,GACrB6U,QAASL,EAAKxU,GAAI,UAGZ0G,WACAsN,KAAK,iDAAkDpN,GAAQF,uBAIvC0M,EAAsB0B,EAAkB9U,WACjE4T,MAAM,iBAAiBR,KAAa0B,KAAY9U,WAClD+B,EAAU+C,GAAOyO,SAASvO,SAAUuL,EAAEvQ,KAAOoT,cAE5CrT,EAAO,CAAC,cAAe,UAAUsR,SAASyD,GAAY,SAAW,OACjEzQ,EAAM,GAAGqQ,GAAO3S,EAAShC,MAASA,eAAkB+U,KAAY9U,sBACpDyR,MAAMpN,IACbqN,aACHhL,SACF,IAAIC,MAAM,iCAAiCmO,YAAmB9U,MAAO4G,GAAQF,OAwBrFgE,kBAAgCrG,EAAa2L,EAAoB,CAACO,GAAWA,cAErEmD,QAAcT,OAAOU,KAtGV,qBAuGTC,MAAM,oCAAwCvP,WAChD0Q,QAAsBrB,EAAMb,MAAMxO,MAEpC0Q,GAAiBA,EAAcC,kBAC1BpB,MAAM,oCAAoCvP,WACrC0Q,EAAcrD,eAGpBkC,MAAM,2BAA2BvP,WACnC4Q,QAAsBxD,MAAMpN,GAC5B6Q,EAAelF,QAASiF,EAAcvD,qBACtCgC,EAAMyB,IAAI9Q,EAAK,IAAI+Q,SAASd,KAAKC,UAAUW,KAC1CA,QACCxO,WACAsN,KAAK,6CAAiDpN,GAAQF,cAE9DkN,MAAM,2BAA2BvP,WACnC4Q,QAAsBxD,MAAMpN,UACb2L,QAASiF,EAAcvD,eCxHjC2D,GAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,UAmBrDC,GAA+D,GAM/DC,GAAoC,GAEpCC,GAKF,CACHC,KAAMC,EACNC,KAAMC,EACNC,KAAMC,EACNC,KAAMC,EACNC,SAAUC,OAGAC,GACAC,GACAC,GCrDPC,GDuDJ5L,kBAA0B1K,UACpBsV,GAAStV,QACJA,wBAEDuW,EAAcf,GAAcxV,GAAIwW,iBAChCC,EAAkC,SAClCC,GAAU1W,EAAIuW,EAAaE,SAC3BE,EAAUnB,GAAcxV,GAAI4W,WAAWL,aACpCvW,GAAM,CAAEuW,YAAAA,EAAaI,QAAAA,EAASF,YAAAA,GAChCnB,GAAStV,SACR0G,SACF,IAAIC,MAAM,uBAAuB3G,OAAQ4G,GAAQF,YAKnD4O,GAAStV,eAqDYoT,EAAmByD,EAAkCC,SAC3E/U,EAAU+C,GAAOyO,SAASwD,cAAexG,EAAEvQ,KAAOoT,IAClD4D,EAAaH,EAAe/R,GAAOyO,SAASwD,cAAexG,EAAEvQ,KAAO6W,IAAgB,EACpFI,EAAaH,EAAehS,GAAOyO,SAASwD,cAAexG,EAAEvQ,KAAO8W,IAAgBhS,GAAOyO,SAAS7Q,OAAS,SAC5GsU,GAAcjV,GAAWA,GAAWkV,EChI9B,MAAMC,GAAO,GAAgBC,GAAgB,SAAiBC,EAAYC,OAExDA,SACjBD,YAGO,IAAdd,GAAyB,OAEnBgB,EAAUC,SAASC,cAAc,QAAQF,WAG3CA,GAAWA,EAAQG,UAAYH,EAAQG,SAAS,iBAC1C,gBACA,iBAEP9F,QAAQC,IAAIyF,EAAKjS,KAAKsS,OAErBA,KAAOR,aAGNQ,IAAO,QACNC,EAAQD,EAAIE,SAAS,QACrBC,EAAcF,EAAQ,qBAAuB,MAE/CJ,SAASO,cAAc,cAAcJ,MAAQG,kBAI3CxJ,EAAOkJ,SAASC,cAAc,iBAE/BO,IAAMJ,EAAQ,aAAerB,GAC7BqB,MACIK,GAAK,WACLC,YAAc,MAElBpI,KAAO6H,WAEHQ,KAAKC,YAAY9J,GACtBsJ,EACO,IAAIhG,SAAQ,CAACyG,EAAKC,OAChBtN,iBAAiB,OAAQqN,KACzBrN,iBAAiB,QAASsN,iBAGvCC,MAAK,IAAMlB,WCvCFmB,GAAAC,2+HAAAA,GAAAD,yBACW,uBACH,sBACE,8BACD,2BACA,qCACQ,0CACN,qBAEXE,oCACR,sBAAajF,QAAQgF,mBAAgB,SAG7BE,iCACR,sBAAalF,QAAQgF,gBAAa,WAG1BG,4BACT5W,EAAUgR,aAAaS,QAAQgF,sBACjCzW,GAAWsT,GAAWhE,SAAStP,GAC3BA,EAEQ,WAAZA,EAA6B,SAC1B,WAGQ6W,kCACR,sBAAapF,QAAQgF,iBAAc,eAG3BK,kCACR,sBAAarF,QAAQgF,iBAAc,WAG3BM,yCACR,sBAAatF,QAAQgF,yBAAsB,aAGnCO,6BACTC,EAAWjG,aAAaS,QAAQgF,uBAClCQ,EACI1E,KAAK2E,MAAMD,GAEZ,CAACE,QAGOxX,qBAAYC,GACvBA,gBAAuBwS,QAAQqE,eAAa7W,OAGjCC,kBAASC,GACpBA,gBAAoBsS,QAAQqE,YAAU3W,OAG3BC,oBAAWC,GACtBA,gBAAsBoS,QAAQqE,cAAYzW,OAG/BoX,mBAAUC,GACrBA,gBAAqBjF,QAAQqE,aAAWY,OAG7BC,mBAAUC,GACrBA,gBAAqBnF,QAAQqE,aAAWc,OAG7BC,0BAAiBxX,GAC5BA,gBAAsBoS,QAAQqE,qBAAmBzW,OAGtCyX,qBAAYR,GACvBA,gBAAuB7E,QAAQqE,eAAalE,KAAKC,UAAUyE,KC/DjE,MAAMS,GAASC,EAAsB,CACpCC,KAAM,OACNC,UAAe/T,EACfgU,eAAgB,SAGJC,GAIT,CACHC,SAAUC,gBAGcL,EAAc9T,KAAgBoU,wBAMvD,SAA6B1Y,EAAe0Y,UACpC1Y,EAAMsD,QAAQ,oBACdvD,EAAQ4Y,SAASrH,EAAMpO,MAAM,mBACR,sBAAXnD,IAAuB2Y,EAAO3Y,GAASuR,KANjDsH,CAF2B,SAAA,SAAA,SAAA,YAAQR,aAAQ9T,MAC/C,YAAQuU,aAAKvU,MAAQiU,GAAQC,SAASlU,MAAQA,EACfoU,GAUnCvP,kBAA0B/I,MACrBmY,GAAQnY,gBACN0Y,EAAavV,GAAOwV,UAAUtV,SAAa2U,EAAKtM,OAAS1L,QAC1D0Y,eACC7F,otCAAa+F,CAAO,iBAAiB5Y,UACrC6Y,GAAgC,IAAvBH,EAAW1D,uqDAChB8D,CAAO,+CAA+C9Y,aACxDA,GAAY0K,OAAKmI,EAAKK,SAAY2F,EAAO3F,8BAI1C6F,EAAWjB,iBAGYtN,SAAEA,UACzBwN,EAAMjY,GAAeuH,EAAS,QAE/B2Q,EAASe,GAAY,CAAC9U,KAAgBoU,IACpCW,GAASjB,EAAM9T,KAAQoU,IAC5B,CAACN,IAEEE,EAAiBc,GAAYjQ,MAAOmQ,UACnCC,GAAWD,MACPnZ,YAAYmZ,MAChBnZ,YAAYmZ,KACNA,KACV,OAEO,sBAEFzS,EAASmQ,GAAME,oBACf9G,QAAQC,IAAI,CACjBkJ,GAAW,SACI,OAAX1S,EAAkB,CAAC0S,GAAW1S,IAAW,OAElCA,SAEX,UAEG7G,EAAgB,CACrBoY,KAAAA,EACAC,OAAAA,EACAC,eAAAA,YAGOJ,GAAOsB,SAAR,CAAiBxZ,MAAAA,GACtB4K,SCvEU+M,GAAyB,CACrC9I,KAAM,SACN4K,UAAW,QACXC,MAAO,IAkBFC,GAAUxB,EAA8B,CAC7CyB,QAASjC,GACTkC,cAAe,OACfC,cAAe,OACfC,WAAY,KAAM,EAClBC,SAAU,OACVC,UAAW,8BAIJd,EAAWQ,iBAGa/O,SAAEA,UAC1B6M,EAAUQ,GAAevQ,EAAoBsP,GAAMQ,gBAEnD0C,EAAaC,GAAkBzS,EAAiBiQ,GAAc9I,MAC/D+K,EAAUnK,GAAQ,kBAChB,WAAShM,SAAU2W,EAAEvL,OAASqL,OAAgBvC,KACnD,CAACF,EAAUyC,KAEPG,EAAQC,GAAa5S,OAAuC,GAC7D4E,EAAOmD,GAAQ,QACf4K,SACET,EAAQF,MAAMjW,SAAU8W,EAAE/b,OAAS6b,EAAO,IAAME,EAAE9b,KAAO4b,EAAO,OACrE,CAACT,EAASS,IAEPG,EAAiBpB,GAAaqB,OAC7BxC,YAAYwC,KACNA,KACV,IAEGX,EAAgBV,GAAasB,MACnBjD,EAAS5T,QAASuW,EAAEvL,OAASqL,EAAcpP,OAAKsP,GAAMM,GAAUN,OAC7E,CAAC3C,EAAUyC,IAERH,EAAaX,GAAY,CAAC5a,EAAcC,EAAwBic,cAChEA,EAAMjc,GAEJ,OACAkc,EAAQD,EAAMjc,GAAGqR,SAAS,KAAO4K,EAAMjc,GAAK,GAAGmb,EAAQH,aAAaiB,EAAMjc,KAC1Emc,EAAShB,EAAQF,MAAMmB,SAAUN,EAAE/b,OAASA,GAAQ+b,EAAE9b,KAAOkc,OAC9Dlc,EAIE,sBACIA,MAAOA,GAAMA,IAAOkc,GAASC,SAC/B,IAEM,CAAElB,MAAOE,EAAQF,MAAM7V,QAAS0W,EAAE/b,OAASA,GAAQ+b,EAAE9b,KAAOA,EAAKuM,SAAKuP,GAAMG,GAAX,CAAkBjc,GAAIkc,IAAUJ,wBACrG9b,MAAOA,KAAc,CAACD,EAAMmc,QAT9B,IACJC,SAAe,IACL,CAAElB,MAAO,IAAIE,EAAQF,MAAO,CAAElb,KAAAA,EAAMC,GAAIkc,EAAO1H,KAAM,WAAMA,QAAQ,SACvE,CAACzU,EAAMmc,YAPJ,CAAEjB,MAAOE,EAAQF,MAAM9J,WAAY2K,EAAE/b,OAASA,GAAQ+b,EAAE9b,KAAOA,aAgBvE,IACL,CAACqb,EAAeF,EAAStN,IAEtB0N,EAAWZ,GAAY,CAAC5a,EAAcC,WACrCqc,EAAMvX,GAAOC,WAAWC,SAAUC,EAAEjF,KAAOD,GAAQkF,EAAEqX,OAASvc,QAC/Dsc,QACE,IAAI1V,MAAM,iCAAiC5G,OAExC,CAACsc,EAAIrc,GAAIA,MACb0E,GAAS2X,EAAIhY,QACjB,IAEGmX,EAAYb,GAAY,YACnB,KACR,IAEGpZ,EAAwB,CAC7B4Z,QAAAA,EACAtN,KAAAA,EACAuN,cAAeM,EACfL,cAAAA,EACAC,WAAAA,EACAC,SAAAA,EACAC,UAAAA,YAGON,GAAQH,SAAT,CAAkBxZ,MAAAA,GACvB4K,eAIyB0B,eACpBmN,EAAWhb,GAAM6N,EAAK7N,GAAGqR,SAAS,KAAOxD,EAAK7N,GAAGmF,MAAM,KAAO,CAAC,YAAa0I,EAAK7N,IAClFqc,EAAMvX,GAAOC,WAAWC,SAAUC,EAAEjF,KAAO6N,EAAK9N,WACjDsc,QACE,IAAI1V,MAAM,iCAAiCkH,EAAK9N,cAEhD,QAAQib,KAAa,WAAIsB,QAAQD,EAAIrc,MAAMA,ICrHnD,MAAMuc,GAAQ7C,EAAqB,CAClC7X,MAAO,OACP2a,YAAa,sBAOgBrQ,SAAEA,UACxBtK,EAAOD,GAAYqH,EAASsP,GAAMG,eAE/B,cACA+D,gBAAgBC,aAAa,aAAc7a,KAClD,CAACA,UAEE2a,EAAc7B,GAAagC,OACtB/a,SAAS+a,MACb/a,SAAS+a,KACNA,KACP,IAEGpb,EAAe,CACpBM,MAAAA,EACA2a,YAAAA,YAGOD,GAAMxB,SAAP,CAAgBxZ,MAAAA,GACrB4K,GC/BH,MAMMyQ,GAAQlD,EAAqB,CAClCmD,MAAO,GACPC,YAAa,qBAGWD,EAAgBtJ,SAClCwJ,EAAUrC,EAAWkC,cACjB,KACLC,KACKC,YAAYD,EAAOtJ,KAE1B,CAACsJ,EAAOtJ,IACJwJ,eAGsB5Q,SAAEA,UACzByN,OAAEA,GAAWoD,MACZH,EAAOI,GAAYhU,EAAiB2Q,EAAO,eAS5CrY,EAAQ,CACbsb,MAAAA,EACAC,YATmBnC,GAAY,CAACuC,EAAe3J,iBAClCzO,GAAOyO,SAASnO,QAASmL,EAAEvQ,YAClCmd,EAAgB5J,EAAS9O,MAAM8O,EAAS7Q,OA3BtB,YA4Bfma,MAAQ,GAAGK,eAAmBC,EAAcla,KAAK,UACjDia,KACP,cAOKN,GAAM7B,SAAP,CAAgBxZ,MAAAA,GACrB4K,GCnCH,MAMMiR,GAAU1D,EAAuB,CACtC3X,QAAS,OACTsb,cAAe,8BAIR3C,EAAW0C,iBAGajR,SAAEA,UAC1BpK,EAASD,GAAcmH,EAAoBsP,GAAMI,cAGlD2E,EADe3X,GAAgBF,KACF9B,IAnBd,cAoBX,KACL0R,GAAWhE,SAASiM,IAA+Bvb,IAAYub,KACvDA,KAEV,CAACvb,EAASub,UAEPD,EAAgB1C,GAAa4C,IAC9B5X,GAAgBF,KAAiB+X,IA3BjB,eA4BJ,CAAEzb,eAERD,WAAWyb,MACfzb,WAAWyb,KACNA,KACT,IAEGhc,EAAiB,CACtBQ,QAAAA,EACAsb,cAAAA,YAGOD,GAAQrC,SAAT,CAAkBxZ,MAAAA,GACvB4K,GCzCH,IAAIsR,IAAQ,EAQZ,MAAMC,GAAS,CACdC,YAAa,IAAK,GAClBC,SAAU,IAAK,GACfC,gBAAiB,MAAO,GACxBC,QAAS,IAAK,GACdC,UAAW,IAAK,GAChBC,OAAQ,IAAK,GACbC,OAAQ,CAAC,EAAG,IACZC,WAAY,CAAC,EAAG,IAwBjB,IAAIC,GACAC,GAoDJ1T,kBAAyB2T,EAAYC,SAC9BC,EAAW,CAACF,EAAOC,EAAQE,QAASF,EAAQG,OAAOC,SAAU,GAAGJ,EAAQ7a,OAAQ6a,EAAQvc,gBACzFkF,GAAUsX,EAAUJ,SACXtX,GAAU0X,YASzB7T,eAA8B2T,EAAYC,wBACjC,0BAAOve,eAAM8E,QAAQ,cAAe,SACtC,eACG,IAAI8Z,EAAWN,EAAMO,WAExB,qBACEC,cAAeC,SAAS,GAAK,EAC7BC,EAAY,SAAA,WAAMC,iBAAQtc,UAAU,QACnC,CACN6E,SAAS4C,EAAW8U,EAAYC,eACzBhb,QAAY2a,OAAeA,IAAUE,EAAYA,GAAaA,SAC5D,WAAMC,iBAAS9a,GAAGib,WAIxB,qBACG,WAAMC,iBAAQva,QAAQ,cAAe,SACtC,WACwB,SAApByZ,EAAQvc,QAAqBsd,GAAiBC,aAElD,cACwB,SAApBhB,EAAQvc,cAkOrB2I,8BACyB6U,GAAY,OAAQ,YAAa,cACxCpd,UAAUqd,aApOoBC,GAAsBpB,OAG3DqB,YAAUC,YAAYtB,GACN,SAApBC,EAAQvc,QAAoB,OAjInC2I,iBACK+S,WACEmC,EAAKC,OACH,UACAjM,MAAM,6BAA6BiM,OA8HlCC,SACAC,EAAW,IAAIC,GACf3a,EAASsW,GACM,iBAANA,EAAiB,CAACA,EAAGA,GAAKA,GAElCsE,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAGxa,GAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,cACzGnC,KAAKma,EAAMW,OAAQ,OACvBrB,YAAEA,WAAaC,kBAAUC,UAAiBC,YAASC,QAAW+C,SAAO9C,GAAW9Z,EAAE6c,aACrFhN,KAAK1O,EAAMsY,GAAa,MACxB5J,KAAK1O,EAAMsY,GAAa,MACxB5J,KAAK1O,EAAMuY,GAAU,MACrB7J,KAAK1O,EAAMuY,GAAU,MACrB7J,KAAK1O,EAAMwY,GAAiB,MAC5B9J,KAAK1O,EAAMwY,GAAiB,MAC5B9J,KAAK1O,EAAMyY,GAAS,MACpB/J,KAAK1O,EAAMyY,GAAS,MACpB/J,KAAK1O,EAAM0Y,GAAW,MACtBhK,KAAK1O,EAAM0Y,GAAW,MACtBhK,KAAK1O,EAAMyb,GAAO,MAClB/M,KAAK1O,EAAMyb,GAAO,MACnB/M,KAAKiK,KACLjK,KAAKgM,EAASiB,SAAS9c,EAAE0a,MAAOzb,KAAKC,MAAsB,WAAhBD,KAAKE,kBAE7C0d,EAAaE,EAAiB,IAAIC,aAAajB,GAAK,IAAIiB,aAAahB,GAAK,IAAIgB,aAAaf,GAAK,IAAIe,aAAad,GAAK,IAAIc,aAAab,GAAK,IAAIa,aAAaZ,GAAK,IAAIY,aAAaX,GAAK,IAAIW,aAAaV,GAAK,IAAIU,aAAaT,GAAK,IAAIS,aAAaR,GAAK,IAAIQ,aAAaP,GAAK,IAAIO,aAAaN,GAAK,IAAIM,aAAaL,GAAI,IAAIM,WAAW9a,IAC1U+a,EAAUC,EAAgB/C,EAAQ7a,KAAM6a,EAAQE,QAAQb,YAAY2D,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQb,YAAY4D,YAAajD,EAAQE,QAAQZ,SAAS0D,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQZ,SAAS2D,YAAajD,EAAQE,QAAQX,gBAAgByD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQX,gBAAgB0D,YAAajD,EAAQE,QAAQV,QAAQwD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQV,QAAQyD,YAAajD,EAAQE,QAAQT,UAAUuD,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQT,UAAUwD,YAAajD,EAAQE,QAAQK,MAAMyC,YAAa,IAAIJ,aAAa5C,EAAQE,QAAQK,MAAM0C,mBACtlB,CACNha,SAAS4C,EAAGE,EAAG6U,eACRsC,EAAMC,EAAYV,EAAYK,EAASjX,EAAGA,EAAI,EAAG,EAAGE,EAAGA,EAAI,EAAG,EAAG6U,EAAGA,EAAI,EAAG,UAC1E,WAASwC,KAAKF,EAAI,OAAO,WAEjCG,WAAUC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,IAEpD,IADKX,EAAYV,EAAYK,EAASQ,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,IAC/Ehd,sBAAU,WAASsc,KAAK1hB,MAAO,aAEhDuH,WAAW4C,EAAGE,EAAG6U,SACVmD,EAAUC,EAAclB,EAASjX,EAAGA,EAAI,EAAG,EAAGE,EAAGA,EAAI,EAAG,EAAG6U,EAAGA,EAAI,EAAG,IACpE5N,EAAGrN,EAAGqC,EAAGI,EAAG6b,GAAKF,EAAQ5d,MAAM,EAAG,SAClC,CACNkZ,YAAarM,EACbsM,SAAU3Z,EACV4Z,gBAAiBvX,EACjBwX,QAASpX,EACTqX,UAAWwE,IAGbhb,YAAYib,EAAQZ,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,SAC/DC,EAAUC,EAAclB,EAASQ,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,EAAOC,EAAOC,EAAKC,GACnFK,EAAS,WACNve,EAAI,EAAGA,EAAIme,EAAQ3f,OAAQwB,GAAK,EAAG,OACpCoN,EAAGrN,EAAGqC,EAAGI,EAAG6b,GAAKF,EAAQ5d,MAAMP,EAAGA,EAAI,GACvCwe,EAAQC,EAAcD,MAAMpc,EAAGI,EAAG6b,KACjCxO,KAAK1H,OACXsR,YAAarM,EACbsM,SAAU3Z,EACV4Z,gBAAiBvX,EACjBwX,QAASpX,EACTqX,UAAWwE,GACRC,EAAOhF,IAAI,WAAa,CAAEQ,OAAQM,EAAQG,OAAOT,OAAO0E,KACxDF,EAAOhF,IAAI,WAAa,CAAES,OAAQK,EAAQG,OAAOR,OAAOyE,KACxDF,EAAOhF,IAAI,eAAiB,CAAEU,WAAYI,EAAQG,OAAOP,WAAWwE,aAGlED,IAGH,OACAG,EAAQ,CAAC,WAAY,cAAe,WAAY,aACpDxd,KAAI,CAACpF,EAAIkE,iBACH2e,EAASxE,EAAM,GAAGre,oBACjBshB,YAAcwB,GAAM,WAAOxB,2BAC3B,IAAIyB,EAAY,IAAIC,EAAa1E,EAAQ7a,KAAOP,OAAOgB,IAAK2e,aAEhE9f,MAAMiE,QAAQqX,EAAMW,SAAmC,IAAxBX,EAAMW,OAAOtc,OAG1C,CACN6E,SAAS4C,EAAW8U,EAAYC,SACzB+D,EAAIL,EAAMxd,QAAS8d,EAAEC,OAAOhZ,EAAG+U,EAAG,SACpCkE,EAAUC,EAAAA,EACVC,EAAW,aACJ1E,MAAEA,EAAOmC,WAAYpF,KAAO0C,EAAMW,OAAQ,OAC9CuE,EAAOxU,GAAO4M,EAAE6H,SAAWP,EAAE,IAAMlU,GAAO4M,EAAEgC,YAAcsF,EAAE,IAAMlU,GAAO4M,EAAEiC,SAAWqF,EAAE,IAAMlU,GAAO4M,EAAEoC,UAAYkF,EAAE,IAAMlU,GAAO4M,EAAEqC,QACtIuF,EAAOH,MACAG,IACC3E,UAGN0E,IAdD,IAAI3E,EAAW,kBAmBpB,IAAIhY,MAAM,wBA7HU8c,CAAepF,EAAOC,IAEzC,CACNoF,YAAatF,IA6Hf,YAAuBQ,EAAe+E,aAChC/E,QACG,CAAC,IAAK,IAAK,WAEbgF,EAAQ,WAAYhF,MAAUiF,GAAcjF,eACpC,IAAVgF,EACIE,GAAclF,GAEfgF,EASR,MAAMC,GAAwC,CAC7CE,qBAAsB,CAAC,IAAI,GAAG,IAC9BC,6BAA8B,CAAC,IAAI,IAAI,KACvCC,0BAA2B,CAAC,IAAI,IAAI,IACpCC,gCAAiC,CAAC,GAAG,GAAG,IACxCC,0BAA2B,CAAC,GAAG,GAAG,IAClCC,kBAAmB,CAAC,IAAI,IAAI,IAC5BC,yBAA0B,CAAC,GAAG,IAAI,IAClCC,+BAAgC,CAAC,GAAG,GAAG,IACvCC,uBAAwB,CAAC,GAAG,GAAG,KAC/BC,2BAA4B,CAAC,IAAI,EAAE,GACnCC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,8BAA+B,CAAC,IAAI,IAAI,IACxCC,4BAA6B,CAAC,GAAG,GAAG,IACpCC,8BAA+B,CAAC,GAAG,GAAG,KACtCC,gCAAiC,CAAC,EAAE,EAAE,IACtCC,uBAAwB,CAAC,EAAE,EAAE,IAC7BC,4BAA6B,CAAC,EAAE,EAAE,IAClCC,mBAAoB,CAAC,IAAI,IAAI,IAC7BC,yBAA0B,CAAC,IAAI,GAAG,IAClCC,yBAA0B,CAAC,IAAI,IAAI,IACnCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,0BAA2B,CAAC,IAAI,IAAI,KACpCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,4BAA6B,CAAC,IAAI,IAAI,IACtCC,0BAA2B,CAAC,GAAG,IAAI,IACnCC,mBAAoB,CAAC,EAAE,IAAI,IAC3BC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,+BAAgC,CAAC,IAAI,IAAI,KACzCC,oCAAqC,CAAC,IAAI,IAAI,KAC9CC,qCAAsC,CAAC,IAAI,IAAI,KAC/CC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,kCAAmC,CAAC,GAAG,IAAI,IAC3CC,mCAAoC,CAAC,GAAG,GAAG,IAC3CC,2BAA4B,CAAC,IAAI,IAAI,KACrCC,+BAAgC,CAAC,IAAI,IAAI,KACzCC,qCAAsC,CAAC,IAAI,IAAI,KAC/CC,uBAAwB,CAAC,IAAI,IAAI,KACjCC,mBAAoB,CAAC,GAAG,IAAI,GAC5BC,wBAAyB,CAAC,GAAG,IAAI,IACjCC,0BAA2B,CAAC,GAAG,IAAI,IACnCC,yBAA0B,CAAC,GAAG,GAAG,GACjCC,2BAA4B,CAAC,EAAE,EAAE,KACjCC,sCAAuC,CAAC,IAAI,IAAI,KAChDC,wCAAyC,CAAC,IAAI,IAAI,KAClDC,4BAA6B,CAAC,IAAI,IAAI,IACtCC,iCAAkC,CAAC,IAAI,IAAI,IAC3CC,6CAA8C,CAAC,IAAI,IAAI,KACvDC,0BAA2B,CAAC,IAAI,IAAI,KACpCC,0BAA2B,CAAC,GAAG,GAAG,IAClCC,sBAAuB,CAAC,GAAG,GAAG,IAC9BC,4BAA6B,CAAC,GAAG,GAAG,IACpCC,iCAAkC,CAAC,IAAI,EAAE,KACzCC,4BAA6B,CAAC,IAAI,EAAE,KACpCC,0BAA2B,CAAC,IAAI,GAAG,IACnCC,kBAAmB,CAAC,EAAE,EAAE,KACxBC,mBAAoB,CAAC,IAAI,IAAI,IAC7BC,kBAAmB,CAAC,EAAE,EAAE,KACxBC,oBAAqB,CAAC,IAAI,IAAI,IAC9BC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,sCAAuC,CAAC,IAAI,IAAI,KAChDC,8BAA+B,CAAC,IAAI,IAAI,KACxCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,8BAA+B,CAAC,GAAG,GAAG,IACtCC,kCAAmC,CAAC,GAAG,IAAI,KAC3CC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,yBAA0B,CAAC,IAAI,IAAI,KACnCC,6BAA8B,CAAC,GAAG,GAAG,IACrCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,wBAAyB,CAAC,IAAI,IAAI,KAClCC,6BAA8B,CAAC,IAAI,IAAI,KACvCC,kBAAmB,CAAC,EAAE,IAAI,KAC1BC,wBAAyB,CAAC,GAAG,IAAI,KACjCC,kBAAmB,CAAC,GAAG,IAAI,IAC3BC,wBAAyB,CAAC,GAAG,GAAG,IAChCC,4BAA6B,CAAC,GAAG,IAAI,KACrCC,8BAA+B,CAAC,GAAG,IAAI,KACvCC,oCAAqC,CAAC,GAAG,IAAI,KAC7CC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,oBAAqB,CAAC,IAAI,IAAI,KAC9BC,qBAAsB,CAAC,EAAE,EAAE,GAC3BC,uBAAwB,CAAC,EAAE,EAAE,KAC7BC,0BAA2B,CAAC,GAAG,IAAI,KACnCC,oCAAqC,CAAC,IAAI,IAAI,KAC9CC,4BAA6B,CAAC,IAAI,IAAI,KACtCC,yBAA0B,CAAC,GAAG,GAAG,IACjCC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,6BAA8B,CAAC,GAAG,IAAI,IACtCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,wBAAyB,CAAC,IAAK,IAAK,KACpCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,6BAA8B,CAAC,IAAK,IAAK,KACzCC,yBAA0B,CAAC,IAAK,IAAK,KACrCC,wBAAyB,CAAC,GAAI,GAAI,KAClCC,kBAAmB,CAAC,IAAK,IAAK,KAC9BC,mBAAoB,CAAC,IAAK,IAAK,IAC/BC,uBAAwB,CAAC,IAAK,IAAK,IACnCC,4BAA6B,CAAC,IAAK,IAAK,IAGnC9K,GAAe,CAACvf,KAAK,wBAAwB0D,KAAK,EAAE4mB,eAAe,CAAC/I,eAAeC,WAAW,CAAC,EAAE,IAAI+I,kBAAkB,CAAChJ,eAAeC,WAAW,CAAC,EAAE,IAAIgJ,eAAe,CAACjJ,eAAeC,WAAW,CAAC,EAAE,IAAIiJ,gBAAgB,CAAClJ,eAAeC,WAAW,CAAC,EAAE,IAAIvC,OAAO,CAAC,CAACJ,MAAM,0BAA0BmC,WAAW,CAACyC,SAAS,EAAE7F,YAAY,EAAEC,SAAS,EAAEG,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,6BAA6BmC,WAAW,CAACyC,SAAS,EAAE7F,YAAY,EAAEC,aAAcG,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,2BAA2BmC,WAAW,CAACyC,SAAS,EAAE7F,YAAY,GAAIC,SAAS,EAAEG,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,0BAA0BmC,WAAW,CAACyC,SAAS,EAAE7F,YAAY,EAAEC,SAAS,GAAIG,UAAU,EAAEC,OAAO,OAAQ,CAACY,MAAM,0BAA0BmC,WAAW,CAACyC,SAAS,EAAE7F,gBAAiBC,SAAS,EAAEG,UAAU,EAAEC,OAAO,SAE1xBqB,GAAiB,CAACtf,KAAK,wBAAwBif,OAAO,CAAC,CAACJ,MAAM,0BAA0BmC,WAAW,CAACpD,YAAY,EAAEC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,6BAA6BmC,WAAW,CAACpD,YAAY,EAAEC,aAAcC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,2BAA2BmC,WAAW,CAACpD,YAAY,GAAIC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,IAAI,CAACY,MAAM,0BAA0BmC,WAAW,CAACpD,YAAY,EAAEC,SAAS,GAAIC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,OAAQ,CAACY,MAAM,0BAA0BmC,WAAW,CAACpD,gBAAiBC,SAAS,EAAEC,gBAAgB,EAAEC,QAAQ,EAAEgD,MAAM,EAAE/C,UAAU,EAAEC,OAAO,SCjVhtB,MAAMyM,GAAU,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvQC,GAAgB,CACrB,CAAC,IAAK,GAAI,IACV,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,IAAK,IACV,CAAC,IAAK,GAAI,KACV,CAAC,IAAK,IAAK,IACX,CAAC,GAAI,IAAK,kBAQerM,EAAY7S,EAAgB8S,SAC/Cjb,EAAS,IAAI2f,EAAa1E,EAAQ7a,MAClC2H,EAAwB,CAC7Buf,WAAY,GACZC,SAAU,GACVvnB,OAAAA,EACAwnB,eAAgB,IAAIC,EAAYznB,EAAO0nB,OAAQ,EAAG,CAAC,IACnDC,SAAU,GACVjpB,QAASuc,EAAQvc,QACjBkpB,UAAW,IAAM5nB,EAAO4nB,YACxBC,QAAU3kB,GAAgBlD,EAAO6nB,QAAQ3kB,GACzC4kB,aAAc,IAAMhoB,KAAKioB,QAAUjoB,KAAKkoB,IAAI,EAAIhoB,EAAO4nB,cAAgB9nB,KAAKmoB,IAAI,EAAInoB,KAAKooB,GAAKloB,EAAO4nB,aACrG1jB,UAAUhG,UA6CZ,SAAmBA,EAAY6J,cACT,iBAAV7J,SACHA,KACGA,EAAMiqB,YACT,WAAMA,QAAQ,EAAIpgB,EAAI8f,QAAQ,cAAWO,UAAU,WAElDC,GAAUnqB,EAAMxB,WAClB,kBAAmBwB,EAAMA,UACzB,iBAAkBA,EAAMA,MAAMoqB,cAAgBvgB,EAAI8f,QAAQ3pB,EAAMA,MAAMqqB,cAAgBrqB,EAAMA,MAAMoqB,cAAgB,OAClH,0BAA2BpqB,EAAMA,MAAMoqB,cAAgBvgB,EAAI8f,QAAQ9f,EAAI8f,QAAQ3pB,EAAMA,MAAMqqB,cAAgBrqB,EAAMA,MAAMoqB,cAAgB,GAAK,OAC5I,iBAAkB7I,GAAM1X,EAAIygB,UAAUtqB,EAAMA,MAAMuqB,QAASvqB,EAAMA,MAAMoqB,cAAepqB,EAAMA,MAAMqqB,mBAClG,uBACEG,EAASxqB,EAAMA,MAAMyqB,KAAO5gB,EAAI+f,eAAiB5pB,EAAMA,MAAM0qB,iBAC5D9oB,KAAKC,MAAM0f,GAAMvhB,EAAMA,MAAMoqB,cAAepqB,EAAMA,MAAMqqB,cAAeG,QAC1E,sBACEG,EAAe3qB,EAAM4qB,aAAuBC,QAAe,CAACC,EAAK3lB,IAAM2lB,EAAM3lB,EAAE4lB,QAAQ,OACzFpoB,EAAIkH,EAAI8f,QAAQgB,aACTxlB,KAAKnF,EAAM4qB,mBAChBzlB,EAAE4lB,OACHpoB,EAAI,SAAUkH,EAAIygB,UAAUnlB,EAAE8N,aAE5B,SAEF,EApEmBqX,CAAUtqB,EAAOmG,gBAGnCyC,EAAI,EAAGA,EAAImU,EAAQlV,KAAK,GAAK,GAAIe,GAAK,UACrC+U,EAAI,EAAGA,EAAIZ,EAAQlV,KAAK,GAAK,GAAI8V,GAAK,EAC1CqN,GAAajO,EAAQvc,aAAS,EAAW,WAC9B,CAAK,GAAJoI,EAAQ,EAAO,GAAJ+U,GAASQ,YAAUC,YAAYtB,GAAQjT,MAEjD,CAAK,GAAJjB,EAAQ,EAAO,GAAJ+U,GAASQ,YAAUC,YAAYtB,EAAMmO,WAAYphB,SAK1EoJ,EAAOhJ,EAAIgJ,OACbA,KAAKiY,KAAK,eAEFC,EAAKC,KAAYvhB,EAAIuf,WAAY,IACxC+B,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,GAAK,GAAKA,EAAI,IAAMpO,EAAQlV,KAAK,IAAMsjB,EAAI,IAAMpO,EAAQlV,KAAK,IAAMsjB,EAAI,IAAMpO,EAAQlV,KAAK,kBACzHlF,EAAKwoB,EAAI,IAAkB,IAARphB,OAAwB,EAATohB,EAAI,GACtC9I,EAAQ+I,EAAUjC,GAAchoB,OAASgoB,GAAciC,GAAW7I,GAAc1Y,EAAIwf,SAAS+B,MAC9FzoB,GAAK4e,GAAM,GAAI,IAAKc,EAAM,MAC1B1f,EAAI,GAAK4e,GAAM,GAAI,IAAKc,EAAM,MAC9B1f,EAAI,GAAK4e,GAAM,GAAI,IAAKc,EAAM,MAC9B1f,EAAI,GAAK,YAGNiG,EAAI,EAAGA,EAAImU,EAAQlV,KAAK,GAAIe,GAAK,UAChCE,EAAI,EAAGA,EAAIiU,EAAQlV,KAAK,GAAIiB,GAAK,EAAG,UAClCjH,MAAM+G,EAAI,IAAMhH,KAAKC,MAAMiH,EAAI,KAAO,GAAM,iBAChDnG,EAAKmG,GAAiB,IAARiB,OAAmB,EAAJnB,UAC1ByiB,EAAI,EAAGA,EAAI,EAAGA,GAAK,IACtB1oB,EAAI0oB,GAAK,IAAOpY,EAAKtQ,EAAI0oB,IAMlC,YAAmB5sB,UACXA,EAAGkU,WAAW,cAAgBlU,EAAGyE,MAAM,IAAMzE,EAGrD,YAAmB0sB,EAAeriB,SAC1B,CAAC,CAAEqiB,EAAI,GAAIriB,EAAGqiB,EAAI,KA8B1B,YAAuBG,EAAaC,OAC9Bha,GAAS+Z,SAAe,IAAIlmB,MAAM,8BACnCkmB,EAAOE,gBAAiBF,EAAOE,YAC/BF,EAAOG,oBAAqBH,EAAOG,gBACnCH,EAAOI,iBAAkB,IAAMJ,EAAOI,gBACpC,IAAItmB,MAAM,2BA6CjB,YAAoB3C,EAAWoH,SACxBlH,EAAIkH,EAAIwf,SAASpmB,QAAQR,aAC3BE,EAAgBA,KAChB0mB,SAAS7W,KAAK/P,GACXoH,EAAIwf,SAASloB,OAAS,GAG9B,YAAuBgqB,EAAeC,EAAcvhB,YAC5B,iBAAZuhB,gBACNhC,WAAW5W,KAAK,CAAC2Y,EAAKQ,GAAWP,EAASvhB,WAGzCrL,EAAO2rB,GAAU,0BAAS3rB,QAAQ,SAClCotB,EAAYC,GAASrtB,GACvBotB,IACOR,EAAQ7nB,OAAQ4nB,EAAKthB,KAE3Buf,WAAW5W,KAAK,CAAC2Y,EAAKQ,GAAW5Y,KAAKC,UAAUoY,GAAUvhB,KAIhE,YAAsBshB,EAAeW,EAAgBjiB,eAC9CrL,EAAO2rB,GAAU,0BAAW3rB,QAAQ,QACpCutB,EAAcC,GAAWxtB,UAC1ButB,EAGEA,QAAYD,WAAWvoB,OAAQ4nB,EAAKthB,GAFnC,CAACshB,GAKV,MAAMU,GAEF,CACHI,UAAW,CAAC3K,EAAQ6J,EAAKthB,KACNqiB,GAAaf,QAAK7J,WAAQ6K,UAAWtiB,GAC7CrH,YAAa4pB,GAAchS,QAAGkH,WAAQ8J,QAASvhB,MAE1DwiB,wBAAyB,CAAC/K,EAAQ6J,EAAKthB,QAExBshB,EADEthB,EAAI6f,YAAc,SAAMpI,WAAQgL,mBAAehL,WAAQiL,cAC3C1iB,IAE7B2iB,gBAAiB,CAAClL,EAAQ6J,EAAKthB,uBACnB0Q,KAAK,0BAAQ8O,YAAY,MAC/Bxf,EAAI6f,uCAAkB+C,UAAU,kBACrBtB,EAAK5Q,EAAE6Q,QAASvhB,MAIlBshB,QAAK7J,WAAQhO,QAASzJ,IAErC6iB,uBAAwB,CAACpL,EAAQ6J,EAAKthB,kBAEvBshB,EADE,0BAAQ9B,mBAAWxf,EAAI8f,QAAQ,SAAA,0BAAQN,mBAAUloB,UAAU,IAC/C0I,KAIxBmiB,GAEF,CACHS,OAAQ,CAACnL,EAAQ6J,EAAKthB,kBACdA,EAAI6f,YAAc,6BAAa+C,UAAU,GAAK,CAACtB,GAAO,IAE9DwB,MAAO,CAACrL,EAAQ6J,EAAKthB,kBACb,IAAIrI,MAAMqI,EAAIygB,UAAU,0BAAQqC,SAAS,IAAIzB,KAAKC,IAE1DyB,YAAa,CAACtL,EAAQ6J,EAAKthB,iBACtB8iB,EAAQ,0BAAQA,SAAS,SACzB9iB,EAAI6f,YAAcpI,EAAOuL,kBACnB,WAAOC,eAAe,GAEzB,IAAItrB,MAAMmrB,GAAOzB,KAAKC,IAE9B4B,iBAAkB,CAACzL,EAAQ6J,EAAKthB,kBACxB,IAAIrI,MAAMqI,EAAIygB,UAAU,0BAAQqC,SAAS,IAAIzB,KAAKC,GACvDtnB,QAAS,CACTuW,EAAE,GAAKvQ,EAAI8f,QAAQ,IACnBvP,EAAE,GACFA,EAAE,GAAKvQ,EAAI8f,QAAQ,QAGtBqD,YAAa,CAAC1L,EAAQ6J,EAAKthB,WAEpB8iB,EADQ9iB,EAAIyf,eAAe1H,OAAOuJ,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,KAC5C7J,EAAO2L,YAAc3L,EAAO4L,YAAc5L,EAAO6L,mBAChE,IAAI3rB,MAAMmrB,GAAOzB,KAAKC,IAE9BiC,mBAAoB,CAAC9L,EAAQ6J,EAAKthB,iBAC3B6S,EAAS9a,KAAKoD,IAAI,EAAGsc,EAAO+L,cAC5BhM,EAAQxX,EAAIyf,eAAe1H,OAAOuJ,EAAI,GAAKzO,EAAQ,EAAGyO,EAAI,GAAKzO,GAC/DiQ,EAAQ/qB,KAAKoD,IAAI,EAAGpD,KAAK0rB,oBAAsBC,gBAAgB,IAAMjM,EAAOkM,8BAC3E,IAAIhsB,MAAMmrB,GAAOzB,KAAKC,IAE9BsC,cAAe,CAACC,EAASvC,EAAKthB,IACtB,IAAI,IAAIrI,MAAM,KAAKqC,KAAI,CAAC8pB,EAAGhrB,WAC3BiG,EAAwB,EAApBhH,KAAKC,MAAMc,EAAI,GAAS,EAAIkH,EAAI8f,QAAQ,GAAKwB,EAAI,SAGpD,CAACviB,EAFEhH,KAAKoD,IAAI6E,EAAI4f,SAAUP,GAAQ3H,GAAM,EAAG,GAAI3Y,KACxB,EAApBhH,KAAKC,MAAMc,EAAI,GAAS,EAAIkH,EAAI8f,QAAQ,GAAKwB,EAAI,OAI7Dc,UAAW,CAAC3K,EAAQ6J,EAAKthB,IACjBqiB,GAAaf,QAAK7J,WAAQsM,MAAO/jB,GAAKgkB,YACrC3B,GAAa9R,QAAGkH,WAAQwM,MAAOjkB,KAGxCkkB,cAAe,CAACzM,EAAQ6J,EAAKthB,wBAErBmkB,GAAU7C,EADPthB,EAAI8f,QAAQ,0BAAQO,UAAU,GAAKrgB,EAAI8f,QAAQ,0BAAQO,UAAU,eAAaA,UAAU,8BAAc+D,YAAY,KAG7HC,YAAa,CAACR,EAASvC,EAAKthB,WACrB8iB,EAAQ,EAAI9iB,EAAI8f,QAAQ,SACvB,IAAI,IAAInoB,MAAMmrB,IAAQ9oB,KAAI,IAAM,CACtCsnB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrB,EAAI9f,EAAI8f,QAAQ,IAChBwB,EAAI,GAAKthB,EAAI8f,QAAQ,QAGvBwE,KAAM,CAAC7M,EAAQ6J,EAAKthB,WACb8iB,EAAQ,EAAI9iB,EAAI8f,QAAQ9f,EAAI8f,QAAQ9f,EAAIygB,gBAAUhJ,WAAQqL,eACzD,IAAI,IAAInrB,MAAMmrB,IAAQ9oB,KAAI,IAAM,CACtCsnB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrB9f,EAAI8f,QAAQ,KACZwB,EAAI,GAAKthB,EAAI8f,QAAQ,QAGvByE,UAAW,CAAC9M,EAAQ6J,EAAKthB,WAClB8iB,EAAQ9iB,EAAI8f,QAAQ,EAAI9f,EAAI8f,QAAQ9f,EAAIygB,gBAAUhJ,WAAQqL,eACzD,IAAI,IAAInrB,MAAMmrB,IAAQ9oB,KAAI,IAAM,CACtCsnB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrB9f,EAAI8f,QAAQ,KACZwB,EAAI,GAAKthB,EAAI8f,QAAQ,QAGvB0E,UAAW,CAACX,EAASvC,EAAKthB,IAElBmkB,GAAU7C,EADPvpB,KAAKoD,IAAI6E,EAAI4f,SAAUP,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,OAG3DmD,wBAAyB,CAACZ,EAASvC,EAAKthB,WACjCf,EAAIlH,KAAKoD,IAAI6E,EAAI4f,SAAUP,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,aACnD6C,GAAU7C,EAAKthB,EAAI8f,QAAY,EAAJ7gB,KAEnCylB,wBAAyB,CAACb,EAASvC,EAAKthB,IAEhCmkB,GAAU7C,EADPvpB,KAAKoD,IAAI6E,EAAI4f,SAAUP,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,OAG3DqD,QAAS,CAACd,EAASvC,EAAKthB,IAChB,CAAC,CACPshB,EAAI,GAAK,EAAIthB,EAAI8f,QAAQ,GACzBwB,EAAI,GACJA,EAAI,GAAK,EAAIthB,EAAI8f,QAAQ,KAG3B8E,UAAW,CAACnN,EAAQ6J,EAAKthB,gBACuB,IAA3CA,EAAI8f,oBAAgB8C,UAAU,GAAK,IAAW,OAC3C3jB,EAAIe,EAAI8f,QAAQ9f,EAAI8f,QAAQ,KAAW,MACzC7gB,EAAIe,EAAI4f,UAAsD,GAA1C5f,EAAI8f,mCAAiB8C,UAAU,GAAK,GAAS,OAG7D,CAAC,CAFE5iB,EAAI8f,QAAQ,IAAMwB,EAAI,GAEpBriB,EADFe,EAAI8f,QAAQ,IAAMwB,EAAI,YAI3B,IAERuD,KAAM,CAAChB,EAASvC,IACR,CAACA,GAETwD,MAAO,CAACrN,EAAQ6J,EAAKthB,sBAEbmkB,GAAU7C,EADPthB,EAAI8f,mCAAiBiF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,KAGvGC,aAAc,CAACzN,EAAQ6J,EAAKthB,sBAEpBmkB,GAAU7C,EADPthB,EAAI8f,QAAQ9f,EAAI8f,mCAAiBiF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,MAGnHE,kBAAmB,CAAC1N,EAAQ6J,EAAKthB,wBAEzBmkB,GAAU7C,EADPthB,EAAI8f,QAAQ9f,EAAI8f,QAAQ9f,EAAI8f,mCAAiBiF,WAAW,8BAAcC,cAAc,+BAAeC,iBAAiB,+BAAeA,iBAAiB,MAG/JG,gBAAiB,CAACvB,EAASvC,EAAKthB,IAExBmkB,GAAU7C,EADPthB,EAAI8f,QAAQwB,EAAI,GAAK,KAGhC+D,oBAAqB,CAACxB,EAASvC,IAEvB6C,GAAU7C,EADPjC,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,MAGpCgE,MAAO,CAACzB,EAASvC,EAAKthB,IAEdmkB,GAAU7C,EADPthB,EAAI8f,QAAQwB,EAAI,GAAK,KAGhC3d,OAAQ,CAACkgB,EAASvC,EAAKthB,IACf,CAAC,CACPshB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrBwB,EAAI,GACJA,EAAI,GAAKthB,EAAI8f,QAAQ,MAGvByF,2BAA4B,CAAC9N,EAAQ6J,mBAC9BnhB,EAASkf,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,KAClClmB,EAAM+E,6BAAkBogB,uBACxBplB,EAAMgF,6BAAkBqgB,iBAAiBvI,EAAAA,UACvCqJ,EAAI,GAAKlmB,GAAOkmB,EAAI,GAAKnmB,EAAO,CAACmmB,GAAO,IAEjDkE,WAAY,CAAC/N,EAAQ6J,EAAKthB,kBACe,IAApCA,EAAI8f,QAAQ,WAAO8C,UAAU,GACzB,CAAC,CACPtB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrB9f,EAAI8f,QAAQ,KACZwB,EAAI,GAAKthB,EAAI8f,QAAQ,MAGhB,KAKT,YAAyBwB,EAAeF,EAAkBphB,aACrDylB,EAAY,CAACnE,aACNoE,KAAYtE,EAAW,CACduE,GAAmBrF,GAAU,0BAAU3rB,QAAQ,aAEtD8wB,EAAUzB,YACrB2B,GAAmBrF,GAAUoF,EAAS/wB,OAAO+wB,EAAUE,EAAK5lB,gBAGnD4lB,KAAOH,IACblG,WAAW5W,KAAK,CAACid,EAAK,IAI5B,MAAMD,GAEF,CACH7C,MAAO,EAAGA,MAAAA,GAASxB,EAAKthB,IAChB,IAAIrI,MAAMqI,EAAIygB,gBAAUqC,IAAS,IAAIzB,KAAKC,GAElDuE,qBAAsB,EAAG/C,MAAAA,GAASxB,EAAKthB,IAC/B,IAAIrI,MAAMqI,EAAIygB,gBAAUqC,IAAS,IAAIzB,KAAKC,GAC/CtnB,QAAS,CACTuW,EAAE,GAAKvQ,EAAI8f,QAAQ,IACnBvP,EAAE,GACFA,EAAE,GAAKvQ,EAAI8f,QAAQ,OAGtBgG,iBAAkB,IAAKxE,IACf,CAACA,GAETyE,aAAc,EAAG5lB,OAAAA,GAAUmhB,EAAKthB,IACxBmkB,GAAU7C,EAjSnB,SAAsBnhB,EAAaH,mBAC7B0H,GAASvH,SAAe,IAAI5E,MAAM,8BACZ,iBAAhB4E,EAAOxL,YACVqxB,GAAc7lB,UAEdmgB,GAAUngB,EAAOxL,WACnB,kBAAmBqxB,GAAc7lB,EAAOhK,WACxC,UAAW,OACTiF,EAAM4qB,GAAc7lB,EAAOogB,eAC3BplB,EAAM6qB,GAAc7lB,EAAOqgB,sBAC1BplB,EAAM4E,EAAI8f,QAAQ3kB,EAAMC,EAAM,OAEjC,mBAAoB,OAClBA,EAAM4qB,GAAc7lB,EAAOogB,eAC3BplB,EAAM6qB,GAAc7lB,EAAOqgB,eAC3B3I,EAAI7X,EAAI8f,QAAQ3kB,EAAMC,cAAc6oB,SAAS,GAAK,UACjD7oB,EAAM4E,EAAI8f,QAAQjI,cAAYoM,SAAS,QAE1C,wBAAyB,OACvB7oB,EAAM4qB,GAAc7lB,EAAOogB,eAC3BplB,EAAM6qB,GAAc7lB,EAAOqgB,eAC3ByD,EAAQ,WAAOA,SAAS,EACxBgC,EAAK7qB,EAAM6oB,EAAQjkB,EAAI8f,QAAQ3kB,EAAMC,EAAM6oB,EAAQ,GACnDnM,EAAK1c,EAAM4E,EAAI8f,QAAQmG,EAAK7qB,UAC3BA,EAAM4E,EAAI8f,QAAQhI,EAAK1c,EAAM6oB,OAEhC,YAAa,OACX7oB,EAAM4qB,GAAc7lB,EAAOogB,eAC3BplB,EAAM6qB,GAAc7lB,EAAOqgB,eAC3B0F,EAAU,WAAOA,WAAW,KAC9BA,GAAW/qB,EAAMC,SACbA,EAAM4E,EAAI8f,QAAQ3kB,EAAMC,EAAM,SAEhC6qB,KAAY7qB,EAAM8qB,GAAW,EAC7BpO,EAAM3c,EAAMC,EAAO6qB,SAClB7qB,EAAM4E,EAAI8f,QAAQhI,EAAK,GAAK9X,EAAI8f,QAAQmG,EAAK,iBAEtC,IAAI1qB,MAAM,2BAA2B4E,EAAOxL,SA4PrCwxB,CAAahmB,EAAQH,IAE5CwkB,UAAW,IAAKlD,EAAKthB,IAEbmkB,GAAU7C,EADPvpB,KAAKoD,IAAI6E,EAAI4f,SAAUP,GAAQ3H,GAAM,EAAG,GAAI4J,EAAI,OAG3D8E,UAAW,IAAK9E,EAAKthB,IACb,CAAC,CACPshB,EAAI,GAAKthB,EAAI8f,QAAQ,IACrBwB,EAAI,GACJA,EAAI,GAAKthB,EAAI8f,QAAQ,MAGvBuG,kBAAmB,EAAG1C,qBAAAA,EAAsBH,aAAAA,EAAcE,aAAAA,GAAgBpC,EAAKthB,WACxE6S,EAAS9a,KAAKoD,IAAI,EAAGqoB,GACrBhM,EAAQxX,EAAIyf,eAAe1H,OAAOuJ,EAAI,GAAKzO,EAAQ,EAAGyO,EAAI,GAAKzO,GAC/DiQ,EAAQ/qB,KAAKoD,IAAI,EAAGpD,KAAK0rB,mBAA+B,IAAME,WAC7D,IAAIhsB,MAAMmrB,GAAOzB,KAAKC,IAE9BgF,sBAAuB,EAAGlD,YAAAA,EAAaC,YAAAA,EAAaC,YAAAA,GAAehC,EAAKthB,WACjEwX,EAAQxX,EAAIyf,eAAe1H,OAAOuJ,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,YAE3D,IAAI3pB,MADG6f,EAAQ4L,EAAcC,EAAcC,GAC1BjC,KAAKC,IAE9BiF,cAAe,EAAGC,UAAAA,EAAWC,SAAAA,GAAYnF,EAAKthB,IACtC,CAAC,CACPshB,EAAI,GAAKthB,EAAIygB,UAAU+F,GACvBlF,EAAI,GAAKthB,EAAIygB,UAAUgG,GACvBnF,EAAI,GAAKthB,EAAIygB,UAAU+F,KAGzBE,cAAe,EAAG9D,OAAAA,GAAUtB,EAAKthB,IACzBA,EAAI6f,YAAc,aAAe,GAAK,CAACyB,GAAO,aCjbtDnlB,YAAY9D,iBAVY,mBACK,mBACC,mBACA,mBACD,mBACA,yBAEmB,gBACtB,QAGnBJ,EAAS,IAAI2f,EAAavf,QAC3BsuB,oBAAsB,IAAIjH,EAAYznB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACjG2uB,oBAAsB,IAAIlH,EAAYznB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACjG4uB,gBAAkB,IAAInH,EAAYznB,KAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,SACpE6uB,WAAa,IAAIpH,EAAYznB,MAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGvFkE,MAAM4qB,EAAerR,EAAehC,EAAesT,EAAiB9mB,QACrE6mB,SAAWA,OACXE,WAAwC,EAA3BF,EAASG,qBACtBC,YAAuC,EAAzBJ,EAASK,mBACvBC,YAActvB,KAAKC,MAAM+uB,EAAS5mB,OAAS7D,KAAK6qB,aAEjDJ,EAASO,WAAa5R,EAAQ,MACzB,EAAY,EAARA,IACJ,EAAY,EAARhC,QAER6T,WAAa,SAAoB,KAAM,WACvCC,WAAa,IAAgB,KAAM,SAEnCC,iBAAmB9vB,MAAMuI,GAAOmhB,KAAK,WACrC2F,QAAUA,EAGT7qB,mBAAmB4C,SACnBqK,EAAOzR,MAAM2E,KAAK+qB,YAAc/qB,KAAK6qB,aACrCO,EAAK3vB,KAAKC,MAAM+G,EAAIzC,KAAK2qB,YACzBU,EAAK5vB,KAAKC,MAAM+G,EAAIzC,KAAK2qB,YAAc3qB,KAAK2qB,WAC5CW,EAAStrB,KAAKurB,gBAAgBH,GAC9BI,EAASxrB,KAAKurB,gBAAgBH,EAAK,WAEhCzoB,EAAI3C,KAAK+qB,YAAc,EAAGpoB,GAAK,EAAGA,GAAK,UACtC8oB,EAAKzrB,KAAK6qB,YAAaY,GAAM,EAAGA,GAAM,EAAG,OAC3CC,EAAKD,EAAKzrB,KAAK6qB,cACXloB,EAAI3C,KAAK6qB,YAAcY,IvBmEf/sB,EuBlEFgtB,EvBkEa/sB,EuBlET0sB,EvBkEoBzsB,EuBlEhB0sB,EAAO3oB,GvBkEoBgpB,EuBlEhBL,EAAO3oB,EAAE,GvBkEkB3D,EuBlEdwsB,EAAO7oB,GvBkEkByR,EuBlEdoX,EAAO7oB,EAAE,GvBmEhE5D,GAAKJ,EAAGI,GAAKL,EAAGE,EAAG+sB,GAAI5sB,GAAKL,EAAGM,EAAGoV,SADpB1V,EAAWC,EAAWC,EAAW+sB,EAAW3sB,EAAWoV,SuB/DpEtH,EAGAjN,gBAAgB4C,SACjBmpB,EAAe5rB,KAAKmrB,iBAAiB1oB,EAAIzC,KAAK0qB,YAChDkB,SAAqBA,QAEnB9e,EAAOzR,MAAM2E,KAAK+qB,YAAc,GAEhCc,EAAU,QAAU7rB,KAAKyqB,SAASqB,SAASC,SAC3CC,EAAS,QAAUhsB,KAAKyqB,SAASqB,SAASG,QAC1CC,EAAWL,EAAU7rB,KAAKyqB,SAASqB,SAASK,UAC5CC,EAAUJ,EAAShsB,KAAKyqB,SAASqB,SAASO,SAC1CC,EAAgBtsB,KAAKyqB,SAAS8B,sBAAwBvsB,KAAKwsB,iBAAiB/pB,GAAK,UAE9EE,EAAI,EAAGA,GAAK3C,KAAK+qB,YAAapoB,GAAK,EAAG,KAC1CuY,EAAQlb,KAAKysB,oBAAoBhqB,EAAGE,EAAG3C,KAAKuqB,gBAAgBmC,eAAe,GAAIC,GAAId,EAASG,EAAQE,EAAUE,SAG5GQ,IAFU,EAAQ,EAAJjqB,EAAQ3C,KAAK+qB,YAAcuB,GACrBtsB,KAAKyqB,SAASoC,eAAiB7sB,KAAKyqB,SAASqC,eAC5C9sB,KAAKirB,YAAcjrB,KAAKkrB,cAC1C0B,KAAqB,EAAI,EAAI,GAElC5sB,KAAKyqB,SAASsC,UAAUrrB,KAAO,MAC1BsrB,GACPhtB,KAAKyqB,SAASsC,UAAUrsB,OACxBwa,QACM6P,YAAcpoB,EAAK3C,KAAKyqB,SAASsC,UAAUzW,QAAYtW,KAAKyqB,SAASsC,UAAUrrB,OAInF1B,KAAKyqB,SAASwC,aAAavrB,KAAO,MAC7BsrB,GACPhtB,KAAKyqB,SAASwC,aAAavsB,OAC3Bwa,KACMlb,KAAKyqB,SAASwC,aAAa3W,QAAYtW,KAAKyqB,SAASwC,aAAavrB,SAGrEiB,GAAKuY,cAGNiQ,iBAAiB1oB,EAAIzC,KAAK0qB,SAAW5d,EACnCA,EAGAjN,iBAAiB4C,SAClByY,EAAQlb,KAAKwqB,WAAW/O,OAAW,IAAJhZ,EAAS,GAAIzC,KAAKwqB,WAAWkC,eAAe,GAAIC,GAAI,EAAG,GAAG,GAEzFhuB,EAAQ,WADHuc,EAAQ,EAAc,IAARA,EAAcA,GACb,SAClBvc,EAAI,EAAS,oBAAJA,EAA4C,WAAjBlD,KAAKqD,IAAIH,EAAG,GAGjDkB,oBAAoB4C,EAAWE,EAAW6U,EAAWqU,EAAiBG,EAAgBE,EAAkBE,OAC3G1tB,EAAI,EACJC,EAAI,EACJC,EAAI,EACJ+sB,EAAI,UAECnvB,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,OACzB0wB,EAAK9J,EAAY+J,KAAK1qB,EAAIopB,EAAUF,GACpCyB,EAAKhK,EAAY+J,KAAKxqB,EAAIqpB,EAASL,GACnC0B,EAAKjK,EAAY+J,KAAK3V,EAAIqU,EAAUF,GACpC3sB,EAAIgtB,EAASL,EAEb2B,EAAgBttB,KAAKqqB,oBAAoBqC,eAAelwB,GAC1D8wB,OACEA,EAAc7R,OAAOyR,EAAIE,EAAIC,EAAIruB,EAAG2D,EAAI3D,GAAK2sB,SAG7C4B,EAAgBvtB,KAAKsqB,oBAAoBoC,eAAelwB,MAC1D+wB,OACEA,EAAc9R,OAAOyR,EAAIE,EAAIC,EAAIruB,EAAG2D,EAAI3D,GAAK2sB,GAG/CnvB,EAAI,EAAG,OACJgxB,EAAYxtB,KAAKuqB,gBAAgBmC,eAAelwB,GAClDgxB,OACEA,EAAU/R,OACd2H,EAAY+J,KAAK1qB,EAAIypB,EAAWP,GAChCvI,EAAY+J,KAAKxqB,EAAIypB,EAAUT,GAC/BvI,EAAY+J,KAAK3V,EAAI0U,EAAWP,GAChCS,EAAUT,EACVhpB,EAAIypB,EAAUT,GACXA,MAID,SAGCqB,GAAYtuB,EAAI,IAAKC,EAAI,OAAU,GAAK,GAAK,ICjItD,MAEM8uB,GAAmD,CACxDC,gBAAiB,CAAC,IAAK,IAAK,KAC5BC,kBAAmB,CAAC,GAAI,GAAI,KAC5BC,iBAAkB,CAAC,IAAK,IAAK,GAC7BC,kBAAmB,CAAC,GAAI,GAAI,IAC5BC,sBAAuB,CAAC,GAAI,GAAI,IAChCC,oBAAqB,CAAC,GAAI,GAAI,IAC9BC,wBAAyB,CAAC,GAAI,IAAK,IACnCC,iBAAkB,CAAC,GAAI,GAAI,GAC3BC,mBAAoB,CAAC,GAAI,GAAI,IAC7BC,iBAAkB,CAAC,IAAK,IAAK,IAC7BC,sBAAuB,CAAC,IAAK,IAAK,IAClCC,uBAAwB,CAAC,IAAK,GAAI,IAClCC,2BAA4B,CAAC,IAAK,GAAI,IACtCC,0BAA2B,CAAC,GAAI,IAAK,KACrCC,mBAAoB,CAAC,GAAI,GAAI,IAC7BC,sBAAuB,CAAC,IAAK,IAAK,MAGnC,IAAIhY,GACAiY,GACAC,GAAsB,eAEIhY,EAAY7S,EAAgB8S,kBACrDiO,GAAajO,EAAQvc,QAAS,QAAS,OACpCowB,SAAEA,EAAUhwB,aA6CpB,SAAmBkc,EAAgBC,SAC5B6T,EAAWmE,EAAuBC,SAAS7W,YAAUC,YAAYtB,IAEjEE,EAAW,CAACF,EAAO,GAAGC,EAAQ7a,OAAQ6a,EAAQM,WAC/C3X,GAAUsX,EAAUJ,IAAa,IACxBtX,GAAU0X,MACV,SACPmF,EAAc,IAAI/E,EAAW,cAClB,IAAI6X,EAAoBlY,EAAQ7a,KAAMigB,EAAayO,SAE9D,CACNA,SAAAA,EACAhwB,UAAWi0B,IAzDqBK,CAAUpY,EAAOC,GAE3C7Z,EAAQ,IAAIiyB,IAAYpY,EAAQN,OAAQM,EAAQhT,MAAO6mB,EAASvP,MAAM+T,KAAMxE,EAASvP,MAAMrX,UAC3FqrB,SAASC,EAAW,WAAQjY,SAAS,0BAErCkY,EAAOtrB,EAAIgJ,aACRrK,EAAI,EAAGA,EAAImU,EAAQhT,MAAOnB,GAAK,UAC9BE,EAAI,EAAGA,EAAI8nB,EAASvP,MAAMrX,OAAQlB,GAAK,EAAG,OAC5CnG,EAAQ,EAAJiG,EAAsC,KAApByY,MAAMrX,OAAOlB,EAAE,GAASmB,EAAIF,MAClDyrB,EAAQtyB,EAAMuyB,cAAc,CAAC7sB,EAAImU,EAAQN,OAAQ3T,EAAI8nB,EAASvP,MAAM+T,KApCpE,IAqCA/S,EAAQ,YAAOmT,EAAME,cAAc,CAAC,EAAG,EAAG,KAC3C/yB,GAAK0f,EAAM,KACX1f,EAAI,GAAK0f,EAAM,KACf1f,EAAI,GAAK0f,EAAM,KACf1f,EAAI,GAAK,iBAMX/B,EAAY,IAAI+0B,GAAuB5Y,EAAQ7a,QAC3C0zB,MAAM9Y,EAAMuE,MAAO,WAAQ+P,cAAc,EAAG,WAAQC,cAAc,EAAGtU,EAAQN,OAAQM,EAAQhT,aACjGkJ,EAAOhJ,EAAIgJ,KACX4iB,EAAkB,EAAZ5rB,EAAIF,cACPnB,EAAI,EAAGA,EAAImU,EAAQhT,MAAOnB,GAAK,EAAG,OACpCyY,EAAQzgB,EAAUk1B,mBAAmBltB,EAAImU,EAAQN,QAAQsZ,kBACtDjtB,EAAI,EAAGA,EAAIgU,EAAMuE,MAAMrX,OAAQlB,GAAK,EAAG,OACzCnG,EAAImG,EAAI+sB,EAAU,EAAJjtB,EACdyZ,EAAQ2T,GAAS3U,EAAOvY,KACzBnG,GAAK0f,IACL1f,EAAI,GAAK0f,IACT1f,EAAI,GAAK0f,IACT1f,EAAI,GAAK,MA6BjB,YAAkB0e,EAAiBvY,UAC9BuY,EAAMvY,GAAK,EACP,EAEJuY,EAAMvY,EAAE,GAAK,EACT,IAED,IAGR,SAIC9C,YACkBiwB,EACjBlsB,EACAqrB,EACAprB,oBAEKksB,KAAO,QACPC,OAAS,IAAI30B,MAAMI,KAAK0rB,KAAKvjB,EAAQ,IAAM,IAC9ClG,KAAI,CAAC8pB,EAAGhrB,WACFiG,MAAa,GAAKjG,EAClByzB,EAAStB,GAAWrxB,SAAUsB,EAAEomB,IAAI,KAAOviB,WAC7CwtB,QACEF,KAAKvzB,IAAK,EACRyzB,GAED,IAAIC,EAAMjB,EAAMprB,EAAQssB,EAASC,OAAO3tB,EAAG4tB,OAI9CxwB,SAASpF,EAAgC61B,QAC1CN,OAAO3zB,SAAQ,CAACk0B,EAAO/zB,KACtBwD,KAAK+vB,KAAKvzB,OACJuoB,KAAKwL,KACLC,aAAaD,EAAOD,QACzBP,KAAKvzB,IAAK,KACJ6P,KAAKkkB,OAKZ1wB,cAAcmlB,SACdyL,KAAkB,IAAM,SAAWX,MAAQ,UAC1C9vB,KAAKgwB,OAAOS,GAAYnB,cAActK,IC7I/C,MAAMhP,GAAS,CAAC,SAAU,cAAe,WAAY,kBAAmB,UAAW,YAAa,SAAU,SAAU,cAE9G0a,GAAkBzV,EAAc0V,YAEzBC,GAAqB,EAAG90B,MAAAA,EAAOgR,KAAAA,EAAM+jB,MAAAA,EAAOx2B,QAAAA,kBAClD6X,OAAEA,GAAWoD,MACZ8B,EAAO0Z,GAAYvvB,EAAS,IAC5BwvB,EAASC,GAAczvB,OAAqD,IAC5EuZ,EAAQmW,GAAa1vB,EAAS,IAAI2vB,IAA2B,CAAC,YAC/D5a,EAAS1V,EAAyB,CAAC,EAAG,IACtC8P,EAAM9P,EAAO,GACbuwB,EAAgBvwB,OAAe,GAE/B7E,EAAOP,OAAOM,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,WAC/C4a,WAyFoBnc,MACP,iBAARA,EAAkB,GACXi0B,EAAuBC,SAAS7W,YAAUC,YAAYtd,IACxDy2B,mBAAqB,mBAAqB,6BAElDz2B,EAAIwC,QAAQ,cAAe,SAC7B,gBACA,kBACG,CACN8Y,YAAa,CAAE2D,eAAiBC,WAAY,CAAC,IAAK,EAAG,EAAG,EAAG,EAAG,IAC9D3D,SAAU,CAAE0D,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IACzD1D,gBAAiB,CAAEyD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACzEzD,QAAS,CAAEwD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,IACrDxD,UAAW,CAAEuD,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,IAC1D1C,MAAO,CAAEyC,eAAiBC,WAAY,CAAC,EAAG,EAAG,EAAG,SAE7C,UACA,yBACG,CACN5D,YAAa,CAAE2D,YAAa,EAAGC,WAAY,CAAC,IAC5C3D,SAAU,CAAE0D,YAAa,EAAGC,WAAY,CAAC,IACzC1D,gBAAiB,CAAEyD,YAAa,EAAGC,WAAY,CAAC,IAChDzD,QAAS,CAAEwD,YAAa,EAAGC,WAAY,CAAC,IACxCxD,UAAW,CAAEuD,YAAa,EAAGC,WAAY,CAAC,IAC1C1C,MAAO,CAAEyC,YAAa,EAAGC,WAAY,CAAC,mBAGhC,CACN5D,YAAa,CAAE2D,eAAiBC,WAAY,CAAC,EAAG,IAChD3D,SAAU,CAAE0D,eAAiBC,WAAY,CAAC,EAAG,IAC7C1D,gBAAiB,CAAEyD,eAAiBC,WAAY,CAAC,EAAG,IACpDzD,QAAS,CAAEwD,eAAiBC,WAAY,CAAC,EAAG,IAC5CxD,UAAW,CAAEuD,eAAiBC,WAAY,CAAC,EAAG,IAC9C1C,MAAO,CAAEyC,YAAa,EAAGC,WAAY,CAAC,MA1HzBwX,CAAWv1B,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,eACtD6a,WA8HmBpc,YACN,iBAARA,SACFA,EAAIwC,QAAQ,cAAe,SAC7B,gBACA,mBACGuzB,kBAEAzV,EAAc4T,SAAS,CAAEvY,OAAQ,EAAGC,OAAQ,EAAGC,WAAY,WAG9DyE,EAAc4T,SAAS7W,YAAUC,YAAY,0BAAKiD,gBAAOoW,iBAxIjDC,CAAUz1B,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,eACpDya,EAAQka,EAmFf,SAAwB/jB,EAAWgK,EAA0CC,UACrEnK,KAAKC,UAAU,CAACC,EAAMgK,EAASC,EAAOC,WApFvBwa,CAAe1kB,EAAMgK,EAASC,GAAU,GACxD1e,EAAe,WAAKA,eAAM8E,QAAQ,cAAe,KAEjD6E,OAAEA,SAAQwB,GAAWiuB,GAAU,CACpC/vB,SACQ,CAAC,IAAMgP,EAAI7P,QAAS,IAAM6P,EAAI7P,oBAE3BiD,SACJ8S,EAAU,CAAEE,QAAAA,EAASC,OAAAA,EAAQkF,YAAa,GAAInB,OAAAA,EAAQxE,OAAQA,EAAOzV,QAASuW,MAAAA,EAAOrb,KAAAA,EAAM2U,IAAKA,EAAI7P,QAASxG,QAAAA,wBJkBvFsc,EAAY7S,EAAgB8S,mBACpDoF,YAAEA,SAAsB+S,GAAUpY,EAAOC,GAEzC9J,EAAOhJ,EAAIgJ,KACXue,GAAM5vB,KAAKi2B,MAAM9a,EAAQN,OAAO,IAAM,IAAMM,EAAQlG,IAAM,EAC1DihB,GAAMl2B,KAAKi2B,MAAM9a,EAAQN,OAAO,IAAM,IAAMM,EAAQlG,IAAM,EAC1Dgf,EAAkB,EAAZ5rB,EAAIF,MAAYgT,EAAQlG,IAC9BkhB,EAAM,EAAIhb,EAAQlG,IAElBmhB,EAAiB,CAACxG,EAAKzU,EAAQQ,WAAciU,GAAMzU,EAAQQ,MAAOR,EAAQlG,IAAMkG,EAAQQ,OACxF0a,EAAiB,CAACH,EAAK/a,EAAQQ,WAAcua,GAAM/a,EAAQQ,MAAOR,EAAQlG,IAAMkG,EAAQQ,OAExFE,EAAUV,EAAQkE,OAAOhF,IAAI,UAAwB,WAAYmE,8BAAe4X,EAAQ,GAAI,GAAI,KAAMC,QAA7D,EACzChX,EAAS,IAAIlE,EAAQkE,QAAQrR,WAAkB,WAANsoB,IACzC7W,EAA0B,IAAlBJ,EAAO9f,QAA2B,WAAYg3B,kBAAxB,WAAsC,IAAId,IAAIpW,MAAY+W,EAAQ,GAAI,GAAI,KAAMC,WAE3GrvB,EAAI,EAAGA,EAAI,IAAKA,GAAKmU,EAAQlG,YAC5B8G,EAAI,EAAGA,EAAI,IAAKA,GAAKZ,EAAQlG,IAAK,OACpClU,EAAIgb,EAAIkY,EAAMjtB,EAAImvB,EAClB1M,EAAKziB,EAAImU,EAAQlG,IAAO,IAAMkG,EAAQlG,IAAM8G,EAAIZ,EAAQlG,IACxDuhB,KAAc5G,GAAMzU,EAAQQ,MAC5B8a,KAAcP,GAAM/a,EAAQQ,UAC9B8E,EAAgB,CAAC,GAAI,GAAI,OACzBtF,EAAQkE,OAAOhF,IAAI,YAEdqc,GADM,0BAASjN,MAAMlJ,EAAYoW,SAASH,EAAQ,GAAIC,GACjCtb,EAAQqF,qBAC3Bf,GAASJ,EAAO,GAAI,OACxBjhB,EAAQqhB,EAAMgK,GAAGpK,EAAO,KACvBhc,EAAKD,GAAOmX,GAAO8E,EAAO,IAC3BuX,KAAsBvzB,MAAcA,GAAO,MACzC,CAACuzB,EAAYA,EAAYA,KAE7B71B,GAAK0f,EAAM,KACX1f,EAAI,GAAK0f,EAAM,KACf1f,EAAI,GAAK0f,EAAM,KACf1f,EAAI,GAAK,KIpDR81B,CAASxlB,EAAMhJ,EAAK8S,GACN,IAAhBlG,EAAI7P,uBACMswB,EAActwB,WACbA,QAAUY,YAAW,OAC9BZ,QAAU,QAEZ,oBAGQgC,EAAIC,KACTjC,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAU,IAALgC,IACjChC,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAU,IAALiC,eAC3BquB,EAActwB,WACvBA,QAAmB,gBAATxI,EAAyB,EAAI,qBAG9BoK,EAAGE,SACViU,EAAU,CAAEE,QAAAA,EAASC,OAAAA,EAAQkF,YAAa,GAAInB,OAAAA,EAAQxE,OAAQA,EAAOzV,QAASuW,MAAAA,EAAOrb,KAAAA,EAAM2U,IAAK,EAAGrW,QAAAA,GACnG6c,uBJuCsBP,EAAYlU,EAAW+U,EAAWZ,eAC1DoF,YAAEA,SAAsB+S,GAAUpY,EAAOC,IAExC2b,EAAIC,GAuJZ,UAAkB/vB,EAAG+U,GAAsBZ,SAGnC,IAFSA,EAAQN,OAAO,GAAK,IAAMM,EAAQlG,IAAM,GAAKkG,EAAQQ,SACrDR,EAAQN,OAAO,GAAK,IAAMM,EAAQlG,IAAM,GAAKkG,EAAQQ,OAzJpDqb,CAAQ,CAAChwB,EAAG+U,GAAIZ,UAC1BjS,GACNuS,MAAO8E,EAAYoW,SAASG,EAAI,GAAIC,IACjC,WAAYE,4BAAaH,EAAI,GAAIC,II7CfJ,CAAStlB,EAAMrR,KAAKC,MAAU,IAAJ+G,GAAUhH,KAAKC,MAAU,IAAJiH,GAAUiU,KAClEM,IAEZrX,iBACY,KAEV,CAAC8W,EAAOS,EAAOrb,EAAM+e,OAEd,KACL+V,MACChwB,QAAmB,gBAATxI,EAAyB,EAAI,SAG1C,CAACse,EAAOS,EAAOrb,EAAM+e,EAAQ+V,UAE1B8B,EAAeC,MACb/xB,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAKuW,EAAQwb,IACzC/xB,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAKuW,EAAQwb,IACvCA,sBAIR,MAAD,CAAK/5B,MAAM,6BACTk4B,KAAYnsB,GAAD,CAAK7L,MAAOg4B,EAAQ7Z,MAAiBre,MAAM,eAC7C,gBAATR,KACCw6B,GAAD,CAAS/5B,KAAK,QAAQI,QAASgZ,EAAO,qBACpC8D,GAAOtY,eACDo1B,EAAUhY,EAAOhF,IAAIpN,YACnB9D,GAAD,CAAK7L,MAAOmZ,EAAO,SAASxJ,KAClC1P,OAAQ85B,EACR55B,QAAmBgZ,EAAV4gB,EAAiB,UAAoB,YAC9C15B,QAAU4F,MACC,IAAIkyB,IAAI,CAACxoB,OACjBzH,0BAII,mBAA0B,iBAAT5I,eAC1BuM,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,YAChC9Y,QAAS,IAAMu5B,EAAoB,IAARvb,OAC3BxS,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,WAChC9Y,QAAS,IAAMu5B,EAAYvb,EAAQ,QAE3B,gBAAT/e,KACCuM,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,qBAChC9Y,QAAS,IAAM25B,GAAQj3B,wBAEhBma,gBAAgB,MAAD,CAAKpd,MAAM,iCAClC+L,GAAD,CAAK/L,MAAM,aAAaE,MAAO0G,OAAOvB,QAAQ6yB,GAC5CtnB,QAAO,EAAEupB,KAAa,UAANA,IAChBt1B,KAAI,EAAEs1B,EAAGnqB,KAAO,GAAGmqB,EAAE,GAAGC,kBAAmBpqB,EAAaqqB,QAAQ,OAAM33B,KAAK,WAE7E,SAAD,CAAQoF,IAAKqB,EAAQ4B,MAAM,MAAMC,OAAO,gBClG7BsvB,GAAmB,EAAGrmB,KAAAA,EAAMzS,QAAAA,EAASw2B,MAAAA,YAC3C3e,OAAEA,GAAWoD,MACZ8B,EAAO0Z,GAAYvvB,EAAS,IAC5BxF,EAAMq3B,GAAW7xB,EAAS8xB,OAE3BrxB,OAAEA,SAAQwB,GAAWiuB,GAAU,CACpC/vB,SACQ,CAAS,GAAR0V,EAAoB,GAARA,cAEVtT,MACAgJ,EAAMhJ,EAAK,CAAE/H,KAAAA,EAAM1B,QAAAA,EAASqH,KAAM,CAAS,GAAR0V,EAAY,IAAa,GAARA,QAI1DT,EAAQ/J,KAAKC,UAAUC,aACnB,KACL+jB,SAGF,CAACla,EAAOS,EAAOrb,EAAM80B,eAGtB,MAAD,CAAKh4B,MAAM,+BACT+L,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,YAChC9Y,QAAS,IAAM03B,EAASr1B,KAAKqD,IAAI,GAAIsY,EAAQ,QAC7CxS,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,WAChC9Y,QAAS,IAAM03B,EAASr1B,KAAKoD,IAAI,EAAGuY,EAAQ,QAC5CxS,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,qBAChC9Y,QAAS,IAAMg6B,EAAQC,WAExB,SAAD,CAAQ1yB,IAAKqB,EAAQ4B,MAAM,KAAKC,OAAO,SC9B5ByvB,GAAe,EAAGxmB,KAAAA,EAAM+jB,MAAAA,EAAOx2B,QAAAA,YACrC6X,OAAEA,GAAWoD,MACZvZ,EAAMq3B,GAAW7xB,EAAS8xB,OAC1Bjc,EAAO0Z,GAAYvvB,EAAS,GAC7B+U,EAAS1V,EAAyB,CAAC,EAAG,IACtC+V,EAAQ/J,KAAKC,UAAU,CAACC,KAExB9K,OAAEA,SAAQwB,GAAWiuB,GAAU,CACpC/vB,SACQ,CAAC,IAAK,gBAEHoC,SACJ8S,EAAU,CAAEN,OAAQA,EAAOzV,QAASuW,MAAAA,EAAOrb,KAAAA,EAAM1B,QAAAA,aCT9Bsc,EAAY7S,EAAgB8S,SACjDjb,EAAS,IAAI2f,EAAa1E,EAAQ7a,MAClCwW,EAASghB,EAAgB1E,SAAS7W,YAAUC,YAAYtB,IACxDuE,EAAQ,IAAIG,EAAY1f,EAAQ4W,GAEhC8Y,GAAMzU,EAAQN,OAAO,GAAK,IAC1Bqb,GAAM/a,EAAQN,OAAO,GAAK,IAC1BxJ,EAAOhJ,EAAIgJ,aACRrK,EAAI,EAAGA,EAAI,IAAKA,GAAK,UACpBE,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,OAC1BnG,EAAQ,EAAJiG,EAAY,EAAJE,EAAQ,IACpB4vB,KAAUlH,GAAMzU,EAAQQ,MACxBqU,KAAUkG,GAAM/a,EAAQQ,MACxB8E,EAAwC,OAAzBT,OAAO8W,EAAI9G,EAAI,GAAK,KACpCjvB,GAAK0f,IACL1f,EAAI,GAAK0f,IACT1f,EAAI,GAAK0f,IACT1f,EAAI,GAAK,MDPFsQ,EAAMhJ,EAAK8S,iBAEX/T,EAAIC,KACTjC,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAU,IAALgC,IACjChC,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAU,IAALiC,QAGvC,CAAC6T,EAAOS,EAAOrb,OAER,KACL80B,SAGF,CAACla,EAAOS,EAAOrb,EAAM80B,UAElB8B,EAAeC,MACb/xB,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAKuW,EAAQwb,IACzC/xB,QAAQ,GAAKyV,EAAOzV,QAAQ,GAAKuW,EAAQwb,IACvCA,sBAIR,MAAD,CAAK/5B,MAAM,+BACT+L,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,YAChC9Y,QAAS,IAAMu5B,EAAoB,IAARvb,OAC3BxS,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,WAChC9Y,QAAS,IAAMu5B,EAAYvb,EAAQ,SACnCxS,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,qBAChC9Y,QAAS,IAAMg6B,EAAQC,WAExB,SAAD,CAAQ1yB,IAAKqB,EAAQ4B,MAAM,MAAMC,OAAO,UE1C7B2vB,GAAuB,EAAG1mB,KAAAA,EAAM+jB,MAAAA,EAAOx2B,QAAAA,oBAC7C6X,OAAEA,GAAWoD,MACZvZ,EAAMq3B,GAAW7xB,EAAS8xB,OAC1Bnc,EAAOuc,GAAYlyB,EAAS,qBAC5B2pB,EAAYwI,GAAiBnyB,EAAS,KACtC0pB,EAAY0I,GAAiBpyB,EAAS,KACtCqyB,EAAYC,GAAiBtyB,GAAS,IACtCwvB,EAASC,GAAczvB,OAA6B,GACrD+U,EAAS1V,EAAO,GAChBkzB,EAAiBlzB,OAA2B,GAC5C+V,EAAQ/J,KAAKC,UAAU,CAACC,EAAMoe,EAAYD,IAE1CvpB,EAAO,SAAA,0BAAMwZ,gBAAOrX,UAAU,KAC9B7B,OAAEA,SAAQwB,GAAWiuB,GAAU,CACpC/vB,SACQ,CAACA,EAAMA,cAEJoC,SACJ8S,EAAU,CAAEM,MAAAA,EAAO+T,WAAAA,EAAYC,WAAAA,EAAY5U,OAAQA,EAAOzV,QAAS+C,MAAOE,EAAIF,MAAO7H,KAAAA,EAAM1B,QAAAA,MACnFyS,EAAMhJ,EAAK8S,iBAEb/T,KACLhC,SAAWgC,EAAKnB,qBAGVe,EAAGE,iBACVsvB,EAASx2B,KAAKC,MAAM+G,EAAIf,EAAO4U,EAAOzV,SACtCkzB,EAASryB,EAAOjG,KAAKoD,IAAI,EAAGpD,KAAK0rB,KAAKxkB,EAAIjB,wCAAgBwZ,gBAAO8Y,SAAS,GAC1EC,WL6CqBxxB,EAAWE,SAClC4tB,EAAQ5B,GAAWrxB,SAAU6yB,EAAS+D,UAAUt1B,EAAEomB,MAAQviB,GAAK0tB,EAASgE,UAAUv1B,EAAEomB,MAAQviB,OAC7F8tB,SAGEA,EAAMjB,cAAc8E,EAAShE,OAAO3tB,EAAGE,EArErC,IKmBO0xB,CAAcpC,EAAQ8B,KACzBE,EAAQ,KAAKF,MAAWE,EAAM1E,UAAUpyB,QAAQ,cAAe,OAAS,KAAK42B,MAEzFl0B,iBACY,KAEV,CAAC8W,EAAO5a,OAED,KACL+3B,EAAejzB,uBACJizB,EAAejzB,SAE1BgwB,QAEC+C,MACY/yB,QAAUyzB,aAAY,OAC7BzzB,SAAW,QAEhB,SAGH,CAAC8V,EAAO5a,EAAM80B,EAAO3Z,EAAOgU,EAAYD,EAAY2I,UAEjDW,EAAYjrB,GAAQ,kBAAM,4BAAmBrN,IAAI,qBAAqB,KAAI,CAAC5B,sBAG/E,MAAD,CAAKxB,MAAM,6BACTk4B,KAAYnsB,GAAD,CAAK7L,MAAOg4B,EAASl4B,MAAM,iBACtCg6B,GAAD,CAAS/5B,KAAK,OAAOI,QAASgZ,EAAO,qBACnC2S,GAAaxqB,OAAS,EAAW,mBAChCwP,GAAD,CAAU9Q,MAAOmZ,EAAO,iBAAkBrY,MAAO,GAAGqxB,IAAc3qB,YAAemzB,EAAc93B,OAAOiN,QACrGgB,GAAD,CAAU9Q,MAAOmZ,EAAO,iBAAkBrY,MAAO,GAAGoxB,IAAc1qB,YAAeozB,EAAc/3B,OAAOiN,SAErGgB,GAAD,CAAU9Q,MAAOmZ,EAAO,iBAAkBrY,MAAOqd,EAAO3W,SAAUkzB,EAAUnzB,SAAUi0B,EAAWp0B,QAAM,MAEvGyE,GAAD,CAAK9L,KAAM86B,EAAa,cAAgB,SAAU76B,MAAOmZ,EAAO,uBAAwB9Y,QAAS,IAAMy6B,GAAeD,QAEtHhvB,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,qBAChC9Y,QAAS,IAAMg6B,EAAQC,WAExB,SAAD,CAAQ1yB,IAAKqB,EAAQ4B,MAAOlC,EAAMmC,OAAQnC,MCrE/B8yB,GAAa,CAAC,YAAa,iBAAkB,0BAA2B,8BAA+B,wCASvF14B,MAAEA,UAAOzB,KAAS/B,QAAIu4B,iBACzC4D,GAAYlzB,EAAS,SAErBzF,GAAO,WACG0qB,EAAQ,QAGtB1qB,sBAEM,cAAPxD,IAAsB,WAAM2D,IAAI,IAAIC,OAAK,CAAC,YAAa,oBAAWgU,SAAS,UAAU,OAClFpD,EAAOhR,EAAMG,IAAI,IAAIC,OAAK,CAAC,YAAa,qBAC1C4Q,WAAc8jB,GAADjsB,KAAwB,CAAE7I,MAAAA,EAAOzB,QAAAA,EAASw2B,MAAAA,EAAO/jB,KAAAA,QAGxD,mBAAPxU,EAAyB,OACtBwU,EAAOhR,EAAMG,IAAI,IAAIC,OAAK,QAC5B4Q,WAAcwmB,GAAD3uB,KAAkB,CAAE7I,MAAAA,EAAOzB,QAAAA,EAASw2B,MAAAA,EAAO/jB,KAAAA,QAGlD,4BAAPxU,EAAkC,OAC/BwU,EAAOhR,EAAMG,IAAI,IAAIC,OAAK,QAC5B4Q,WAAc0mB,GAAD7uB,KAA0B,CAAE7I,MAAAA,EAAOzB,QAAAA,EAASw2B,MAAAA,EAAO/jB,KAAAA,QAGzD,4BAAPxU,GAA6C,gCAAPA,GAAwCusB,GAAaxqB,EAAS,OAAQ,QAAW,OACrHyS,EAAOhR,EAAMG,IAAI,IAAIC,OAAK,QAC5B4Q,WAAcqmB,GAADxuB,KAAsB,CAAE7I,MAAAA,EAAOzB,QAAAA,EAASw2B,MAAAA,EAAO/jB,KAAAA,kCCvCxChR,EAAkBiT,UACpCjT,EAAMgX,OAAO4hB,KAAKC,GAAiB,IAAIC,YAAU94B,GAAQA,EAAMgR,KAAM,CAAEiC,YAAAA,UAMlE4lB,GAAiD,CAC7D7Q,SAAS0D,EAAG3tB,IACJA,EAGRgG,QAAOg1B,WAAEA,GAAcjgB,EAAM/a,EAAO0K,UAC5BswB,EAAWH,KAAK10B,KAAM4U,EAAM/a,EAAO0K,IAG3C1E,MAAK4E,SAAEA,GAAYmQ,EAAM/a,EAAO0K,OAC1BlJ,MAAMiE,QAAQzF,UAAeA,QAC5B6W,EAAM7W,EAAM6D,KAAI,CAAC/C,EAAKf,IAC3B6K,EAASiwB,KAAK10B,KAAM4U,EAAKvI,KAAKzS,GAAQe,EAAI8c,KAAMlT,eAEtC7F,KAAKe,OAAOq1B,sBAAsBj7B,KACxC6E,GAAY7E,EAAM6E,UAEhBgS,GAGR7Q,KAAI4E,SAAEA,EAAUrH,UAAUwX,EAAM/a,EAAO0K,mBACxB,IAAV1K,eACEk7B,EAA8C,qBAAjC,WAAOC,qBAAYC,WAAiC,WAAMlmB,sBAAcmmB,eAAatgB,EAAMuG,EAAO6Z,WAAWziB,OAAOja,IAAI2D,OAAS,KAC9IyU,EAAW,UACVtU,KAAKvC,GAAOwC,mBACd04B,IACEt1B,OAAOrD,KAAK,WAAW8Q,cAAc,IAAIvD,SAASyK,OAEpDA,GAAK3P,EAASiwB,KAAK10B,KAAM4U,EAAKvI,KAAK+H,GAAIva,EAAMua,GAAI7P,iBAE3C7F,KAAKe,OAAOq1B,sBAAsBj7B,KACxC6E,GAAY7E,EAAM6E,UAEhBgS,GAGR7Q,QAAOs1B,gBAAEA,GAAmBvgB,EAAM/a,EAAO0K,MACpC1K,MAAAA,GAA0D,iBAAVA,SAC5CA,QAEF6W,EAAW,GACX0kB,EAAeD,EAAgBvgB,UAC9BxY,KAAKg5B,GACV3rB,WAAY2rB,EAAapC,GAAGF,QAAQle,KACpCvY,mBACMg5B,EAAMD,EAAahhB,GAAGsgB,KAAK10B,KAAM4U,EAAKvI,KAAK+H,GAAIva,EAAMua,GAAI7P,GAC3D8wB,MAAAA,MACCjhB,GAAKihB,gBAGD32B,KAAKe,OAAOq1B,sBAAsBj7B,KACxC6E,GAAY7E,EAAM6E,UAEhBgS,ICjDH4kB,GAAsD,CAC3DC,WAAY,EACZC,WAAY,EACZC,KAAM,KACNC,cAAU,GAGLC,GAGD,CACJ3rB,KAAM,CACLuH,MAAOvH,EAAKuH,MACZ1E,UAAW,CAAChE,EAAGrM,IAAMwN,EAAK6C,UAAUhE,EAAG,KAAMrM,GAAK,MAEnDo5B,KAAM,CACLrkB,MAAOqkB,EAAKl9B,KACZmU,UAAW,CAAChE,EAAGrM,IAAMo5B,EAAKC,KAAKhtB,EAAG,CACjCitB,eAAiB,IAANt5B,EAAkB,KAC7BkV,OAAqB,iBAANlV,EAAiB,EAAIA,mBAeXkM,KAAEA,QAAM5M,cAAOiT,SAAagnB,aAAQC,WAAYC,cAAUC,UAAaC,UAC5FjkB,OAAEA,GAAWoD,MACZ5D,EAAQD,GAAalQ,EAASsP,GAAMK,cACpCU,EAAQD,GAAapQ,EAASsP,GAAMM,aACrCpL,EAAWnF,EAA0B,MACrCw1B,EAAcx1B,IACdy1B,EAAWz1B,IAEX01B,EAAS11B,IAET21B,EAAsBtjB,GAAY,CAACujB,EAAkBC,WACpD3pB,EAAO4pB,GAAUF,EAAOC,UACvBd,GAAQ/jB,GAAQ/E,UAAUC,EAAMwoB,GAAO5jB,MAC5C,CAACA,EAAQE,OAEF,OACG/Q,QAAU,QAChB/E,GAAUiT,YAER4nB,EAASJ,EAAoBz6B,EAAOiT,KACnClO,QAAQ+1B,aAAaC,SAASF,SAC7B33B,KACA,8BAA8BE,GAAQF,cACtCiJ,MAAMjJ,KACP6B,QAAQg2B,SAAS,QAIjBh2B,QAAU,WACZhH,EAAQy8B,EAAOz1B,QAAQi2B,cACR,IAAjBj9B,EAAMmB,iBAEH8R,EAAO6oB,GAAQ/jB,GAAQL,MAAM1X,cAC5B41B,MAAMzX,YAAU+e,UAAUjqB,IAAO,SAChC9N,KACA,oBAAoBE,GAAQF,cAC5BiJ,MAAMjJ,OAGd,CAAClD,EAAOiT,EAAa2C,EAAQE,OAEtB,OACF/Q,QAAUm2B,EAAMC,KAAK,YACrBp2B,QAAQq2B,WAAW,CACzBC,SAAU,GACVC,iBAAiB,EACjBC,uBAAuB,MAEjBx2B,QAAQy2B,gBAAkB3b,EAAAA,IAC1B9a,QAAQ02B,GAAG,WAAalB,EAASx1B,QAAQ7B,OACzC6B,QAAQ+1B,aAAaY,QAAQ,mBAClC,OAEM17B,GAAO,OACH+E,gBAEH,KACL/E,KAAmB+E,YACrB,CAAC/E,OAEM,OACF+E,QAAQ42B,UAAU,cAA0B,SAAX/lB,KACjC7Q,QAAQ42B,UAAU,UAAsB,SAAX/lB,EAAoB,EAAI4jB,GAAO5jB,MAC5D7Q,QAAQ+1B,aAAaY,QAAQ,YAAY5lB,OACpC/Q,YACV,CAAC6Q,EAAQE,OAEF,KACLmkB,GAAUj6B,GAASiT,aACZ2oB,UAAUC,UAAUpB,EAAoBz6B,EAAOiT,IAAc6B,MAAK,cAI3E,CAACmlB,OAEM,QACLC,GAAcl6B,GAASiT,GAAehJ,EAASlF,QAAS,OACrD6J,EAAUpM,mBAAmBi4B,EAAoBz6B,EAAOiT,MACrDlO,QAAQmU,aAAa,OAAQ,gCAAgCtK,OAC7D7J,QAAQmU,aAAa,WAAY,GAAGtM,KAAQkJ,OAC5C/Q,QAAQ+2B,WAEhB,CAAC5B,OAEM,KACLC,GAAYK,EAAOz1B,YACfA,QAAQg2B,SAAS,MACjBh2B,QAAQg3B,eAEd,CAAC5B,sBAaF,MAAD,CAAKp9B,MAAM,8BACTg6B,GAAD,CAAS/5B,KAAK,OAAOI,QAASgZ,EAAO,mBAAoB4lB,UAAQ,mBAC/Dr4B,OAAOvB,QAAQo3B,IAAQ53B,KAAI,EAAES,OAC5ByG,GAAD,CAAK7L,MAAOmZ,EAAO,eAAe/T,KAAQnF,OAAQ0Y,IAAWvT,EAC5D/E,QAAS,KAAM2+B,OAfEl+B,EAeWsE,KAd1BsT,UAAU5X,UACNA,GAFU,IAACA,SAiBlB,KAAD,MACC4F,OAAOrD,KAAKu5B,IAASj4B,UACpBkH,GAAD,CAAK7L,MAAOmZ,EAAO,UAAU/T,KAAQnF,OAAQ4Y,IAAWzT,EACvD/E,QAAS,KAAM4+B,OAfEn+B,EAeWsE,KAd1BwT,UAAU9X,UACNA,GAFU,IAACA,WAkBpB,MAAD,CAAKvB,GAAG,SAASO,MAAM,aACtB,IAAD,CAAG8H,IAAKoF,EAAUkyB,MAAM,qCCjKQjgB,YACjCnY,YACCiT,EACiBolB,EACAC,EACAC,SAEXtlB,6CAGPjT,IAAI+U,UACI5U,KAAKk4B,OAAOtjB,GAGpB/U,IAAI+U,UACI5U,KAAKm4B,OAAOvjB,GAGpB/U,IAAI+U,EAAY/a,EAAYw+B,UACpBr4B,KAAKo4B,OAAOxjB,EAAM/a,EAAOw+B,ICRlC,MAAMC,GAAmB,CAAC,kBAAmB,kBAAmB,oBAAqB,sBAAuB,oBAAqB,cAAe,2BAA4B,wCAAyC,0CAA2C,cAAe,eAAgB,iBAAkB,iCAAkC,4BAA6B,oBAAqB,sBAAuB,sBAAuB,oBAAqB,sBAAuB,uBAAwB,yBAA0B,uBAAwB,2BAA4B,2BAA4B,+BAAgC,gCAAiC,oBAAqB,uBAAwB,qBAAsB,0BAA2B,2BAA4B,yBACtxBC,GAAe,CAAC,uBAAwB,sBAAuB,oBAAqB,oBAAqB,sBAAuB,wBAChIC,GAAkB,CAAC,iBAAkB,mBAAoB,qBAAsB,uBAAwB,mDAAoD,oDAAqD,kEAAmE,wBAAyB,2BAA4B,yBAA0B,uCAAwC,wCAAyC,oCACnbC,GAAe,CAAC,kBAAmB,oBAAqB,sBAAuB,oBAAqB,2BAA4B,wCAAyC,eAAgB,iBAAkB,4BAA6B,iCAAkC,oBAAqB,sBAAuB,sBAAuB,oBAAqB,2BAA4B,2BAA4B,gCAAiC,mBAAoB,wBAAyB,sBAAuB,wBAAyB,sBAAuB,sBAAuB,wBAAyB,uBAAwB,qBAAsB,2BAC7oBC,GAAY,CAAC,uBAAwB,+BAAgC,4BAA6B,aAAc,YAAa,YAC7HC,GAAa,CAAC,yCAA0C,sCAAuC,6CAA8C,qCAAsC,mCAAoC,uCAAwC,wCAAyC,2BAA4B,gCAAiC,yCAA0C,yCAA0C,qBAAsB,mBAAoB,gCAAiC,yBAA0B,0BAA2B,6BAA8B,uBAAwB,mDAC/mBC,GAAkB,CAAC,8BAA+B,uCASlDC,GAAY,IAAI7gB,YAAU8gB,UAC/BC,eACAA,gBACE,CAAEC,WAAY,iBAeQl9B,MAAEA,OAAOmW,UAAM5X,cAAS0U,gBAC1C6F,EAAO,IAAIggB,YAAU94B,IACpBm9B,EAAQC,EAAQ51B,GAAQxH,EAAMgX,OAAO4hB,KAAKyE,GAAYvkB,EAAMzV,GAAUrD,EAAMgR,MAAOmF,EAAM5X,EAAS0U,EAAa,WAC/G,0BAAQxK,gBAAOE,SAASiQ,MAAM9V,GAAWA,OAAM,MAAD,CAAK/F,MAAO,QAAQiD,EAAMgX,OAAOza,KAAKuc,UAAcwkB,gBAAet9B,EAAMgX,OAAOpZ,SAASkb,MAC5I,MAAD,CAAK/b,MAAM,eAAeogC,EAAQC,KACjC,MAAD,CAAKrgC,MAAM,aAAayK,IAChBA,EAGV,MAAM61B,GAAyB,CAC9BrV,SACQ,CAAC,KAAM,KAAM,MAGrBuV,SAAQ9mB,EAAQqC,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,IAC5C,CAAC,OAAO61B,GAAD50B,KAAmBE,OAAI0N,GAAJ,CAAYqC,KAAAA,EAAM/a,MAAAA,EAAOoY,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQ51B,IAAAA,MAAU,MAG5F7D,QAAO25B,QAAEA,EAASp8B,oBAAQy3B,GAAcjgB,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,SACrE+1B,EAAS5E,EAAW6E,WAAW9kB,GAAM,GACrC+kB,oBAAuBtkB,SAAW,IAAIuf,YAAUhgB,EAAKglB,WAAY,IAAI19B,OAAK0Y,EAAKilB,WAAY,CAAC1e,EAAO9F,WAAaT,GAC/GqkB,EAAQC,EAAQ51B,GAAQm2B,EAAOhiB,KAAKid,KAAK10B,KAAM25B,EAAa9/B,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,MAC1E,IAAnB81B,EAAQx+B,aACJ,CAACi+B,EAAQC,EAAQ51B,SAEnBw2B,oBAA4BC,eAAgB,IAAI79B,OAAK,GAAI,CAACif,EAAO4e,kCAA0B1kB,SAAU,IAAInZ,OAAK,GAAI,CAACif,EAAO9F,UAAYT,EAStIolB,IAAU,SAAD,CAAQngC,MAAO4/B,EAAOphC,KAAMkI,SAAWvB,GAR1C,CAAC3G,gBACNuG,EAAI,WAAQtB,SAAU28B,EAAE5hC,OAASA,OAASohC,EAC1CS,EAAMt7B,EAAE6Y,KAAKtK,UACbgtB,EAAWv7B,EAAEiM,OAChBjM,EAAEiM,OAAOmN,YAAUC,YAAYpe,IACN,YAAzBshB,EAAO4e,eAA6C,0CAAT1hC,MAAiC6hC,EAAI98B,OAAO6nB,QAAUiV,IAC/Fp+B,MAAMK,IAAIyY,EAAMoD,YAAU+e,UAAUoD,KAEkBh+B,CAAK6C,EAAE0B,OAA6B7G,QAC9F2/B,EAAQ97B,UAAU,SAAD,CAAQ7D,MAAO+E,EAAEvG,MACjC+hC,GAAWnoB,EAAM6nB,EAAkBO,YAAYz7B,EAAEvG,iBAG7C,CAAC4gC,WAAWe,EAAQd,GAAY51B,IAGxCzD,MAAK4E,SAAEA,EAAUrH,UAAUwX,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,SACxD42B,OAAEA,WAAQC,YAAUC,GAAcC,MACjCC,EAAUC,GAAep5B,EAAS,IAEnC8T,EAAUT,EAAKjR,aAAapI,KAAK,QACnCo9B,GAAWhvB,SAAS0L,GAAU,OAU1B,UARL,IAAIha,MAAM8f,EAAOyf,YAAal9B,KAAI,CAAC8pB,EAAGhrB,MACrCq+B,GAAD,CAAY5oB,KAAAA,EAAY2C,KAAMA,EAAKkmB,UAAUt+B,SAC7C,MAAD,CAAK3D,MAAM,yBAEM,IAAIwC,MAAM8f,EAAOyf,YAAYl9B,KAAI,CAAC8pB,EAAGhrB,kBACxCiI,EAASiwB,KAAK10B,KAAM4U,EAAKkmB,UAAUt+B,GAAI,0BAAQA,aAAIib,KAAMxF,EAAM5X,EAASi/B,EAAQ51B,GACjF,OAEU,YA0ElB,CAAC,OA7DQ,SAAD,CAAQ7K,MAAM,wBAAwBQ,aAAY6Z,GAASjB,EAAM,WAAY7Y,QAV9E,KACRiC,MAAMiE,QAAQzF,OAAgB,UAC7B4d,EAAOO,YAAU+e,UAAUtyB,EAAS0I,aACrCrR,MAAMK,IAAIyY,EAAM,CAAC,CAAE6C,KAAAA,EAAMnf,GAAI0I,SAAcnH,MAO4DP,GAAQ2N,sBAElHpN,GAASwB,MAAMiE,QAAQzF,IAAWA,EAAM6D,KAAI,EAAG+Z,KAAMsjB,EAAQziC,GAAI0iC,GAAOphC,QACrEA,IAAU8gC,WACL,MAAD,CAAK7hC,MAAM,sBAChB,QAAD,KAAQqa,GAASjB,EAAM,iBAAkB,IAAGpY,EAAMmB,OAAS0/B,OAC1D,SAAD,CAAQthC,QAAS,IAAMuhC,EAAYl/B,KAAKqD,IAAI47B,EAAW,GAAI7gC,EAAMmB,UAAWkY,GAASjB,EAAM,sBAAuB,SACjH,SAAD,CAAQ7Y,QAAS,IAAMuhC,EAAY9gC,EAAMmB,SAAUkY,GAASjB,EAAM,2BAGhErY,EAAQ8gC,SACJ,WAGFO,EAAQrmB,EAAKvI,KAAKzS,GAAOygC,YAAY,SACrCa,EAAqC,WAAzBz2B,EAASpM,KAAK4iC,GAC1BE,EAASX,EAAUQ,MACrBE,KAAyB,YAAqB,IAAXC,GAAwBthC,EAAMmB,OAAS,aACrE,MAAD,CAAKnC,MAAM,mBAAmBugC,gBAAe30B,EAAS/K,SAASuhC,MACpEJ,GAAD,CAAY5oB,KAAAA,EAAY2C,KAAMqmB,EAAOG,QAAM,MAC1C,SAAD,CAAQviC,MAAM,2BAA2BQ,aAAY,GAAG6Z,GAASjB,EAAM,cAAciB,GAASjB,EAAM,aAAc,UAAW7Y,QAASkhC,EAAOU,IAAO1hC,GAAQkM,iBAC3J,QAAD,KAAQ40B,GAAWnoB,EAAMgpB,EAAO,GAAGrhC,QAClCyhC,GAAD,CAAWl9B,IAAK68B,EAAKpmB,KAAMqmB,EAAOphC,MAAOkhC,EAAQjoB,OAAQrO,cA0BnD62B,GAADz2B,KAAgB1G,IAAK68B,EAAKpmB,KAAMqmB,EAAOnoB,OAAQrO,EAAU5K,MAAOkhC,GAAY,CAAC9oB,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQiC,QAX7E,CAC7B,CACCziC,KAAM,YACNC,MAAO,YACPkQ,SAAU,WACHJ,EAAI,IAAI+L,EAAK3Y,SACjBu/B,OAAO5hC,EAAO,EAAG,CAAEtB,GAAI0I,KAASyW,KAAMtY,GAAU47B,OAC7Cj/B,MAAMK,IAAIyY,EAAM/L,QAIjB,CAA8GnF,IAAKmB,OAAInB,GAAJ,CAAS9J,OAAkB,MAAI,EAAI,QAAgBC,EAAMmB,OAAS,EAAI,EAAI,OAClMkgC,KAAc,SAAD,CAAQriC,MAAM,2BAA2BQ,aAAY,GAAG6Z,GAASjB,EAAM,gBAAgBiB,GAASjB,EAAM,eAAgB,UAAW7Y,QAASmhC,EAASS,IAAO1hC,GAAQiM,gBAC/K,SAAD,CAAQ1M,MAAM,2BAA2BQ,aAAY6Z,GAASjB,EAAM,UAAW7Y,QAxB/D,IAAM6hC,EAAM9+B,SAAI,IAwBmE7C,GAAQuO,UAC1GhO,EAAMmB,OAAS,KAAM,MAAD,CAAKnC,MAAM,eAC9B,SAAD,CAAQA,MAAM,yBAAyBQ,aAAY6Z,GAASjB,EAAM,WAAY7Y,QAzB/D,WACVyP,EAAI,IAAI+L,EAAK3Y,QAClB4M,EAAEjP,EAAQ,GAAIiP,EAAEjP,IAAU,CAACiP,EAAEjP,GAAQiP,EAAEjP,EAAQ,MAC3CkC,MAAMK,IAAIyY,EAAM/L,IAsB6E4yB,SAAoB,IAAV7hC,GAAcN,GAAQmM,cAChI,SAAD,CAAQ5M,MAAM,yBAAyBQ,aAAY6Z,GAASjB,EAAM,aAAc7Y,QArB/D,WACZyP,EAAI,IAAI+L,EAAK3Y,QAClB4M,EAAEjP,EAAQ,GAAIiP,EAAEjP,IAAU,CAACiP,EAAEjP,GAAQiP,EAAEjP,EAAQ,MAC3CkC,MAAMK,IAAIyY,EAAM/L,IAkBiF4yB,SAAU7hC,IAAUC,EAAMmB,OAAS,GAAI1B,GAAQiM,mBAIrJ1L,GAASA,EAAMmB,OAAS,GAAKnB,EAAMmB,QAAU0/B,KAAc,MAAD,CAAK7hC,MAAM,sBACrE,SAAD,CAAQA,MAAM,wBAAwBQ,aAAY6Z,GAASjB,EAAM,cAAe7Y,QA/D9D,KACdiC,MAAMiE,QAAQzF,OAAgB,UAC7B4d,EAAOO,YAAU+e,UAAUtyB,EAAS0I,aACrCrR,MAAMK,IAAIyY,EAAM,IAAI/a,EAAO,CAAE4d,KAAAA,EAAMnf,GAAI0I,UA4D4D1H,GAAQ2N,iBAMlHpH,KAAI4E,SAAEA,OAAUrI,EAAMgB,UAAUwX,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,uBAC7D42B,OAAEA,WAAQC,YAAUC,GAAcC,KAElCiB,EAAU,IAAI9G,YAAUiE,GAAW,IAAI38B,OAAK,CAACuC,GAAWmW,EAAK9Z,eAK7Di6B,EAA8C,qBAAjC,WAAOC,qBAAYC,iBAAkCqE,WAASpE,eAAatgB,EAAMuG,EAAO6Z,WAAWziB,OAAOja,IAAI2D,OAAS,KACpI0/B,oBAAyBzuB,YAC5B6rB,aAAW,KAAO,CAAE6C,KAAMn8B,OAAOrD,KAAK,WAAW8Q,cAAc,MAC/D9Q,KACC24B,GAA8B,eAAhBngB,EAAKinB,OAAyB,CAC1B,iBAAVhiC,MAA4B,UACjCqT,EAAazN,OAAOvB,QAAQ,WAAWgP,cAAc,IACzDxP,KAAI,EAAES,EAAK6K,KAAY,CAAC7K,EAAK46B,aAAW,KAAO,CAAE6C,KAAM5yB,qBAClD9K,QAAQ,WAAWgP,cAAc,IAAI7Q,SAAQ,EAAE8B,EAAK6K,MAChC,iBAAfnP,EAAMsE,KACXrC,MAAMggC,OAAOC,IAAInnB,EAAKvI,KAAKlO,GAAM,yBAC3B6K,EAAOW,SAAS9P,EAAMsE,OAC5BrC,MAAMggC,OAAOC,IAAInnB,EAAKvI,KAAKlO,GAAM,4BAA6BtE,EAAMsE,OAGpE69B,aAAWv8B,OAAOw8B,YAAY/uB,IAAawnB,KAAK10B,KAAM4U,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,SAkC3F,CAAC,cA/BNi4B,EAAWjH,KAAK10B,KAAM07B,EAAS,WAAQz/B,SAAS,GAAIgW,EAAM5X,EAASi/B,EAAQ51B,GAAK,KAChF,SAAD,CAAQ7K,MAAM,wBAAwBQ,aAAY6Z,GAASjB,EAAM,OAAQ7Y,QAvB5D,WACP+E,EAAMu9B,EAAQz/B,QACfH,MAAMK,IAAIyY,EAAKvI,KAAKlO,GAAM6Z,YAAU+e,UAAUtyB,EAAS0I,cAqB8B7T,GAAQ2N,uBAGhF,iBAAVpN,GAAsB4F,OAAOvB,QAAQrE,GAAO6D,KAAI,EAAES,EAAK48B,wBAExDE,EAAQrmB,EAAKkmB,UAAU38B,GACvB+8B,EAAqC,WAAzBz2B,EAASpM,KAAK4iC,GAC1BE,EAASX,EAAUr8B,MACrB+8B,KAAyB,YAAqB,IAAXC,GAAwBthC,EAAMmB,OAAS,aACrE,MAAD,CAAKnC,MAAM,mBAAmBugC,gBAAe30B,EAAS/K,SAASuhC,MACpEJ,GAAD,CAAY5oB,KAAAA,EAAY2C,KAAMqmB,EAAOG,QAAM,MAC1C,SAAD,CAAQviC,MAAM,2BAA2BQ,aAAY,GAAG6Z,GAASjB,EAAM,cAAciB,GAASjB,EAAM,aAAc,UAAW7Y,QAASkhC,EAAOn8B,IAAO7E,GAAQkM,iBAC3J,QAAD,KAAQrH,KACPk9B,GAAD,CAAWl9B,IAAAA,EAAUyW,KAAMqmB,EAAOphC,MAAOkhC,EAAQjoB,OAAQrO,WAGrDy3B,EAAUnH,EACbgE,aAAW,KAAO,CAAE6C,KAAM,SAAA,WAAW1uB,qBAAa/O,MAAQ,KAC1DsG,GACC,0BAAYyI,qBAAa/O,KAA0B,iBAAX48B,KACvC,WAAW7tB,qBAAa/O,GAAKwL,SAASoxB,OACrCj/B,MAAMggC,OAAOC,IAAId,EAAO,4BAA6BF,YAGnDO,GAADz2B,KAAgB1G,IAAAA,EAAU2U,OAAQopB,EAAStnB,KAAMqmB,EAAOphC,MAAOkhC,GAAY,CAAC9oB,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQ51B,IAAAA,IAAnG,CAAyG3K,MAAOoF,IACrH+8B,KAAc,SAAD,CAAQriC,MAAM,2BAA2BQ,aAAY,GAAG6Z,GAASjB,EAAM,gBAAgBiB,GAASjB,EAAM,eAAgB,UAAW7Y,QAASmhC,EAASp8B,IAAO7E,GAAQiM,gBAC/K,SAAD,CAAQ1M,MAAM,2BAA2BQ,aAAY6Z,GAASjB,EAAM,UAAW7Y,QAH/D,IAAM6hC,EAAM9+B,SAAI,IAGmE7C,GAAQuO,iBAO/Gs0B,QAAO5pB,EAAQqC,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,IAC3C,CAAC,OAAO04B,GAADz3B,KAAkBE,OAAI0N,GAAJ,CAAYqC,KAAAA,EAAM/a,MAAAA,EAAOoY,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQ51B,IAAAA,MAAU,MAG3F7D,QAAO4X,KAAEA,EAAMra,yBAAQ+3B,oBAAiBkH,GAAqBznB,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,eAC1F42B,OAAEA,WAAQC,YAAUC,GAAcC,QAEV,GAA1B7lB,EAAKilB,WAAW7+B,QAgTtB,SAAqBqa,EAA6Bxb,eAC9B,YAAZwb,GACyC,eAA5C,0BAAOhd,eAAM8E,QAAQ,cAAe,MACpCiO,SAASvR,WAAOuD,QAnTgBk/B,CAAYnhB,EAAO9F,QAASxb,GAAQ,OAChE0iC,QAAEA,SAASC,GAqTpB,SAAiCC,EAA8B7nB,EAAiB/a,SACzE6iC,EAAoB,GACpBzX,EAAU0X,GAAwB9iC,EAAO6iC,GACzCF,EAAS,CACdnkC,KAAMokC,EAAepkC,KACrB+E,OAAQ4+B,aAAW,CAClBU,WAAYE,WAASnuB,IACrBwW,QAASvW,IACP,CAAE2G,QAAS,uBAETvC,EAASkpB,aAAWQ,EAAQ,CAAEnnB,QAAS,YACvCwnB,EAAc,IAAI3gC,OAAK,CAAC,SAAU,YAClC4gC,EAAiB,IAAI5gC,OAAK,CAAC,SAAU,eACrCJ,EAAQ8Y,EAAKglB,WACb2C,EAAwB,IAAIQ,GAAajqB,UAC1CkqB,EAAKxwB,WAAWqwB,UACZ,IAAI3gC,OAAK,IAAI,IAAIb,MAAMqhC,EAAW1hC,OAAS,IAAI0sB,SAAQ,IAAM,CAAC,SAAU,gBAAgBsV,EAAKC,cAC1FD,EAAKxwB,WAAWswB,GAAiB,IACd,IAAzBE,EAAKC,SAASjiC,cACV,IAAIkB,OAAK,UAEXtC,EAAQojC,EAAKC,SAAS,MACP,iBAAVrjC,SACH,IAAIsC,OAAK,IAAI,IAAIb,MAAMzB,IAAQ8tB,SAAQ,IAAM,CAAC,SAAU,aAAa,SAAU,eAAgBsV,EAAKC,SAASlgC,MAAM,YAGrHigC,YAEHA,EAAKE,OAAOJ,GAAiB,OAC1BK,EAAuB,aACLrhC,EAAMgR,KAAMqwB,GAC7BA,SAEDrhC,EAAMG,IAAIsgC,EAAQ7+B,IAAIs/B,OAC3B,CAACA,EAAMv8B,EAAO43B,QACZ2E,EAAKxwB,WAAWqwB,GAAc,OAC3BM,EAAuB,MACLrhC,EAAMgR,KAAMqwB,SAC9Br/B,EAAS,IAAI5B,OAAK,IAAI,IAAIb,MAAM8hC,EAAcniC,OAAS,IAAI0sB,SAAQ,IAAM,CAAC,SAAU,gBAAgBsV,EAAKC,kBACxGnhC,EAAMK,IAAI2B,EAAS2C,EAAO43B,MACvB2E,EAAKxwB,WAAWswB,GAAiB,OACrCljC,EAAQojC,EAAKC,SAAS,MACC,IAAzBD,EAAKC,SAASjiC,OAAc,OACzBoiC,EAAUb,EAAQtgC,IAAI4gC,UACrB/gC,EAAMK,IAAI,IAAID,OAAQmhC,GAAwBD,EAAS38B,GAAQ43B,MAC3C,iBAAVz+B,EAAoB,IACR,IAAzBojC,EAAKC,SAASjiC,aAA0B,IAAVyF,EAAqB,OAChD28B,EAAUb,EAAQtgC,IAAI4gC,GACtBM,EAAuB,MACLrhC,EAAMgR,KAAMqwB,KACtB3B,OAAO5hC,EAAO,SACtBugC,EAAWkD,GAAwBD,EAASD,UAC3CrhC,EAAMK,IAAI,IAAID,OAAQi+B,EAAU9B,GACjC,OACAv6B,EAAU,IAAI5B,OAAK,IAAI,IAAIb,MAAMzB,IAAQ8tB,SAAQ,IAAM,CAAC,SAAU,aAAa,SAAU,eAAgBsV,EAAKC,SAASlgC,MAAM,YAC5HjB,EAAMK,IAAI2B,EAAS2C,EAAO43B,OAI9Bl8B,IAAI6gC,EAAMv8B,EAAO43B,eAEhBvrB,KAAO,CACdzU,KAAMyD,EAAMgR,KAAKzU,KACjB+E,OAAQ,CACPs/B,WAAAA,EACAzX,QAAAA,MAGM6W,OAAShgC,EAAMggC,OAChB,CAAEU,OAAAA,EAAQD,QAAAA,GA1Xae,CAAwBnI,EAAgBvgB,GAAOA,EAAM/a,KACzE0iC,EAAQzvB,OACE,IAAM0vB,IACJ,CAACQ,EAAM7+B,IAAQ,IAAIy2B,YAAU2H,EAAS,IAAIrgC,OAAK8gC,EAAKnD,WAAY,CAAC,aAAaxtB,KAAKlO,OAGpG86B,EAA6B,KAC7BC,EAA6B,QAC7BzhB,EAAK8lB,mBACM,IAAV1jC,EAAqB,OAClB2jC,EAAW,IAAM5oB,EAAKzY,IAAI6b,YAAU+e,UAAUtf,EAAKtK,gBAC/C,SAAD,CAAQtU,MAAM,oCAAoCQ,aAAY6Z,GAASjB,EAAM,UAAW7Y,QAASokC,GAAWlkC,GAAQ2N,iBACvH,OACAw2B,EAAa,IAAM7oB,EAAKzY,SAAI,OACxB,SAAD,CAAQtD,MAAM,kCAAkCQ,aAAY6Z,GAASjB,EAAM,UAAW7Y,QAASqkC,GAAankC,GAAQuO,gBAGzHwN,EAAUT,EAAKjR,aAAapI,KAAK,QACnCq9B,GAAgBjvB,SAAS0L,GAAU,OAChCqoB,EAAUlD,EAAU,oBAExB,SAAD,CAAQ3hC,MAAM,2BAA2BQ,aAAY6Z,GAASjB,EAAMyrB,EAAU,WAAa,UAAWtkC,QAASskC,EAAUnD,EAAS,IAAMD,EAAO,KAAMoD,EAAUpkC,GAAQiM,aAAejM,GAAQkM,iBAE1Lk4B,QACG,CAACzE,EAAQC,EAAQ,YAIpByE,EAA2B,iBAAV9jC,GAAgC,OAAVA,IAAkB,WAAKsT,oBAAWywB,OAC5E/4B,OAAKnB,GAAL,CAAUm6B,WAAMhkC,WAAOxB,OAASqL,EAC7BJ,WACc,iBAAVzJ,GAAgC,OAAVA,OAAyB0jC,iBAAwB,IAAV1jC,IACrE4F,OAAOvB,QAAQi3B,EAAgBvgB,IAC7BnL,QAAO,EAAE+d,EAAGsW,KAAWA,EAAMhL,QAAQle,KACrClX,KAAI,EAAES,EAAK2/B,sBACL7C,EAAQoB,EAAkBznB,EAAMzW,GAChC4/B,EAAU9C,EAAMt3B,aAAapI,KAAK,QACpCg9B,GAAa5uB,SAASo0B,UAAiB,WACpCC,EAASC,EAASC,GAASJ,EAAMpJ,KAAK10B,KAAMi7B,EAAOphC,EAAMsE,GAAM8T,EAAM5X,EAASi/B,EAAQqE,QACxFK,GAAYC,gDAAqB15B,gBAAOE,mBAAUzJ,UAAU,GAAK,UAAW,WAC3EmjC,EAAoC,WAAtBL,EAAMzlC,KAAK4iC,IAAuBzC,GAAgB7uB,SAASo0B,GACzEK,EAAY3F,GAAa9uB,SAASo0B,UACpCI,GAAeC,cACNnF,IAAQ4B,GAAD,CAAY5oB,KAAAA,EAAY2C,KAAMqmB,MAAUoD,GAAD,CAAWpsB,KAAAA,EAAY2C,KAAMqmB,IAAU+C,cACrF9E,EAAQ+E,GACbE,EAAcD,EAAQ,QAEtB5C,GAAD32B,GAAgBxG,IAAAA,EAAU2U,OAAQgrB,EAAOlpB,KAAMqmB,EAAOphC,MAAOA,EAAMsE,IAAU,CAAC8T,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQ51B,IAAKi6B,eAI9G,CAAC1E,EAAQC,EAAQ51B,IAGzBg7B,QAAO/rB,EAAQqC,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQ51B,IAC3C,CAAC,OAAO66B,GAAD55B,KAAkBE,OAAI0N,GAAJ,CAAYqC,KAAAA,EAAM/a,MAAAA,EAAOoY,KAAAA,EAAM5X,QAAAA,EAASi/B,OAAAA,EAAQ51B,IAAAA,MAAU,OAI5F,aAAmBkR,KAAEA,QAAM/a,yBACV+a,EAAKjR,aAAapI,KAAK,UAEjC,kCACI,QAAD,KAAQ,SAAA,0BAAO2C,kBAASlD,UAAU,EAAE,gBACvC,0CACA,mCACI,QAAD,KAAQ,SAAA,0BAAO0N,eAAMvL,QAAQ,cAAe,OAAO,0BAAO9E,eAAM8E,QAAQ,cAAe,eAErF2gC,KAASr+B,OAAOuJ,aAAOnP,IAAS,OACrB,iBAAVikC,WACF,QAAD,KAAQA,EAAM3gC,QAAQ,cAAe,YAGvC,KAGR,oBACQqhC,EAAaC,GAAkBl9B,EAAS,IAAI/D,MAC5CkhC,EAAWC,GAAgBp9B,OAA8B,SAwBzD,CAAE+4B,OAtBOn8B,GAAiBkK,IAC5BA,EAAIu2B,WACQ,IAAIphC,QACN,UAEW,IAAIA,IAAImZ,EAAMxa,IAAIgC,GAAK,OAiBhCo8B,SAdCp8B,GAAiBkK,IAC9BA,EAAIu2B,WACQ,IAAIphC,QACN,UAEW,IAAIA,IAAImZ,EAAMxa,IAAIgC,GAAK,OAStBq8B,UALRr8B,8BACWX,MACtB,WAAYvB,IAAIkC,MAAQugC,KAMjC,aAAuB9pB,KAAEA,OAAM6C,QAAM5d,OAAOoY,UACrC9V,EAAOuE,MACP5E,MAAMK,IAAIyY,EAAM6C,EAAK8lB,YAAc1jC,IAAU6G,OAAS,EAAYA,sBAGtE,SAAD,CAAQ7H,OAAiB,IAAVgB,EAAkB,WAAa,GAAIT,QAAS,IAAM+C,GAAI,IAAS+W,GAASjB,EAAM,YAC5F,SAAD,CAAQpZ,OAAiB,IAAVgB,EAAiB,WAAa,GAAIT,QAAS,IAAM+C,GAAI,IAAQ+W,GAASjB,EAAM,UAI7F,aAAsB2C,KAAEA,EAAMxX,iBAAQyhC,QAAShlC,OAAOoY,gBAC/C1R,EAAY8H,UACX5H,EAAS4H,EAAI3H,OAA4B7G,MACzCilC,EAASD,EAAUrsB,SAAS/R,GAASs+B,WAAWt+B,KACjD3E,MAAMK,IAAIyY,EAAMkqB,sBAQpB,QAAD,CAAOzmC,KAAK,OAAOwB,YAAOA,IAAS,GAAImlC,OAAQz+B,EAAUgI,cAAmC,UAAZF,EAAIlK,OAA0BkK,wBACrG6T,UAAU,QAAD,CAAO7jB,KAAK,QAAQwB,MAAO,+BAAciB,SAAS,IAAImkC,SAAS,EAAG,QAAQ,UAAW1+B,SAPvF8H,UACV5H,EAAS4H,EAAI3H,OAA4B7G,MACzCilC,EAAStsB,SAAS/R,EAAM1D,MAAM,GAAI,MACnCjB,MAAMK,IAAIyY,EAAMkqB,MAKpB,CAAC,2BAA4B,wCAAyC,uBAAuBn1B,SAASiL,EAAKjR,aAAapI,KAAK,SAAU,SAAD,CAAQnC,QAAS,IAAM25B,GAAQne,EAAK9Y,OAAQjD,MAAM,oBAAoBQ,aAAY6Z,GAASjB,EAAM,sBAAuB3Y,GAAQmO,OAIzQ,aAAsBmN,KAAEA,YAAMsqB,EAAW9hC,cAAQqa,QAAM5d,OAAOoY,UAAM5X,SAASi/B,gBACtE/4B,EAAY8H,MACbpH,wBACEk5B,EAAY9xB,EAAI3H,OAA6B7G,MAC/CsgC,IAAatgC,KACZiC,MAAMK,IAAIyY,EAA0B,IAApBulB,EAASn/B,YAAe,EAAYm/B,IAEpDnxB,EAASk2B,IACT7pB,EAAUT,EAAKjR,aAAapI,KAAK,KACjCjD,EAAM6mC,GAAOhkB,IAAiC,+BAAd8Z,YAA0D,iBAAvB9Z,EAAO5I,OAAO6sB,UAAyC,EAArBjkB,EAAO5I,OAAO6sB,QAErH1G,GAAU/uB,SAAS0L,YACd,WAAD,CAAUxb,YAAOA,IAAS,GAAImlC,OAAQz+B,OAClC4+B,GAAOhkB,KAAYA,EAAOkkB,YAAe/G,GAAiB3uB,SAAS0L,GAAU,KACpF0oB,EAAU,IAAI7hC,OAAK,WACnBijC,GAAOhkB,IAAkC,iBAAhBA,EAAOygB,OACzBmC,EAAQ1D,YAAYlf,EAAOygB,MAC3BtjC,IACAylC,EAAQ1D,YAAY/hC,GACpB6mC,GAAOhkB,OACPvG,KAEH,SAAD,CAAQ/a,YAAOA,IAAS,GAAI0G,SAAAA,GACjCkX,EAAK8lB,cAAe,SAAD,CAAQ1jC,MAAM,IAAIqZ,GAASjB,EAAM,UACpDjJ,EAAOtL,UAAU,SAAD,CAAQ7D,MAAOgP,GAC9BuxB,GAAWnoB,EAAM8rB,EAAQ1D,YAAYxxB,EAAE1L,QAAQ,cAAe,aAGtDgiC,GAAOhkB,IAAiC,sCAAd8Z,WAM/B,OACAqK,EAAat+B,KACb2T,EAAMrc,EA5YQ,CAACA,GACf8E,GAAOC,WAAWC,SAAUC,EAAEjF,KAAOA,EAAG6E,QAAQ,MAAO,MA2Y5CoiC,CAAcjnC,QAAM,oBAEnC,QAAD,CAAOuB,YAAOA,IAAS,GAAImlC,OAAQz+B,EAAUgI,cAAmC,UAAZF,EAAIlK,OAA0BkK,IACjGnH,KAAM8H,EAAOhO,OAAS,EAAIskC,EAAa,KACvCt2B,EAAOhO,OAAS,KAAM,WAAD,CAAU1C,GAAIgnC,GAClCt2B,EAAOtL,UAAU,SAAD,CAAQ7D,MAAOgP,OAEhC8L,GAAO3L,EAAOW,SAAS9P,IAAUA,EAAM2S,WAAW,iBACjD,IAAD,CAAGrE,KAAM,IAAIwM,EAAIhY,gBAAgBtC,YAAkBR,EAAMsD,QAAQ,cAAe,MAAOtE,MAAM,oBAAoBQ,aAAY6Z,GAASjB,EAAM,qBAAsB3Y,GAAQsN,gBAhBtG,OAChEmuB,QAAauE,WAASpE,eAAatgB,EAAMuG,EAAO5I,OAAOja,IAAI2D,OAC3DujC,EAAS//B,OAAOrD,KAAK,0BAAY8Q,cAAc,aAC7C,SAAD,CAAQrT,YAAOA,IAAS,GAAI0G,SAAAA,GACjCi/B,EAAO9hC,UAAU,SAAD,KAASmL,OA4E7B,MAAMyyB,GAAiBmE,GAvCvB,UAAkB1mC,MAAEA,SAAO+Z,OAAQ8B,QAAM/a,OAAOoY,UAAM5X,SAASi/B,MAAQ51B,UAAK63B,WAAS92B,gBAC9EpM,EAAOya,EAAOza,KAAKuc,GACnBlb,EAAWoZ,EAAOpZ,SAASkb,GAC3BS,EAAUT,EAAKjR,aAAapI,KAAK,MAEhCvC,EAAQsI,GAAaoD,KAMtBi5B,EAA8B94B,OAAKnB,GAAL,CAAU0V,kBAAYA,SAAS,GAAK,WACjEukB,EAAO/jC,YACPq/B,EAAQC,EAAQ51B,GAAQwP,EAAO4hB,KAAKyE,GAAYvkB,EAAM/a,EAAOoY,EAAM5X,EAASi/B,EAAQqE,YACnF,MAAD,CAAK9kC,MAAO,QAAQR,SAAa+gC,gBAAe1/B,KACrD,MAAD,CAAKb,MAAM,cAAc6mC,cATHr3B,MAClBs3B,yBASF9E,GAAD,CAAY5oB,KAAAA,EAAY2C,KAAAA,MACvBypB,GAAD,CAAWpsB,KAAAA,EAAY2C,KAAAA,IACtBnQ,EACAw0B,IACA,QAAD,WACElgC,IAASqhC,GAAWnoB,EAAM2C,EAAM,GAAGA,EAAKinB,UACxC7iC,KAAW,MAAD,CAAKH,MAAM,mBACpB0iC,WAAS79B,wBAAU,MAAD,CAAKS,IAAKyhC,EAAE7mC,MAAOF,MAAM,eAC1C+L,GAAD,CAAK9L,KAAM8mC,EAAE9mC,KAAMI,QAASga,GAASjB,EAAM2tB,EAAE7mC,OAAQI,WAAW,KAAKC,QAAS,IAAMwmC,EAAE32B,eACrF,OAAD,KAAO22B,WAAEC,eAAe3sB,GAASjB,EAAM2tB,EAAE7mC,cAEzC,MAAD,CAAKF,MAAM,eACT+L,GAAD,CAAK9L,KAAK,SAASI,QAASga,GAASjB,EAAM,gBAAiB9Y,WAAW,KAAKC,QAAS,IAAM0mC,UAAUpI,UAAUC,UAAUtiB,OACxH,OAAD,KAAOA,MAIT6jB,GAED51B,KAAS,MAAD,CAAKzK,MAAM,aAAayK,OAIG,CAACy8B,EAAMC,IACrCD,EAAKjtB,SAAWktB,EAAKltB,QACxBitB,EAAK9tB,OAAS+tB,EAAK/tB,MACnB8tB,EAAKnrB,KAAKsoB,OAAO8C,EAAKprB,OACtBrV,GAAUwgC,EAAKr8B,IAAKs8B,EAAKt8B,MACzBnE,GAAUwgC,EAAKlmC,MAAOmmC,EAAKnmC,SAGhC,YAAgBA,6BACU+hC,MAG1B,YAAoBr9B,OACL/B,EAAVyjC,EAAO,MACNzjC,EAAI,EAAGA,EAAI+B,EAAIvD,OAAQwB,UAEV,GAAKyjC,EADhB1hC,EAAI7B,WAAWF,MAEb,SAEFyjC,EAGR,YAAoBhuB,EAAc2C,KAAerC,SAC1C7O,EAAMkR,EAAKjR,qBACRnH,EAAI,EAAGA,EAAIkH,EAAI1I,OAAQwB,GAAK,EAAG,OACjC2B,EAAMuF,EAAI3G,MAAMP,GAAGjB,KAAK,KACxBwf,EAAS7H,GAASjB,EAAM9T,KAAQoU,MAClCpU,IAAQ4c,SACJA,SAGFrX,EAAIA,EAAI1I,OAAS,GAGzB,aAAoBiX,KAAEA,OAAM2C,SAAMwmB,UAC7BxmB,EAAK9Y,iBAAiBihC,OAClBnoB,EAAK9Y,MAAM4B,IAAIkX,GAAMsrB,UAAUtrB,EAAK9Y,cAEtCkD,EAAIo8B,EACPxmB,EAAK9Y,MAAMggC,OAAOqE,SAAS12B,WAAY22B,EAAExrB,KAAKpI,WAAWoI,KACzDA,EAAK9Y,MAAMggC,OAAO7/B,IAAI2Y,GAAM,MACd,IAAb5V,EAAEhE,cAAqB,WACrBqlC,EAAUntB,GAASjB,EAAMjT,EAAE,GAAGiJ,SAAW,WAAE,GAAGsK,UAAU,WACvD+tB,GAAU,aAAc,eAAgBD,GAGhD,aAAmBpuB,KAAEA,OAAM2C,UACpBzW,EAAMyW,EAAKylB,YAAY,QAAQ12B,aAAapI,KAAK,KACjD8kC,EAAUntB,GAASjB,EAAM9T,UAC3BkiC,IAAYliC,EAAY,KACrBmiC,GAAU,YAAa,OAAQD,GAGvC,MAAMC,GAAY,CAACjoC,EAAcS,EAA4BynC,WACrDvnC,EAAQsI,GAAaoD,cAEpB,MAAD,CAAK7L,MAAO,aAAaR,IAAOW,EAAS,QAAU,KAAMI,QAASkI,GACvEhI,GAAQR,KACR,OAAD,CAAMD,MAAM,cAAc0nC,KAkF5B,YAAiC1mC,EAAY6iC,iBACI,eAA5C,0BAAOrkC,eAAM8E,QAAQ,cAAe,KAChCtD,EAEHuR,SAASvR,WAAOuD,WAGViP,KAAK,CAAE/T,GAAIokC,EAAW1hC,OAAQyc,KAAM5d,EAAMuD,OAAO4oB,YACrD2W,GAAwB,WAAMv/B,OAAO6nB,WAAW,GAAIyX,IAHnD7iC,EAMT,YAAiCorB,EAAcyX,UACpB,IAAtBA,EAAW1hC,OAAqBiqB,EAC7B,CACN5sB,KAAM,sBACN+E,OAAQ,CACP4oB,UAAW0W,EAAWvlB,QAAQM,KAC9BwN,QAASoY,GAAwBpY,EAASyX,kBC1nBxBriC,QAAEA,QAASyB,cAAOiT,UAAaonB,UAC7ClkB,KAAEA,GAASqD,SACZxZ,IAAUiT,GAAwB,SAATkD,yBAEvBhK,GAASu4B,SACP,6BAA6BxhC,EAAEE,mBAC/B+I,MAAMjJ,SAEXiJ,0BAEKw4B,GAAYl/B,EAAS,aACrBzF,GAAO,WACG6a,EAAQ,SAGnB,MAAD,CAAK9d,MAAM,OAAOi/B,UAAQ,UAC/B4I,GAAD/7B,KAAc,CAAC7I,MAAAA,EAAOmW,KAAAA,EAAM5X,QAAAA,EAAS0U,YAAAA,MCtBvC,MAAM4xB,GAA+C,CACpDC,OAAQ,iBACRC,KAAM,OACNC,MAAO,2BAID7uB,KAAEA,SAAMC,iBAAQC,GAAmBmD,MACnCnb,MAAEA,cAAO2a,GlBCR9B,EAAW6B,KkBAZxa,QAAEA,GAAY0mC,MACd5rB,MAAEA,GAAU6rB,KACZrsB,EAAMssB,GAAaljC,cAEjB,SAAD,OACL,MAAD,CAAKlF,MAAM,WACTqoC,EAAD,CAAMroC,MAAM,YAAYsP,KAAK,IAAI9O,aAAY6Y,EAAO,QAAS4lB,UAAQ,aAAaqJ,GAAMC,QACvF,KAAD,KAAKjsB,GACJR,KAAQke,GAAD,CAAS/5B,KAAK,eAAeI,QAASgZ,EAAO,oBAAqB4lB,UAAQ,sBAChF16B,GAAOC,WACNoM,WAAYlM,EAAE7D,6BAAkBA,WAAYmrB,GAAaxqB,EAASkD,EAAE+R,cACpE5R,UACCkH,GAAD,CAAK7L,MAAOmZ,EAAO3U,EAAEjF,IAAKU,OAAQuE,EAAEjF,KAAOqc,EAAIrc,GAAIc,QAAS,IAAMioC,EAAMrkC,GAASO,EAAEZ,cAItF,MAAD,OACE,KAAD,OACE,KAAD,CAAIm7B,UAAQ,uBACVjF,GAAD,CAAS/5B,KAAK,QAAQI,QAASgZ,EAAO,aACpC9U,GAAOwV,UAAUlV,KAAI,EAAGiI,KAAAA,EAAM+C,KAAAA,OAC7B9D,GAAD,CAAK7L,MAAO2P,EAAM1P,OAAQ2M,IAASsM,EAClC7Y,QAAS,IAAM+Y,EAAexM,WAIjC,KAAD,CAAImyB,UAAQ,oBACVjF,GAAD,CAAS/5B,KAAM6nC,GAAOxmC,GAAQjB,QAASgZ,EAAO,UAC5CzS,OAAOvB,QAAQyiC,IAAQjjC,KAAI,EAAE4jC,EAAIxoC,OAChC8L,GAAD,CAAK9L,KAAAA,EAAYC,MAAOmZ,EAAO,SAASovB,KAAOtoC,OAAQsoC,IAAOnnC,EAC7Df,QAAS,IAAM0b,EAAYwsB,WAI9B,KAAD,CAAIzoC,MAAM,YACR,IAAD,CAAGsP,KAAK,6CAA6CzH,OAAO,SAAS2P,IAAI,aAAaxX,MAAM,oBAAoBQ,aAAY6Y,EAAO,WACjI5Y,GAAQuN,2BCnDdu6B,OAAO,MAAD,CAAKx9B,MAAM,KAAKC,OAAO,KAAKmB,QAAQ,YAAY+f,KAAK,OAAOhgB,MAAM,gCAA8B,OAAD,CAAMnB,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,cAAY,OAAD,CAAMtiB,EAAE,IAAImB,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,cAAY,OAAD,CAAMyc,EAAE,KAAK59B,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,cAAY,OAAD,CAAMtiB,EAAE,KAAK++B,EAAE,KAAK59B,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,cAAY,OAAD,CAAMtiB,EAAE,KAAK++B,EAAE,KAAK59B,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,cAAY,OAAD,CAAMtiB,EAAE,KAAK++B,EAAE,KAAK59B,MAAM,KAAKC,OAAO,IAAI09B,GAAG,IAAIxc,KAAK,aACnc0c,SAAS,MAAD,CAAK79B,MAAM,KAAKC,OAAO,KAAKmB,QAAQ,YAAYD,MAAM,gCAA8B,OAAD,CAAMG,EAAE,6HAA6H6f,KAAK,cAAY,OAAD,CAAM7f,EAAE,+HAA+H6f,KAAK,cAAY,OAAD,CAAM7f,EAAE,kIAAkI6f,KAAK,cAAY,OAAD,CAAM7f,EAAE,6HAA6H6f,KAAK,cAAY,OAAD,CAAM7f,EAAE,sIAAsI6f,KAAK,cAAY,OAAD,CAAM7f,EAAE,sIAAsI6f,KAAK,aACv+B2c,SAAS,MAAD,CAAK99B,MAAM,KAAKC,OAAO,KAAKmB,QAAQ,YAAYD,MAAM,gCAA8B,SAAD,CAAQqmB,GAAG,KAAKuW,GAAG,KAAKC,EAAE,KAAK7c,KAAK,cAAY,OAAD,CAAM9f,YAAU,UAAU48B,YAAU,UAAU38B,EAAE,utCAAutC6f,KAAK,2BCiB33C2c,OAAEA,QAAQI,QAAOC,QAAOC,SAAOC,SAAQC,WAAQC,cAAUC,UAC9ElwB,OAAEA,GAAWoD,MACbjb,QAAEA,GAAY0mC,MACbsB,EAASC,GAAc/gC,GAAS,IAChCghC,EAASC,GAAcjhC,GAAS,IAChCkhC,EAASC,GAAcnhC,GAAS,GACjCohC,EAAQ/hC,EAAe,IACvBgiC,EAAU,uBAAuBd,qBAAyBG,KAAUD,OAEhE,qBACHa,EAAanB,EAAOI,KACuB,wCAAzBJ,iBAAQ1mC,UAAU,MACpC6F,QAAQxE,YAAaymC,EAAEC,WACvBliC,mCAAuB6gC,UAAU,IAAIhkC,eACpCslC,EAA6B,iBAAVz4B,EAAqBA,EAAQA,EAAM7B,KACtD/L,G1BsEmB+O,E0BtEDrR,E1BsEuBua,E0BtEdouB,E1BwE5B,GAAGh2B,GADM5P,GAAOyO,SAASvO,SAAUuL,EAAEvQ,KAAOoT,IACzB,qCAAqCkJ,aAFpClJ,EAAsBkJ,Q0BrEzCquB,EAAO,IAAIC,OAAK,CACrBC,IAAK,CAACxmC,GACNiV,OAAQ,CAAC,OACTqwB,OAAAA,EACAmB,KAAMpB,MAEFzK,GAAG,OAAO,QACH,YAEN8L,EAAY,KACbhB,GAAWM,EAAM9hC,QAAQ6I,UAAyB,WAAdo5B,EAAEnsB,cAC9B,UAGQ,WAAjBssB,EAAKtsB,oBACG,IAAM0sB,QAEZ9L,GAAG,QAAQ,YAIV0L,QAEG,KACT,CAACnB,EAAOJ,OAED,OACH7gC,QAAQxE,YAAaymC,EAAEM,KAAKpB,OAChC,CAACA,OAEM,OACHnhC,QAAQxE,YAAaymC,EAAEb,OAAOA,OAClC,CAACA,UAEEl7B,EAAO,QACRs7B,GAAWI,mBAETQ,EAAOxnC,KAAKC,MAAMD,KAAKE,SAAWgnC,EAAM9hC,QAAQ7F,UAChD6F,QAAQoiC,GAAMl8B,UACT,IAENg8B,EAAO,OACNliC,QAAQxE,YAAaymC,EAAEC,aAEpB,KACLX,eAAwB,IAAMr7B,KAAgB,GAARg7B,KACxC,CAACK,OAEM,IACF,IAAMW,KACX,UAEIO,EAAYC,GAAiBhiC,GAAS,GACvCiiC,EAAc5iC,OAA2B,YAUvC,MAAD,CAAK/H,MAAO,eAAewpC,EAAU,WAAaE,EAAU,WAAa,KAAKE,EAAU,WAAa,QAC1G79B,GAAD,CAAK/L,MAAM,OAAOC,KAAM2pC,EAAU,QAAUJ,EAAU,OAAS,OAAQtpC,MAAOmZ,EAAO,eAAgB9Y,QAAS2N,EAAM7N,QAAmBgZ,EAAVuwB,EAAiB,uBAA0BJ,EAAiB,uBAAiC,qBAAsBlpC,WAAW,SAC1PwP,GAAD,CAAW9P,MAAM,sBAAsBqI,KAAK,aAAauiC,YAAY,EACpE5pC,MAAOioC,EAAOvhC,YAAmB2hC,EAAO,CAAEJ,cAC1C,QAAD,CAAOjpC,MAAM,eAAeqZ,EAAO,gBAAgB,QAClDpJ,GAAD,CAAajQ,MAAM,sBAAsBiG,IAAK,EAC7CjF,MAAOkoC,EAAOxhC,YAAmB2hC,EAAO,CAAEH,cAC1C,QAAD,CAAOlpC,MAAM,eAAeqZ,EAAO,gBAAgB,QAClDnJ,GAAD,CAAYlQ,MAAM,yBAAyBiG,IAAK,GAAKD,IAAK,EAAG6kC,KAAM,IAClErqC,aAAY2oC,EAAM9O,QAAQ,GAAI+E,MAAO,YAA+B,OAAd,OACtDp+B,MAAOmoC,EAAOzhC,YAAmB2hC,EAAO,CAAEF,cAC1C,QAAD,CAAOnpC,MAAM,gBAAgBqZ,EAAO,iBAAiB,QACpDnJ,GAAD,CAAYlQ,MAAM,0BAA0BiG,IAAK,EAAGD,IAAK,EAAG6kC,KAAM,IACjErqC,aAAY4oC,EAAO/O,QAAQ,GAAI+E,MAAO,QAAiB,IAATgK,KAC9CpoC,MAAOooC,EAAQ1hC,YAAoB2hC,EAAO,CAAED,eAC5Cr9B,GAAD,CAAK/L,MAAO,QAAOyqC,EAAa,UAAY,IAAMxqC,KAAMwqC,EAAa,QAAU,WAAYvqC,MAAOmZ,EAAO,QAAShZ,QAAsBgZ,EAAboxB,EAAoB,SAAmB,uBACjKlqC,QAzBW,eACFs+B,UAAUC,UAAUiL,MAChB,QACc,IAAxBY,EAAY3iC,sBAAoC2iC,EAAY3iC,WACpDA,QAAUY,YAAW,QAClB,KACZ,UAoBFmD,GAAD,CAAK/L,MAAM,SAASC,KAAK,WAAWI,QAASgZ,EAAO,uBACnD9Y,QAAS,8BC3Ga+b,MAAEA,OAAOwuB,OAAMh9B,OAAM7N,WAAM2L,UAC7CiG,aACJ,MAAD,CAAK7R,MAAM,aACTC,GAAQqoC,GAAMroC,KACd,MAAD,OACE,KAAD,KAAKqc,KACJ,IAAD,KAAIwuB,KAGLl/B,KAAa,MAAD,CAAK5L,MAAM,aACtB4L,WAGIkC,IACH,IAAD,CAAG9N,MAAM,YAAYsP,KAAMxB,GAAO+D,KACjC,MAAD,CAAK7R,MAAM,aAAa6R,gBCfHxM,QAAEA,WAAS+K,SAAUyI,UACvCkyB,EAAQt6B,GAAQ,iBACfu6B,EAAmC,aAC9Bt5B,KAASrM,EAAS,OACtB1B,EAAI+N,EAAMzN,QAXD,QAYXN,GAAK,EAAG,OACLsnC,EAAOv5B,EAAMxN,MAAM,EAAGP,0BACT,IAAI6P,KAAK9B,EAAMxN,MAAMP,EAAI,YAGvCiD,OAAOvB,QAAQ2lC,KACpB3lC,GAEG6lC,EAASz6B,GAAQ,IACfpL,EAAQuL,YAAazK,EAAE2K,SArBd,QAsBdzL,IAEI8lC,EAAQC,GAAa1iC,EAAS,IAAI2vB,cAUjC,MAAD,CAAKr4B,MAAM,YAAYo/B,MAAO,mBAAavmB,IAAU,MAC1DkyB,EAAMlmC,KAAI,EAAEkkC,EAAGsC,OAAc,MAAD,OAC3BC,GAAD,CAAerrC,KAAMkrC,EAAOluB,IAAI8rB,GAAK,gBAAkB,eAAgBzjC,IAAKyjC,EAAG7oC,MAAO6oC,EAAGxoC,QAAS,KAAM+hC,OAX1F2I,EAWiGlC,EAV5GoC,EAAOluB,IAAIguB,KACP1lC,OAAO0lC,KAEP/H,IAAI+H,UAEF,IAAI5S,IAAI8S,IANJ,IAACF,MAYZE,EAAOluB,IAAI8rB,MACXwC,GAAD,CAAUlmC,QAASgmC,EAASj7B,YAAeA,EAAS,GAAG24B,KAAK5iC,KAAM0S,kBAAmB,GAAK,OAE3FqyB,EAAOrmC,UAAUymC,GAAD,CAAerrC,KAAK,OAAOqF,IAAKa,EAAGjG,MAAOiG,EAAG5F,QAAS,IAAM6P,EAASjK,QASxF,aAAuBlG,KAAEA,QAAMC,UAAOK,aAC7B,MAAD,CAAKP,MAAM,QAAQO,QAAAA,GACxBE,GAAQR,GACRC,gBC9CsBW,SAAEA,UACpBwY,OAAEA,GAAWoD,eACVpD,EAAO,2BAA4BA,EAAOxY,OAC3C,OAAD,OACL,MAAD,CAAKb,MAAM,YACTuE,GAAOC,WAAWoM,WAAYlM,EAAE7D,WAAaA,IAAUgE,UACtD2mC,GAAD,CAAUlvB,MAAOjD,EAAO3U,EAAEjF,IAAKqO,KAAM3J,GAASO,EAAEZ,iCCH7CuV,OAAEA,GAAWoD,MACZrN,EAAOq8B,GAAY/iC,EAAwB,SACzC2Q,EAAO,0BAETqyB,EAAYC,GAAiBjjC,EAA2B,OACrD,UAEPqP,SAAmB4zB,EAAcC,KACjCC,mBAAqBz8B,MAAMjJ,KAAaA,QACxC,UAEIX,EAAQ+K,GAAa7H,EAAS,KAC9BiJ,EAAMm6B,GAAWpjC,EAAmB,IACrCqjC,EAAal9B,IACb8C,EAAKb,SAASjC,KAGV8C,EAAKf,WAAYG,IAAMlC,OAFvB,IAAI8C,EAAM9C,KAMdm9B,EAAqBv7B,GAAQ,WAC5Bw7B,EAAQzmC,EAAOZ,MAAM,KAAKC,QAASqnC,EAAEv7B,OAAOw7B,gBAAev7B,WAAYs7B,EAAE/pC,OAAS,WACnE,IAAjB8pC,EAAM9pC,QAAgC,IAAhBwP,EAAKxP,OAAqBupC,EAC7CA,EAAW96B,gBACZe,EAAKd,UAAamB,EAAOL,KAAKb,SAASjC,YACpC,QAEFgD,EAAUG,EAAOL,KAAKjP,KAAK,KAAO,IAAMsP,EAAOH,QAAQs6B,qBACtDF,EAAMp7B,UACRq7B,EAAEv4B,WAAW,KACI,IAAbu4B,EAAE/pC,SAAiB0P,EAAQf,SAASo7B,EAAEhoC,MAAM,IAE7C2N,EAAQf,SAASo7B,UAGxB,CAACR,EAAYlmC,EAAQmM,KAEjBy6B,EAAMC,GAAW3jC,GAAS,GAE3B4jC,EAAmB77B,GAAQ,IACzBu7B,EAAmBI,MAAK,CAACvmC,EAAGC,IAAMsmC,EAAOtmC,EAAEiM,MAAQlM,EAAEkM,MAAQlM,EAAEkM,MAAQjM,EAAEiM,SAC9E,CAACi6B,EAAoBI,aAEhB,OAAD,OACLG,GAAD,CAAI/sC,KAAK,OAAOC,GAAG,cAClB2P,KAAUo9B,GAAD,CAAYp9B,MAAAA,EAAcC,UAAW,IAAMo8B,EAAS,UAC7D,MAAD,CAAKzrC,MAAM,wBACT,MAAD,CAAKA,MAAM,qBACT8P,GAAD,CAAW9P,MAAM,iCAAiCqI,KAAK,aAAab,YAAa6R,EAAO,oBACvFrY,MAAOwE,EAAQkC,SAAU6I,MACzBxE,GAAD,CAAK9L,KAAMmsC,EAAO,YAAc,WAAYlsC,MAAOksC,EAAO,eAAiB,eAAgB7rC,QAAS,IAAM8rC,GAASD,MAEnHz6B,EAAKxP,OAAS,KAAM,MAAD,CAAKnC,MAAM,kBAC7B2R,EAAK9M,UAAY4nC,GAAD,CAAKvsC,MAAO2O,EAAKtO,QAAS,IAAMurC,EAAQn6B,EAAKf,WAAYG,IAAMlC,aAGjF,MAAD,CAAK7O,MAAM,aACTssC,EAAiBznC,UAChB6nC,GAAD,CAAQ16B,OAAAA,EAAgB26B,WAAYh7B,EAAMo6B,UAAAA,QAU9C,aAAgB/5B,OAAEA,aAAQ26B,YAAYZ,aAC7B,MAAD,CAAK/rC,MAAM,qBAChB,MAAD,CAAKA,MAAM,uBACT4sC,GAAD9gC,KAAiBkG,EAAOxQ,YACvBorC,GAAD9gC,KAAiBkG,EAAOV,WAExB,MAAD,CAAKtR,MAAM,kBACTgS,EAAOL,KAAK9M,UAAY4nC,GAAD,CAAKvsC,MAAO2O,EAAKtO,QAAS,IAAMwrC,EAAUl9B,GAAM1O,OAAQwsC,EAAW77B,SAASjC,UAEpG,MAAD,CAAK7O,MAAM,oBAAoB6sC,wBAAyB,CAAEC,OAAQC,EAAO/6B,EAAOH,aAIlF,aAAqBpS,GAAEA,UAAI4S,WACP,OAAZA,IACH,OAAD,KAAO5S,KACN,IAAD,CAAG6P,KAAM,2CAA2C+C,IAAWxK,OAAO,UAAUpI,GAQpF,aAAaS,MAAEA,SAAOC,UAAQI,UACvB8iB,EAAkB,aAAVnjB,EAAuB,EAAI0F,GAAW1F,GAAS,aACrD,MAAD,CAAKF,MAAO,gBAAgBG,EAAS,UAAY,KAAKI,EAAU,aAAe,KAAM6+B,MAAO,WAAW/b,IAAS9iB,QAAAA,GAC3G,aAAVL,GAAwBO,GAAQwL,MAChC/L,+BC5FImZ,OAAEA,GAAWoD,MACbjb,QAAEA,gBAASsb,GAAkBorB,MAC7BttB,QAAEA,OAAStN,aAAMyN,WAAYC,YAAUC,GAAc+xB,MACpD59B,EAAOq8B,GAAY/iC,EAAwB,OAC3CukC,EAAeC,GAAcvF,OAChCsF,WACK,OAAD,OAAOT,GAAD,CAAYp9B,MAAO,iDAAiD69B,EAAc5mC,UAAWgJ,UAAW69B,WAGhHpxB,EAAMssB,GAAaljC,SACpB4W,WACI,OAAD,OAAO0wB,GAAD,CAAYp9B,MAAO,0BAA0BlK,gBAGrDioC,EAAkB5oC,GAAOyO,SAC7BpC,WAAYob,GAAahc,EAAEvQ,GAAIqc,EAAIrF,WAAYqF,EAAIpF,cACnD7R,QAASmL,EAAEvQ,QAEJ4Z,EAAO,kBAAmBA,EAAOyC,EAAIrc,KAAM0tC,GAE/CnhB,GAAaxqB,EAASsa,EAAIrF,eACrB,6CAA6CqF,EAAIrF,cAEtDuV,GAAaxqB,OAAS,EAAWsa,EAAIpF,eAChC,qDAAqDoF,EAAIpF,oBAI7D02B,EADehoC,GAAgBF,KACF9B,IAAI,aAC7B,KACLH,GAASmqC,KACDA,GAAer1B,qBAClB6e,MAAMzX,YAAU+e,UAAUrf,IAAS,MAC3B,CAAErd,QAAAA,EAASqd,OAAQuuB,SAGlC,CAACA,UAEGnqC,EAAOoqC,GAAY3kC,EAA2B,OAC9CwN,EAAao3B,GAAkB5kC,EAAoC,SAChE,OACA,QACA,qB9B4D0BlH,gBACV4W,GAAW5W,IAClB0U,a8B7DH1U,GACbuW,SAAUu1B,EAAexnC,oB9BaEtE,EAAoB/B,aAC7CuV,GAAOvV,IAAOuV,GAAOvV,GAAI+B,UAAYA,EAAS,OAC5C+rC,QAAoBn1B,GAAW5W,MAEnBgsC,YAAUD,EAAYn3B,QAAS,2BACjCq3B,aAAW,CAC1B,CACCjuC,KAAM,SACNof,KAAMshB,aAAWqN,EAAYv3B,YAAa,CAAEomB,UAAW,WAAY1iB,OAAQ,CAAE6sB,KAAM,mCAEpF,CACC/mC,KAAM,SACNof,KAAM4uB,YAAUD,EAAYn3B,QAAS,wBAEpC,CAAE8qB,cAAe,kBAEdwM,EAAa,YAAOlpC,WAAWC,SAAUC,EAAEjF,KAAOA,cAAKwa,WACxDyzB,QACE,IAAItnC,MAAM,qBAAqB3G,eAG/Bwa,EAASszB,EAAYn3B,QAAQhT,IAAIsqC,GACjCzqC,EAAQ,IAAIkc,YAAUlF,EAAQ,CAAEikB,WAAW,IAC7ClpB,GAAOvV,KACJm3B,MAAM5hB,GAAOvV,GAAIwD,MAAMgR,MAAM,MAE7B05B,UAAS,KACTjgC,QAAU,CAACqG,KAAKC,UAAU/Q,EAAMgR,WAEhCxU,GAAM,CAAEwD,MAAAA,EAAOzB,QAAAA,SACd2E,SACFynC,EAAM,IAAIxnC,MAAM,yBAAyB3G,mBAAoB+B,OAAa6E,GAAQF,YACpFA,aAAaC,UAAWsI,MAAQvI,EAAEuI,OAChCk/B,UAGD54B,GAAOvV,GAAIwD,O8BhDRzB,EAASsa,EAAIrc,IACpBsY,MAAK5N,MAAM0jC,UACDlsC,aAAama,EAAIrc,IACvB2tC,EAAe,OACZvuB,QAAeivB,EAAWV,KAC9BxW,MAAMzX,YAAU+e,UAAUrf,IAAS,KAE7BgvB,MAEThC,mBAAqBz8B,MAAMjJ,KAAaE,GAAQF,SAChD,CAAC3E,EAASsa,EAAIrc,WAEVsuC,EAAOC,GAAYtlC,GAAS,MAC1BzF,GAAO,QACA,CAAEzB,aAAS,EAAWqd,YAAQ,MACpC,SACA,YAGHovB,EAAYC,GAAiBxlC,EAAS,KACtCylC,EAAWC,GAAUC,MACrBC,EAAWC,GAAeF,KAE3BG,EAAe,QAChBP,sBAAqBxuC,KAAMwuC,GAAchrC,GAASiT,EAAa,OAC5DjC,EAAO4pB,GAAU56B,EAAOiT,GACd6E,EAAWe,EAAIrc,SAAI6N,WAAM7N,GAAI,CAAEA,GAAIwuC,EAAYh6B,KAAAA,aAK1D3G,WACWA,WAAM7N,UAGZ6N,WACIA,WAAM7N,QAUZ,KACL6N,KACWA,EAAK7N,MAElB,CAAC6N,OAEM,WACLrK,MACW,0BAAMxD,MAAM,IACtB6N,GAAQwO,EAAIrc,KAAO6N,EAAK9N,QACrBo3B,MAAMzX,YAAU+e,UAAU5wB,EAAK2G,UAE7B,MAER,CAAC3G,EAAMrK,UAiBJwrC,EAAWtoC,IACZA,EAAE4/B,SAAqB,MAAV5/B,EAAEb,QACRzD,eAAe,OAAQ,qBAC1B6sC,QACGvoC,EAAE4/B,SAAqB,MAAV5/B,EAAEb,SACfzD,eAAe,OAAQ,qBAC1B8sC,SAGHj/B,EAAavJ,OACdA,EAAE4/B,SAAqB,MAAV5/B,EAAEb,QAChBwhC,iBACE7jC,GAASiT,GAAe5I,GAAM,IACvBzL,eAAe,OAAQ,gBAC3BoS,EAAO4pB,GAAU56B,EAAOiT,KACnB4F,EAAIrc,SAAI6N,WAAM7N,GAAI,CAAEA,SAAI6N,WAAM7N,GAAIwU,KAAAA,OACpC,YAKF,cACAzJ,iBAAiB,QAASikC,YAC1BjkC,iBAAiB,UAAWkF,GAC9B,cACGhF,oBAAoB,QAAS+jC,YAC7B/jC,oBAAoB,UAAWgF,MAEvC,CAACzM,EAAOiT,EAAa5I,UAEjBshC,EAASC,GAAcnmC,EAAmB,OACvC,qB9BzD0BlH,SAC9B+rC,QAAoBn1B,GAAW5W,aACjB+rC,EAAYv3B,YACzBu3B,EAAYv3B,c8BuDHxU,GAASuW,YACZ/B,EAAY5S,IAAI0Y,EAAIrc,IAAIoF,QAASuW,EAAElX,MAAM,UAEnD2nC,mBAAqBz8B,MAAMjJ,KAAaA,EAAEE,cAC1C,CAAC7E,EAASsa,EAAIrc,WAOXquC,EAAa3jC,MAAO1K,wBAElBof,QAAeG,GAAYxd,EAAS,WAAIua,QAAQD,EAAIrc,GAAIA,GACxDyD,QAAOD,WAAOG,IAAI,IAAIC,OAAK,CAAC,YAAa,sBACf,KAA5B,0BAAQzB,oBAAWsB,YAA+B,IAATA,MACrCtB,UAAUsB,KAAOA,OACoB,KAAxC,WAAOtB,UAAUqd,uBAAc/b,UAC3BtB,UAAUqd,aAAa/b,KAAOA,IAGhC2b,QACC1Y,KACCE,GAAQF,OAIZ2oC,EAAaC,GAAkBrmC,EAAS9I,OAAOovC,WAAa,MAC5D9R,EAAQ+R,GAAWvmC,EAAS,IAC5By0B,EAAY+R,GAAexmC,EAAS,IACpC00B,EAAU+R,GAAazmC,EAAS,IAuBhC+hC,EAAYpN,GAAegR,MAE3Be,GAAcC,IAAmB3mC,GAAS,GAC3C4mC,GAAa3T,GAAW7qB,SAASgL,EAAIrc,OAAoB,kCAAPA,IAAwCusB,GAAaxqB,EAAS,SAClH4tC,KAAiBE,QAA4B,OAC7CC,GAAe,EACfD,SAA4B,GAC5BR,QAA6B,qBAW/B,OAAD,CAAM9uC,MAAOovC,GAAe,cAAgB,MAC1C7C,GAAD,CAAI9sC,GAAG,sBAAsBD,KAAK,WACjC,MAAD,CAAKQ,MAAM,cACT,MAAD,CAAKA,MAAO,oBAAoBsN,GAAQ,gBACtC,MAAD,CAAKtN,MAAM,aACTg6B,GAAD,CAAS/5B,KAAK,OAAOC,MAAO0a,EAAQ/K,KAAMlE,UAAU,KAClDI,GAAD,CAAK9L,KAAK,aAAaC,MAAOmZ,EAAO,iBAAkB9Y,QAAS,IAAMioC,EAAM,cAC3El7B,KAASvB,GAAD,CAAK9L,KAAK,OAAOC,MAAOmZ,EAAO,oBAAqB9Y,QAAS0a,MACrEu0B,GAAD,CAAYn/B,kBAAmBgJ,EAAwB,WAAjBuB,EAAQ/K,KAAoB,wBAA0B,kBAAmBS,UAAW+I,EAAO,oBAAqBlJ,OAAQyK,EAAQF,MAAM9J,WAAY2K,EAAE/b,OAASsc,EAAIrc,KAAIoF,QAAS0W,EAAE9b,KAAK2Q,SAAW3Q,GAAOub,EAASc,EAAIrc,GAAIA,QAE9PqQ,GAAD,CAAW9P,MAAM,gBAAgBwH,YAAa6R,EAAO,wBAAyBrY,MAAOitC,EAAYvmC,SAAUwmC,EAAev+B,QAAS6+B,EAAcrI,OAAQqI,IACxJlhC,KAASvB,GAAD,CAAK9L,KAAK,WAAWI,QAASgZ,EAAO,uBAAwB9Y,QAvJxD,KACd+M,KACQwO,EAAIrc,GAAI6N,EAAK7N,GAAI,QAuJzBsuC,IAAS,MAAD,CAAK/tC,MAAM,eAAeS,GAAQwM,UACxCkhC,IAAa,MAAD,CAAKnuC,MAAM,sBAAsBS,GAAQgM,OACpD6hC,KAAc,MAAD,CAAKtuC,MAAM,sBAAsBS,GAAQmJ,MAE1D,MAAD,CAAK5J,MAAM,wBACT+L,GAAD,CAAK9L,KAAK,SAASC,MAAOmZ,EAAO,UAAW9Y,QAjD3B,QACVsB,eAAe,aACV,KACLu7B,EAAW,QA+CjBpD,GAAD,CAAS/5B,KAAK,UAAUC,MAAOmZ,EAAO,WAAY1N,UAAU,KAC1D6jC,GAAD,CAAYn/B,kBAAmBgJ,EAAO,UAAW/I,UAAW+I,EAAO,cAAelJ,OAAQy+B,EAASx+B,SArFlF3Q,OACXoC,eAAe,cAAepC,MACzB,CAAE+B,QAAAA,EAASqd,OAAQpf,UAqF9Bu6B,GAAD,CAAS/5B,KAAK,MAAMC,MAAOsB,EAASnB,QAASgZ,EAAO,kBAAmB4lB,UAAQ,oBAC7EkO,EAAgBpW,UAAUlyB,UACzBkH,GAAD,CAAK7L,MAAO8P,EAAG7P,OAAQ6P,IAAMxO,EAASjB,QAAS,IAAMuc,EAAc9M,UAGpEgqB,GAAD,CAAS/5B,KAAK,mBAAmBI,QAASgZ,EAAO,WAC/CtN,GAAD,CAAK9L,KAAK,UAAUC,MAAOmZ,EAAO,SAAU9Y,QAlJnC,QACHsB,eAAe,oBAClB+0B,MAAMzX,YAAU+e,UAAUj7B,EAAMgX,OAAO3F,YAAY,QAiJrDvI,GAAD,CAAK9L,KAAK,aAAaC,MAAOmZ,EAAO,QAAS9Y,QA/IrC4F,MACXiC,qBACQvG,eAAe,OAAQ,mBAC1B6sC,YA6IF3iC,GAAD,CAAK9L,KAAK,cAAcC,MAAOmZ,EAAO,QAAS9Y,QA3ItC4F,MACXiC,qBACQvG,eAAe,OAAQ,mBAC1B8sC,aA4ILv/B,KAAUo9B,GAAD,CAAYp9B,MAAAA,EAAcC,UAAW,IAAMo8B,EAAS,UAC7DgE,GAADzjC,OAAU,CAAC/I,MAAAA,EAAOzB,QAAAA,EAAS0U,YAAAA,IAA3B,CAAyConB,QAASmO,QAElD,MAAD,CAAKzrC,MAAM,gBAAgBo/B,MAAO,cAAc,EAAmB,GAAfmQ,WAClD,MAAD,CAAKvvC,MAAO,8BAA8BsvC,GAAa,SAAW,uBAAwB9uC,aAAY6Y,EAAO+1B,GAAe,eAAiB,gBAAiB7uC,QA/C1I,QACXsB,eAAe,iBAAmButC,GAA2B,SAAZ,eAC1CA,KACZA,IAAgBN,MACL,KA4CbM,GAAe3uC,GAAQ0O,SAAW1O,GAAQyN,QAE3C,MAAD,CAAKlO,MAAO,+BAA+B8uC,EAAc,SAAW,uBAAwBtuC,aAAY6Y,EAAO,YAAa9Y,QA5EvG,QACZsB,eAAe,cACbs7B,EAAa,KA2EtB18B,GAAQyM,YAET,MAAD,CAAKlN,MAAO,2BAA2B8uC,EAAc,SAAW,KAAKrE,EAAa,UAAY,uBAAwBjqC,aAAY6Y,EAAOoxB,EAAa,SAAW,QAASlqC,QAnFzJ,QACRsB,eAAe,UACjBq7B,EAAS,KAkFduN,EAAahqC,GAAQgM,MAAQhM,GAAQoM,UAEtC,MAAD,CAAK7M,MAAO,mDAAoDQ,aAAY6Y,EAAOy1B,EAAc,cAAgB,eAAgBvuC,QAzE9G,QACVsB,eAAe,gBAAkBitC,EAA0B,SAAZ,cACzCA,KACR,KACI,KACF,KAqEPA,EAAcruC,GAAQkM,cAAgBlM,GAAQqM,SAGhD,MAAD,CAAK9M,MAAO,iBAAgBovC,GAAe,SAAW,OACpDM,GAAD1jC,OAAkB,CAAC/I,MAAAA,EAAOzB,QAAAA,EAAS/B,GAAIqc,EAAIrc,KAA3C,CAAgDu4B,MAAOoX,GAAc9R,QAASmO,QAE9E,MAAD,CAAKzrC,MAAO,gBAAe8uC,EAAc,SAAW,OAClDa,GAAD3jC,OAAiB,CAAC/I,MAAAA,EAAOiT,YAAAA,EAAagnB,OAAAA,EAAQC,WAAAA,EAAYC,SAAAA,IAA1D,CAAqEvtB,KAAM,WAAIoK,UAAU,OAAQojB,YAAAA,EAA0BC,QAASmO,6BChShIpyB,OAAEA,GAAWoD,eACVpD,EAAO,iBACR,OAAD,OACL,MAAD,CAAKrZ,MAAM,UACTwrC,GAAD,CAAUlvB,MAAM,cACd/X,GAAOC,WAAWoM,YAAalM,EAAE7D,WAAUgE,UAC1C2mC,GAAD,CAAUlvB,MAAOjD,EAAO3U,EAAEjF,IAAKqO,KAAM3J,GAASO,EAAEZ,WAEhD0nC,GAAD,CAAUlvB,MAAOjD,EAAO,YAAavL,KAAK,kBAE1C09B,GAAD,CAAUlvB,MAAM,kBACd/X,GAAOC,WAAWoM,WAA2B,WAAflM,EAAE7D,WAAuBgE,UACtD2mC,GAAD,CAAUlvB,MAAOjD,EAAO3U,EAAEjF,IAAKqO,KAAM3J,GAASO,EAAEZ,YAGjD0nC,GAAD,CAAUlvB,MAAM,mBAAmBrc,KAAK,SACvC6N,KAAK,mCACLg9B,KAAK,uCACLU,GAAD,CAAUlvB,MAAM,mBAAmBrc,KAAK,SACvC6N,KAAK,WACLg9B,KAAK,oDACLU,GAAD,CAAUlvB,MAAM,qBACfxO,KAAK,qCACLg9B,KAAK,wDACLU,GAAD,CAAUlvB,MAAM,sBAAsBxO,KAAK,wCCzBvCuL,OAAEA,GAAWoD,MACb7B,QAAEA,WAASI,GAAagyB,QACrB3zB,EAAO,gBAAiBuB,EAAQ/K,aACnCxK,EAAUoL,GAAQ,IAAMmK,EAAQF,MAAM7V,IAAI+qC,KAAch1B,EAAQF,gBAO9D,OAAD,OACL6xB,GAAD,CAAI9sC,GAAG,oBAAoBD,KAAK,WAC/B,MAAD,CAAKQ,MAAM,aACT,KAAD,KAAK4a,EAAQ/K,QACZ,MAAD,CAAK7P,MAAM,eACTurC,GAAD,CAAUlmC,QAAAA,EAAkB+K,SAVXsB,WACV+I,EAAWjb,KAASC,GAAMiS,EAAM9M,MAAM,OACtCpF,EAAM,GAAGib,KAAahb,iCCH1B4Z,OAAEA,GAAWoD,MACbjb,QAAEA,gBAASsb,GAAkBorB,MAC5B94B,EAAOq8B,GAAY/iC,EAAwB,SACzC2Q,EAAO,uBAETwvB,EAAQgH,GAAannC,EAAsB,IAC5ConC,EAAYlpC,OAAOrD,WAAKslC,IAAU,OAC9B,qBlC4EuBh2B,SAC3BrR,EAAU+C,GAAOyO,SAASvO,SAAUuL,EAAEvQ,KAAOoT,cAE5C/O,EAAM,GAAGqQ,GAAO3S,EAAS,+CAClB0S,GAAQpQ,SACbqC,SACF,IAAIC,MAAM,4CAA4C5E,MAAY6E,GAAQF,SkCjFpE3E,GACVuW,KAAK83B,GACLhE,mBAAqBz8B,MAAMjJ,KAAaE,GAAQF,SAChD,CAAC3E,UAEGgE,EAAQ+K,GAAa7H,EAAS,KAC9BqnC,EAASC,GAActnC,EAAwB,IAChDunC,EAAY,OACN,CAAC,CAAExwC,GAAI0I,KAAS8gC,MAAOzjC,EAAQ0jC,MAAO,EAAGC,MAAO,EAAGC,OAAQ,MAAQ2G,KAKzEG,EAAgBzwC,GAAe,OACzBswC,EAAQn/B,WAAY7K,EAAEtG,KAAOA,OAGlC8pC,EAAa4G,GAAkBznC,EAAS,GAKzCwE,EAAWnF,EAA0B,eAYnC,OAAD,OACLwkC,GAAD,CAAI/sC,KAAK,OAAOC,GAAG,WAClB2P,KAAUo9B,GAAD,CAAYp9B,MAAAA,EAAcC,UAAW,IAAMo8B,EAAS,QAC7DqE,EAAU3tC,OAAS,cAClB,MAAD,CAAKnC,MAAM,8BACT,MAAD,CAAKA,MAAM,wBACT8P,GAAD,CAAW9P,MAAM,6BAA6BqI,KAAK,aAAab,YAAa6R,EAAO,iBACnFrY,MAAOwE,EAAQkC,SAAU6I,EAAWZ,QAASsgC,MAC7ClkC,GAAD,CAAK9L,KAAK,OAAOI,QAASgZ,EAAO,oBAAqBrZ,MAAM,YAAYO,QAAS0vC,KAEjFF,EAAQ5tC,OAAS,KAAM4J,GAAD,CAAK9L,KAAK,OAAOC,MAAQmZ,EAAO,mBAAoBrZ,MAAM,kBAAkBO,QA1BtF,OACAgpC,EAAc,QA0B1B,MAAD,CAAKvpC,MAAM,aACV+L,GAAD,CAAK9L,KAAK,WAAWC,MAAOmZ,EAAO,YAAahZ,QAASgZ,EAAO,4BAA6BrZ,MAAM,kBAAkBO,QAvB/F,WAClB6vC,EAAWL,EAAQl0B,SAAU9V,EAAEmjC,MAAQ,IACvCr3B,EAAUk+B,EACd3D,MAAK,CAACvmC,EAAGC,IAAMD,EAAEqjC,MAAQpjC,EAAEojC,QAC3BrkC,QAAS,GAAGurC,EAAW,qCAAqCrqC,EAAEmjC,aAAe,yBAAyBnjC,EAAEkjC,yBAAyBljC,EAAEqjC,UAAUrjC,EAAEojC,UAC/IzmC,KAAK,QACEsF,QAAQmU,aAAa,OAAQ,iCAAmCtK,EAAU,SAC1E7J,QAAQmU,aAAa,WAAY,uBACjCnU,QAAQ+2B,aAgBd/E,GAAD,CAAS/5B,KAAK,MAAMC,MAAOsB,GACzB+C,GAAOyO,SAAS+jB,UAAUlyB,UACzBkH,GAAD,CAAK7L,MAAO8P,EAAEvQ,GAAIU,OAAQ6P,EAAEvQ,KAAO+B,EAASjB,QAAS,IAAMuc,EAAc9M,EAAEvQ,YAI7E,MAAD,CAAKO,MAAM,UACT+vC,EAAQlrC,kBAAUwrC,GAADrkC,OAAa1G,IAAKS,EAAEtG,IAAQsG,GAAO,CAAE8iC,OAAAA,EAAQU,YAAAA,IAA7C,CAA4DF,QA5C7D5pC,EA4CgFsG,EAAEtG,GA5ClE6wC,MACxBP,EAAQlrC,QAASkB,EAAEtG,KAAOA,EAAKqM,OAAK/F,GAAMuqC,GAAYvqC,OA2CyCujC,SAAU4G,EAAanqC,EAAEtG,OA5CjH,IAACA,QA8CjB,IAAD,CAAGqI,IAAKoF,EAAUkyB,MAAM,sBAExB,WAAD,CAAU3/B,GAAG,cACXqwC,EAAUjrC,UAAU,SAAD,CAAQS,IAAK7B,EAAGzC,MAAOyC,wCC/D3C8sC,GAAD,QACCC,EAAD,CAAQ9oC,SAPYvB,gBAET,IAAM5G,GAAU0B,SAASkD,GAASgC,EAAErC,YAM7C2sC,GAAD,CAAM10B,KAAK,QACV20B,GAAD,CAAU30B,KAAK,YAAYlb,SAAS,eACnC6vC,GAAD,CAAU30B,KAAK,UAAUlb,SAAS,aACjC8vC,GAAD,CAAQ50B,KAAK,cACZ60B,GAAD,CAAW70B,KAAK,iBACfpB,GAAD,CAASoB,KAAK,eACb80B,GAAD,CAAWv8B,SAAO,MClBrB,uBACSw8B,GAAD,OACLC,GAAD,OACEC,GAAD,OACEC,GAAD,OACEC,GAAD,OACEC,GAAD,WAQNC,IAAQC,GAAD,MAAUr6B,SAASvM"} \ No newline at end of file diff --git a/assets/index.da908f73.js b/assets/index.da908f73.js deleted file mode 100644 index 849207a6..00000000 --- a/assets/index.da908f73.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,o=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable,i=(t,n,o)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&i(e,n,t[n]);if(o)for(var n of o(t))a.call(t,n)&&i(e,n,t[n]);return e},l=(e,o)=>t(e,n(o));import{y as c,a as d,r as u,l as h,g as m,b as p,s as f,c as g,d as v,e as w,j as _,f as y,h as b,i as x,k,q as C,A,F as M,m as j,n as I,o as z,p as E,t as L,u as O,v as $,Z as P,w as S,x as D,z as V,B as N,C as B,J as T,D as F,E as R,R as H,G as J,H as W,I as U,K as G,L as Y,M as q,N as Z,O as K,P as X,Q}from"./vendor.50c0a5f7.js";var ee;function te({type:e,id:t}){return c((()=>{var e;null==(e=document.getElementById("ad-placeholder"))||e.remove(),"ethicalads"in window&ðicalads.load()}),[]),d("div",{"data-ea-publisher":"misode-github-io","data-ea-type":e,class:"ad dark flat",id:t})}function ne({icon:e,label:t,active:n,class:o,tooltip:r,tooltipLoc:a,onClick:i}){return d("div",{class:`btn${n?" active":""}${o?` ${o}`:""}${r?` tooltipped tip-${null!=a?a:"sw"}`:""}`,onClick:i,"aria-label":r},e&&Ee[e],t&&d("span",null,t))}!function(e){const t="Site",n="Generator";function o(e,t,n){ga("send","event",e,t,n)}function r(e,t){ga("set",`dimension${e}`,t)}e.pageview=function(e){ga("set","page",e),ga("send","pageview")},e.setLanguage=function(e){r(4,e),o(t,"set-language",e)},e.setTheme=function(e){r(1,e),o(t,"set-theme",e)},e.setVersion=function(e){r(3,e),o(n,"set-version",e)},e.setPreview=function(e){r(5,e),o(n,"set-preview",e)},e.setGenerator=function(e){r(6,e)},e.generatorEvent=function(e,t){o(n,e,t)}}(ee||(ee={}));var oe=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"sk","name":"Slovenčina","schemas":false},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","ref":"1.15.2"},{"id":"1.16","ref":"1.16.5"},{"id":"1.17","ref":"1.17.1"},{"id":"1.18","ref":"1.18.1"},{"id":"latest","dynamic":true}],"generators":[{"id":"loot_table","url":"loot-table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","url":"predicate","path":"predicates","schema":"predicate"},{"id":"item_modifier","url":"item-modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","url":"advancement","path":"advancements","schema":"advancement"},{"id":"recipe","url":"recipe","path":"recipes","schema":"recipe"},{"id":"dimension","url":"dimension","schema":"dimension","category":"worldgen","minVersion":"1.16"},{"id":"dimension_type","url":"dimension-type","schema":"dimension_type","category":"worldgen","minVersion":"1.16"},{"id":"world","url":"world","schema":"world_settings","category":"worldgen","minVersion":"1.16"},{"id":"worldgen/biome","url":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/configured_carver","url":"worldgen/carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/configured_feature","url":"worldgen/feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/placed_feature","url":"worldgen/placed-feature","category":"worldgen","schema":"placed_feature","minVersion":"1.18"},{"id":"worldgen/noise","url":"worldgen/noise","category":"worldgen","schema":"noise_parameters","minVersion":"1.18"},{"id":"worldgen/noise_settings","url":"worldgen/noise-settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/configured_structure_feature","url":"worldgen/structure-feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/configured_surface_builder","url":"worldgen/surface-builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16","maxVersion":"1.17"},{"id":"worldgen/processor_list","url":"worldgen/processor-list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template_pool","url":"worldgen/template-pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"},{"id":"block_definition","url":"assets/blockstate","path":"blockstates","category":"assets","schema":"block_definition"},{"id":"model","url":"assets/model","path":"models","category":"assets","schema":"model"}]}');function re(e){return"object"==typeof e&&null!==e}const ae=e=>("0"+e.toString(16)).substr(-2);function ie(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,ae).join("")}function se(){return BigInt(Math.floor(Math.random()*Number.MAX_SAFE_INTEGER))}function le(e){const t=Math.floor(4294967296*Math.random())-2147483648,n=e.get(new h.Path(["dimensions"]));e.set(new h.Path(["seed"]),t,!0),"object"==typeof n&&null!==n&&Object.keys(n).forEach((n=>{e.set(new h.Path(["dimensions",n,"generator","seed"]),t,!0),e.set(new h.Path(["dimensions",n,"generator","biome_source","seed"]),t,!0)})),e.set(new h.Path(["generator","seed"]),t,!0),e.set(new h.Path(["generator","biome_source","seed"]),t)}function ce(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return t}function de(e){return`/${e}/`.replaceAll("//","/")}function ue(e){const t=e.indexOf("?");return t>=0&&(e=e.slice(0,t)),de(e)}function he(e){const t=ue(e).replace(/^\//,"").replace(/\/$/,"");return oe.generators.find((e=>e.url===t))}function me(e){const t=e.indexOf("?");return t>=0?(e=e.slice(t+1),new Map(e.split("&").map((e=>{const t=e.indexOf("=");return-1===t?[e,"true"]:[decodeURIComponent(e.slice(0,t)),decodeURIComponent(e.slice(t+1))]})))):new Map}function pe(e,t){const n=m(),o=me(n);Object.entries(e).forEach((([e,t])=>{void 0===t?o.delete(e):o.set(e,t)}));const r=Array.from(o).map((([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`));p(`${t?de(t):ue(n)}${0===r.length?"":`?${r.join("&")}`}`,!0)}function fe(e){const t=Math.abs(ce(e));return[t%256,(t>>8)%256,(t>>16)%256]}function ge(e){return e*e}function ve(e,t,n){return Math.max(e,Math.min(t,n))}function we(e,t,n){return n<0?e:n>1?t:_e(n,e,t)}function _e(e,t,n){return t+e*(n-t)}function ye(e){return e instanceof Error?e.message:`${e}`}const be=u();function xe(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;let n,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(o=0;o<n;o++)if(!xe(e[o],t[o]))return!1;return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();const r=Object.keys(e);if(n=r.length,n!==Object.keys(t).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(t,r[o]))return!1;for(o=n;0!=o--;){const n=r[o];if(!xe(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}class ke{constructor(){this.forward=new Map,this.backward=new Map}set(e,t){this.forward.set(e,t),this.backward.set(t,e)}getA(e){return this.backward.get(e)}getB(e){return this.forward.get(e)}getOrPut(e,t){const n=this.forward.get(e);return void 0===n?(this.set(e,t),t):n}}function Ce({icon:e,label:t,large:n,larger:o,doSelect:r,value:a,placeholder:i,dataList:s,onChange:l}){const u=void 0===l?()=>{}:e=>{const t=e.target.value;null==l||l(t)},h=f(null);c((()=>{r&&h.current&&h.current.select()}),[r]);const m=s&&ie();return d("div",{class:`btn btn-input ${n?"large-input":""} ${o?"larger-input":""}`,onClick:e=>e.stopPropagation()},e&&Ee[e],t&&d("span",null,t),d("input",{ref:h,type:"text",value:a,onChange:u,placeholder:i,list:m}),s&&d("datalist",{id:m},s.map((e=>d("option",{value:e})))))}function Ae({cooldown:e,invert:t,initial:n}={}){const[o,r]=g(n),a=f(void 0);return[o,()=>{r(!t),void 0!==a.current&&clearTimeout(a.current),a.current=setTimeout((()=>{r(!!t)}),null!=e?e:2e3)}]}function Me({size:e,draw:t,onDrag:n,onHover:o,onLeave:r},a){const i=f(null),s=f(),l=f(),d=f([0,0]),u=f(!1);c((()=>{const e=e=>{s.current=[e.offsetX,e.offsetY]},t=e=>{if(void 0===s.current){const t=e.offsetX/i.current.clientWidth,n=e.offsetY/i.current.clientHeight;return void(null==o||o(t,n))}if(!n)return;const t=e.offsetX-s.current[0],r=e.offsetY-s.current[1];0===t&&0===r||(d.current=[d.current[0]+t,d.current[1]+r],u.current||(cancelAnimationFrame(l.current),l.current=requestAnimationFrame((async()=>{u.current=!0;const e=d.current[0]/i.current.clientWidth,t=d.current[1]/i.current.clientHeight;d.current=[0,0],await(null==n?void 0:n(e,t)),u.current=!1})))),s.current=[e.offsetX,e.offsetY]},a=()=>{s.current=void 0},c=()=>{null==r||r()};return i.current.addEventListener("mousedown",e),i.current.addEventListener("mousemove",t),i.current.addEventListener("mouseleave",c),document.body.addEventListener("mouseup",a),()=>{var n,o,r;null==(n=i.current)||n.removeEventListener("mousedown",e),null==(o=i.current)||o.removeEventListener("mousemove",t),null==(r=i.current)||r.removeEventListener("mouseleave",c),document.body.removeEventListener("mouseup",a)}}),[...null!=a?a:[],i.current]);const h=f(),m=f(0);return h.current=async()=>{const n=i.current.getContext("2d"),o=e();i.current.width=o[0],i.current.height=o[1];const r=n.getImageData(0,0,o[0],o[1]),a=m.current+=1;await t(r),a===m.current&&n.putImageData(r,0,0)},{canvas:i,redraw:h.current}}function je(){const[e,t]=g(!1),n=()=>{t(!1)};return c((()=>(e&&(document.body.addEventListener("click",n),document.body.addEventListener("contextmenu",n)),()=>{document.body.removeEventListener("click",n),document.body.removeEventListener("contextmenu",n)})),[e]),[e,()=>t(!0)]}function Ie(e,t){const n={invalidated(){e&&t(e)}};c((()=>(null==e||e.addListener(n),()=>{null==e||e.removeListener(n)})),[e])}function ze(e){const{icon:t,label:n,relative:o,tooltip:r,tooltipLoc:a,children:i}=e,[c,u]=je();return d("div",s({class:"btn-menu"+(!1===o?" no-relative":"")},e),d(ne,l(s({},{icon:t,label:n,tooltip:r,tooltipLoc:a}),{onClick:u})),c&&d("div",{class:"btn-group"},i))}const Ee={alert:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})),archive:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z"})),arrow_left:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"})),arrow_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"})),check:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})),chevron_down:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})),chevron_right:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})),chevron_up:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"})),clippy:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"})),code:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"})),dash:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z"})),device_desktop:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z"})),dot_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 4a4 4 0 100 8 4 4 0 000-8z"})),download:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),duplicate:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z"}),d("path",{"fill-rule":"evenodd",d:"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z"}),d("path",{d:"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z"})),eye:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"})),eye_closed:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z"})),file:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z"})),file_directory:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z"})),gear:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"})),globe:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z"})),history:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"})),info:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"})),issue_opened:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"})),kebab_horizontal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"})),link:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"})),link_external:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z"})),mark_github:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"})),moon:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"})),play:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"})),plus:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z"})),plus_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z"})),repo:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"})),search:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})),sort_asc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z"})),sort_desc:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z"}),d("path",{d:"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z"})),square:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z"})),square_fill:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z"})),stack:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z"})),sun:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"})),sync:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"})),tag:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"})),terminal:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z"})),three_bars:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"})),trashcan:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"})),unfold:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{d:"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"})),upload:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z"})),x:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})),x_circle:d("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16"},d("path",{"fill-rule":"evenodd",d:"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z"}))};function Le({error:e,onDismiss:t}){return d("div",{class:"error"},t&&d("div",{class:"error-dismiss",onClick:t},Ee.x),d("h3",null,e),d("p",null,"If you think this is a bug, you can report it ",d("a",{href:"https://github.com/misode/misode.github.io/issues/new",target:"_blank"},"on GitHub")))}function Oe(e,t,n){const o=e=>{const o=e.onChange&&(t=>{var o;const r=t.target.value;null==(o=e.onChange)||o.call(e,n(r))}),r=e.onEnter&&(t=>{var o;if("Enter"===t.key){const r=t.target.value;null==(o=e.onEnter)||o.call(e,n(r))}});return d("input",s(s({},e),{type:t,onChange:o,onKeyDown:r}))};return o.displayName=e,o}const $e=Oe("TextInput","text",(e=>e)),Pe=Oe("NumberInput","number",(e=>Number(e))),Se=Oe("RangeInput","range",(e=>Number(e)));function De({values:e,onSelect:t,searchPlaceholder:n,noResults:o}){const[r,a]=g(""),i=v((()=>{var t;const n=r.trim().split(" ");return null!=(t=null==e?void 0:e.filter((e=>n.every((t=>e.includes(t))))))?t:[]}),[e,r]);return d(w,null,d(Ce,{icon:"search",large:!0,value:r,onChange:a,doSelect:1,placeholder:null!=n?n:"Search"}),d("div",{class:"result-list"},i.map((e=>d(ne,{key:e,label:e,onClick:()=>null==t?void 0:t(e)}))),0===i.length&&d(ne,{label:null!=o?o:"No results"})))}const Ve="https://raw.githubusercontent.com/misode/technical-changes/main";let Ne=null;async function Be(){if(!Ne){const e=await(await fetch(`${Ve}/index.json`)).json();Ne=(await Promise.all(e.map(((e,t)=>async function(e,t){const n=await(await fetch(`${Ve}/${e.id}/index.json`)).json();return(await Promise.all(n.map(((n,o)=>async function(e,t,n,o){return function(e){return e.split("\n\n").map((e=>{const t=e.indexOf("|");return{tags:e.substring(0,t).trim().split(" "),content:e.slice(t+1).trim().replaceAll("->","→").replaceAll("\n...\n","\n\n")}}))}(await(await fetch(`${Ve}/${e.id}/${t.id}.md`)).text()).map((r=>s({version:t,group:e,order:1e3*n+o},r)))}(e,Te(n),t,o))))).flat()}(Te(e),t))))).flat().map((e=>l(s({},e),{tags:[e.group.id,...e.tags]})))}return Ne}function Te(e){return"string"==typeof e?{id:e,article:e.match(/\d\dw\d\d[a-z]/)?"minecraft-snapshot-"+e:e.match(/\d+\.\d+(\.\d+)?-pre[0-9]+/)?"minecraft-"+e.replaceAll(".","-").replaceAll("pre","pre-release-"):null}:re(e)?e:{id:"unknown",article:null}}["1.15","1.16","1.17"].forEach((e=>localStorage.removeItem(`cache_${e}`))),["mcdata_master","vanilla_datapack_summary"].forEach((e=>localStorage.removeItem(`cached_${e}`))),caches.delete("misode-v1");const Fe="https://raw.githubusercontent.com/misode/mcmeta";function Re(e,t){return`${Fe}/${e.dynamic?t:`${e.ref}-${t}`}`}async function He(e,t,n){const o=oe.versions.find((t=>t.id===e));o?(o.dynamic&&(""!==localStorage.getItem("cached_latest_version")&&(await async function(e){try{const t=await caches.open("misode-v2");console.debug("[deleteMatching] Opened cache misode-v2");const n=[];for(const o of await t.keys())e(o.url)&&n.push(t.delete(o));console.debug(`[deleteMatching] Removing ${n.length} cache objects...`),await Promise.all(n)}catch(t){console.warn(`[deleteMatching] Failed to open cache misode-v2: ${ye(t)}`)}}((e=>e.startsWith(`${Fe}/summary`))),localStorage.setItem("cached_latest_version","")),o.ref=""),await Promise.all([Je(o,t),We(o,n)])):console.error(`[fetchData] Unknown version ${o} in ${JSON.stringify(oe.versions)}`)}async function Je(e,t){console.debug(`[fetchRegistries] ${e.id}`);try{const n=await Ge(`${Re(e,"summary")}/registries/data.min.json`);for(const e in n)t.register(e,n[e].map((e=>"minecraft:"+e)))}catch(n){console.warn("Error occurred while fetching registries:",ye(n))}}async function We(e,t){console.debug(`[fetchBlockStateMap] ${e.id}`);try{const n=await Ge(`${Re(e,"summary")}/blocks/data.min.json`);for(const e in n)t["minecraft:"+e]={properties:n[e][0],default:n[e][1]}}catch(n){console.warn("Error occurred while fetching block state map:",ye(n))}}async function Ue(e,t,n){console.debug(`[fetchPreset] ${e} ${t} ${n}`);const o=oe.versions.find((t=>t.id===e));try{const e=["blockstates","models"].includes(t)?"assets":"data",r=`${Re(o,e)}/${e}/minecraft/${t}/${n}.json`;return(await fetch(r)).json()}catch(r){throw new Error(`Error occurred while fetching ${t} preset ${n}: ${ye(r)}`)}}async function Ge(e,t=(e=>e)){try{const n=await caches.open("misode-v2");console.debug(`[getData] Opened cache misode-v2 ${e}`);const o=await n.match(e);if(o&&o.ok)return console.debug(`[getData] Retrieving cached data ${e}`),await o.json();console.debug(`[getData] fetching data ${e}`);const r=await fetch(e),a=t(await r.json());return await n.put(e,new Response(JSON.stringify(a))),a}catch(n){console.warn(`[getData] Failed to open cache misode-v2: ${ye(n)}`),console.debug(`[getData] fetching data ${e}`);const o=await fetch(e);return t(await o.json())}}const Ye=["1.15","1.16","1.17","1.18","latest"],qe={},Ze={},Ke={1.15:_,1.16:y,1.17:b,1.18:x,latest:k};let Xe,Qe,et,tt;async function nt(e){return qe[e]||(qe[e]=(async()=>{try{const t=Ke[e].getCollections(),n={};await He(e,t,n);const o=Ke[e].getSchemas(t);return qe[e]={collections:t,schemas:o,blockStates:n},qe[e]}catch(t){throw new Error(`Cannot get version "${e}": ${ye(t)}`)}})()),qe[e]}function ot(e,t,n){const o=oe.versions.findIndex((t=>t.id===e)),r=t?oe.versions.findIndex((e=>e.id===t)):0,a=n?oe.versions.findIndex((e=>e.id===n)):oe.versions.length-1;return r<=o&&o<=a}const rt={},at=function(e,t){if(!t)return e();if(void 0===tt){const e=document.createElement("link").relList;tt=e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}return Promise.all(t.map((e=>{if(e in rt)return;rt[e]=!0;const t=e.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${n}`))return;const o=document.createElement("link");return o.rel=t?"stylesheet":tt,t||(o.as="script",o.crossOrigin=""),o.href=e,document.head.appendChild(o),t?new Promise(((e,t)=>{o.addEventListener("load",e),o.addEventListener("error",t)})):void 0}))).then((()=>e()))};var it,st,lt=JSON.parse('{"add":"Add","add_bottom":"Add to bottom","add_top":"Add to top","advancement":"Advancement","assets":"Assets","block_definition":"Blockstate","changelog.search":"Search changes","collapse":"Collapse","collapse_all":"Hold %0% to collapse all","configure_layers":"Configure layers","copy":"Copy","copied":"Copied!","copy_context":"Copy context","dimension_type":"Dimension Type","dimension":"Dimension","disabled":"Disabled","download":"Download","duplicate":"Duplicate","enabled":"Enabled","entries_hidden":"%0% entries hidden","entries_hidden.more":"Show %0% more","entries_hidden.all":"Show all","expand":"Expand","expand_all":"Hold %0% to expand all","feature.decorated.decorators":"Decorators","feature.decorated.decorators.entry":"Decorator","follow_reference":"Follow reference","format.json":"JSON","format.yaml":"YAML","fields":"Fields","generate_new_seed":"Generate new seed","github":"GitHub","hide_output":"Hide output","hide_preview":"Hide preview","home":"Home","import":"Import","indentation.2_spaces":"2 spaces","indentation.4_spaces":"4 spaces","indentation.minified":"Minified","indentation.tabs":"Tabs","item_modifier":"Item Modifier","language":"Language","latest":"Latest","layer.biomes":"Biomes","layer.temperature":"Temperature","layer.humidity":"Humidity","layer.continentalness":"Continentalness","layer.erosion":"Erosion","layer.weirdness":"Weirdness","layer.offset":"Offset","layer.factor":"Factor","layer.jaggedness":"Jaggedness","loot_table":"Loot Table","model":"Model","more":"More","move_down":"Move down","move_up":"Move up","not_found.description":"The page you were looking for does not exist.","no_presets":"No presets","output_settings":"Output settings","predicate":"Predicate","recipe":"Recipe","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","theme":"Theme","theme.dark":"Dark","theme.light":"Light","theme.system":"System","title.changelog":"Technical Changelog","title.generator":"%0% Generator","title.generator_category":"%0% Generators","title.home":"Data Pack Generators","title.project":"%0% Project","title.sounds":"Sound Explorer","presets":"Presets","preview":"Visualize","preview.auto_scroll":"Auto scroll","preview.biome":"Biome","preview.scale":"Scale","preview.depth":"Depth","preview.factor":"Factor","preview.offset":"Offset","preview.peaks":"Peaks","preview.width":"Width","project.delete_file":"Delete file","project.go_to":"Go to project","project.new_file":"New file","project.no_files":"No files","project.search":"Search project","project.search_drafts":"Search drafts","project.unsaved_file":"Unsaved file","remove":"Remove","search":"Search","show_output":"Show output","show_preview":"Show preview","sounds.play":"Play","sounds.play_sound":"Play sound","sounds.play_all":"Play all","sounds.search":"Search sounds","sounds.download_function":"Download Mcfunction","sounds.delay":"Delay","sounds.pitch":"Pitch","sounds.volume":"Volume","sounds.copy_command":"Copy command","sounds.add_sound":"Add sound","sounds.remove_sound":"Remove sound","sounds.unknown_sound":"Unknown sound","sounds.loading_sound":"Loading sound","source_placeholder":"Paste raw %0% content here","switch_generator":"Switch generator","switch_version":"Switch version","terrain_settings":"Terrain settings","undo":"Undo","world":"World Settings","worldgen":"Worldgen","worldgen/biome":"Biome","worldgen/configured_carver":"Carver","worldgen/configured_feature":"Feature","worldgen/placed_feature":"Placed Feature","worldgen/noise":"Noise","worldgen/noise_settings":"Noise Settings","worldgen/processor_list":"Processor List","worldgen/configured_structure_feature":"Structure Feature","worldgen/configured_surface_builder":"Surface Builder","worldgen/template_pool":"Template Pool","zoom_in":"Zoom in","zoom_out":"Zoom out"}'),ct=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:lt});(st=it||(it={})).ID_LANGUAGE="language",st.ID_THEME="theme",st.ID_VERSION="schema_version",st.ID_INDENT="indentation",st.ID_FORMAT="output_format",st.ID_SOUNDS_VERSION="minecraft_sounds_version",st.ID_PROJECTS="misode_projects",st.getLanguage=function(){var e;return null!=(e=localStorage.getItem(st.ID_LANGUAGE))?e:"en"},st.getTheme=function(){var e;return null!=(e=localStorage.getItem(st.ID_THEME))?e:"dark"},st.getVersion=function(){const e=localStorage.getItem(st.ID_VERSION);return e&&Ye.includes(e)?e:"1.18"},st.getIndent=function(){var e;return null!=(e=localStorage.getItem(st.ID_INDENT))?e:"2_spaces"},st.getFormat=function(){var e;return null!=(e=localStorage.getItem(st.ID_FORMAT))?e:"json"},st.getSoundsVersion=function(){var e;return null!=(e=localStorage.getItem(st.ID_SOUNDS_VERSION))?e:"latest"},st.getProjects=function(){const e=localStorage.getItem(st.ID_PROJECTS);return e?JSON.parse(e):[gt]},st.setLanguage=function(e){e&&localStorage.setItem(st.ID_LANGUAGE,e)},st.setTheme=function(e){e&&localStorage.setItem(st.ID_THEME,e)},st.setVersion=function(e){e&&localStorage.setItem(st.ID_VERSION,e)},st.setIndent=function(e){e&&localStorage.setItem(st.ID_INDENT,e)},st.setFormat=function(e){e&&localStorage.setItem(st.ID_FORMAT,e)},st.setSoundsVersion=function(e){e&&localStorage.setItem(st.ID_SOUNDS_VERSION,e)},st.setProjects=function(e){e&&localStorage.setItem(st.ID_PROJECTS,JSON.stringify(e))};const dt=C({lang:"none",locale:e=>e,changeLanguage:()=>{}}),ut={fallback:lt};function ht(e,t,...n){var o,r,a,i,s;return function(e,t){return e.replace(/%\d+%/g,(e=>{const n=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[n])?t[n]:e}))}(null!=(s=null!=(i=null!=(a=null==(o=ut[e])?void 0:o[t])?a:null==(r=ut.en)?void 0:r[t])?i:ut.fallback[t])?s:t,n)}async function mt(e){if(ut[e])return;const t=oe.languages.find((t=>t.code===e));if(!t)return;const n=await function(e){switch(e){case"../../locales/de.json":return at((()=>import("./de.a269acce.js")),void 0);case"../../locales/en.json":return at((()=>Promise.resolve().then((function(){return ct}))),void 0);case"../../locales/es.json":return at((()=>import("./es.d3abba45.js")),void 0);case"../../locales/fr.json":return at((()=>import("./fr.f5531eea.js")),void 0);case"../../locales/it.json":return at((()=>import("./it.fd9a8268.js")),void 0);case"../../locales/ja.json":return at((()=>import("./ja.a8ff49be.js")),void 0);case"../../locales/pl.json":return at((()=>import("./pl.3a9fb38c.js")),void 0);case"../../locales/pt.json":return at((()=>import("./pt.1a04bd2d.js")),void 0);case"../../locales/ru.json":return at((()=>import("./ru.578070fe.js")),void 0);case"../../locales/sk.json":return at((()=>import("./sk.96bbf351.js")),void 0);case"../../locales/zh-cn.json":return at((()=>import("./zh-cn.a421074a.js")),void 0);case"../../locales/zh-tw.json":return at((()=>import("./zh-tw.298bd51e.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../locales/${e}.json`),o=!1!==t.schemas&&await function(e){switch(e){case"../../../node_modules/@mcschema/locales/src/cs.json":return at((()=>import("./cs.967a01eb.js")),void 0);case"../../../node_modules/@mcschema/locales/src/de.json":return at((()=>import("./de.6c6a67f3.js")),void 0);case"../../../node_modules/@mcschema/locales/src/en.json":return at((()=>import("./en.c743275d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/es.json":return at((()=>import("./es.c83d9c73.js")),void 0);case"../../../node_modules/@mcschema/locales/src/fr.json":return at((()=>import("./fr.e316b1e2.js")),void 0);case"../../../node_modules/@mcschema/locales/src/it.json":return at((()=>import("./it.7ff123cd.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ja.json":return at((()=>import("./ja.3170354d.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pl.json":return at((()=>import("./pl.ae1f6791.js")),void 0);case"../../../node_modules/@mcschema/locales/src/pt.json":return at((()=>import("./pt.31e14993.js")),void 0);case"../../../node_modules/@mcschema/locales/src/ru.json":return at((()=>import("./ru.9fcdec57.js")),void 0);case"../../../node_modules/@mcschema/locales/src/sk.json":return at((()=>import("./sk.d4265232.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-cn.json":return at((()=>import("./zh-cn.4129665a.js")),void 0);case"../../../node_modules/@mcschema/locales/src/zh-tw.json":return at((()=>import("./zh-tw.292626d0.js")),void 0);default:return Promise.reject(new Error("Unknown variable dynamic import: "+e))}}(`../../../node_modules/@mcschema/locales/src/${e}.json`);ut[e]=s(s({},n.default),o.default)}function pt(){return M(dt)}function ft({children:e}){const[t,n]=g("none"),o=A(((e,...n)=>ht(t,e,...n)),[t]),r=A((async e=>{await mt(e),ee.setLanguage(e),it.setLanguage(e),n(e)}),[]);c((()=>{(async()=>{const e=it.getLanguage();await Promise.all([mt("en"),..."en"!==e?[mt(e)]:[]]),n(e)})()}),[]);const a={lang:t,locale:o,changeLanguage:r};return d(dt.Provider,{value:a},e)}const gt={name:"Drafts",namespace:"draft",files:[]},vt=C({project:gt,changeProject:()=>{},updateProject:()=>{},updateFile:()=>!1,openFile:()=>{},closeFile:()=>{}});function wt(){return M(vt)}function _t({children:e}){const[t,n]=g(it.getProjects()),[o,r]=g(gt.name),a=v((()=>{var e;return null!=(e=t.find((e=>e.name===o)))?e:gt}),[t,o]),[i,c]=g(void 0),u=v((()=>{if(i)return a.files.find((e=>e.type===i[0]&&e.id===i[1]))}),[a,i]),h=A((e=>{it.setProjects(e),n(e)}),[]),m=A((e=>{h(t.map((t=>t.name===o?s(s({},t),e):t)))}),[t,o]),f=A(((e,t,n)=>{var o;if(n.id){const r=n.id.includes(":")?n.id:`${a.namespace}:${n.id}`,i=a.files.some((t=>t.type===e&&t.id===r));if(t){if((null==u?void 0:u.id)===t&&t!==r&&i)return!1;m({files:a.files.map((o=>o.type===e&&o.id===t?l(s(s({},o),n),{id:r}):o))}),(null==u?void 0:u.id)===t&&c([e,r])}else{if(i)return!1;m({files:[...a.files,{type:e,id:r,data:null!=(o=n.data)?o:{}}]}),c([e,r])}}else m({files:a.files.filter((n=>n.type!==e||n.id!==t))});return!0}),[m,a,u]),w=A(((e,t)=>{const n=oe.generators.find((t=>t.id===e||t.path===e));if(!n)throw new Error(`Cannot find generator of type ${e}`);c([n.id,t]),p(de(n.url))}),[]),_=A((()=>{c(void 0)}),[]),y={project:a,file:u,changeProject:r,updateProject:m,updateFile:f,openFile:w,closeFile:_};return d(vt.Provider,{value:y},e)}function yt(e){var t;const[n,o]=e.id.includes(":")?e.id.split(":"):["minecraft",e.id],r=oe.generators.find((t=>t.id===e.type));if(!r)throw new Error(`Cannot find generator of type ${e.type}`);return`data/${n}/${null!=(t=r.path)?t:r.id}/${o}`}const bt=C({theme:"dark",changeTheme:()=>{}});function xt({children:e}){const[t,n]=g(it.getTheme());c((()=>{document.documentElement.setAttribute("data-theme",t)}),[t]);const o=A((e=>{ee.setTheme(e),it.setTheme(e),n(e)}),[]),r={theme:t,changeTheme:o};return d(bt.Provider,{value:r},e)}const kt=C({title:"",changeTitle:()=>{}});function Ct(e,t){const n=M(kt);return c((()=>{e&&n.changeTitle(e,t)}),[e,t]),n}function At({children:e}){const{locale:t}=pt(),[n,o]=g(t("title.home")),r={title:n,changeTitle:A(((e,t)=>{null!=t||(t=oe.versions.map((e=>e.id)));const n=t.slice(t.length-3);document.title=`${e} Minecraft ${n.join(", ")}`,o(e)}),[])};return d(kt.Provider,{value:r},e)}const Mt=C({version:"1.18",changeVersion:()=>{}});function jt(){return M(Mt)}function It({children:e}){const[t,n]=g(it.getVersion()),o=me(m()).get("version");c((()=>{Ye.includes(o)&&t!==o&&n(o)}),[t,o]);const r=A((e=>{me(m()).has("version")&&pe({version:e}),ee.setVersion(e),it.setVersion(e),n(e)}),[]),a={version:t,changeVersion:r};return d(Mt.Provider,{value:a},e)}let zt=!1;const Et={temperature:[-1,1],humidity:[-1,1],continentalness:[-1.1,1],erosion:[-1,1],weirdness:[-1,1],offset:[-1,1],factor:[0,12],jaggedness:[0,1]};let Lt,Ot;async function $t(e,t){const n=[e,t.octaves,t.shaper.toJson(),`${t.seed}`,t.version];return xe(n,Lt)||(Lt=be(n),Ot=await async function(e,t){var n,o,r,a,i;switch(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,"")){case"fixed":return new P(e.biome);case"checkerboard":const n=(null!=(o=e.scale)?o:2)+2,l=null!=(a=null==(r=e.biomes)?void 0:r.length)?a:0;return{getBiome(t,o,r){var a;const i=(((t>>n)+(r>>n))%l+l)%l;return null==(a=e.biomes)?void 0:a[i].node}};case"multi_noise":switch(null==(i=e.preset)?void 0:i.replace(/^minecraft:/,"")){case"nether":e="1.18"===t.version?Vt:Dt;break;case"overworld":e="1.18"===t.version?await async function(){return(await Ue("1.18","dimension","overworld")).generator.biome_source}():e}if(e=h.DataModel.unwrapLists(e),"1.18"===t.version){await async function(){zt||(await S(D),zt=!0,console.debug(`Loaded deepslate-rs from "${D}"`))}();const n=new ke,o=e=>"number"==typeof e?[e,e]:e,[r,a,i,l,c,d,u,h,m,p,f,g,v,w]=[[],[],[],[],[],[],[],[],[],[],[],[],[],[]];for(const t of e.biomes){const{temperature:e,humidity:s,continentalness:_,erosion:y,weirdness:b,depth:x,offset:k}=t.parameters;r.push(o(e)[0]),a.push(o(e)[1]),i.push(o(s)[0]),l.push(o(s)[1]),c.push(o(_)[0]),d.push(o(_)[1]),u.push(o(y)[0]),h.push(o(y)[1]),m.push(o(b)[0]),p.push(o(b)[1]),f.push(o(x)[0]),g.push(o(x)[1]),v.push(k),w.push(n.getOrPut(t.biome,Math.floor(2147483647*Math.random())))}const _=j(new Float64Array(r),new Float64Array(a),new Float64Array(i),new Float64Array(l),new Float64Array(c),new Float64Array(d),new Float64Array(u),new Float64Array(h),new Float64Array(m),new Float64Array(p),new Float64Array(f),new Float64Array(g),new Float64Array(v),new Int32Array(w)),y=I(t.seed,t.octaves.temperature.firstOctave,new Float64Array(t.octaves.temperature.amplitudes),t.octaves.humidity.firstOctave,new Float64Array(t.octaves.humidity.amplitudes),t.octaves.continentalness.firstOctave,new Float64Array(t.octaves.continentalness.amplitudes),t.octaves.erosion.firstOctave,new Float64Array(t.octaves.erosion.amplitudes),t.octaves.weirdness.firstOctave,new Float64Array(t.octaves.weirdness.amplitudes),t.octaves.shift.firstOctave,new Float64Array(t.octaves.shift.amplitudes));return{getBiome(e,t,o){var r;const a=z(_,y,e,e+1,1,t,t+1,1,o,o+1,1);return null!=(r=n.getA(a[0]))?r:"unknown"},getBiomes:(e,t,o,r,a,i,s,l,c)=>[...z(_,y,e,t,o,r,a,i,s,l,c)].map((e=>{var t;return null!=(t=n.getA(e))?t:"unknown"})),getClimate(e,t,n){const o=E(y,e,e+1,1,t,t+1,1,n,n+1,1),[r,a,i,s,l]=o.slice(0,5);return{temperature:r,humidity:a,continentalness:i,erosion:s,weirdness:l}},getClimates(e,n,o,r,a,i,l,c,d,u){const h=E(y,n,o,r,a,i,l,c,d,u),m=[];for(let p=0;p<h.length;p+=7){const[n,o,r,a,i]=h.slice(p,p+5),l=L.point(r,a,i);m.push(s(s(s({temperature:n,humidity:o,continentalness:r,erosion:a,weirdness:i},e.has("offset")&&{offset:t.shaper.offset(l)}),e.has("factor")&&{factor:t.shaper.factor(l)}),e.has("jaggedness")&&{jaggedness:t.shaper.jaggedness(l)}))}return m}}}{const n=["altitude","temperature","humidity","weirdness"].map(((n,o)=>{var r;const a=e[`${n}_noise`];return a.firstOctave=ve(null!=(r=a.firstOctave)?r:-7,-100,-1),new O(new $(t.seed+BigInt(o)),a)}));return Array.isArray(e.biomes)&&0!==e.biomes.length?{getBiome(t,o,r){const a=n.map((e=>e.sample(t,r,0)));let i=1/0,s="";for(const{biome:n,parameters:l}of e.biomes){const e=ge(l.altitude-a[0])+ge(l.temperature-a[1])+ge(l.humidity-a[2])+ge(l.weirdness-a[3])+ge(l.offset);e<i&&(i=e,s=n)}return s}}:new P("unknown")}}throw new Error("Unknown biome source")}(e,t)),{biomeSource:Ot}}function Pt(e,t){var n;if(!e)return[128,128,128];const o=null!=(n=t[e])?n:St[e];return void 0===o?fe(e):o}const St={"minecraft:badlands":[217,69,21],"minecraft:badlands_plateau":[202,140,101],"minecraft:bamboo_jungle":[118,142,20],"minecraft:bamboo_jungle_hills":[59,71,10],"minecraft:basalt_deltas":[64,54,54],"minecraft:beach":[250,222,85],"minecraft:birch_forest":[48,116,68],"minecraft:birch_forest_hills":[31,95,50],"minecraft:cold_ocean":[32,32,112],"minecraft:crimson_forest":[221,8,8],"minecraft:dark_forest":[64,81,26],"minecraft:dark_forest_hills":[104,121,66],"minecraft:deep_cold_ocean":[32,32,56],"minecraft:deep_frozen_ocean":[64,64,144],"minecraft:deep_lukewarm_ocean":[0,0,64],"minecraft:deep_ocean":[0,0,48],"minecraft:deep_warm_ocean":[0,0,80],"minecraft:desert":[250,148,24],"minecraft:desert_hills":[210,95,18],"minecraft:desert_lakes":[255,188,64],"minecraft:end_barrens":[128,128,255],"minecraft:end_highlands":[128,128,255],"minecraft:end_midlands":[128,128,255],"minecraft:eroded_badlands":[255,109,61],"minecraft:flower_forest":[45,142,73],"minecraft:forest":[5,102,33],"minecraft:frozen_ocean":[112,112,214],"minecraft:frozen_river":[160,160,255],"minecraft:giant_spruce_taiga":[129,142,121],"minecraft:old_growth_spruce_taiga":[129,142,121],"minecraft:giant_spruce_taiga_hills":[109,119,102],"minecraft:giant_tree_taiga":[89,102,81],"minecraft:old_growth_pine_taiga":[89,102,81],"minecraft:giant_tree_taiga_hills":[69,79,62],"minecraft:gravelly_hills":[136,136,136],"minecraft:gravelly_mountains":[136,136,136],"minecraft:windswept_gravelly_hills":[136,136,136],"minecraft:ice_spikes":[180,220,220],"minecraft:jungle":[83,123,9],"minecraft:jungle_edge":[98,139,23],"minecraft:sparse_jungle":[98,139,23],"minecraft:jungle_hills":[44,66,5],"minecraft:lukewarm_ocean":[0,0,144],"minecraft:modified_badlands_plateau":[242,180,141],"minecraft:modified_gravelly_mountains":[120,152,120],"minecraft:modified_jungle":[123,163,49],"minecraft:modified_jungle_edge":[138,179,63],"minecraft:modified_wooded_badlands_plateau":[216,191,141],"minecraft:mountain_edge":[114,120,154],"minecraft:extreme_hills":[96,96,96],"minecraft:mountains":[96,96,96],"minecraft:windswept_hills":[96,96,96],"minecraft:mushroom_field_shore":[160,0,255],"minecraft:mushroom_fields":[255,0,255],"minecraft:nether_wastes":[191,59,59],"minecraft:ocean":[0,0,112],"minecraft:plains":[141,179,96],"minecraft:river":[0,0,255],"minecraft:savanna":[189,178,95],"minecraft:savanna_plateau":[167,157,100],"minecraft:shattered_savanna":[229,218,135],"minecraft:windswept_savanna":[229,218,135],"minecraft:shattered_savanna_plateau":[207,197,140],"minecraft:small_end_islands":[128,128,255],"minecraft:snowy_beach":[250,240,192],"minecraft:snowy_mountains":[160,160,160],"minecraft:snowy_taiga":[49,85,74],"minecraft:snowy_taiga_hills":[36,63,54],"minecraft:snowy_taiga_mountains":[89,125,114],"minecraft:snowy_tundra":[255,255,255],"minecraft:snowy_plains":[255,255,255],"minecraft:soul_sand_valley":[94,56,48],"minecraft:stone_shore":[162,162,132],"minecraft:stony_shore":[162,162,132],"minecraft:sunflower_plains":[181,219,136],"minecraft:swamp":[7,249,178],"minecraft:swamp_hills":[47,255,218],"minecraft:taiga":[11,102,89],"minecraft:taiga_hills":[22,57,51],"minecraft:taiga_mountains":[51,142,129],"minecraft:tall_birch_forest":[88,156,108],"minecraft:old_growth_birch_forest":[88,156,108],"minecraft:tall_birch_hills":[71,135,90],"minecraft:the_end":[128,128,255],"minecraft:the_void":[0,0,0],"minecraft:warm_ocean":[0,0,172],"minecraft:warped_forest":[73,144,123],"minecraft:wooded_badlands_plateau":[176,151,101],"minecraft:wooded_badlands":[176,151,101],"minecraft:wooded_hills":[34,85,28],"minecraft:wooded_mountains":[80,112,80],"minecraft:windswept_forest":[80,112,80],"minecraft:snowy_slopes":[140,195,222],"minecraft:lofty_peaks":[196,168,193],"minecraft:jagged_peaks":[196,168,193],"minecraft:snowcapped_peaks":[200,198,200],"minecraft:frozen_peaks":[200,198,200],"minecraft:stony_peaks":[82,92,103],"minecraft:grove":[150,150,189],"minecraft:meadow":[169,197,80],"minecraft:lush_caves":[112,255,79],"minecraft:dripstone_caves":[140,124,0]},Dt={type:"minecraft:multi_noise",seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:"minecraft:nether_wastes",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{altitude:0,temperature:0,humidity:-.5,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{altitude:0,temperature:.4,humidity:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{altitude:0,temperature:0,humidity:.5,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{altitude:0,temperature:-.5,humidity:0,weirdness:0,offset:.175}}]},Vt={type:"minecraft:multi_noise",biomes:[{biome:"minecraft:nether_wastes",parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:soul_sand_valley",parameters:{temperature:0,humidity:-.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:crimson_forest",parameters:{temperature:.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:"minecraft:warped_forest",parameters:{temperature:0,humidity:.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.375}},{biome:"minecraft:basalt_deltas",parameters:{temperature:-.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:.175}}]};const Nt=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],Bt=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];function Tt(e,t,n){const o=new $(n.seed),r={placements:[],features:[],random:o,biomeInfoNoise:new V(o.fork(),0,[1]),seaLevel:63,version:n.version,nextFloat:()=>o.nextFloat(),nextInt:e=>o.nextInt(e),nextGaussian:()=>Math.sqrt(-2*Math.log(1-o.nextFloat()))*Math.cos(2*Math.PI*o.nextFloat()),sampleInt(e){return function(e,t){var n,o;if("number"==typeof e)return e;if(e.base)return null!=(o=e.base)?o:1+t.nextInt(1+(null!=(n=e.spread)?n:0));switch(Ft(e.type)){case"constant":return e.value;case"uniform":return e.value.min_inclusive+t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1);case"biased_to_bottom":return e.value.min_inclusive+t.nextInt(t.nextInt(e.value.max_inclusive-e.value.min_inclusive+1)+1);case"clamped":return ve(t.sampleInt(e.value.source),e.value.min_inclusive,e.value.max_inclusive);case"clamped_normal":const n=e.value.mean+t.nextGaussian()*e.value.deviation;return Math.floor(ve(e.value.min_inclusive,e.value.max_inclusive,n));case"weighted_list":const o=e.distribution.reduce(((e,t)=>e+t.weight),0);let r=t.nextInt(o);for(const a of e.distribution)if(r-=a.weight,r<0)return t.sampleInt(a.data);return 0}return 1}(e,this)}};for(let i=0;i<n.size[0]/16;i+=1)for(let t=0;t<n.size[2]/16;t+=1)ot(n.version,void 0,"1.17")?Wt([16*i,0,16*t],h.DataModel.unwrapLists(e),r):qt([16*i,0,16*t],h.DataModel.unwrapLists(e.placement),r);const a=t.data;t.data.fill(255);for(const[i,s]of r.placements){if(i[0]<0||i[1]<0||i[2]<0||i[0]>=n.size[0]||i[1]>=n.size[1]||i[2]>=n.size[2])continue;const e=i[2]*(4*t.width)+4*i[0],o=s<Bt.length?Bt[s]:fe(r.features[s]);a[e]=ve(50,205,o[0]),a[e+1]=ve(50,205,o[1]),a[e+2]=ve(50,205,o[2]),a[e+3]=255}for(let i=0;i<n.size[0];i+=1)for(let e=0;e<n.size[2];e+=1){if((Math.floor(i/16)+Math.floor(e/16))%2==0)continue;const n=e*(4*t.width)+4*i;for(let e=0;e<3;e+=1)a[n+e]=.85*a[n+e]}}function Ft(e){return e.startsWith("minecraft:")?e.slice(10):e}function Rt(e,t){return[[e[0],t,e[2]]]}function Ht(e,t){if(!re(e))throw new Error("Invalid vertical anchor");if(e.absolute)return e.absolute;if(e.above_bottom)return e.above_bottom;if(e.below_top)return 256-e.below_top;throw new Error("Invalid vertical anchor")}function Jt(e,t){const n=t.features.indexOf(e);return-1!=n?n:(t.features.push(e),t.features.length-1)}function Wt(e,t,n){var o;if("string"==typeof t)return void n.placements.push([e,Jt(t,n)]);const r=Ft(null!=(o=null==t?void 0:t.type)?o:"no_op"),a=Gt[r];a?a(t.config,e,n):n.placements.push([e,Jt(JSON.stringify(t),n)])}function Ut(e,t,n){var o;const r=Ft(null!=(o=null==t?void 0:t.type)?o:"nope"),a=Yt[r];return a?a(null==t?void 0:t.config,e,n):[e]}const Gt={decorated:(e,t,n)=>{Ut(t,null==e?void 0:e.decorator,n).forEach((t=>Wt(t,null==e?void 0:e.feature,n)))},random_boolean_selector:(e,t,n)=>{Wt(t,n.nextFloat()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false,n)},random_selector:(e,t,n)=>{var o,r;for(const a of null!=(o=null==e?void 0:e.features)?o:[])if(n.nextFloat()<(null!=(r=null==a?void 0:a.chance)?r:0))return void Wt(t,a.feature,n);Wt(t,null==e?void 0:e.default,n)},simple_random_selector:(e,t,n)=>{var o,r,a;Wt(t,null==(a=null==e?void 0:e.features)?void 0:a[n.nextInt(null!=(r=null==(o=null==e?void 0:e.features)?void 0:o.length)?r:0)],n)}},Yt={chance:(e,t,n)=>{var o;return n.nextFloat()<1/(null!=(o=null==e?void 0:e.chance)?o:1)?[t]:[]},count:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t)},count_extra:(e,t,n)=>{var o,r;let a=null!=(o=null==e?void 0:e.count)?o:1;return n.nextFloat()<e.extra_chance&&(a+=null!=(r=e.extra_count)?r:0),new Array(a).fill(t)},count_multilayer:(e,t,n)=>{var o;return new Array(n.sampleInt(null!=(o=null==e?void 0:e.count)?o:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)]))},count_noise:(e,t,n)=>{const o=n.biomeInfoNoise.sample(t[0]/200,0,t[2]/200)<e.noise_level?e.below_noise:e.above_noise;return new Array(o).fill(t)},count_noise_biased:(e,t,n)=>{var o;const r=Math.max(1,e.noise_factor),a=n.biomeInfoNoise.sample(t[0]/r,0,t[2]/r),i=Math.max(0,Math.ceil((a+(null!=(o=e.noise_offset)?o:0))*e.noise_to_count_ratio));return new Array(i).fill(t)},dark_oak_tree:(e,t,n)=>[...new Array(16)].map(((e,o)=>{const r=4*Math.floor(o/4)+1+n.nextInt(3)+t[0];return[r,Math.max(n.seaLevel,Nt[ve(0,63,r)]),4*Math.floor(o%4)+1+n.nextInt(3)+t[2]]})),decorated:(e,t,n)=>Ut(t,null==e?void 0:e.outer,n).flatMap((t=>Ut(t,null==e?void 0:e.inner,n))),depth_average:(e,t,n)=>{var o,r,a,i;return Rt(t,n.nextInt(null!=(o=null==e?void 0:e.spread)?o:0)+n.nextInt(null!=(r=null==e?void 0:e.spread)?r:0)-(null!=(a=e.spread)?a:0)+(null!=(i=null==e?void 0:e.baseline)?i:0))},emerald_ore:(e,t,n)=>{const o=3+n.nextInt(6);return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),4+n.nextInt(28),t[2]+n.nextInt(16)]))},fire:(e,t,n)=>{const o=1+n.nextInt(n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},glowstone:(e,t,n)=>{const o=n.nextInt(1+n.nextInt(n.sampleInt(null==e?void 0:e.count)));return[...new Array(o)].map((()=>[t[0]+n.nextInt(16),n.nextInt(128),t[2]+n.nextInt(16)]))},heightmap:(e,t,n)=>Rt(t,Math.max(n.seaLevel,Nt[ve(0,63,t[0])])),heightmap_spread_double:(e,t,n)=>{const o=Math.max(n.seaLevel,Nt[ve(0,63,t[0])]);return Rt(t,n.nextInt(2*o))},heightmap_world_surface:(e,t,n)=>Rt(t,Math.max(n.seaLevel,Nt[ve(0,63,t[0])])),iceberg:(e,t,n)=>[[t[0]+4+n.nextInt(8),t[1],t[2]+4+n.nextInt(8)]],lava_lake:(e,t,n)=>{var o,r;if(0===n.nextInt((null!=(o=e.chance)?o:1)/10)){const o=n.nextInt(n.nextInt(248)+8);if(o<n.seaLevel||0==n.nextInt((null!=(r=null==e?void 0:e.chance)?r:1)/8)){return[[n.nextInt(16)+t[0],o,n.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t,n)=>{var o,r,a;return Rt(t,n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))},range_biased:(e,t,n)=>{var o,r,a;return Rt(t,n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0)))},range_very_biased:(e,t,n)=>{var o,r,a,i;return Rt(t,n.nextInt(n.nextInt(n.nextInt((null!=(o=null==e?void 0:e.maximum)?o:1)-(null!=(r=null==e?void 0:e.top_offset)?r:0))+(null!=(a=null==e?void 0:e.bottom_offset)?a:0))+(null!=(i=null==e?void 0:e.bottom_offset)?i:0)))},spread_32_above:(e,t,n)=>Rt(t,n.nextInt(t[1]+32)),top_solid_heightmap:(e,t)=>Rt(t,Nt[ve(0,63,t[0])]),magma:(e,t,n)=>Rt(t,n.nextInt(t[1]+32)),square:(e,t,n)=>[[t[0]+n.nextInt(16),t[1],t[2]+n.nextInt(16)]],surface_relative_threshold:(e,t)=>{var n,o;const r=Nt[ve(0,63,t[0])],a=r+(null!=(n=null==e?void 0:e.min_inclusive)?n:-1/0),i=r+(null!=(o=null==e?void 0:e.max_inclusive)?o:1/0);return t[1]<a||t[1]>i?[t]:[]},water_lake:(e,t,n)=>{var o;return 0===n.nextInt(null!=(o=e.chance)?o:1)?[[t[0]+n.nextInt(16),n.nextInt(256),t[2]+n.nextInt(16)]]:[]}};function qt(e,t,n){var o;let r=[e];for(const a of t){Zt[Ft(null!=(o=null==a?void 0:a.type)?o:"nope")]&&(r=r.flatMap((e=>Zt[Ft(a.type)](a,e,n))))}for(const a of r)n.placements.push([a,0])}const Zt={count:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t),count_on_every_layer:({count:e},t,n)=>new Array(n.sampleInt(null!=e?e:1)).fill(t).map((e=>[e[0]+n.nextInt(16),e[1],e[2]+n.nextInt(16)])),environment_scan:({},e)=>[e],height_range:({height:e},t,n)=>Rt(t,function(e,t){var n,o,r,a;if(!re(e))throw new Error("Invalid height provider");if("string"!=typeof e.type)return Ht(e);switch(Ft(e.type)){case"constant":return Ht(e.value);case"uniform":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive);return n+t.nextInt(o-n+1)}case"biased_to_bottom":{const r=Ht(e.min_inclusive),a=Ht(e.max_inclusive),i=t.nextInt(a-r-(null!=(n=e.inner)?n:1)+1);return r+t.nextInt(i+(null!=(o=e.inner)?o:1))}case"very_biased_to_bottom":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive),a=null!=(r=e.inner)?r:1,i=n+a+t.nextInt(o-n-a+1),s=n+t.nextInt(i-n);return n+t.nextInt(s-n+a)}case"trapezoid":{const n=Ht(e.min_inclusive),o=Ht(e.max_inclusive),r=null!=(a=e.plateau)?a:0;if(r>=o-n)return n+t.nextInt(o-n+1);const i=(o-n-r)/2,s=o-n-i;return n+t.nextInt(s+1)+t.nextInt(i+1)}default:throw new Error(`Invalid height provider ${e.type}`)}}(e,n)),heightmap:({},e,t)=>Rt(e,Math.max(t.seaLevel,Nt[ve(0,63,e[0])])),in_square:({},e,t)=>[[e[0]+t.nextInt(16),e[1],e[2]+t.nextInt(16)]],noise_based_count:({noise_to_count_ratio:e,noise_factor:t,noise_offset:n},o,r)=>{const a=Math.max(1,t),i=r.biomeInfoNoise.sample(o[0]/a,0,o[2]/a),s=Math.max(0,Math.ceil((i+(null!=n?n:0))*e));return new Array(s).fill(o)},noise_threshold_count:({noise_level:e,below_noise:t,above_noise:n},o,r)=>{const a=r.biomeInfoNoise.sample(o[0]/200,0,o[2]/200);return new Array(a<e?t:n).fill(o)},random_offset:({xz_spread:e,y_spread:t},n,o)=>[[n[0]+o.sampleInt(e),n[1]+o.sampleInt(t),n[2]+o.sampleInt(e)]],rarity_filter:({chance:e},t,n)=>n.nextFloat()<1/(null!=e?e:1)?[t]:[]};class Kt{constructor(e){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0;const t=new $(e);this.minLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.maxLimitPerlinNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),this.mainPerlinNoise=new V(t,-7,[1,1,1,1,1,1,1,1]),this.depthNoise=new V(t,-15,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1])}reset(e,t,n,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,n=1+4*n),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*n+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),n=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(n),a=this.fillNoiseColumn(n+1);for(let h=this.chunkCountY-1;h>=0;h-=1)for(let e=this.chunkHeight;e>=0;e-=1){const n=e/this.chunkHeight;t[h*this.chunkHeight+e]=(i=n,s=o,l=r[h],c=r[h+1],d=a[h],u=a[h+1],_e(s,_e(i,l,c),_e(i,d,u)))}var i,s,l,c,d,u;return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const n=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,a=o/this.settings.sampling.xz_factor,i=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let l=0;l<=this.chunkCountY;l+=1){let t=this.sampleAndClampNoise(e,l,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,a,i);const c=((1-2*l/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;t+=c*(c>0?4:1),this.settings.top_slide.size>0&&(t=we(this.settings.top_slide.target,t,(this.chunkCountY-l-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(t=we(this.settings.bottom_slide.target,t,(l-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),n[l]=t}return this.noiseColumnCache[e-this.xOffset]=n,n}getRandomDensity(e){const t=this.depthNoise.sample(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),n=24.575625*(t<0?.3*-t:t)-2;return n<0?.009486607142857142*n:.006640625*Math.min(n,1)}sampleAndClampNoise(e,t,n,o,r,a,i){let s=0,l=0,c=0,d=1;for(let u=0;u<16;u+=1){const h=V.wrap(e*o*d),m=V.wrap(t*r*d),p=V.wrap(n*o*d),f=r*d,g=this.minLimitPerlinNoise.getOctaveNoise(u);g&&(s+=g.sample(h,m,p,f,t*f)/d);const v=this.maxLimitPerlinNoise.getOctaveNoise(u);if(v&&(l+=v.sample(h,m,p,f,t*f)/d),u<8){const o=this.mainPerlinNoise.getOctaveNoise(u);o&&(c+=o.sample(V.wrap(e*a*d),V.wrap(t*i*d),V.wrap(n*a*d),i*d,t*i*d)/d)}d/=2}return we(s/512,l/512,(c/10+1)/2)}}const Xt={"minecraft:air":[150,160,170],"minecraft:water":[20,80,170],"minecraft:lava":[200,100,0],"minecraft:stone":[55,55,55],"minecraft:deepslate":[34,34,36],"minecraft:bedrock":[10,10,10],"minecraft:grass_block":[47,120,23],"minecraft:dirt":[64,40,8],"minecraft:gravel":[70,70,70],"minecraft:sand":[196,180,77],"minecraft:sandstone":[148,135,52],"minecraft:netherrack":[100,40,40],"minecraft:crimson_nylium":[144,22,22],"minecraft:warped_nylium":[28,115,113],"minecraft:basalt":[73,74,85],"minecraft:end_stone":[200,200,140]};let Qt,en,tn=[];function nn(e,t,n){var o,r,a,i;if(ot(n.version,"1.18")){const{settings:a,generator:i}=function(e,t){const n=T.fromJson(h.DataModel.unwrapLists(e)),o=[e,`${t.seed}`,t.biome];if(!xe(o,Qt)){Qt=be(o),tn=[];const e=new P("unknown");en=new F(t.seed,e,n)}return{settings:n,generator:en}}(e,n),s=new rn(-n.offset,n.width,a.noise.minY,a.noise.height);s.generate(i,null!=(o=n.biome)?o:"minecraft:plains");const l=t.data;for(let e=0;e<n.width;e+=1)for(let o=0;o<a.noise.height;o+=1){const i=4*e+4*(a.noise.height-o-1)*t.width,c=s.getBlockState([e-n.offset,o+a.noise.minY,0]),d=null!=(r=Xt[c.getName()])?r:[0,0,0];l[i]=d[0],l[i+1]=d[1],l[i+2]=d[2],l[i+3]=255}return}const s=new Kt(n.seed);s.reset(e.noise,null!=(a=n.biomeDepth)?a:0,null!=(i=n.biomeScale)?i:0,n.offset,n.width);const l=t.data,c=4*t.width;for(let d=0;d<n.width;d+=1){const t=s.iterateNoiseColumn(d-n.offset).reverse();for(let n=0;n<e.noise.height;n+=1){const e=n*c+4*d,o=on(t,n);l[e]=o,l[e+1]=o,l[e+2]=o,l[e+3]=255}}}function on(e,t){return e[t]>0?0:e[t+1]>0?150:255}class rn{constructor(e,t,n,o){this.minX=e,this.done=[],this.chunks=[...Array(Math.ceil(t/16)+1)].map(((t,r)=>{const a=(e>>4)+r,i=tn.find((e=>e.pos[0]===a));return i?(this.done[r]=!0,i):new R(n,o,N.create(a,0))}))}generate(e,t){this.chunks.forEach(((n,o)=>{this.done[o]||(e.fill(n),e.buildSurface(n,t),this.done[o]=!0,tn.push(n))}))}getBlockState(e){const t=(e[0]>>4)-(this.minX>>4);return this.chunks[t].getBlockState(e)}}const an=["biomes","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness"],sn=L.overworld(),ln=({model:e,data:t,shown:n,version:o})=>{var r;const{locale:a}=pt(),[i,l]=g(2),[u,m]=g(void 0),[p,v]=g(new Set(["biomes"])),_=f([0,0]),y=f(1),b=f(void 0),x=BigInt(e.get(new h.Path(["generator","seed"]))),k=function(e){if("string"!=typeof e){e=T.fromJson(h.DataModel.unwrapLists(e)).legacyRandomSource?"minecraft:nether":"minecraft:overworld"}switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return{temperature:{firstOctave:-9,amplitudes:[1.5,0,1,0,0,0]},humidity:{firstOctave:-7,amplitudes:[1,1,0,0,0,0]},continentalness:{firstOctave:-9,amplitudes:[1,1,2,2,2,1,1,1,1]},erosion:{firstOctave:-9,amplitudes:[1,1,0,1,1]},weirdness:{firstOctave:-7,amplitudes:[1,2,1,0,0,0]},shift:{firstOctave:-3,amplitudes:[1,1,1,0]}};case"end":case"floating_islands":return{temperature:{firstOctave:0,amplitudes:[0]},humidity:{firstOctave:0,amplitudes:[0]},continentalness:{firstOctave:0,amplitudes:[0]},erosion:{firstOctave:0,amplitudes:[0]},weirdness:{firstOctave:0,amplitudes:[0]},shift:{firstOctave:0,amplitudes:[0]}};default:return{temperature:{firstOctave:-7,amplitudes:[1,1]},humidity:{firstOctave:-7,amplitudes:[1,1]},continentalness:{firstOctave:-7,amplitudes:[1,1]},erosion:{firstOctave:-7,amplitudes:[1,1]},weirdness:{firstOctave:-7,amplitudes:[1,1]},shift:{firstOctave:0,amplitudes:[0]}}}}(e.get(new h.Path(["generator","settings"]))),C=function(e){var t;if("string"==typeof e)switch(e.replace(/^minecraft:/,"")){case"overworld":case"amplified":return sn;default:return L.fromJson({offset:0,factor:0,jaggedness:0})}return L.fromJson(h.DataModel.unwrapLists(null==(t=null==e?void 0:e.noise)?void 0:t.terrain_shaper))}(e.get(new h.Path(["generator","settings"]))),A=n?function(e,t,n){return JSON.stringify([e,t,n.toJson()])}(t,k,C):"",M=null==(r=t.type)?void 0:r.replace(/^minecraft:/,""),{canvas:j,redraw:I}=Me({size:()=>[200/y.current,200/y.current],async draw(e){const n={octaves:k,shaper:C,biomeColors:{},layers:p,offset:_.current,scale:i,seed:x,res:y.current,version:o};await async function(e,t,n){var o,r,a;const{biomeSource:i}=await $t(e,n),s=t.data,l=-Math.round(n.offset[0])-100+n.res/2,c=-Math.round(n.offset[1])-100+n.res/2,d=4*t.width/n.res,u=4/n.res,h=[l*n.scale,(200+l)*n.scale,n.res*n.scale],m=[c*n.scale,(200+c)*n.scale,n.res*n.scale],p=n.layers.has("biomes")?null==(o=i.getBiomes)?void 0:o.call(i,...h,64,65,1,...m):void 0,f=[...n.layers].filter((e=>"biomes"!==e)),g=0===f.length||null==(r=i.getClimates)?void 0:r.call(i,new Set(f),...h,64,65,1,...m);for(let v=0;v<200;v+=n.res)for(let e=0;e<200;e+=n.res){const t=e*d+v*u,o=v/n.res*200/n.res+e/n.res,r=(v+l)*n.scale,h=(e+c)*n.scale;let m=[50,50,50];if(n.layers.has("biomes"))m=Pt(null!=(a=null==p?void 0:p[o])?a:i.getBiome(r,64,h),n.biomeColors);else if(g&&f[0]){const e=g[o][f[0]],[t,n]=Et[f[0]],r=(e-t)/(n-t)*256;m=[r,r,r]}s[t]=m[0],s[t+1]=m[1],s[t+2]=m[2],s[t+3]=255}}(t,e,n),4===y.current&&(clearTimeout(b.current),b.current=setTimeout((()=>{y.current=1,I()}),150))},async onDrag(e,t){_.current[0]=_.current[0]+200*e,_.current[1]=_.current[1]+200*t,clearTimeout(b.current),y.current="multi_noise"===M?4:1,I()},async onHover(e,n){const r={octaves:k,shaper:C,biomeColors:{},layers:p,offset:_.current,scale:i,seed:x,res:1,version:o},a=await async function(e,t,n,o){var r;const{biomeSource:a}=await $t(e,o),[i,l]=function([e,t],n){return[(e-n.offset[0]-100+n.res/2)*n.scale,(t-n.offset[1]-100+n.res/2)*n.scale]}([t,n],o);return s({biome:a.getBiome(i,64,l)},null==(r=a.getClimate)?void 0:r.call(a,i,64,l))}(t,Math.floor(200*e),Math.floor(200*n),r);m(a)},onLeave(){m(void 0)}},[A,i,x,p]);c((()=>{n&&(y.current="multi_noise"===M?4:1,I())}),[A,i,x,p,n]);const z=e=>{_.current[0]=_.current[0]*i/e,_.current[1]=_.current[1]*i/e,l(e)};return d(w,null,d("div",{class:"controls preview-controls"},u&&d(ne,{label:u.biome,class:"no-pointer"}),"multi_noise"===M&&d(ze,{icon:"stack",tooltip:a("configure_layers")},an.map((e=>{const t=p.has(e);return d(ne,{label:a(`layer.${e}`),active:t,tooltip:a(t?"enabled":"disabled"),onClick:t=>{v(new Set([e])),t.stopPropagation()}})}))),("multi_noise"===M||"checkerboard"===M)&&d(w,null,d(ne,{icon:"dash",tooltip:a("zoom_out"),onClick:()=>z(1.5*i)}),d(ne,{icon:"plus",tooltip:a("zoom_in"),onClick:()=>z(i/1.5)})),"multi_noise"===M&&d(ne,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>le(e)})),(null==u?void 0:u.temperature)&&d("div",{class:"controls secondary-controls"},d(ne,{class:"no-pointer",label:Object.entries(u).filter((([e])=>"biome"!==e)).map((([e,t])=>`${e[0].toUpperCase()}: ${t.toFixed(2)}`)).join(" ")})),d("canvas",{ref:j,width:"200",height:"200"}))};const cn=({data:e,version:t,shown:n})=>{const{locale:o}=pt(),[r,a]=g(4),[i,s]=g(se()),{canvas:l,redraw:u}=Me({size:()=>[16*r,16*r],async draw(n){Tt(e,n,{seed:i,version:t,size:[16*r,128,16*r]})}}),h=JSON.stringify(e);return c((()=>{n&&u()}),[h,r,i,n]),d(w,null,d("div",{class:"controls preview-controls"},d(ne,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>a(Math.min(16,r+1))}),d(ne,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>a(Math.max(1,r-1))}),d(ne,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>s(se())})),d("canvas",{ref:l,width:"64",height:"64"}))},dn=({data:e,shown:t,version:n})=>{const{locale:o}=pt(),[r,a]=g(se()),[i,s]=g(2),l=f([0,0]),u=JSON.stringify([e]),{canvas:m,redraw:p}=Me({size:()=>[256,256],async draw(t){const o={offset:l.current,scale:i,seed:r,version:n};!function(e,t,n){const o=new $(n.seed),r=H.fromJson(h.DataModel.unwrapLists(e)),a=new O(o,r),i=-n.offset[0]-100,s=-n.offset[1]-100,l=t.data;for(let c=0;c<256;c+=1)for(let e=0;e<256;e+=1){const t=4*c+4*e*256,o=(c+i)*n.scale,r=(e+s)*n.scale,d=128*(a.sample(o,r,0)+1);l[t]=d,l[t+1]=d,l[t+2]=d,l[t+3]=255}}(e,t,o)},async onDrag(e,t){l.current[0]=l.current[0]+256*e,l.current[1]=l.current[1]+256*t,p()}},[u,i,r]);c((()=>{t&&p()}),[u,i,r,t]);const v=e=>{l.current[0]=l.current[0]*i/e,l.current[1]=l.current[1]*i/e,s(e)};return d(w,null,d("div",{class:"controls preview-controls"},d(ne,{icon:"dash",tooltip:o("zoom_out"),onClick:()=>v(1.5*i)}),d(ne,{icon:"plus",tooltip:o("zoom_in"),onClick:()=>v(i/1.5)}),d(ne,{icon:"sync",tooltip:o("generate_new_seed"),onClick:()=>a(se())})),d("canvas",{ref:m,width:"256",height:"256"}))},un=({data:e,shown:t,version:n})=>{var o,r;const{locale:a}=pt(),[i,s]=g(se()),[l,u]=g("minecraft:plains"),[h,m]=g(.2),[p,_]=g(.1),[y,b]=g(!1),[x,k]=g(void 0),C=f(0),A=f(void 0),M=JSON.stringify([e,h,p]),j=null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.height)?r:256,{canvas:I,redraw:z}=Me({size:()=>[j,j],async draw(t){const o={biome:l,biomeDepth:p,biomeScale:h,offset:C.current,width:t.width,seed:i,version:n};nn(e,t,o)},async onDrag(e){C.current+=e*j,z()},async onHover(t,n){var o,r;const a=Math.floor(t*j-C.current),i=j-Math.max(1,Math.ceil(n*j))+(null!=(r=null==(o=null==e?void 0:e.noise)?void 0:o.min_y)?r:0),s=function(e,t){const n=tn.find((t=>N.minBlockX(t.pos)<=e&&N.maxBlockX(t.pos)>=e));if(n)return n.getBlockState(B.create(e,t,0))}(a,i);k(s?`Y=${i} (${s.getName().replace(/^minecraft:/,"")})`:`Y=${i}`)},onLeave(){k(void 0)}},[M,i]);c((()=>{A.current&&clearInterval(A.current),t&&(z(),y&&(A.current=setInterval((()=>{C.current-=8,z()}),100)))}),[M,i,t,l,h,p,y]);const E=v((()=>{var e;return null!=(e=null==et?void 0:et.get("worldgen/biome"))?e:[]}),[n]);return d(w,null,d("div",{class:"controls preview-controls"},x&&d(ne,{label:x,class:"no-pointer"}),d(ze,{icon:"gear",tooltip:a("terrain_settings")},ot(n,void 0,"1.17")?d(w,null,d(Ce,{label:a("preview.scale"),value:`${h}`,onChange:e=>m(Number(e))}),d(Ce,{label:a("preview.depth"),value:`${p}`,onChange:e=>_(Number(e))})):d(Ce,{label:a("preview.biome"),value:l,onChange:u,dataList:E,larger:!0}),d(ne,{icon:y?"square_fill":"square",label:a("preview.auto_scroll"),onClick:()=>b(!y)})),d(ne,{icon:"sync",tooltip:a("generate_new_seed"),onClick:()=>s(se())})),d("canvas",{ref:I,width:j,height:j}))},hn=["dimension","worldgen/noise","worldgen/noise_settings","worldgen/configured_feature","worldgen/placed_feature"];function mn({model:e,version:t,id:n,shown:o}){var r;const[,a]=g(0);if(Ie(e,(()=>{a((e=>e+1))})),!e)return d(w,null);if("dimension"===n&&(null==(r=e.get(new h.Path(["generator","type"])))?void 0:r.endsWith("noise"))){const n=e.get(new h.Path(["generator","biome_source"]));if(n)return d(ln,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise"===n){const n=e.get(new h.Path([]));if(n)return d(dn,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/noise_settings"===n){const n=e.get(new h.Path([]));if(n)return d(un,s({},{model:e,version:t,shown:o,data:n}))}if("worldgen/placed_feature"===n||"worldgen/configured_feature"===n&&ot(t,"1.16","1.17")){const n=e.get(new h.Path([]));if(n)return d(cn,s({},{model:e,version:t,shown:o,data:n}))}return d(w,null)}function pn(e,t){return e.schema.hook(fn,new h.ModelPath(e),e.data,{blockStates:t})}const fn={base:({},e,t)=>t,choice({switchNode:e},t,n,o){return e.hook(this,t,n,o)},list({children:e},t,n,o){if(!Array.isArray(n))return n;const r=n.map(((n,r)=>e.hook(this,t.push(r),n.node,o)));for(const a of Object.getOwnPropertySymbols(n))r[a]=n[a];return r},map({children:e,config:t},n,o,r){var a,i;if(void 0===o)return;const s="block_state_map"===(null==(a=t.validation)?void 0:a.validator)?null==(i=r.blockStates)?void 0:i[h.relativePath(n,t.validation.params.id).get()]:null,l={};Object.keys(o).forEach((t=>{var a;s&&!Object.keys(null!=(a=s.properties)?a:{}).includes(t)||(l[t]=e.hook(this,n.push(t),o[t],r))}));for(const c of Object.getOwnPropertySymbols(o))l[c]=o[c];return l},object({getActiveFields:e},t,n,o){if(null==n||"object"!=typeof n)return n;const r={},a=e(t);Object.keys(a).filter((e=>a[e].enabled(t))).forEach((e=>{const i=a[e].hook(this,t.push(e),n[e],o);null!=i&&(r[e]=i)}));for(const i of Object.getOwnPropertySymbols(n))r[i]=n[i];return r}},gn={"2_spaces":2,"4_spaces":4,tabs:"\t",minified:void 0},vn={json:{parse:W.parse,stringify:(e,t)=>W.stringify(e,null,t)+"\n"},yaml:{parse:U.load,stringify:(e,t)=>U.dump(e,{flowLevel:void 0===t?0:-1,indent:"string"==typeof t?4:t})}};function wn({name:e,model:t,blockStates:n,doCopy:o,doDownload:r,doImport:a,copySuccess:i,onError:s}){const{locale:l}=pt(),[u,m]=g(it.getIndent()),[p,v]=g(it.getFormat()),_=f(null),y=f(),b=f(),x=f(),k=A(((e,t)=>{const n=pn(e,t);return vn[p].stringify(n,gn[u])}),[u,p]);c((()=>{y.current=()=>{if(t&&n)try{const e=k(t,n);x.current.getSession().setValue(e)}catch(e){s(`Error getting JSON output: ${ye(e)}`),console.error(e),x.current.setValue("")}},b.current=()=>{const e=x.current.getValue();if(0!==e.length)try{const n=vn[p].parse(e);null==t||t.reset(h.DataModel.wrapLists(n),!1)}catch(n){s(`Error importing: ${ye(n)}`),console.error(n)}}}),[t,n,u,p]),c((()=>{x.current=J.edit("editor"),x.current.setOptions({fontSize:14,showFoldWidgets:!1,highlightSelectedWord:!1}),x.current.$blockScrolling=1/0,x.current.on("blur",(e=>b.current(e))),x.current.getSession().setMode("ace/mode/json")}),[]),Ie(t,(()=>{y.current()})),c((()=>{t&&y.current()}),[t]),c((()=>{x.current.setOption("useSoftTabs","tabs"!==u),x.current.setOption("tabSize","tabs"===u?4:gn[u]),x.current.getSession().setMode(`ace/mode/${p}`),y.current()}),[u,p]),c((()=>{o&&t&&n&&navigator.clipboard.writeText(k(t,n)).then((()=>{i()}))}),[o]),c((()=>{if(r&&t&&n&&_.current){const o=encodeURIComponent(k(t,n));_.current.setAttribute("href",`data:text/json;charset=utf-8,${o}`),_.current.setAttribute("download",`${e}.${p}`),_.current.click()}}),[r]),c((()=>{a&&x.current&&(x.current.setValue(""),x.current.selectAll())}),[a]);return d(w,null,d("div",{class:"controls source-controls"},d(ze,{icon:"gear",tooltip:l("output_settings"),"data-cy":"source-controls"},Object.entries(gn).map((([e])=>d(ne,{label:l(`indentation.${e}`),active:u===e,onClick:()=>{return t=e,it.setIndent(t),void m(t);var t}}))),d("hr",null),Object.keys(vn).map((e=>d(ne,{label:l(`format.${e}`),active:p===e,onClick:()=>{return t=e,it.setFormat(t),void v(t);var t}}))))),d("pre",{id:"editor",class:"source"}),d("a",{ref:_,style:"display: none;"}))}class _n extends h.DataModel{constructor(e,t,n,o){super(e),this.mapper=t,this.getter=n,this.setter=o}map(e){return this.mapper(e)}get(e){return this.getter(e)}set(e,t,n){return this.setter(e,t,n)}}const yn=["loot_table.type","loot_entry.type","function.function","condition.condition","criterion.trigger","recipe.type","dimension.generator.type","dimension.generator.biome_source.type","dimension.generator.biome_source.preset","carver.type","feature.type","decorator.type","feature.tree.minimum_size.type","block_state_provider.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","int_provider.type","float_provider.type","height_provider.type","structure_feature.type","surface_builder.type","processor.processor_type","rule_test.predicate_type","pos_rule_test.predicate_type","template_element.element_type","block_placer.type","block_predicate.type","material_rule.type","material_condition.type","generator_structure.type"],bn=["number_provider.type","score_provider.type","nbt_provider.type","int_provider.type","float_provider.type","height_provider.type"],xn=["feature.config","decorator.config","int_provider.value","float_provider.value","block_state_provider.simple_state_provider.state","block_state_provider.rotated_block_provider.state","block_state_provider.weighted_state_provider.entries.entry.data","rule_test.block_state","structure_feature.config","surface_builder.config","template_pool.elements.entry.element","decorator.block_survives_filter.state","material_rule.block.result_state"],kn=["loot_entry.type","function.function","condition.condition","criterion.trigger","dimension.generator.type","dimension.generator.biome_source.type","feature.type","decorator.type","block_state_provider.type","feature.tree.minimum_size.type","trunk_placer.type","foliage_placer.type","tree_decorator.type","block_placer.type","rule_test.predicate_type","processor.processor_type","template_element.element_type","nbt_operation.op","number_provider.value","score_provider.name","score_provider.target","nbt_provider.source","nbt_provider.target","generator_biome.biome","block_predicate.type","material_rule.type","material_condition.type"],Cn=["function.set_nbt.tag","advancement.display.icon.nbt","text_component_object.nbt","entity.nbt","block.nbt","item.nbt"],An=["generator_biome.parameters.temperature","generator_biome.parameters.humidity","generator_biome.parameters.continentalness","generator_biome.parameters.erosion","generator_biome.parameters.depth","generator_biome.parameters.weirdness","feature.end_spike.crystal_beam_target","feature.end_gateway.exit","decorator.block_filter.offset","block_predicate.matching_blocks.offset","block_predicate.matching_fluids.offset","model_element.from","model_element.to","model_element.rotation.origin","model_element.faces.uv","item_transform.rotation","item_transform.translation","item_transform.scale","generator_structure.random_spread.locate_offset"],Mn=["noise_settings.surface_rule","noise_settings.noise.terrain_shaper"],jn=new h.DataModel(h.MapNode(h.StringNode(),h.StringNode()),{historyMax:0});function In({model:e,lang:t,version:n,blockStates:o}){var r;const a=new h.ModelPath(e),[i,s,l]=e.schema.hook(zn,a,be(e.data),t,n,o,{});return(null==(r=null==s?void 0:s.props)?void 0:r.children.some((e=>e)))?d("div",{class:`node ${e.schema.type(a)}-node`,"data-category":e.schema.category(a)},d("div",{class:"node-header"},i,s),d("div",{class:"node-body"},l)):l}const zn={base:()=>[null,null,null],boolean:(e,t,n,o,r,a,i)=>[null,d(On,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],choice({choices:e,config:t,switchNode:n},o,r,a,i,s,l){const c=n.activeCase(o,!0),u=(null==t?void 0:t.context)?new h.ModelPath(o.getModel(),new h.Path(o.getArray(),[t.context])):o,[m,p,f]=c.node.hook(this,u,r,a,i,s,l);if(1===e.length)return[m,p,f];const g=(null==t?void 0:t.choiceContext)?new h.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new h.Path([],[t.context]):o,v=d("select",{value:c.type,onChange:n=>(n=>{var a;const i=null!=(a=e.find((e=>e.type===n)))?a:c,s=i.node.default(),l=i.change?i.change(h.DataModel.unwrapLists(r)):"feature"===t.choiceContext&&"minecraft:decorated"===(null==s?void 0:s.type)?s.config.feature:s;o.model.set(o,h.DataModel.wrapLists(l))})(n.target.value)},e.map((e=>d("option",{value:e.type},Nn(a,g.contextPush(e.type))))));return[m,d(w,null,v,p),f]},list({children:e,config:t},n,o,r,a,i,c){const{expand:u,collapse:m,isToggled:p}=Ln(),[f,v]=g(50),_=n.getContext().join(".");if(An.includes(_)){return[d(w,null,[...Array(t.maxLength)].map(((e,t)=>d(Bn,{lang:r,path:n.modelPush(t)}))),d("div",{class:"fixed-list"})),d(w,null,[...Array(t.maxLength)].map(((t,s)=>{var l;return e.hook(this,n.modelPush(s),null==(l=null==o?void 0:o[s])?void 0:l.node,r,a,i,c)[1]}))),null]}return[null,d("button",{class:"add tooltipped tip-se","aria-label":ht(r,"add_top"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[{node:t,id:ie()},...o])}},Ee.plus_circle),d(w,null,o&&Array.isArray(o)&&o.map((({node:t,id:h},g)=>{if(g===f)return d("div",{class:"node node-header"},d("label",null,ht(r,"entries_hidden",""+(o.length-f))),d("button",{onClick:()=>v(Math.min(f+50,o.length))},ht(r,"entries_hidden.more","50")),d("button",{onClick:()=>v(o.length)},ht(r,"entries_hidden.all")));if(g>f)return null;const w=n.push(g).contextPush("entry"),_="object"===e.type(w),y=p(h);if(_&&(!1===y||void 0===y&&o.length>20))return d("div",{class:"node node-header","data-category":e.category(w)},d(Bn,{lang:r,path:w,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(r,"expand")}\n${ht(r,"expand_all","Ctrl")}`,onClick:u(h)},Ee.chevron_right),d("label",null,Nn(r,w,`${g}`)),d(En,{key:h,path:w,value:t,schema:e}));return d(Sn,l(s({key:h,path:w,schema:e,value:t},{lang:r,version:a,states:i,actions:[{icon:"duplicate",label:"duplicate",onSelect:()=>{const e=[...n.get()];e.splice(g,0,{id:ie(),node:be(t)}),n.model.set(n,e)}}]}),{ctx:l(s({},c),{index:(0===g?1:0)+(g===o.length-1?2:0)})}),_&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(r,"collapse")}\n${ht(r,"collapse_all","Ctrl")}`,onClick:m(h)},Ee.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ht(r,"remove"),onClick:()=>w.set(void 0)},Ee.trashcan),o.length>1&&d("div",{class:"node-move"},d("button",{class:"move tooltipped tip-se","aria-label":ht(r,"move_up"),onClick:()=>{const e=[...n.get()];[e[g-1],e[g]]=[e[g],e[g-1]],n.model.set(n,e)},disabled:0===g},Ee.chevron_up),d("button",{class:"move tooltipped tip-se","aria-label":ht(r,"move_down"),onClick:()=>{const e=[...n.get()];[e[g+1],e[g]]=[e[g],e[g+1]],n.model.set(n,e)},disabled:g===o.length-1},Ee.chevron_down)))})),o&&o.length>0&&o.length<=f&&d("div",{class:"node node-header"},d("button",{class:"add tooltipped tip-se","aria-label":ht(r,"add_bottom"),onClick:()=>{Array.isArray(o)||(o=[]);const t=h.DataModel.wrapLists(e.default());n.model.set(n,[...o,{node:t,id:ie()}])}},Ee.plus_circle)))]},map({children:e,keys:t,config:n},o,r,a,i,c,u){var m,p,f,g,v;const{expand:_,collapse:y,isToggled:b}=Ln(),x=new h.ModelPath(jn,new h.Path([Vn(o.toString())])),k="block_state_map"===(null==(m=n.validation)?void 0:m.validator)?null==c?void 0:c[h.relativePath(o,n.validation.params.id).get()]:null,C=(null==k?void 0:k.properties)?h.StringNode(null,{enum:Object.keys(null!=(p=k.properties)?p:{})}):t;if(k&&"Properties"===o.last()){"object"!=typeof r&&(r={});const e=Object.entries(null!=(f=k.properties)?f:{}).map((([e,t])=>[e,h.StringNode(null,{enum:t})]));return Object.entries(null!=(g=k.properties)?g:{}).forEach((([e,t])=>{"string"!=typeof r[e]?o.model.errors.add(o.push(e),"error.expected_string"):t.includes(r[e])||o.model.errors.add(o.push(e),"error.invalid_enum_option",r[e])})),h.ObjectNode(Object.fromEntries(e)).hook(this,o,r,a,i,c,u)}return[null,d(w,null,C.hook(this,x,null!=(v=x.get())?v:"",a,i,c,u)[1],d("button",{class:"add tooltipped tip-se","aria-label":ht(a,"add"),onClick:()=>{const t=x.get();o.model.set(o.push(t),h.DataModel.wrapLists(e.default()))}},Ee.plus_circle)),d(w,null,"object"==typeof r&&Object.entries(r).map((([t,n])=>{var m,p,f,g;const v=o.modelPush(t),w="object"===e.type(v),x=b(t);if(w&&(!1===x||void 0===x&&r.length>20))return d("div",{class:"node node-header","data-category":e.category(v)},d(Bn,{lang:a,path:v,nested:!0}),d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(a,"expand")}\n${ht(a,"expand_all","Ctrl")}`,onClick:_(t)},Ee.chevron_right),d("label",null,t),d(En,{key:t,path:v,value:n,schema:e}));const C=k?h.StringNode(null,{enum:null!=(p=null==(m=k.properties)?void 0:m[t])?p:[]}):e;(null==(f=null==k?void 0:k.properties)?void 0:f[t])&&"string"==typeof n&&!(null==(g=k.properties)?void 0:g[t].includes(n))&&o.model.errors.add(v,"error.invalid_enum_option",n);return d(Sn,l(s({key:t,schema:C,path:v,value:n},{lang:a,version:i,states:c,ctx:u}),{label:t}),w&&d("button",{class:"toggle tooltipped tip-se","aria-label":`${ht(a,"collapse")}\n${ht(a,"collapse_all","Ctrl")}`,onClick:y(t)},Ee.chevron_down),d("button",{class:"remove tooltipped tip-se","aria-label":ht(a,"remove"),onClick:()=>v.set(void 0)},Ee.trashcan))})))]},number:(e,t,n,o,r,a,i)=>[null,d($n,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null],object({node:e,config:t,getActiveFields:n,getChildModelPath:o},r,a,i,c,u,m){var p;const{expand:f,collapse:g,isToggled:v}=Ln();if(0==r.getArray().length&&function(e,t){var n;return"feature"===e&&"decorated"===(null==(n=null==t?void 0:t.type)?void 0:n.replace(/^minecraft:/,""))&&re(null==t?void 0:t.config)}(t.context,a)){const{wrapper:e,fields:t}=function(e,t,n){const o=[],r=Rn(n,o),a={type:e.type,config:h.ObjectNode({decorators:h.ListNode(Xe),feature:Qe},{context:"feature.decorated"})},i=h.ObjectNode(a,{context:"feature"}),s=new h.Path(["config","feature"]),l=new h.Path(["config","decorators"]),c=t.getModel(),d=new _n(i,(e=>{if(e.startsWith(s))return new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);if(e.startsWith(l)){if(2===e.modelArr.length)return new h.Path([]);const t=e.modelArr[2];if("number"==typeof t)return new h.Path([...[...Array(t)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)])}return e}),(e=>{if(e.equals(l)){const e=[];return Rn(c.data,e),e}return c.get(d.map(e))}),((e,t,n)=>{if(e.startsWith(s)){const o=[];Rn(c.data,o);const r=new h.Path([...[...Array(o.length-1)].flatMap((()=>["config","feature"])),...e.modelArr]);return c.set(r,t,n)}if(e.startsWith(l)){const o=e.modelArr[2];if(2===e.modelArr.length){const e=d.get(s);return c.set(new h.Path,Hn(e,t),n)}if("number"==typeof o){if(3===e.modelArr.length&&void 0===t){const e=d.get(s),t=[];Rn(c.data,t),t.splice(o,1);const r=Hn(e,t);return c.set(new h.Path,r,n)}{const r=new h.Path([...[...Array(o)].flatMap((()=>["config","feature"])),"config","decorator",...e.modelArr.slice(3)]);return c.set(r,t,n)}}}c.set(e,t,n)}));return d.data={type:c.data.type,config:{decorators:o,feature:r}},d.errors=c.errors,{fields:a,wrapper:d}}(n(r),r,a);a=e.data,n=()=>t,o=(t,n)=>new h.ModelPath(e,new h.Path(t.getArray(),["feature"])).push(n)}let _=null,y=null;if(e.optional())if(void 0===a){const t=()=>r.set(h.DataModel.wrapLists(e.default()));y=d("button",{class:"collapse closed tooltipped tip-se","aria-label":ht(i,"expand"),onClick:t},Ee.plus_circle)}else{const e=()=>r.set(void 0);y=d("button",{class:"collapse open tooltipped tip-se","aria-label":ht(i,"remove"),onClick:e},Ee.trashcan)}const b=r.getContext().join(".");if(Mn.includes(b)){const e=v("");if(_=d(w,null,d("button",{class:"toggle tooltipped tip-se","aria-label":ht(i,e?"collapse":"expand"),onClick:e?g(""):f("")},e?Ee.chevron_down:Ee.chevron_right)),!e)return[_,y,null]}const x="object"==typeof a&&null!==a&&(null==(p=e.default())?void 0:p.pools)?l(s({},m),{loot:null==a?void 0:a.type}):m,k=d(w,null,"object"==typeof a&&null!==a&&!(e.optional()&&void 0===a)&&Object.entries(n(r)).filter((([e,t])=>t.enabled(r))).map((([e,t])=>{var n,l,h;const m=o(r,e),p=m.getContext().join(".");if(bn.includes(p))return null;const[f,g,v]=t.hook(this,m,a[e],i,c,u,x);if(!(f||g||(null!=(h=null==(l=null==(n=null==v?void 0:v.props)?void 0:n.children)?void 0:l.length)?h:0)>0))return null;const b="object"===t.type(m)&&xn.includes(p),k=kn.includes(p);return b||k?(_=d(w,null,_,d(Bn,{lang:i,path:m}),d(Tn,{lang:i,path:m}),f),y=d(w,null,y,g),b?v:null):d(Sn,s({key:e,schema:t,path:m,value:a[e]},{lang:i,version:c,states:u,ctx:x}))})));return[_,y,k]},string:(e,t,n,o,r,a,i)=>[null,d(Pn,s({},l(s({},e),{path:t,value:n,lang:o,version:r,states:a,ctx:i}))),null]};function En({path:e,value:t}){var n,o,r,a,i;switch(e.getContext().join(".")){case"loot_table.pools.entry":return d("label",null,null!=(o=null==(n=null==t?void 0:t.entries)?void 0:n.length)?o:0," entries");case"function.set_contents.entries.entry":case"loot_pool.entries.entry":return d("label",null,null!=(i=null==(r=null==t?void 0:t.name)?void 0:r.replace(/^minecraft:/,""))?i:null==(a=null==t?void 0:t.type)?void 0:a.replace(/^minecraft:/,""))}for(const s of Object.values(null!=t?t:{}))if("string"==typeof s)return d("label",null,s.replace(/^minecraft:/,""));return null}function Ln(){const[e,t]=g(new Map),[n,o]=g(void 0);return{expand:e=>n=>{n.ctrlKey?(t(new Map),o(!0)):t((t=>new Map(t.set(e,!0))))},collapse:e=>n=>{n.ctrlKey?(t(new Map),o(!1)):t((t=>new Map(t.set(e,!1))))},isToggled:t=>{var o;return e instanceof Map&&(null!=(o=e.get(t))?o:n)}}}function On({path:e,node:t,value:n,lang:o}){const r=o=>{e.model.set(e,t.optional()&&n===o?void 0:o)};return d(w,null,d("button",{class:!1===n?"selected":"",onClick:()=>r(!1)},ht(o,"false")),d("button",{class:!0===n?"selected":"",onClick:()=>r(!0)},ht(o,"true")))}function $n({path:e,config:t,integer:n,value:o,lang:r}){var a;const i=t=>{const o=t.target.value,r=n?parseInt(o):parseFloat(o);e.model.set(e,r)};return d(w,null,d("input",{type:"text",value:null!=o?o:"",onBlur:i,onKeyDown:e=>{"Enter"===e.key&&i(e)}}),(null==t?void 0:t.color)&&d("input",{type:"color",value:"#"+(null!=(a=null==o?void 0:o.toString(16).padStart(6,"0"))?a:"000000"),onChange:t=>{const n=t.target.value,o=parseInt(n.slice(1),16);e.model.set(e,o)}}),["dimension.generator.seed","dimension.generator.biome_source.seed","world_settings.seed"].includes(e.getContext().join("."))&&d("button",{onClick:()=>le(e.model),class:"tooltipped tip-se","aria-label":ht(r,"generate_new_seed")},Ee.sync))}function Pn({path:e,getValues:t,config:n,node:o,value:r,lang:a,version:i,states:s}){var l;const c=t=>{t.stopPropagation();const n=t.target.value;n!==r&&e.model.set(e,0===n.length?void 0:n)},u=t(),m=e.getContext().join("."),p=Dn(n)||"resource"!==(null==n?void 0:n.validator)||"string"!=typeof n.params.pool?void 0:n.params.pool;if(Cn.includes(m))return d("textarea",{value:null!=r?r:"",onBlur:c});if(Dn(n)&&!n.additional||yn.includes(m)){let t=new h.Path([]);return Dn(n)&&"string"==typeof n.enum?t=t.contextPush(n.enum):p?t=t.contextPush(p):Dn(n)&&(t=e),d("select",{value:null!=r?r:"",onChange:c},o.optional()&&d("option",{value:""},ht(a,"unset")),u.map((e=>d("option",{value:e},Nn(a,t.contextPush(e.replace(/^minecraft:/,"")))))))}if(Dn(n)||"block_state_key"!==(null==n?void 0:n.validator)){const e=ie(),t=p?(e=>oe.generators.find((t=>t.id===e.replace(/^\$/,""))))(p):void 0;return d(w,null,d("input",{value:null!=r?r:"",onBlur:c,onKeyDown:e=>{"Enter"===e.key&&c(e)},list:u.length>0?e:""}),u.length>0&&d("datalist",{id:e},u.map((e=>d("option",{value:e})))),t&&u.includes(r)&&r.startsWith("minecraft:")&&d("a",{href:`/${t.url}/?version=${i}&preset=${r.replace(/^minecraft:/,"")}`,class:"tooltipped tip-se","aria-label":ht(a,"follow_reference")},Ee.link_external))}{const t=null==s?void 0:s[h.relativePath(e,n.params.id).get()],o=Object.keys(null!=(l=null==t?void 0:t.properties)?l:{});return d("select",{value:null!=r?r:"",onChange:c},o.map((e=>d("option",null,e))))}}const Sn=G((function({label:e,schema:t,path:n,value:o,lang:r,version:a,states:i,ctx:c,actions:u,children:h}){var m;const p=t.type(n),f=t.category(n),g=n.getContext().join("."),[v,w]=je(),_=l(s({},c),{depth:(null!=(m=c.depth)?m:0)+1});delete _.index;const[y,b,x]=t.hook(zn,n,o,r,a,i,_);return d("div",{class:`node ${p}-node`,"data-category":f},d("div",{class:"node-header",onContextMenu:e=>{e.preventDefault(),w()}},d(Bn,{lang:r,path:n}),d(Tn,{lang:r,path:n}),h,y,d("label",null,null!=e?e:Nn(r,n,`${n.last()}`),v&&d("div",{class:"node-menu"},null==u?void 0:u.map((e=>{var t;return d("div",{key:e.label,class:"menu-item"},d(ne,{icon:e.icon,tooltip:ht(r,e.label),tooltipLoc:"se",onClick:()=>e.onSelect()}),d("span",null,null!=(t=e.description)?t:ht(r,e.label)))})),d("div",{class:"menu-item"},d(ne,{icon:"clippy",tooltip:ht(r,"copy_context"),tooltipLoc:"se",onClick:()=>navigator.clipboard.writeText(g)}),d("span",null,g)))),b),x&&d("div",{class:"node-body"},x))}),((e,t)=>e.schema===t.schema&&e.lang===t.lang&&e.path.equals(t.path)&&xe(e.ctx,t.ctx)&&xe(e.value,t.value)));function Dn(e){return!!(null==e?void 0:e.enum)}function Vn(e){var t,n=0;for(t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n}function Nn(e,t,...n){const o=t.getContext();for(let r=0;r<o.length;r+=1){const t=o.slice(r).join("."),a=ht(e,t,...n);if(t!==a)return a}return o[o.length-1]}function Bn({lang:e,path:t,nested:n}){var o;t.model instanceof _n&&(t=t.model.map(t).withModel(t.model));const r=n?t.model.errors.getAll().filter((e=>e.path.startsWith(t))):t.model.errors.get(t,!0);if(0===r.length)return null;const a=ht(e,r[0].error,...null!=(o=r[0].params)?o:[]);return Fn("node-error","issue_opened",a)}function Tn({lang:e,path:t}){const n=t.contextPush("help").getContext().join("."),o=ht(e,n);return o===n?null:Fn("node-help","info",o)}const Fn=(e,t,n)=>{const[o,r]=je();return d("div",{class:`node-icon ${e}${o?" show":""}`,onClick:r},Ee[t],d("span",{class:"icon-popup"},n))};function Rn(e,t){var n,o;return"decorated"!==(null==(n=null==e?void 0:e.type)?void 0:n.replace(/^minecraft:/,""))?e:re(null==e?void 0:e.config)?(t.push({id:t.length,node:e.config.decorator}),Rn(null!=(o=e.config.feature)?o:"",t)):e}function Hn(e,t){return 0===t.length?e:{type:"minecraft:decorated",config:{decorator:t.shift().node,feature:Hn(e,t)}}}function Jn({version:e,model:t,blockStates:n,onError:o}){const{lang:r}=pt();if(!t||!n||"none"===r)return d(w,null);const[a]=Y((e=>{o(`Error rendering the tree: ${e.message}`),console.error(e)}));if(a)return d(w,null);const[,i]=g(0);return Ie(t,(()=>{i((e=>e+1))})),d("div",{class:"tree","data-cy":"tree"},d(In,s({},{model:t,lang:r,version:e,blockStates:n})))}const Wn={system:"device_desktop",dark:"moon",light:"sun"};function Un(){const{lang:e,locale:t,changeLanguage:n}=pt(),{theme:o,changeTheme:r}=M(bt),{version:a}=jt(),{title:i}=Ct(),s=he(m());return d("header",null,d("div",{class:"title"},d(q,{class:"home-link",href:"/","aria-label":t("home"),"data-cy":"home-link"},Gn.home),d("h1",null,i),s&&d(ze,{icon:"chevron_down",tooltip:t("switch_generator"),"data-cy":"generator-switcher"},oe.generators.filter((e=>e.category===(null==s?void 0:s.category)&&ot(a,e.minVersion))).map((e=>d(ne,{label:t(e.id),active:e.id===s.id,onClick:()=>p(de(e.url))}))))),d("nav",null,d("ul",null,d("li",{"data-cy":"language-switcher"},d(ze,{icon:"globe",tooltip:t("language")},oe.languages.map((({code:t,name:o})=>d(ne,{label:o,active:t===e,onClick:()=>n(t)}))))),d("li",{"data-cy":"theme-switcher"},d(ze,{icon:Wn[o],tooltip:t("theme")},Object.entries(Wn).map((([e,n])=>d(ne,{icon:n,label:t(`theme.${e}`),active:e===o,onClick:()=>r(e)}))))),d("li",{class:"dimmed"},d("a",{href:"https://github.com/misode/misode.github.io",target:"_blank",rel:"noreferrer",class:"tooltipped tip-sw","aria-label":t("github")},Ee.mark_github)))))}const Gn={home:d("svg",{width:"32",height:"28",viewBox:"0 0 32 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d("rect",{width:"26",height:"6",rx:"3",fill:"#7CB45C"}),d("rect",{x:"8",width:"18",height:"6",rx:"3",fill:"#4BA041"}),d("rect",{y:"11",width:"32",height:"6",rx:"3",fill:"#AAA8A8"}),d("rect",{x:"11",y:"11",width:"21",height:"6",rx:"3",fill:"#91908F"}),d("rect",{x:"11",y:"22",width:"21",height:"6",rx:"3",fill:"#70B5C3"}),d("rect",{x:"17",y:"22",width:"15",height:"6",rx:"3",fill:"#4D989B"})),report:d("svg",{width:"30",height:"36",viewBox:"0 0 30 36",xmlns:"http://www.w3.org/2000/svg"},d("path",{d:"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z",fill:"#6ACC5D"}),d("path",{d:"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z",fill:"#FF4C4C"}),d("path",{d:"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z",fill:"#E5B442"}),d("path",{d:"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z",fill:"#2BAD1D"}),d("path",{d:"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z",fill:"#C10B0B"}),d("path",{d:"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z",fill:"#CC8E00"})),sounds:d("svg",{width:"20",height:"20",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},d("circle",{cx:"10",cy:"10",r:"10",fill:"#451475"}),d("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z",fill:"#C5A5E6"}))};function Yn({sounds:e,sound:t,delay:n,pitch:o,volume:r,onEdit:a,onDelete:i,delayedPlay:s}){const{locale:l}=pt(),{version:u}=jt(),[h,m]=g(!0),[p,v]=g(!1),[w,_]=g(!1),y=f([]),b=`playsound minecraft:${t} master @s ~ ~ ~ ${r} ${o}`;c((()=>{var n,a,i;const s=e[t];_(0===(null!=(a=null==(n=null==s?void 0:s.sounds)?void 0:n.length)?a:0)),y.current.forEach((e=>e.stop())),y.current=(null!=(i=null==s?void 0:s.sounds)?i:[]).map((e=>{const t="string"==typeof e?e:e.name,n=(a=u,i=t,`${Re(oe.versions.find((e=>e.id===a)),"assets")}/assets/minecraft/sounds/${i}.ogg`);var a,i;const s=new Z.Howl({src:[n],format:["ogg"],volume:r,rate:o});s.on("end",(()=>{v(!1)}));const l=()=>{h&&y.current.every((e=>"loaded"===e.state()))&&m(!1)};return"loaded"===s.state()?setTimeout((()=>l())):s.on("load",(()=>{l()})),s})),m(!0)}),[t,e]),c((()=>{y.current.forEach((e=>e.rate(o)))}),[o]),c((()=>{y.current.forEach((e=>e.volume(r)))}),[r]);const x=()=>{if(h||w)return;k();const e=Math.floor(Math.random()*y.current.length);y.current[e].play(),v(!0)},k=()=>{y.current.forEach((e=>e.stop()))};c((()=>{s&&setTimeout((()=>x()),50*n)}),[s]),c((()=>()=>k()),[]);const[C,A]=g(!1),M=f(void 0);return d("div",{class:`sound-config${h?" loading":p?" playing":""}${w?" invalid":""}`},d(ne,{class:"play",icon:w?"alert":h?"sync":"play",label:l("sounds.play"),onClick:x,tooltip:l(w?"sounds.unknown_sound":h?"sounds.loading_sound":"sounds.play_sound"),tooltipLoc:"se"}),d($e,{class:"btn btn-input sound",list:"sound-list",spellcheck:!1,value:t,onChange:e=>a({sound:e})}),d("label",{class:"delay-label"},l("sounds.delay"),": "),d(Pe,{class:"btn btn-input delay",min:0,value:n,onChange:e=>a({delay:e})}),d("label",{class:"pitch-label"},l("sounds.pitch"),": "),d(Se,{class:"pitch tooltipped tip-s",min:.5,max:2,step:.01,"aria-label":o.toFixed(2),style:`--x: ${100/1.5*(o-.5)}%`,value:o,onChange:e=>a({pitch:e})}),d("label",{class:"volume-label"},l("sounds.volume"),": "),d(Se,{class:"volume tooltipped tip-s",min:0,max:1,step:.01,"aria-label":r.toFixed(2),style:`--x: ${100*r}%`,value:r,onChange:e=>a({volume:e})}),d(ne,{class:"copy"+(C?" active":""),icon:C?"check":"terminal",label:l("copy"),tooltip:l(C?"copied":"sounds.copy_command"),onClick:()=>{navigator.clipboard.writeText(b),A(!0),void 0!==M.current&&clearTimeout(M.current),M.current=setTimeout((()=>{A(!1)}),2e3)}}),d(ne,{class:"remove",icon:"trashcan",tooltip:l("sounds.remove_sound"),onClick:()=>{i(),k()}}))}function qn({title:e,desc:t,link:n,icon:o,children:r}){const a=d(w,null,d("div",{class:"tool-head"},o&&Gn[o],d("div",null,d("h3",null,e),d("p",null,t))),r&&d("div",{class:"tool-body"},r));return n?d("a",{class:"tool-card",href:n},a):d("div",{class:"tool-card"},a)}function Zn({entries:e,onSelect:t,indent:n}){const o=v((()=>{var t;const n={};for(const o of e){const e=o.indexOf("/");if(e>=0){const r=o.slice(0,e);(null!=(t=n[r])?t:n[r]=[]).push(o.slice(e+1))}}return Object.entries(n)}),e),r=v((()=>e.filter((e=>!e.includes("/")))),e),[a,i]=g(new Set);return d("div",{class:"tree-view",style:`--indent: ${null!=n?n:0};`},o.map((([e,o])=>d("div",null,d(Kn,{icon:a.has(e)?"chevron_right":"chevron_down",key:e,label:e,onClick:()=>{return t=e,a.has(t)?a.delete(t):a.add(t),void i(new Set(a));var t}}),!a.has(e)&&d(Zn,{entries:o,onSelect:n=>t(`${e}/${n}`),indent:(null!=n?n:0)+1})))),r.map((e=>d(Kn,{icon:"file",key:e,label:e,onClick:()=>t(e)}))))}function Kn({icon:e,label:t,onClick:n}){return d("div",{class:"entry",onClick:n},Ee[e],t)}function Xn({category:e}){const{locale:t}=pt();return Ct(t("title.generator_category",t(e))),d("main",null,d("div",{class:"category"},oe.generators.filter((t=>t.category===e)).map((e=>d(qn,{title:t(e.id),link:de(e.url)})))))}function Qn({}){const{locale:e}=pt(),[t,n]=g(null);Ct(e("title.changelog"));const[o,r]=g([]);c((()=>{Be().then((e=>r(e))).catch((e=>{console.error(e),n(e)}))}),[]);const[a,i]=g(""),[s,l]=g([]),u=e=>{s.includes(e)?l(s.filter((t=>t!==e))):l([...s,e])},h=v((()=>{const e=a.split(" ").map((e=>e.trim().toLowerCase())).filter((e=>e.length>0));return 0===e.length&&0===s.length?o:o.filter((t=>{if(!s.every((e=>t.tags.includes(e))))return!1;const n=t.tags.join(" ")+" "+t.content.toLowerCase();return e.every((e=>e.startsWith("!")?1===e.length||!n.includes(e.slice(1)):n.includes(e)))}))}),[o,a,s]),[m,p]=g(!0),f=v((()=>h.sort(((e,t)=>m?t.order-e.order:e.order-t.order))),[h,m]);return d("main",null,d(te,{type:"text",id:"changelog"}),t&&d(Le,{error:t,onDismiss:()=>n(null)}),d("div",{class:"changelog-controls"},d("div",{class:"changelog-query"},d($e,{class:"btn btn-input changelog-search",list:"sound-list",placeholder:e("changelog.search"),value:a,onChange:i}),d(ne,{icon:m?"sort_desc":"sort_asc",label:m?"Newest first":"Oldest first",onClick:()=>p(!m)})),s.length>0&&d("div",{class:"changelog-tags"},s.map((e=>d(no,{label:e,onClick:()=>l(s.filter((t=>t!==e)))}))))),d("div",{class:"changelog"},f.map((e=>d(eo,{change:e,activeTags:s,toggleTag:u})))))}function eo({change:e,activeTags:t,toggleTag:n}){return d("div",{class:"changelog-entry"},d("div",{class:"changelog-version"},d(to,s({},e.version)),d(to,s({},e.group))),d("div",{class:"changelog-tags"},e.tags.map((e=>d(no,{label:e,onClick:()=>n(e),active:t.includes(e)})))),d("div",{class:"changelog-content",dangerouslySetInnerHTML:{__html:K(e.content)}}))}function to({id:e,article:t}){return null===t?d("span",null,e):d("a",{href:`https://www.minecraft.net/en-us/article/${t}`,target:"_blank"},e)}function no({label:e,active:t,onClick:n}){const o="breaking"===e?5:ce(e)%360;return d("div",{class:`changelog-tag${t?" active":""}${n?" clickable":""}`,style:`--tint: ${o}`,onClick:n},"breaking"===e&&Ee.alert,e)}function oo({}){var e;const{locale:t}=pt(),{version:n,changeVersion:o}=jt(),{project:r,file:a,updateFile:i,openFile:u,closeFile:f}=wt(),[v,_]=g(null),[y,b]=Y();if(y)return d("main",null,d(Le,{error:`Something went wrong rendering the generator: ${y.message}`,onDismiss:b}));const x=he(m());if(!x)return d("main",null,d(Le,{error:`Cannot find generator "${m()}"`}));const k=oe.versions.filter((e=>ot(e.id,x.minVersion,x.maxVersion))).map((e=>e.id));Ct(t("title.generator",t(x.id)),k),ot(n,x.minVersion)||_(`The minimum version for this generator is ${x.minVersion}`),ot(n,void 0,x.maxVersion)||_(`This generator is not available in versions above ${x.maxVersion}`);const C=me(m()).get("preset");c((()=>{A&&C&&R(C).then((e=>{null==A||A.reset(h.DataModel.wrapLists(e),!1),pe({version:n,preset:C})}))}),[C]);const[A,M]=g(null),[j,I]=g(null);c((()=>{_(null),M(null),async function(e){return(await nt(e)).blockStates}(n).then((e=>I(e))),async function(e,t){var n;if(!Ze[t]||Ze[t].version!==e){const r=await nt(e);Xe=h.Reference(r.schemas,"configured_decorator"),Qe=h.ChoiceNode([{type:"string",node:h.StringNode(r.collections,{validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:h.Reference(r.schemas,"configured_feature")}],{choiceContext:"feature"});const a=null==(n=oe.generators.find((e=>e.id===t)))?void 0:n.schema;if(!a)throw new Error(`Cannot find model ${t}`);try{const n=r.schemas.get(a),o=new h.DataModel(n,{wrapLists:!0});Ze[t]?o.reset(Ze[t].model.data,!1):(o.validate(!0),o.history=[JSON.stringify(o.data)]),Ze[t]={model:o,version:e}}catch(o){const n=new Error(`Cannot get generator "${t}" for version "${e}": ${ye(o)}`);throw o instanceof Error&&(n.stack=o.stack),n}}return Ze[t].model}(n,x.id).then((async e=>{if(ee.setGenerator(x.id),C){const t=await R(C);e.reset(h.DataModel.wrapLists(t),!1)}M(e)})).catch((e=>{console.error(e),_(ye(e))}))}),[n,x.id]);const[z,E]=g(!1);Ie(A,(()=>{pe({version:void 0,preset:void 0}),_(null),E(!0)}));const[L,O]=g(""),[$,P]=Ae(),[S,D]=Ae(),V=()=>{if(L!==(null==a?void 0:a.id)&&L&&A&&j){const e=pn(A,j);i(x.id,null==a?void 0:a.id,{id:L,data:e})?P():(D(),a&&O(null==a?void 0:a.id))}else a&&O(null==a?void 0:a.id)};c((()=>{a&&O(a.id)}),[a]),c((()=>{var e;A&&(O(null!=(e=null==a?void 0:a.id)?e:""),a&&x.id===a.type&&A.reset(h.DataModel.wrapLists(a.data)),E(!1))}),[a,A]);const N=e=>{e.ctrlKey&&"z"===e.key?(ee.generatorEvent("undo","Hotkey"),null==A||A.undo()):e.ctrlKey&&"y"===e.key&&(ee.generatorEvent("redo","Hotkey"),null==A||A.redo())},B=e=>{if(e.ctrlKey&&"s"===e.key&&(e.preventDefault(),A&&j&&a)){ee.generatorEvent("save","Hotkey");const e=pn(A,j);i(x.id,null==a?void 0:a.id,{id:null==a?void 0:a.id,data:e}),E(!1),P()}};c((()=>(document.addEventListener("keyup",N),document.addEventListener("keydown",B),()=>{document.removeEventListener("keyup",N),document.removeEventListener("keydown",B)})),[A,j,a]);const[T,F]=g([]);c((()=>{(async function(e){const t=await nt(e);return et=t.collections,t.collections})(n).then((e=>{F(e.get(x.id).map((e=>e.slice(10))))})).catch((e=>{console.error(e),_(e.message)}))}),[n,x.id]);const R=async e=>{var t,o,r;try{const a=await Ue(n,null!=(t=x.path)?t:x.id,e),i=null==A?void 0:A.get(new h.Path(["generator","seed"]));return void 0!==(null==(o=null==a?void 0:a.generator)?void 0:o.seed)&&void 0!==i&&(a.generator.seed=i,void 0!==(null==(r=a.generator.biome_source)?void 0:r.seed)&&(a.generator.biome_source.seed=i)),a}catch(a){_(ye(a))}},[H,J]=g(window.innerWidth>820),[W,U]=g(0),[G,q]=g(0),[Z,K]=g(0),[X,Q]=Ae(),[re,ae]=g(!1),ie=hn.includes(x.id)&&!("worldgen/configured_feature"===x.id&&ot(n,"1.18"));re&&!ie&&ae(!1);let se=1;ie&&(se+=1),H&&(se+=2);return d(w,null,d("main",{class:re?"has-preview":""},d(te,{id:"data-pack-generator",type:"text"}),d("div",{class:"controls"},d("div",{class:`project-controls ${a&&"has-file"}`},d("div",{class:"btn-row"},d(ze,{icon:"repo",label:r.name,relative:!1},d(ne,{icon:"arrow_left",label:t("project.go_to"),onClick:()=>p("/project")}),a&&d(ne,{icon:"file",label:t("project.new_file"),onClick:f}),d(De,{searchPlaceholder:t("Drafts"===r.name?"project.search_drafts":"project.search"),noResults:t("project.no_files"),values:r.files.filter((e=>e.type===x.id)).map((e=>e.id)),onSelect:e=>u(x.id,e)})),d($e,{class:"btn btn-input",placeholder:t("project.unsaved_file"),value:L,onChange:O,onEnter:V,onBlur:V}),a&&d(ne,{icon:"trashcan",tooltip:t("project.delete_file"),onClick:()=>{a&&i(x.id,a.id,{})}})),z?d("div",{class:"status-icon"},Ee.dot_fill):$?d("div",{class:"status-icon active"},Ee.check):S&&d("div",{class:"status-icon danger"},Ee.x)),d("div",{class:"generator-controls"},d(ne,{icon:"upload",label:t("import"),onClick:()=>{ee.generatorEvent("import"),J(!0),K(Z+1)}}),d(ze,{icon:"archive",label:t("presets"),relative:!1},d(De,{searchPlaceholder:t("search"),noResults:t("no_presets"),values:T,onSelect:e=>{ee.generatorEvent("load-preset",e),pe({version:n,preset:e})}})),d(ze,{icon:"tag",label:t(n),tooltip:t("switch_version"),"data-cy":"version-switcher"},k.reverse().map((e=>d(ne,{label:t(e),active:e===n,onClick:()=>o(e)})))),d(ze,{icon:"kebab_horizontal",tooltip:t("more")},d(ne,{icon:"history",label:t("reset"),onClick:()=>{ee.generatorEvent("reset"),null==A||A.reset(h.DataModel.wrapLists(A.schema.default()),!0)}}),d(ne,{icon:"arrow_left",label:t("undo"),onClick:e=>{e.stopPropagation(),ee.generatorEvent("undo","Menu"),null==A||A.undo()}}),d(ne,{icon:"arrow_right",label:t("redo"),onClick:e=>{e.stopPropagation(),ee.generatorEvent("redo","Menu"),null==A||A.redo()}})))),v&&d(Le,{error:v,onDismiss:()=>_(null)}),d(Jn,l(s({},{model:A,version:n,blockStates:j}),{onError:_}))),d("div",{class:"popup-actions",style:`--offset: -${8+50*se}px;`},d("div",{class:`popup-action action-preview${ie?" shown":""} tooltipped tip-nw`,"aria-label":t(re?"hide_preview":"show_preview"),onClick:()=>{ee.generatorEvent("toggle-preview",re?"hidden":"visible"),ae(!re),!re&&H&&J(!1)}},re?Ee.x_circle:Ee.play),d("div",{class:`popup-action action-download${H?" shown":""} tooltipped tip-nw`,"aria-label":t("download"),onClick:()=>{ee.generatorEvent("download"),q(G+1)}},Ee.download),d("div",{class:`popup-action action-copy${H?" shown":""}${X?" active":""} tooltipped tip-nw`,"aria-label":t(X?"copied":"copy"),onClick:()=>{ee.generatorEvent("copy"),U(W+1)}},X?Ee.check:Ee.clippy),d("div",{class:"popup-action action-code shown tooltipped tip-nw","aria-label":t(H?"hide_output":"show_output"),onClick:()=>{ee.generatorEvent("toggle-output",H?"hidden":"visible"),J(!H),U(0),q(0),K(0)}},H?Ee.chevron_right:Ee.code)),d("div",{class:"popup-preview"+(re?" shown":"")},d(mn,l(s({},{model:A,version:n,id:x.id}),{shown:re,onError:_}))),d("div",{class:"popup-source"+(H?" shown":"")},d(wn,l(s({},{model:A,blockStates:j,doCopy:W,doDownload:G,doImport:Z}),{name:null!=(e=x.schema)?e:"data",copySuccess:Q,onError:_}))))}function ro({}){const{locale:e}=pt();return Ct(e("title.home")),d("main",null,d("div",{class:"home"},d(qn,{title:"Data packs"},oe.generators.filter((e=>!e.category)).map((t=>d(qn,{title:e(t.id),link:de(t.url)}))),d(qn,{title:e("worldgen"),link:"/worldgen/"})),d(qn,{title:"Resource packs"},oe.generators.filter((e=>"assets"===e.category)).map((t=>d(qn,{title:e(t.id),link:de(t.url)})))),d(qn,{title:"Report Inspector",icon:"report",link:"https://misode.github.io/report/",desc:"Analyse your performance reports"}),d(qn,{title:"Minecraft Sounds",icon:"sounds",link:"/sounds/",desc:"Browse through and mix all the vanilla sounds"}),d(qn,{title:"Data Pack Upgrader",link:"https://misode.github.io/upgrader/",desc:"Convert your data packs from 1.16 to 1.17 to 1.18"}),d(qn,{title:"Technical Changelog",link:"/changelog/"})))}function ao({}){const{locale:e}=pt(),{project:t,openFile:n}=wt();Ct(e("title.project",t.name));const o=v((()=>t.files.map(yt)),t.files);return d("main",null,d(te,{id:"data-pack-project",type:"text"}),d("div",{class:"project"},d("h2",null,t.name),d("div",{class:"file-view"},d(Zn,{entries:o,onSelect:e=>{const[,t,o,...r]=e.split("/");n(o,`${t}:${r}`)}}))))}function io({}){const{locale:e}=pt(),{version:t,changeVersion:n}=jt(),[o,r]=g(null);Ct(e("title.sounds"));const[a,i]=g({}),u=Object.keys(null!=a?a:{});c((()=>{(async function(e){const t=oe.versions.find((t=>t.id===e));try{const e=`${Re(t,"summary")}/sounds/data.min.json`;return await Ge(e)}catch(n){throw new Error(`Error occurred while fetching sounds for ${t}: ${ye(n)}`)}})(t).then(i).catch((e=>{console.error(e),r(ye(e))}))}),[t]);const[h,m]=g(""),[p,v]=g([]),_=()=>{v([{id:ie(),sound:h,delay:0,pitch:1,volume:1},...p])},y=e=>()=>{v(p.filter((t=>t.id!==e)))},[b,x]=g(0),k=f(null);return d("main",null,d(te,{type:"text",id:"sounds"}),o&&d(Le,{error:o,onDismiss:()=>r(null)}),u.length>0&&d(w,null,d("div",{class:"controls sounds-controls"},d("div",{class:"sound-search-group"},d($e,{class:"btn btn-input sound-search",list:"sound-list",placeholder:e("sounds.search"),value:h,onChange:m,onEnter:_}),d(ne,{icon:"plus",tooltip:e("sounds.add_sound"),class:"add-sound",onClick:_})),p.length>1&&d(ne,{icon:"play",label:e("sounds.play_all"),class:"play-all-sounds",onClick:()=>{x(b+1)}}),d("div",{class:"spacer"}),d(ne,{icon:"download",label:e("download"),tooltip:e("sounds.download_function"),class:"download-sounds",onClick:()=>{const e=p.some((e=>e.delay>0)),t=p.sort(((e,t)=>e.delay-t.delay)).map((t=>`${e?`execute if score @s delay matches ${t.delay} run `:""}playsound minecraft:${t.sound} master @s ~ ~ ~ ${t.volume} ${t.pitch}`)).join("\n");k.current.setAttribute("href","data:text/plain;charset=utf-8,"+t+"%0A"),k.current.setAttribute("download","sounds.mcfunction"),k.current.click()}}),d(ze,{icon:"tag",label:t},oe.versions.reverse().map((e=>d(ne,{label:e.id,active:e.id===t,onClick:()=>n(e.id)}))))),d("div",{class:"sounds"},p.map((e=>{return d(Yn,l(s(s({key:e.id},e),{sounds:a,delayedPlay:b}),{onEdit:(t=e.id,e=>{v(p.map((n=>n.id===t?s(s({},n),e):n)))}),onDelete:y(e.id)}));var t}))),d("a",{ref:k,style:"display: none;"})),d("datalist",{id:"sound-list"},u.map((e=>d("option",{key:e,value:e})))))}function so(){return d(w,null,d(Un,null),d(X,{onChange:e=>{setTimeout((()=>ee.pageview(de(e.url))))}},d(ro,{path:"/"}),d(Xn,{path:"/worldgen",category:"worldgen"}),d(Xn,{path:"/assets",category:"assets"}),d(io,{path:"/sounds"}),d(Qn,{path:"/changelog"}),d(ao,{path:"/project"}),d(oo,{default:!0})))}function lo(){return d(ft,null,d(xt,null,d(It,null,d(At,null,d(_t,null,d(so,null))))))}Q(d(lo,null),document.body); -//# sourceMappingURL=index.da908f73.js.map diff --git a/assets/index.da908f73.js.map b/assets/index.da908f73.js.map deleted file mode 100644 index 0f8cba51..00000000 --- a/assets/index.da908f73.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.da908f73.js","sources":["../../src/app/Analytics.ts","../../src/app/components/Ad.tsx","../../src/app/components/Btn.tsx","../../src/app/Utils.ts","../../src/app/components/BtnInput.tsx","../../src/app/hooks/useActiveTimout.ts","../../src/app/hooks/useCanvas.ts","../../src/app/hooks/useFocus.ts","../../src/app/hooks/useModel.ts","../../src/app/components/BtnMenu.tsx","../../src/app/components/Octicon.tsx","../../src/app/components/ErrorPanel.tsx","../../src/app/components/forms/Input.tsx","../../src/app/components/forms/SearchList.tsx","../../src/app/services/Changelogs.ts","../../src/app/services/DataFetcher.ts","../../src/app/services/Schemas.ts","../../vite/preload-helper","../../src/app/Store.ts","../../src/app/contexts/Locale.tsx","../../src/app/contexts/Project.tsx","../../src/app/contexts/Theme.tsx","../../src/app/contexts/Title.tsx","../../src/app/contexts/Version.tsx","../../src/app/previews/BiomeSource.ts","../../src/app/previews/Decorator.ts","../../src/app/previews/noise/NoiseChunkGenerator.ts","../../src/app/previews/NoiseSettings.ts","../../src/app/components/previews/BiomeSourcePreview.tsx","../../src/app/components/previews/DecoratorPreview.tsx","../../src/app/components/previews/NoisePreview.tsx","../../src/app/previews/NormalNoise.ts","../../src/app/components/previews/NoiseSettingsPreview.tsx","../../src/app/components/generator/PreviewPanel.tsx","../../src/app/schema/transformOutput.ts","../../src/app/components/generator/SourcePanel.tsx","../../src/app/schema/ModelWrapper.ts","../../src/app/schema/renderHtml.tsx","../../src/app/components/generator/Tree.tsx","../../src/app/components/Header.tsx","../../src/app/components/Icons.tsx","../../src/app/components/sounds/SoundConfig.tsx","../../src/app/components/ToolCard.tsx","../../src/app/components/TreeView.tsx","../../src/app/pages/Category.tsx","../../src/app/pages/Changelog.tsx","../../src/app/pages/Generator.tsx","../../src/app/pages/Home.tsx","../../src/app/pages/Project.tsx","../../src/app/pages/Sounds.tsx","../../src/app/App.tsx","../../src/app/Main.tsx"],"sourcesContent":["export namespace Analytics {\n\tconst ID_SITE = 'Site'\n\tconst ID_GENERATOR = 'Generator'\n\n\tconst DIM_THEME = 1\n\tconst DIM_VERSION = 3\n\tconst DIM_LANGUAGE = 4\n\tconst DIM_PREVIEW = 5\n\tconst DIM_GENERATOR = 6\n\n\tfunction event(category: string, action: string, label?: string) {\n\t\tga('send', 'event', category, action, label)\n\t}\n\n\tfunction dimension(index: number, value: string) {\n\t\tga('set', `dimension${index}`, value)\n\t}\n\n\texport function pageview(page: string) {\n\t\tga('set', 'page', page)\n\t\tga('send', 'pageview')\n\t}\n\n\texport function setLanguage(language: string) {\n\t\tdimension(DIM_LANGUAGE, language)\n\t\tevent(ID_SITE, 'set-language', language)\n\t}\n\n\texport function setTheme(theme: string) {\n\t\tdimension(DIM_THEME, theme)\n\t\tevent(ID_SITE, 'set-theme', theme)\n\t}\n\n\texport function setVersion(version: string) {\n\t\tdimension(DIM_VERSION, version)\n\t\tevent(ID_GENERATOR, 'set-version', version)\n\t}\n\n\texport function setPreview(preview: string) {\n\t\tdimension(DIM_PREVIEW, preview)\n\t\tevent(ID_GENERATOR, 'set-preview', preview)\n\t}\n\n\texport function setGenerator(generator: string) {\n\t\tdimension(DIM_GENERATOR, generator)\n\t}\n\n\texport function generatorEvent(action: string, label?: string) {\n\t\tevent(ID_GENERATOR, action, label)\n\t}\n}\n","import { useEffect } from 'preact/hooks'\n\ndeclare const ethicalads: any\n\ntype AdProps = {\n\ttype: 'text' | 'image',\n\tid: string,\n}\nexport function Ad({ type, id }: AdProps) {\n\tuseEffect(() => {\n\t\tdocument.getElementById('ad-placeholder')?.remove()\n\t\tif ('ethicalads' in window) {\n\t\t\tethicalads.load()\n\t\t}\n\t}, [])\n\n\treturn <div data-ea-publisher=\"misode-github-io\" data-ea-type={type} class=\"ad dark flat\" id={id}></div>\n}\n","import { Octicon } from '.'\n\ntype BtnProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tactive?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tclass?: string,\n\tonClick?: (event: MouseEvent) => unknown,\n}\nexport function Btn({ icon, label, active, class: clazz, tooltip, tooltipLoc, onClick }: BtnProps) {\n\treturn <div class={`btn${active ? ' active' : ''}${clazz ? ` ${clazz}` : ''}${tooltip ? ` tooltipped tip-${tooltipLoc ?? 'sw'}` : ''}`} onClick={onClick} aria-label={tooltip}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t</div>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport rfdc from 'rfdc'\nimport config from '../config.json'\n\nexport function isPromise(obj: any): obj is Promise<any> {\n\treturn typeof (obj as any)?.then === 'function' \n}\n\nexport function isObject(obj: any) {\n\treturn typeof obj === 'object' && obj !== null\n}\n\nconst dec2hex = (dec: number) => ('0' + dec.toString(16)).substr(-2)\n\nexport function hexId(length = 12) {\n\tvar arr = new Uint8Array(length / 2)\n\twindow.crypto.getRandomValues(arr)\n\treturn Array.from(arr, dec2hex).join('')\n}\n\nexport function randomSeed() {\n\treturn BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))\n}\n\nexport function newSeed(model: DataModel) {\n\tconst seed = Math.floor(Math.random() * (4294967296)) - 2147483648\n\tconst dimensions = model.get(new Path(['dimensions']))\n\tmodel.set(new Path(['seed']), seed, true)\n\tif (typeof dimensions === 'object' && dimensions !== null) {\n\t\tObject.keys(dimensions).forEach(id => {\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'seed']), seed, true)\n\t\t\tmodel.set(new Path(['dimensions', id, 'generator', 'biome_source', 'seed']), seed, true)\n\t\t})\n\t}\n\tmodel.set(new Path(['generator', 'seed']), seed, true)\n\tmodel.set(new Path(['generator', 'biome_source', 'seed']), seed)\n}\n\nexport function htmlEncode(str: string) {\n\treturn str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')\n\t\t.replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/')\n}\n\nexport function hashString(s: string) {\n\tlet h = 0\n\tfor(let i = 0; i < s.length; i++)\n\t\th = Math.imul(31, h) + s.charCodeAt(i) | 0\n\treturn h\n}\n\nexport function cleanUrl(url: string) {\n\treturn `/${url}/`.replaceAll('//', '/')\n}\n\nexport function getPath(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(0, searchIndex)\n\t}\n\treturn cleanUrl(url)\n}\n\nexport function getGenerator(url: string) {\n\tconst trimmedUrl = getPath(url).replace(/^\\//, '').replace(/\\/$/, '')\n\treturn config.generators.find(g => g.url === trimmedUrl)\n}\n\nexport function getSearchParams(url: string) {\n\tconst searchIndex = url.indexOf('?')\n\tif (searchIndex >= 0) {\n\t\turl = url.slice(searchIndex + 1)\n\t\treturn new Map(url.split('&').map<[string, string]>(param => {\n\t\t\tconst index = param.indexOf('=')\n\t\t\tif (index === -1) return [param, 'true']\n\t\t\treturn [decodeURIComponent(param.slice(0, index)), decodeURIComponent(param.slice(index + 1))]\n\t\t}))\n\t}\n\treturn new Map<string, string>()\n}\n\nexport function setSeachParams(modifications: Record<string, string | undefined>, newPath?: string) {\n\tconst url = getCurrentUrl()\n\tconst searchParams = getSearchParams(url)\n\tObject.entries(modifications).forEach(([key, value]) => {\n\t\tif (value === undefined) searchParams.delete(key)\n\t\telse searchParams.set(key, value)\n\t})\n\tconst search = Array.from(searchParams).map(([key, value]) =>\n\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\n\troute(`${newPath ? cleanUrl(newPath) : getPath(url)}${search.length === 0 ? '' : `?${search.join('&')}`}`, true)\n}\n\nexport function stringToColor(str: string): [number, number, number] {\n\tconst h = Math.abs(hashString(str))\n\treturn [h % 256, (h >> 8) % 256, (h >> 16) % 256]\n}\n\nexport function square(a: number) {\n\treturn a * a\n}\n\nexport function clamp(a: number, b: number, c: number) {\n\treturn Math.max(a, Math.min(b, c))\n}\n\nexport function clampedLerp(a: number, b: number, c: number): number {\n\tif (c < 0) {\n\t\treturn a\n\t} else if (c > 1) {\n\t\treturn b\n\t} else {\n\t\treturn lerp(c, a, b)\n\t}\n}\n\nexport function lerp(a: number, b: number, c: number): number {\n\treturn b + a * (c - b)\n}\n\nexport function lerp2(a: number, b: number, c: number, d: number, e: number, f: number): number {\n\treturn lerp(b, lerp(a, c, d), lerp(a, e, f))\n}\n\nexport function lerp3(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) {\n\treturn lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k))\n}\n\nexport function smoothstep(x: number): number {\n\treturn x * x * x * (x * (x * 6 - 15) + 10)\n}\n\nexport function message(e: unknown): string {\n\tif (e instanceof Error) return e.message\n\treturn `${e}`\n}\n\nexport const deepClone = rfdc()\n\n/**\n * MIT License\n * \n * Copyright (c) 2017 Evgeny Poberezkin\n * \n * https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE\n */\nexport function deepEqual(a: any, b: any) {\n\tif (a === b) return true\n\n\tif (a && b && typeof a == 'object' && typeof b == 'object') {\n\t\tif (a.constructor !== b.constructor) return false\n\t\tlet length, i\n\t\tif (Array.isArray(a)) {\n\t\t\tlength = a.length\n\t\t\tif (length != b.length) return false\n\t\t\tfor (i = 0; i < length; i++) {\n\t\t\t\tif (!deepEqual(a[i], b[i])) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf()\n\t\tif (a.toString !== Object.prototype.toString) return a.toString() === b.toString()\n\t\tconst keys = Object.keys(a)\n\t\tlength = keys.length\n\t\tif (length !== Object.keys(b).length) return false\n\t\tfor (i = length; i-- !== 0;)\n\t\t\tif (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tconst key = keys[i]\n\t\t\tif (!deepEqual(a[key], b[key])) return false\n\t\t}\n\t\treturn true\n\t}\n\treturn a !== a && b !== b\n}\n\nexport class BiMap<A, B> {\n\tprivate readonly forward: Map<A, B>\n\tprivate readonly backward: Map<B, A>\n\n\tconstructor() {\n\t\tthis.forward = new Map()\n\t\tthis.backward = new Map()\n\t}\n\n\tpublic set(a: A, b: B) {\n\t\tthis.forward.set(a, b)\n\t\tthis.backward.set(b, a)\n\t}\n\n\tpublic getA(key: B) {\n\t\treturn this.backward.get(key)\n\t}\n\n\tpublic getB(key: A) {\n\t\treturn this.forward.get(key)\n\t}\n\n\tpublic getOrPut(key: A, defaultValue: B) {\n\t\tconst b = this.forward.get(key)\n\t\tif (b === undefined) {\n\t\t\tthis.set(key, defaultValue)\n\t\t\treturn defaultValue\n\t\t}\n\t\treturn b\n\t}\n}\n","import { useEffect, useRef } from 'preact/hooks'\nimport { Octicon } from '.'\nimport { hexId } from '../Utils'\n\ntype BtnInputProps = {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\tlarge?: boolean,\n\tlarger?: boolean,\n\tdoSelect?: number,\n\tvalue?: string,\n\tplaceholder?: string,\n\tdataList?: string[],\n\tonChange?: (value: string) => unknown,\n}\nexport function BtnInput({ icon, label, large, larger, doSelect, value, placeholder, dataList, onChange }: BtnInputProps) {\n\tconst onInput = onChange === undefined ? () => {} : (e: any) => {\n\t\tconst value = (e.target as HTMLInputElement).value\n\t\tonChange?.(value)\n\t}\n\n\tconst ref = useRef<HTMLInputElement>(null)\n\tuseEffect(() => {\n\t\tif (doSelect && ref.current) {\n\t\t\tref.current.select()\n\t\t}\n\t}, [doSelect])\n\n\tconst dataListId = dataList && hexId()\n\n\treturn <div class={`btn btn-input ${large ? 'large-input' : ''} ${larger ? 'larger-input' : ''}`} onClick={e => e.stopPropagation()}>\n\t\t{icon && Octicon[icon]}\n\t\t{label && <span>{label}</span>}\n\t\t<input ref={ref} type=\"text\" value={value} onChange={onInput} placeholder={placeholder} list={dataListId} />\n\t\t{dataList && <datalist id={dataListId}>\n\t\t\t{dataList.map(e => <option value={e} />)}\n\t\t</datalist>}\n\t</div>\n}\n","import { useRef, useState } from 'preact/hooks'\n\ninterface ActiveTimeoutOptions {\n\tcooldown?: number,\n\tinvert?: boolean,\n\tinitial?: boolean,\n}\nexport function useActiveTimeout({ cooldown, invert, initial }: ActiveTimeoutOptions = {}): [boolean | undefined, () => unknown] {\n\tconst [active, setActive] = useState(initial)\n\tconst timeout = useRef<number | undefined>(undefined)\n\n\tconst trigger = () => {\n\t\tsetActive(invert ? false : true)\n\t\tif (timeout.current !== undefined) clearTimeout(timeout.current)\n\t\ttimeout.current = setTimeout(() => {\n\t\t\tsetActive(invert ? true : false)\n\t\t}, cooldown ?? 2000) as any\n\t}\n\n\treturn [active, trigger]\n}\n","import type { Inputs } from 'preact/hooks'\nimport { useEffect, useRef } from 'preact/hooks'\n\ntype Vec2 = [number, number]\n\nexport function useCanvas({ size, draw, onDrag, onHover, onLeave }: {\n\tsize: () => Vec2,\n\tdraw: (img: ImageData) => Promise<unknown>,\n\tonDrag?: (dx: number, dy: number) => Promise<unknown>,\n\tonHover?: (x: number, y: number) => unknown,\n\tonLeave?: () => unknown,\n}, inputs?: Inputs) {\n\tconst canvas = useRef<HTMLCanvasElement>(null)\n\n\tconst dragStart = useRef<Vec2 | undefined>()\n\tconst dragRequest = useRef<number>()\n\tconst dragPending = useRef<Vec2>([0, 0])\n\tconst dragBusy = useRef(false)\n\n\tuseEffect(() => {\n\t\tconst onMouseDown = (e: MouseEvent) => {\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseMove = (e: MouseEvent) => {\n\t\t\tif (dragStart.current === undefined) {\n\t\t\t\tconst x = e.offsetX / canvas.current.clientWidth\n\t\t\t\tconst y = e.offsetY / canvas.current.clientHeight\n\t\t\t\tonHover?.(x, y)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (!onDrag) return\n\t\t\tconst dx = e.offsetX - dragStart.current[0]\n\t\t\tconst dy = e.offsetY - dragStart.current[1]\n\t\t\tif (!(dx === 0 && dy === 0)) {\n\t\t\t\tdragPending.current = [dragPending.current[0] + dx, dragPending.current[1] + dy]\n\t\t\t\tif (!dragBusy.current) {\n\t\t\t\t\tcancelAnimationFrame(dragRequest.current)\n\t\t\t\t\tdragRequest.current = requestAnimationFrame(async () => {\n\t\t\t\t\t\tdragBusy.current = true\n\t\t\t\t\t\tconst dx = dragPending.current[0] / canvas.current.clientWidth\n\t\t\t\t\t\tconst dy = dragPending.current[1] / canvas.current.clientHeight\n\t\t\t\t\t\tdragPending.current = [0, 0]\n\t\t\t\t\t\tawait onDrag?.(dx, dy)\n\t\t\t\t\t\tdragBusy.current = false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdragStart.current = [e.offsetX, e.offsetY]\n\t\t}\n\t\tconst onMouseUp = () => {\n\t\t\tdragStart.current = undefined\n\t\t}\n\t\tconst onMouseLeave = () => {\n\t\t\tonLeave?.()\n\t\t}\n\n\t\tcanvas.current.addEventListener('mousedown', onMouseDown)\n\t\tcanvas.current.addEventListener('mousemove', onMouseMove)\n\t\tcanvas.current.addEventListener('mouseleave', onMouseLeave)\n\t\tdocument.body.addEventListener('mouseup', onMouseUp)\n\n\t\treturn () => {\n\t\t\tcanvas.current?.removeEventListener('mousedown', onMouseDown)\n\t\t\tcanvas.current?.removeEventListener('mousemove', onMouseMove)\n\t\t\tcanvas.current?.removeEventListener('mouseleave', onMouseLeave)\n\t\t\tdocument.body.removeEventListener('mouseup', onMouseUp)\n\t\t}\n\t}, [...inputs ?? [], canvas.current])\n\n\tconst redraw = useRef<() => Promise<unknown>>()\n\tconst redrawCount = useRef(0)\n\tredraw.current = async () => {\n\t\tconst ctx = canvas.current.getContext('2d')!\n\t\tconst s = size()\n\t\tcanvas.current.width = s[0]\n\t\tcanvas.current.height = s[1]\n\t\tconst img = ctx.getImageData(0, 0, s[0], s[1])\n\t\tconst ownCount = redrawCount.current += 1\n\t\tawait draw(img)\n\t\tif (ownCount === redrawCount.current) {\n\t\t\tctx.putImageData(img, 0, 0)\n\t\t}\n\t}\n\n\treturn {\n\t\tcanvas,\n\t\tredraw: redraw.current,\n\t}\n}\n","import { useEffect, useState } from 'preact/hooks'\n\nexport function useFocus(): [boolean, () => unknown] {\n\tconst [active, setActive] = useState(false)\n\n\tconst hider = () => {\n\t\tsetActive(false)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active) {\n\t\t\tdocument.body.addEventListener('click', hider)\n\t\t\tdocument.body.addEventListener('contextmenu', hider)\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.removeEventListener('click', hider)\n\t\t\tdocument.body.removeEventListener('contextmenu', hider)\n\t\t}\n\t}, [active])\n\n\treturn [active, () => setActive(true)]\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useEffect } from 'preact/hooks'\n\nexport function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {\n\tconst listener = {\n\t\tinvalidated() {\n\t\t\tif (model) {\n\t\t\t\tinvalidated(model)\n\t\t\t}\n\t\t},\n\t}\n\n\tuseEffect(() => {\n\t\tmodel?.addListener(listener)\n\t\treturn () => {\n\t\t\tmodel?.removeListener(listener)\n\t\t}\n\t}, [model])\n}\n","import type { ComponentChildren } from 'preact'\nimport type { Octicon } from '.'\nimport { Btn } from '.'\nimport { useFocus } from '../hooks'\n\ninterface BtnMenuProps extends JSX.HTMLAttributes<HTMLDivElement> {\n\ticon?: keyof typeof Octicon,\n\tlabel?: string,\n\trelative?: boolean,\n\ttooltip?: string,\n\ttooltipLoc?: 'se' | 'sw' | 'nw',\n\tchildren: ComponentChildren,\n}\nexport function BtnMenu(props: BtnMenuProps) {\n\tconst { icon, label, relative, tooltip, tooltipLoc, children } = props\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`btn-menu${relative === false ? ' no-relative' : ''}`} {...props}>\n\t\t<Btn {...{icon, label, tooltip, tooltipLoc}} onClick={setActive} />\n\t\t{active && <div class=\"btn-group\">\n\t\t\t{children}\n\t\t</div>}\n\t</div>\n}\n","export const Octicon = {\n\talert: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z\"></path></svg>,\n\tarchive: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5a.25.25 0 00-.25.25v1.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-1.5a.25.25 0 00-.25-.25H1.75zM0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v1.5A1.75 1.75 0 0114.25 6H1.75A1.75 1.75 0 010 4.25v-1.5zM1.75 7a.75.75 0 01.75.75v5.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-5.5a.75.75 0 111.5 0v5.5A1.75 1.75 0 0113.25 15H2.75A1.75 1.75 0 011 13.25v-5.5A.75.75 0 011.75 7zm4.5 1a.75.75 0 000 1.5h3.5a.75.75 0 100-1.5h-3.5z\"></path></svg>,\n\tarrow_left: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z\"></path></svg>,\n\tarrow_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z\"></path></svg>,\n\tcheck: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_down: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z\"></path></svg>,\n\tchevron_right: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z\"></path></svg>,\n\tchevron_up: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z\"></path></svg>,\n\tclippy: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z\"></path></svg>,\n\tcode: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z\"></path></svg>,\n\tdash: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 8a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H2.75A.75.75 0 012 8z\"></path></svg>,\n\tdevice_desktop: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 2.5h12.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25zM14.25 1H1.75A1.75 1.75 0 000 2.75v7.5C0 11.216.784 12 1.75 12h3.727c-.1 1.041-.52 1.872-1.292 2.757A.75.75 0 004.75 16h6.5a.75.75 0 00.565-1.243c-.772-.885-1.193-1.716-1.292-2.757h3.727A1.75 1.75 0 0016 10.25v-7.5A1.75 1.75 0 0014.25 1zM9.018 12H6.982a5.72 5.72 0 01-.765 2.5h3.566a5.72 5.72 0 01-.765-2.5z\"></path></svg>,\n\tdot_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8z\"></path></svg>,\n\tdownload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.47 10.78a.75.75 0 001.06 0l3.75-3.75a.75.75 0 00-1.06-1.06L8.75 8.44V1.75a.75.75 0 00-1.5 0v6.69L4.78 5.97a.75.75 0 00-1.06 1.06l3.75 3.75zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tduplicate: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M10.5 3a.75.75 0 01.75.75v1h1a.75.75 0 010 1.5h-1v1a.75.75 0 01-1.5 0v-1h-1a.75.75 0 010-1.5h1v-1A.75.75 0 0110.5 3z\"></path><path fill-rule=\"evenodd\" d=\"M6.75 0A1.75 1.75 0 005 1.75v7.5c0 .966.784 1.75 1.75 1.75h7.5A1.75 1.75 0 0016 9.25v-7.5A1.75 1.75 0 0014.25 0h-7.5zM6.5 1.75a.25.25 0 01.25-.25h7.5a.25.25 0 01.25.25v7.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5z\"></path><path d=\"M1.75 5A1.75 1.75 0 000 6.75v7.5C0 15.216.784 16 1.75 16h7.5A1.75 1.75 0 0011 14.25v-1.5a.75.75 0 00-1.5 0v1.5a.25.25 0 01-.25.25h-7.5a.25.25 0 01-.25-.25v-7.5a.25.25 0 01.25-.25h1.5a.75.75 0 000-1.5h-1.5z\"></path></svg>,\n\teye: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z\"></path></svg>,\n\teye_closed: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M.143 2.31a.75.75 0 011.047-.167l14.5 10.5a.75.75 0 11-.88 1.214l-2.248-1.628C11.346 13.19 9.792 14 8 14c-1.981 0-3.67-.992-4.933-2.078C1.797 10.832.88 9.577.43 8.9a1.618 1.618 0 010-1.797c.353-.533.995-1.42 1.868-2.305L.31 3.357A.75.75 0 01.143 2.31zm3.386 3.378a14.21 14.21 0 00-1.85 2.244.12.12 0 00-.022.068c0 .021.006.045.022.068.412.621 1.242 1.75 2.366 2.717C5.175 11.758 6.527 12.5 8 12.5c1.195 0 2.31-.488 3.29-1.191L9.063 9.695A2 2 0 016.058 7.52l-2.53-1.832zM8 3.5c-.516 0-1.017.09-1.499.251a.75.75 0 11-.473-1.423A6.23 6.23 0 018 2c1.981 0 3.67.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.619 1.619 0 010 1.798c-.11.166-.248.365-.41.587a.75.75 0 11-1.21-.887c.148-.201.272-.382.371-.53a.119.119 0 000-.137c-.412-.621-1.242-1.75-2.366-2.717C10.825 4.242 9.473 3.5 8 3.5z\"></path></svg>,\n\tfile: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.75 1.5a.25.25 0 00-.25.25v11.5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25V6H9.75A1.75 1.75 0 018 4.25V1.5H3.75zm5.75.56v2.19c0 .138.112.25.25.25h2.19L9.5 2.06zM2 1.75C2 .784 2.784 0 3.75 0h5.086c.464 0 .909.184 1.237.513l3.414 3.414c.329.328.513.773.513 1.237v8.086A1.75 1.75 0 0112.25 15h-8.5A1.75 1.75 0 012 13.25V1.75z\"></path></svg>,\n\tfile_directory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25v-8.5A1.75 1.75 0 0014.25 3h-6.5a.25.25 0 01-.2-.1l-.9-1.2c-.33-.44-.85-.7-1.4-.7h-3.5z\"></path></svg>,\n\tgear: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z\"></path></svg>,\n\tglobe: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.543 7.25h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.506 6.506 0 00-4.666 5.5zm2.733 1.5H1.543a6.506 6.506 0 004.666 5.5 11.13 11.13 0 01-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948zm1.504 0h4.44a9.637 9.637 0 01-1.363 4.177c-.306.51-.612.919-.857 1.215a9.978 9.978 0 01-.857-1.215A9.637 9.637 0 015.78 8.75zm4.44-1.5H5.78a9.637 9.637 0 011.363-4.177c.306-.51.612-.919.857-1.215.245.296.55.705.857 1.215A9.638 9.638 0 0110.22 7.25zm1.504 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.506 6.506 0 004.666-5.5h-2.733zm2.733-1.5h-2.733c-.144-2.074-.866-3.756-1.58-4.948a11.738 11.738 0 00-.353-.552 6.506 6.506 0 014.666 5.5zM8 0a8 8 0 100 16A8 8 0 008 0z\"></path></svg>,\n\thistory: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z\"></path></svg>,\n\tinfo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z\"></path></svg>,\n\tissue_opened: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z\"></path></svg>,\n\tkebab_horizontal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\"></path></svg>,\n\tlink: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"></path></svg>,\n\tlink_external: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M10.604 1h4.146a.25.25 0 01.25.25v4.146a.25.25 0 01-.427.177L13.03 4.03 9.28 7.78a.75.75 0 01-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0110.604 1zM3.75 2A1.75 1.75 0 002 3.75v8.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 12.25v-3.5a.75.75 0 00-1.5 0v3.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-8.5a.25.25 0 01.25-.25h3.5a.75.75 0 000-1.5h-3.5z\"></path></svg>,\n\tmark_github: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z\"></path></svg>,\n\tmoon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z\"></path></svg>,\n\tplay: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z\"></path></svg>,\n\tplus: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2a.75.75 0 01.75.75v4.5h4.5a.75.75 0 010 1.5h-4.5v4.5a.75.75 0 01-1.5 0v-4.5h-4.5a.75.75 0 010-1.5h4.5v-4.5A.75.75 0 018 2z\"></path></svg>,\n\tplus_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zm.75 4.75a.75.75 0 00-1.5 0v2.5h-2.5a.75.75 0 000 1.5h2.5v2.5a.75.75 0 001.5 0v-2.5h2.5a.75.75 0 000-1.5h-2.5v-2.5z\"></path></svg>,\n\trepo: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z\"></path></svg>,\n\tsearch: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z\"></path></svg>,\n\tsort_asc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75zm12.927-9.677a.25.25 0 00-.354 0l-3 3A.25.25 0 009.75 6H12v6.75a.75.75 0 001.5 0V6h2.25a.25.25 0 00.177-.427l-3-3z\"></path></svg>,\n\tsort_desc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 4.25a.75.75 0 01.75-.75h7.5a.75.75 0 010 1.5H.75A.75.75 0 010 4.25zm0 4a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5H.75A.75.75 0 010 8.25zm0 4a.75.75 0 01.75-.75h2.5a.75.75 0 010 1.5H.75a.75.75 0 01-.75-.75z\"></path><path d=\"M13.5 10h2.25a.25.25 0 01.177.427l-3 3a.25.25 0 01-.354 0l-3-3A.25.25 0 019.75 10H12V3.75a.75.75 0 011.5 0V10z\"></path></svg>,\n\tsquare: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M4 5.75C4 4.784 4.784 4 5.75 4h4.5c.966 0 1.75.784 1.75 1.75v4.5A1.75 1.75 0 0110.25 12h-4.5A1.75 1.75 0 014 10.25v-4.5zm1.75-.25a.25.25 0 00-.25.25v4.5c0 .138.112.25.25.25h4.5a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-4.5z\"></path></svg>,\n\tsquare_fill: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M5.75 4A1.75 1.75 0 004 5.75v4.5c0 .966.784 1.75 1.75 1.75h4.5A1.75 1.75 0 0012 10.25v-4.5A1.75 1.75 0 0010.25 4h-4.5z\"></path></svg>,\n\tstack: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M7.122.392a1.75 1.75 0 011.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 01-1.756 0L2.119 5.456a1.25 1.25 0 010-2.162L7.122.392zM8.125 1.69a.25.25 0 00-.25 0l-4.63 2.685 4.63 2.685a.25.25 0 00.25 0l4.63-2.685-4.63-2.685zM1.601 7.789a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0L1.874 8.814A.75.75 0 011.6 7.789zm0 3.5a.75.75 0 011.025-.273l5.249 3.044a.25.25 0 00.25 0l5.249-3.044a.75.75 0 01.752 1.298l-5.248 3.044a1.75 1.75 0 01-1.756 0l-5.248-3.044a.75.75 0 01-.273-1.025z\"></path></svg>,\n\tsun: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z\"></path></svg>,\n\tsync: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z\"></path></svg>,\n\ttag: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z\"></path></svg>,\n\tterminal: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M0 2.75C0 1.784.784 1 1.75 1h12.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0114.25 15H1.75A1.75 1.75 0 010 13.25V2.75zm1.75-.25a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25V2.75a.25.25 0 00-.25-.25H1.75zM7.25 8a.75.75 0 01-.22.53l-2.25 2.25a.75.75 0 11-1.06-1.06L5.44 8 3.72 6.28a.75.75 0 111.06-1.06l2.25 2.25c.141.14.22.331.22.53zm1.5 1.5a.75.75 0 000 1.5h3a.75.75 0 000-1.5h-3z\"></path></svg>,\n\tthree_bars: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z\"></path></svg>,\n\ttrashcan: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z\"></path></svg>,\n\tunfold: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path d=\"M8.177.677l2.896 2.896a.25.25 0 01-.177.427H8.75v1.25a.75.75 0 01-1.5 0V4H5.104a.25.25 0 01-.177-.427L7.823.677a.25.25 0 01.354 0zM7.25 10.75a.75.75 0 011.5 0V12h2.146a.25.25 0 01.177.427l-2.896 2.896a.25.25 0 01-.354 0l-2.896-2.896A.25.25 0 015.104 12H7.25v-1.25zm-5-2a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 016 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 8a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5A.75.75 0 0112 8zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z\"></path></svg>,\n\tupload: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M8.53 1.22a.75.75 0 00-1.06 0L3.72 4.97a.75.75 0 001.06 1.06l2.47-2.47v6.69a.75.75 0 001.5 0V3.56l2.47 2.47a.75.75 0 101.06-1.06L8.53 1.22zM3.75 13a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5z\"></path></svg>,\n\tx: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z\"></path></svg>,\n\tx_circle: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"><path fill-rule=\"evenodd\" d=\"M3.404 12.596a6.5 6.5 0 119.192-9.192 6.5 6.5 0 01-9.192 9.192zM2.344 2.343a8 8 0 1011.313 11.314A8 8 0 002.343 2.343zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"></path></svg>,\n}\n","import { Octicon } from './Octicon'\n\ntype ErrorPanelProps = {\n\terror: string,\n\tonDismiss?: () => unknown,\n}\nexport function ErrorPanel({ error, onDismiss }: ErrorPanelProps) {\n\treturn <div class=\"error\">\n\t\t{onDismiss && <div class=\"error-dismiss\" onClick={onDismiss}>{Octicon.x}</div>}\n\t\t<h3>{error}</h3>\n\t\t<p>If you think this is a bug, you can report it <a href=\"https://github.com/misode/misode.github.io/issues/new\" target=\"_blank\">on GitHub</a></p>\n\t</div>\n}\n","import type { JSXInternal } from 'preact/src/jsx'\n\ntype InputProps = JSXInternal.HTMLAttributes<HTMLInputElement>\n\ntype BaseInputProps<T> = Omit<InputProps, 'onChange' | 'type'> & {\n\tonChange?: (value: T) => unknown,\n\tonEnter?: (value: T) => unknown,\n}\nfunction BaseInput<T>(name: string, type: string, fn: (value: string) => T) {\n\tconst component = (props: BaseInputProps<T>) => {\n\t\tconst onChange = props.onChange && ((evt: Event) => {\n\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\tprops.onChange?.(fn(value))\n\t\t})\n\t\tconst onKeyDown = props.onEnter && ((evt: KeyboardEvent) => {\n\t\t\tif (evt.key === 'Enter') {\n\t\t\t\tconst value = (evt.target as HTMLInputElement).value\n\t\t\t\tprops.onEnter?.(fn(value))\n\t\t\t}\n\t\t})\n\t\treturn <input {...props} {...{ type, onChange, onKeyDown }} />\n\t}\n\tcomponent.displayName = name\n\treturn component\n}\n\nexport const TextInput = BaseInput('TextInput', 'text', v => v)\n\nexport const NumberInput = BaseInput('NumberInput', 'number', v => Number(v))\n\nexport const RangeInput = BaseInput('RangeInput', 'range', v => Number(v))\n","import { useMemo, useState } from 'preact/hooks'\nimport { Btn, BtnInput } from '..'\n\ninterface Props {\n\tvalues?: string[],\n\tonSelect?: (value: string) => unknown,\n\tsearchPlaceholder?: string,\n\tnoResults?: string,\n}\nexport function SearchList({ values, onSelect, searchPlaceholder, noResults }: Props) {\n\tconst [search, setSearch] = useState('')\n\tconst results = useMemo(() => {\n\t\tconst terms = search.trim().split(' ')\n\t\treturn values?.filter(v => terms.every(t => v.includes(t))) ?? []\n\t}, [values, search])\n\n\treturn <>\n\t\t<BtnInput icon=\"search\" large value={search} onChange={setSearch} doSelect={1} placeholder={searchPlaceholder ?? 'Search'} />\n\t\t<div class=\"result-list\">\n\t\t\t{results.map(v => <Btn key={v} label={v} onClick={() => onSelect?.(v)} />)}\n\t\t\t{results.length === 0 && <Btn label={noResults ?? 'No results'}/>}\n\t\t</div>\n\t</>\n}\n","import { isObject } from '../Utils'\n\nconst repo = 'https://raw.githubusercontent.com/misode/technical-changes/main'\n\nexport type ChangelogEntry = {\n\tgroup: ChangelogVersion,\n\tversion: ChangelogVersion,\n\torder: number,\n\ttags: string[],\n\tcontent: string,\n}\n\nexport type ChangelogVersion = {\n\tid: string,\n\tarticle: string | null,\n}\n\nlet Changelogs: ChangelogEntry[] | Promise<ChangelogEntry[]> | null = null\n\nexport async function getChangelogs() {\n\tif (!Changelogs) {\n\t\tconst index = await (await fetch(`${repo}/index.json`)).json() as string[]\n\t\tChangelogs = (await Promise.all(\n\t\t\tindex.map((group, i) => fetchGroup(parseVersion(group), i))\n\t\t)).flat().map<ChangelogEntry>(change => ({\n\t\t\t...change,\n\t\t\ttags: [change.group.id, ...change.tags],\n\t\t}))\n\t}\n\treturn Changelogs\n}\n\nasync function fetchGroup(group: ChangelogVersion, groupIndex: number) {\n\tconst index = await (await fetch(`${repo}/${group.id}/index.json`)).json() as string[]\n\treturn (await Promise.all(\n\t\tindex.map((version, i) => fetchChangelog(group, parseVersion(version), groupIndex, i))\n\t)).flat()\n}\n\nasync function fetchChangelog(group: ChangelogVersion, version: ChangelogVersion, groupIndex: number, versionIndex: number) {\n\tconst text = await (await fetch(`${repo}/${group.id}/${version.id}.md`)).text()\n\treturn parseChangelog(text).map(change => ({\n\t\tversion,\n\t\tgroup,\n\t\torder: groupIndex * 1000 + versionIndex,\n\t\t...change,\n\t}))\n}\n\nfunction parseChangelog(text: string) {\n\treturn text.split('\\n\\n')\n\t\t.map(entry => {\n\t\t\tconst i = entry.indexOf('|')\n\t\t\treturn {\n\t\t\t\ttags: entry.substring(0, i).trim().split(' '),\n\t\t\t\tcontent: entry.slice(i + 1).trim()\n\t\t\t\t\t.replaceAll('->', '→')\n\t\t\t\t\t.replaceAll('\\n...\\n', '\\n\\n'),\n\t\t\t}\n\t\t})\n}\n\nfunction parseVersion(version: unknown): ChangelogVersion {\n\tif (typeof version === 'string') {\n\t\treturn {\n\t\t\tid: version,\n\t\t\tarticle: version.match(/\\d\\dw\\d\\d[a-z]/) ? 'minecraft-snapshot-' + version : version.match(/\\d+\\.\\d+(\\.\\d+)?-pre[0-9]+/) ? 'minecraft-' + version.replaceAll('.', '-').replaceAll('pre', 'pre-release-') : null,\n\t\t}\n\t} else if (isObject(version)) {\n\t\treturn version as ChangelogVersion\n\t}\n\treturn { id: 'unknown', article: null }\n}\n","import type { CollectionRegistry } from '@mcschema/core'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport type { BlockStateRegistry, VersionId } from './Schemas'\n\n// Cleanup old caches\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\n['mcdata_master', 'vanilla_datapack_summary'].forEach(v => localStorage.removeItem(`cached_${v}`))\ncaches.delete('misode-v1')\n\nconst CACHE_NAME = 'misode-v2'\nconst CACHE_LATEST_VERSION = 'cached_latest_version'\n\ntype Version = {\n\tid: string,\n\tref?: string,\n\tdynamic?: boolean,\n}\n\ndeclare var __LATEST_VERSION__: string\nconst latestVersion = __LATEST_VERSION__ ?? ''\nconst mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'\n\ntype McmetaTypes = 'summary' | 'data' | 'assets'\n\nfunction mcmeta(version: Version, type: McmetaTypes) {\n\treturn `${mcmetaUrl}/${version.dynamic ? type : `${version.ref}-${type}`}`\n}\n\nexport async function fetchData(versionId: string, collectionTarget: CollectionRegistry, blockStateTarget: BlockStateRegistry) {\n\tconst version = config.versions.find(v => v.id === versionId) as Version | undefined\n\tif (!version) {\n\t\tconsole.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`)\n\t\treturn\n\t}\n\n\tif (version.dynamic) {\n\t\tif (localStorage.getItem(CACHE_LATEST_VERSION) !== latestVersion) {\n\t\t\tawait deleteMatching(url => url.startsWith(`${mcmetaUrl}/summary`))\n\t\t\tlocalStorage.setItem(CACHE_LATEST_VERSION, latestVersion)\n\t\t}\n\t\tversion.ref = latestVersion\n\t}\n\n\tawait Promise.all([\n\t\tfetchRegistries(version, collectionTarget),\n\t\tfetchBlockStateMap(version, blockStateTarget),\n\t])\n}\n\nasync function fetchRegistries(version: Version, target: CollectionRegistry) {\n\tconsole.debug(`[fetchRegistries] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/registries/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget.register(id, data[id].map((e: string) => 'minecraft:' + e))\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching registries:', message(e))\n\t}\n}\n\nasync function fetchBlockStateMap(version: Version, target: BlockStateRegistry) {\n\tconsole.debug(`[fetchBlockStateMap] ${version.id}`)\n\ttry {\n\t\tconst data = await getData(`${mcmeta(version, 'summary')}/blocks/data.min.json`)\n\t\tfor (const id in data) {\n\t\t\ttarget['minecraft:' + id] = {\n\t\t\t\tproperties: data[id][0],\n\t\t\t\tdefault: data[id][1],\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.warn('Error occurred while fetching block state map:', message(e))\n\t}\n}\n\nexport async function fetchPreset(versionId: VersionId, registry: string, id: string) {\n\tconsole.debug(`[fetchPreset] ${versionId} ${registry} ${id}`)\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst type = ['blockstates', 'models'].includes(registry) ? 'assets' : 'data'\n\t\tconst url = `${mcmeta(version, type)}/${type}/minecraft/${registry}/${id}.json`\n\t\tconst res = await fetch(url)\n\t\treturn res.json()\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching ${registry} preset ${id}: ${message(e)}`)\n\t}\n}\n\nexport type SoundEvents = {\n\t[key: string]: {\n\t\tsounds: (string | { name: string })[],\n\t},\n}\nexport async function fetchSounds(versionId: VersionId): Promise<SoundEvents> {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\ttry {\n\t\tconst url = `${mcmeta(version, 'summary')}/sounds/data.min.json`\n\t\treturn await getData(url)\n\t} catch (e) {\n\t\tthrow new Error(`Error occurred while fetching sounds for ${version}: ${message(e)}`)\n\t}\n}\n\nexport function getSoundUrl(versionId: VersionId, path: string) {\n\tconst version = config.versions.find(v => v.id === versionId)!\n\treturn `${mcmeta(version, 'assets')}/assets/minecraft/sounds/${path}.ogg`\n}\n\nasync function getData<T = any>(url: string, fn: (v: any) => T = (v: any) => v): Promise<T> {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`)\n\t\tconst cacheResponse = await cache.match(url)\n \n\t\tif (cacheResponse && cacheResponse.ok) {\n\t\t\tconsole.debug(`[getData] Retrieving cached data ${url}`)\n\t\t\treturn await cacheResponse.json()\n\t\t}\n \n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\tawait cache.put(url, new Response(JSON.stringify(responseData)))\n\t\treturn responseData\n\t} catch (e) {\n\t\tconsole.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\n\t\tconsole.debug(`[getData] fetching data ${url}`)\n\t\tconst fetchResponse = await fetch(url)\n\t\tconst responseData = fn(await fetchResponse.json())\n\t\treturn responseData\n\t}\n}\n\nasync function deleteMatching(matches: (url: string) => boolean) {\n\ttry {\n\t\tconst cache = await caches.open(CACHE_NAME)\n\t\tconsole.debug(`[deleteMatching] Opened cache ${CACHE_NAME}`)\n\t\tconst promises: Promise<boolean>[] = []\n \n\t\tfor (const request of await cache.keys()) {\n\t\t\tif (matches(request.url)) {\n\t\t\t\tpromises.push(cache.delete(request))\n\t\t\t}\n\t\t}\n\t\tconsole.debug(`[deleteMatching] Removing ${promises.length} cache objects...`)\n\t\tawait Promise.all(promises)\n\t} catch (e) {\n\t\tconsole.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${message(e)}`)\n\t}\n}\n","import type { CollectionRegistry, INode, SchemaRegistry } from '@mcschema/core'\nimport { ChoiceNode, DataModel, Reference, StringNode } from '@mcschema/core'\nimport * as java15 from '@mcschema/java-1.15'\nimport * as java16 from '@mcschema/java-1.16'\nimport * as java17 from '@mcschema/java-1.17'\nimport * as java18 from '@mcschema/java-1.18'\nimport * as latest from '@mcschema/java-1.18.2'\nimport config from '../../config.json'\nimport { message } from '../Utils'\nimport { fetchData } from './DataFetcher'\n\nexport const VersionIds = ['1.15', '1.16', '1.17', '1.18', 'latest'] as const\nexport type VersionId = typeof VersionIds[number]\n\nexport type BlockStateRegistry = {\n\t[block: string]: {\n\t\tproperties?: {\n\t\t\t[key: string]: string[],\n\t\t},\n\t\tdefault?: {\n\t\t\t[key: string]: string,\n\t\t},\n\t},\n}\n\ntype VersionData = {\n\tcollections: CollectionRegistry,\n\tschemas: SchemaRegistry,\n\tblockStates: BlockStateRegistry,\n}\nconst Versions: Record<string, VersionData | Promise<VersionData>> = {}\n\ntype ModelData = {\n\tmodel: DataModel,\n\tversion: VersionId,\n}\nconst Models: Record<string, ModelData> = {}\n\nconst versionGetter: {\n\t[versionId in VersionId]: {\n\t\tgetCollections: () => CollectionRegistry,\n\t\tgetSchemas: (collections: CollectionRegistry) => SchemaRegistry,\n\t}\n} = {\n\t1.15: java15,\n\t1.16: java16,\n\t1.17: java17,\n\t1.18: java18,\n\tlatest: latest,\n}\n\nexport let CachedDecorator: INode<any>\nexport let CachedFeature: INode<any>\nexport let CachedCollections: CollectionRegistry\n\nasync function getVersion(id: VersionId): Promise<VersionData> {\n\tif (!Versions[id]) {\n\t\tVersions[id] = (async () => {\n\t\t\ttry {\n\t\t\t\tconst collections = versionGetter[id].getCollections()\n\t\t\t\tconst blockStates: BlockStateRegistry = {}\n\t\t\t\tawait fetchData(id, collections, blockStates)\n\t\t\t\tconst schemas = versionGetter[id].getSchemas(collections)\n\t\t\t\tVersions[id] = { collections, schemas, blockStates }\n\t\t\t\treturn Versions[id]\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error(`Cannot get version \"${id}\": ${message(e)}`)\n\t\t\t}\n\t\t})()\n\t\treturn Versions[id]\n\t}\n\treturn Versions[id]\n}\n\nexport async function getModel(version: VersionId, id: string): Promise<DataModel> {\n\tif (!Models[id] || Models[id].version !== version) {\n\t\tconst versionData = await getVersion(version)\n\t\t\n\t\tCachedDecorator = Reference(versionData.schemas, 'configured_decorator')\n\t\tCachedFeature = ChoiceNode([\n\t\t\t{\n\t\t\t\ttype: 'string',\n\t\t\t\tnode: StringNode(versionData.collections, { validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'object',\n\t\t\t\tnode: Reference(versionData.schemas, 'configured_feature'),\n\t\t\t},\n\t\t], { choiceContext: 'feature' })\n\n\t\tconst schemaName = config.generators.find(g => g.id === id)?.schema\n\t\tif (!schemaName) {\n\t\t\tthrow new Error(`Cannot find model ${id}`)\n\t\t}\n\t\ttry {\n\t\t\tconst schema = versionData.schemas.get(schemaName)\n\t\t\tconst model = new DataModel(schema, { wrapLists: true })\n\t\t\tif (Models[id]) {\n\t\t\t\tmodel.reset(Models[id].model.data, false)\n\t\t\t} else {\n\t\t\t\tmodel.validate(true)\n\t\t\t\tmodel.history = [JSON.stringify(model.data)]\n\t\t\t}\n\t\t\tModels[id] = { model, version }\n\t\t} catch (e) {\n\t\t\tconst err = new Error(`Cannot get generator \"${id}\" for version \"${version}\": ${message(e)}`)\n\t\t\tif (e instanceof Error) err.stack = e.stack\n\t\t\tthrow err\n\t\t}\n\t}\n\treturn Models[id].model\n}\n\nexport async function getCollections(version: VersionId): Promise<CollectionRegistry> {\n\tconst versionData = await getVersion(version)\n\tCachedCollections = versionData.collections\n\treturn versionData.collections\n}\n\nexport async function getBlockStates(version: VersionId): Promise<BlockStateRegistry> {\n\tconst versionData = await getVersion(version)\n\treturn versionData.blockStates\n}\n\nexport function checkVersion(versionId: string, minVersionId: string | undefined, maxVersionId?: string) {\n\tconst version = config.versions.findIndex(v => v.id === versionId)\n\tconst minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0\n\tconst maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1\n\treturn minVersion <= version && version <= maxVersion\n}\n","let scriptRel;const seen = {};export const __vitePreload = function preload(baseModule, deps) {\n // @ts-ignore\n if (!__VITE_IS_MODERN__ || !deps) {\n return baseModule();\n }\n // @ts-ignore\n if (scriptRel === undefined) {\n // @ts-ignore\n const relList = document.createElement('link').relList;\n // @ts-ignore\n scriptRel =\n relList && relList.supports && relList.supports('modulepreload')\n ? 'modulepreload'\n : 'preload';\n }\n return Promise.all(deps.map((dep) => {\n // @ts-ignore\n if (dep in seen)\n return;\n // @ts-ignore\n seen[dep] = true;\n const isCss = dep.endsWith('.css');\n const cssSelector = isCss ? '[rel=\"stylesheet\"]' : '';\n // @ts-ignore check if the file is already preloaded by SSR markup\n if (document.querySelector(`link[href=\"${dep}\"]${cssSelector}`)) {\n return;\n }\n // @ts-ignore\n const link = document.createElement('link');\n // @ts-ignore\n link.rel = isCss ? 'stylesheet' : scriptRel;\n if (!isCss) {\n link.as = 'script';\n link.crossOrigin = '';\n }\n link.href = dep;\n // @ts-ignore\n document.head.appendChild(link);\n if (isCss) {\n return new Promise((res, rej) => {\n link.addEventListener('load', res);\n link.addEventListener('error', rej);\n });\n }\n })).then(() => baseModule());\n}","import type { Project } from './contexts'\nimport { DRAFT_PROJECT } from './contexts'\nimport type { VersionId } from './services'\nimport { VersionIds } from './services'\n\nexport namespace Store {\n\texport const ID_LANGUAGE = 'language'\n\texport const ID_THEME = 'theme'\n\texport const ID_VERSION = 'schema_version'\n\texport const ID_INDENT = 'indentation'\n\texport const ID_FORMAT = 'output_format'\n\texport const ID_SOUNDS_VERSION = 'minecraft_sounds_version'\n\texport const ID_PROJECTS = 'misode_projects'\n\n\texport function getLanguage() {\n\t\treturn localStorage.getItem(ID_LANGUAGE) ?? 'en'\n\t}\n\n\texport function getTheme() {\n\t\treturn localStorage.getItem(ID_THEME) ?? 'dark'\n\t}\n\n\texport function getVersion(): VersionId {\n\t\tconst version = localStorage.getItem(ID_VERSION)\n\t\tif (version && VersionIds.includes(version as VersionId)) {\n\t\t\treturn version as VersionId\n\t\t}\n\t\treturn '1.18'\n\t}\n\n\texport function getIndent() {\n\t\treturn localStorage.getItem(ID_INDENT) ?? '2_spaces'\n\t}\n\n\texport function getFormat() {\n\t\treturn localStorage.getItem(ID_FORMAT) ?? 'json'\n\t}\n\n\texport function getSoundsVersion() {\n\t\treturn localStorage.getItem(ID_SOUNDS_VERSION) ?? 'latest'\n\t}\n\n\texport function getProjects(): Project[] {\n\t\tconst projects = localStorage.getItem(ID_PROJECTS)\n\t\tif (projects) {\n\t\t\treturn JSON.parse(projects) as Project[]\n\t\t}\n\t\treturn [DRAFT_PROJECT]\n\t}\n\n\texport function setLanguage(language: string | undefined) {\n\t\tif (language) localStorage.setItem(ID_LANGUAGE, language)\n\t}\n\n\texport function setTheme(theme: string | undefined) {\n\t\tif (theme) localStorage.setItem(ID_THEME, theme)\n\t}\n\n\texport function setVersion(version: VersionId | undefined) {\n\t\tif (version) localStorage.setItem(ID_VERSION, version)\n\t}\n\n\texport function setIndent(indent: string | undefined) {\n\t\tif (indent) localStorage.setItem(ID_INDENT, indent)\n\t}\n\n\texport function setFormat(format: string | undefined) {\n\t\tif (format) localStorage.setItem(ID_FORMAT, format)\n\t}\n\n\texport function setSoundsVersion(version: string | undefined) {\n\t\tif (version) localStorage.setItem(ID_SOUNDS_VERSION, version)\n\t}\n\n\texport function setProjects(projects: Project[] | undefined) {\n\t\tif (projects) localStorage.setItem(ID_PROJECTS, JSON.stringify(projects))\n\t}\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport English from '../../locales/en.json'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Locale {\n\tlang: string,\n\tlocale: (key: string, ...params: string[]) => string,\n\tchangeLanguage: (lang: string) => unknown,\n}\nconst Locale = createContext<Locale>({\n\tlang: 'none',\n\tlocale: key => key,\n\tchangeLanguage: () => {},\n})\n\nexport const Locales: {\n\t[key: string]: {\n\t\t[key: string]: string,\n\t},\n} = {\n\tfallback: English,\n}\n\nexport function localize(lang: string, key: string, ...params: string[]) {\n\tconst value: string | undefined = Locales[lang]?.[key]\n\t?? Locales.en?.[key] ?? Locales.fallback[key] ?? key\n\treturn resolveLocaleParams(value, params)\n}\n\nfunction resolveLocaleParams(value: string, params?: string[]): string {\n\treturn value.replace(/%\\d+%/g, match => {\n\t\tconst index = parseInt(match.slice(1, -1))\n\t\treturn params?.[index] !== undefined ? params[index] : match\n\t})\n}\n\nasync function loadLocale(language: string) {\n\tif (Locales[language]) return\n\tconst langConfig = config.languages.find(lang => lang.code === language)\n\tif (!langConfig) return\n\tconst data = await import(`../../locales/${language}.json`)\n\tconst schema = langConfig.schemas !== false\n\t\t&& await import(`../../../node_modules/@mcschema/locales/src/${language}.json`)\n\tLocales[language] = { ...data.default, ...schema.default }\n}\n\nexport function useLocale() {\n\treturn useContext(Locale)\n}\n\nexport function LocaleProvider({ children }: { children: ComponentChildren }) {\n\tconst [lang, setLanguage] = useState('none')\n\n\tconst locale = useCallback((key: string, ...params: string[]) => {\n\t\treturn localize(lang, key, ...params)\n\t}, [lang])\n\n\tconst changeLanguage = useCallback(async (lang: string) => {\n\t\tawait loadLocale(lang)\n\t\tAnalytics.setLanguage(lang)\n\t\tStore.setLanguage(lang)\n\t\tsetLanguage(lang)\n\t}, [])\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\tconst target = Store.getLanguage()\n\t\t\tawait Promise.all([\n\t\t\t\tloadLocale('en'),\n\t\t\t\t...(target !== 'en' ? [loadLocale(target)] : []),\n\t\t\t])\n\t\t\tsetLanguage(target)\n\t\t})()\n\t}, [])\n\n\tconst value: Locale = {\n\t\tlang,\n\t\tlocale: locale,\n\t\tchangeLanguage,\n\t}\n\n\treturn <Locale.Provider value={value}>\n\t\t{children}\n\t</Locale.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { route } from 'preact-router'\nimport { useCallback, useContext, useMemo, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\nimport { Store } from '../Store'\nimport { cleanUrl } from '../Utils'\n\nexport type Project = {\n\tname: string,\n\tnamespace: string,\n\tversion?: VersionId,\n\tfiles: ProjectFile[],\n}\nexport const DRAFT_PROJECT: Project = {\n\tname: 'Drafts',\n\tnamespace: 'draft',\n\tfiles: [],\n}\n\nexport type ProjectFile = {\n\ttype: string,\n\tid: string,\n\tdata: any,\n}\n\ninterface ProjectContext {\n\tproject: Project,\n\tfile?: ProjectFile,\n\tchangeProject: (name: string) => unknown,\n\tupdateProject: (project: Partial<Project>) => unknown,\n\tupdateFile: (type: string, id: string | undefined, file: Partial<ProjectFile>) => boolean,\n\topenFile: (type: string, id: string) => unknown,\n\tcloseFile: () => unknown,\n}\nconst Project = createContext<ProjectContext>({\n\tproject: DRAFT_PROJECT,\n\tchangeProject: () => {},\n\tupdateProject: () => {},\n\tupdateFile: () => false,\n\topenFile: () => {},\n\tcloseFile: () => {},\n})\n\nexport function useProject() {\n\treturn useContext(Project)\n}\n\nexport function ProjectProvider({ children }: { children: ComponentChildren }) {\n\tconst [projects, setProjects] = useState<Project[]>(Store.getProjects())\n\n\tconst [projectName, setProjectName] = useState<string>(DRAFT_PROJECT.name)\n\tconst project = useMemo(() => {\n\t\treturn projects.find(p => p.name === projectName) ?? DRAFT_PROJECT\n\t}, [projects, projectName])\n\n\tconst [fileId, setFileId] = useState<[string, string] | undefined>(undefined)\n\tconst file = useMemo(() => {\n\t\tif (!fileId) return undefined\n\t\treturn project.files.find(f => f.type === fileId[0] && f.id === fileId[1])\n\t}, [project, fileId])\n\n\tconst changeProjects = useCallback((projects: Project[]) => {\n\t\tStore.setProjects(projects)\n\t\tsetProjects(projects)\n\t}, [])\n\n\tconst updateProject = useCallback((edits: Partial<Project>) => {\n\t\tchangeProjects(projects.map(p => p.name === projectName ?\t{ ...p, ...edits } : p))\n\t}, [projects, projectName])\n\n\tconst updateFile = useCallback((type: string, id: string | undefined, edits: Partial<ProjectFile>) => {\n\t\tif (!edits.id) { // remove\n\t\t\tupdateProject({ files: project.files.filter(f => f.type !== type || f.id !== id) })\n\t\t} else {\n\t\t\tconst newId = edits.id.includes(':') ? edits.id : `${project.namespace}:${edits.id}`\n\t\t\tconst exists = project.files.some(f => f.type === type && f.id === newId)\n\t\t\tif (!id) { // create\n\t\t\t\tif (exists) return false\n\t\t\t\tupdateProject({ files: [...project.files, { type, id: newId, data: edits.data ?? {} } ]})\n\t\t\t\tsetFileId([type, newId])\n\t\t\t} else { // rename or update data\n\t\t\t\tif (file?.id === id && id !== newId && exists) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tupdateProject({ files: project.files.map(f => f.type === type && f.id === id ? { ...f, ...edits, id: newId } : f)})\n\t\t\t\tif (file?.id === id) setFileId([type, newId])\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}, [updateProject, project, file])\n\n\tconst openFile = useCallback((type: string, id: string) => {\n\t\tconst gen = config.generators.find(g => g.id === type || g.path === type)\n\t\tif (!gen) {\n\t\t\tthrow new Error(`Cannot find generator of type ${type}`)\n\t\t}\n\t\tsetFileId([gen.id, id])\n\t\troute(cleanUrl(gen.url))\n\t}, [])\n\n\tconst closeFile = useCallback(() => {\n\t\tsetFileId(undefined)\n\t}, [])\n\n\tconst value: ProjectContext = {\n\t\tproject,\n\t\tfile,\n\t\tchangeProject: setProjectName,\n\t\tupdateProject,\n\t\tupdateFile,\n\t\topenFile,\n\t\tcloseFile,\n\t}\n\n\treturn <Project.Provider value={value}>\n\t\t{children}\n\t</Project.Provider>\n}\n\nexport function getFilePath(file: ProjectFile) {\n\tconst [namespace, id] = file.id.includes(':') ? file.id.split(':') : ['minecraft', file.id]\n\tconst gen = config.generators.find(g => g.id === file.type)\n\tif (!gen) {\n\t\tthrow new Error(`Cannot find generator of type ${file.type}`)\n\t}\n\treturn `data/${namespace}/${gen.path ?? gen.id}/${id}`\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport { Store } from '../Store'\n\ninterface Theme {\n\ttheme: string,\n\tchangeTheme: (theme: string) => unknown,\n}\nconst Theme = createContext<Theme>({\n\ttheme: 'dark',\n\tchangeTheme: () => {},\n})\n\nexport function useTheme() {\n\treturn useContext(Theme)\n}\n\nexport function ThemeProvider({ children }: { children: ComponentChildren }) {\n\tconst [theme, setTheme] = useState(Store.getTheme())\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme)\n\t}, [theme])\n\n\tconst changeTheme = useCallback((theme: string) => {\n\t\tAnalytics.setTheme(theme)\n\t\tStore.setTheme(theme)\n\t\tsetTheme(theme)\n\t}, [])\n\n\tconst value: Theme = {\n\t\ttheme,\n\t\tchangeTheme,\n\t}\n\n\treturn <Theme.Provider value={value}>\n\t\t{children}\n\t</Theme.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { useLocale } from '.'\nimport config from '../../config.json'\nimport type { VersionId } from '../services'\n\nconst VERSIONS_IN_TITLE = 3\n\ninterface Title {\n\ttitle: string,\n\tchangeTitle: (title: string, versions?: VersionId[]) => unknown,\n}\nconst Title = createContext<Title>({\n\ttitle: '',\n\tchangeTitle: () => {},\n})\n\nexport function useTitle(title?: string, versions?: VersionId[]) {\n\tconst context = useContext(Title)\n\tuseEffect(() => {\n\t\tif (title) {\n\t\t\tcontext.changeTitle(title, versions)\n\t\t}\n\t}, [title, versions])\n\treturn context\n}\n\nexport function TitleProvider({ children }: { children: ComponentChildren }) {\n\tconst { locale } = useLocale()\n\tconst [title, setTitle] = useState<string>(locale('title.home'))\n\n\tconst changeTitle = useCallback((title: string, versions?: VersionId[]) => {\n\t\tversions ??= config.versions.map(v => v.id as VersionId)\n\t\tconst titleVersions = versions.slice(versions.length - VERSIONS_IN_TITLE)\n\t\tdocument.title = `${title} Minecraft ${titleVersions.join(', ')}`\n\t\tsetTitle(title)\n\t}, [])\n\n\tconst value = {\n\t\ttitle,\n\t\tchangeTitle,\n\t}\n\n\treturn <Title.Provider value={value}>\n\t\t{children}\n\t</Title.Provider>\n}\n","import type { ComponentChildren } from 'preact'\nimport { createContext } from 'preact'\nimport { getCurrentUrl } from 'preact-router'\nimport { useCallback, useContext, useEffect, useState } from 'preact/hooks'\nimport { Analytics } from '../Analytics'\nimport type { VersionId } from '../services'\nimport { VersionIds } from '../services'\nimport { Store } from '../Store'\nimport { getSearchParams, setSeachParams } from '../Utils'\n\nconst VERSION_PARAM = 'version'\n\ninterface Version {\n\tversion: VersionId,\n\tchangeVersion: (version: VersionId) => unknown,\n}\nconst Version = createContext<Version>({\n\tversion: '1.18',\n\tchangeVersion: () => {},\n})\n\nexport function useVersion() {\n\treturn useContext(Version)\n}\n\nexport function VersionProvider({ children }: { children: ComponentChildren }) {\n\tconst [version, setVersion] = useState<VersionId>(Store.getVersion())\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst targetVersion = searchParams.get(VERSION_PARAM)\n\tuseEffect(() => {\n\t\tif (VersionIds.includes(targetVersion as VersionId) && version !== targetVersion) {\n\t\t\tsetVersion(targetVersion as VersionId)\n\t\t}\n\t}, [version, targetVersion])\n\n\tconst changeVersion = useCallback((version: VersionId) => {\n\t\tif (getSearchParams(getCurrentUrl()).has(VERSION_PARAM)) {\n\t\t\tsetSeachParams({ version })\n\t\t}\n\t\tAnalytics.setVersion(version)\n\t\tStore.setVersion(version)\n\t\tsetVersion(version)\n\t}, [])\n\n\tconst value: Version = {\n\t\tversion,\n\t\tchangeVersion,\n\t}\n\n\treturn <Version.Provider value={value}>\n\t\t{children}\n\t</Version.Provider>\n}\n","import { DataModel } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { FixedBiome, LegacyRandom, NormalNoise, TerrainShaper } from 'deepslate'\nimport init, { biome_parameters, climate_noise, climate_sampler, multi_noise } from 'deepslate-rs'\n// @ts-expect-error\nimport wasm from 'deepslate-rs/deepslate_rs_bg.wasm?url'\nimport type { VersionId } from '../services'\nimport { fetchPreset } from '../services'\nimport { BiMap, clamp, deepClone, deepEqual, square, stringToColor } from '../Utils'\n\nlet ready = false\nasync function loadWasm() {\n\tif (ready) return\n\tawait init(wasm)\n\tready = true\n\tconsole.debug(`Loaded deepslate-rs from \"${wasm}\"`)\n}\n\nconst LAYERS = {\n\ttemperature: [-1, 1],\n\thumidity: [-1, 1],\n\tcontinentalness: [-1.1, 1],\n\terosion: [-1, 1],\n\tweirdness: [-1, 1],\n\toffset: [-1, 1],\n\tfactor: [0, 12],\n\tjaggedness: [0, 1],\n}\n\ntype Triple = [number, number, number]\ntype BiomeColors = Record<string, Triple>\ntype BiomeSourceOptions = {\n\toctaves: Record<string, NoiseParameters>,\n\tshaper: TerrainShaper,\n\tbiomeColors: BiomeColors,\n\toffset: [number, number],\n\tscale: number,\n\tres: number,\n\tseed: bigint,\n\tversion: VersionId,\n\tlayers: Set<keyof typeof LAYERS | 'biomes'>,\n}\n\ninterface CachedBiomeSource {\n\tgetBiome(x: number, y: number, z: number): string\n\tgetBiomes?(xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): string[]\n\tgetClimate?(x: number, y: number, z: number): {[k: string]: number}\n\tgetClimates?(layers: Set<keyof typeof LAYERS>, xFrom: number, xTo: number, xStep: number, yFrom: number, yTo: number, yStep: number, zFrom: number, zTo: number, zStep: number): {[k: string]: number}[]\n}\n\nlet cacheState: any\nlet biomeSourceCache: CachedBiomeSource\n\nexport async function biomeMap(state: any, img: ImageData, options: BiomeSourceOptions) {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst data = img.data\n\tconst ox = -Math.round(options.offset[0]) - 100 + options.res / 2\n\tconst oz = -Math.round(options.offset[1]) - 100 + options.res / 2\n\tconst row = img.width * 4 / options.res\n\tconst col = 4 / options.res\n\n\tconst xRange: Triple = [ox * options.scale, (200 + ox) * options.scale, options.res * options.scale]\n\tconst zRange: Triple = [oz * options.scale, (200 + oz) * options.scale, options.res * options.scale]\n\n\tconst biomes = !options.layers.has('biomes') ? undefined : biomeSource.getBiomes?.(...xRange, 64, 65, 1, ...zRange)\n\tconst layers = [...options.layers].filter(l => l !== 'biomes') as (keyof typeof LAYERS)[]\n\tconst noise = layers.length === 0 ? undefined : biomeSource.getClimates?.(new Set(layers), ...xRange, 64, 65, 1, ...zRange)\n\n\tfor (let x = 0; x < 200; x += options.res) {\n\t\tfor (let z = 0; z < 200; z += options.res) {\n\t\t\tconst i = z * row + x * col\n\t\t\tconst j = (x / options.res) * 200 / options.res + z / options.res\n\t\t\tconst worldX = (x + ox) * options.scale\n\t\t\tconst worldZ = (z + oz) * options.scale\n\t\t\tlet color: Triple = [50, 50, 50]\n\t\t\tif (options.layers.has('biomes')) {\n\t\t\t\tconst biome = biomes?.[j] ?? biomeSource.getBiome(worldX, 64, worldZ)\n\t\t\t\tcolor = getBiomeColor(biome, options.biomeColors)\n\t\t\t} else if (noise && layers[0]) {\n\t\t\t\tconst value = noise[j][layers[0]]\n\t\t\t\tconst [min, max] = LAYERS[layers[0]]\n\t\t\t\tconst brightness = (value - min) / (max - min) * 256\n\t\t\t\tcolor = [brightness, brightness, brightness]\n\t\t\t}\n\t\t\tdata[i] = color[0]\n\t\t\tdata[i + 1] = color[1]\n\t\t\tdata[i + 2] = color[2]\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport async function getBiome(state: any, x: number, z: number, options: BiomeSourceOptions): Promise<{[k: string]: number | string} | undefined> {\n\tconst { biomeSource } = await getCached(state, options)\n\n\tconst [xx, zz] = toWorld([x, z], options)\n\treturn {\n\t\tbiome: biomeSource.getBiome(xx, 64, zz),\n\t\t...biomeSource.getClimate?.(xx, 64, zz),\n\t}\n}\n\nasync function getCached(state: any, options: BiomeSourceOptions): Promise<{ biomeSource: CachedBiomeSource}> {\n\tconst newState = [state, options.octaves, options.shaper.toJson(), `${options.seed}`, options.version]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\n\t\tbiomeSourceCache = await getBiomeSource(state, options)\n\t}\n\treturn {\n\t\tbiomeSource: biomeSourceCache,\n\t} \n}\n\nasync function getBiomeSource(state: any, options: BiomeSourceOptions): Promise<CachedBiomeSource> {\n\tswitch (state?.type?.replace(/^minecraft:/, '')) {\n\t\tcase 'fixed':\n\t\t\treturn new FixedBiome(state.biome as string)\n\n\t\tcase 'checkerboard':\n\t\t\tconst shift = (state.scale ?? 2) + 2\n\t\t\tconst numBiomes = state.biomes?.length ?? 0\n\t\t\treturn {\n\t\t\t\tgetBiome(x: number, _y: number, z: number) {\n\t\t\t\t\tconst i = (((x >> shift) + (z >> shift)) % numBiomes + numBiomes) % numBiomes\n\t\t\t\t\treturn (state.biomes?.[i].node as string)\n\t\t\t\t},\n\t\t\t}\n\n\t\tcase 'multi_noise':\n\t\t\tswitch(state.preset?.replace(/^minecraft:/, '')) {\n\t\t\t\tcase 'nether':\n\t\t\t\t\tstate = options.version === '1.18' ? NetherPreset18 : NetherPreset\n\t\t\t\t\tbreak\n\t\t\t\tcase 'overworld':\n\t\t\t\t\tstate = options.version === '1.18' ? await OverworldPreset18() : state\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t\tstate = DataModel.unwrapLists(state)\n\t\t\tif (options.version === '1.18') {\n\t\t\t\tawait loadWasm()\n\t\t\t\tconst BiomeIds = new BiMap<string, number>()\n\t\t\t\tconst param = (p: number | number[]) => {\n\t\t\t\t\treturn typeof p === 'number' ? [p, p] : p\n\t\t\t\t}\n\t\t\t\tconst [t0, t1, h0, h1, c0, c1, e0, e1, w0, w1, d0, d1, o, b] = [[], [], [], [], [], [], [], [], [], [], [], [], [], []] as number[][]\n\t\t\t\tfor (const i of state.biomes) {\n\t\t\t\t\tconst { temperature, humidity, continentalness, erosion, weirdness, depth, offset } = i.parameters\n\t\t\t\t\tt0.push(param(temperature)[0])\n\t\t\t\t\tt1.push(param(temperature)[1])\n\t\t\t\t\th0.push(param(humidity)[0])\n\t\t\t\t\th1.push(param(humidity)[1])\n\t\t\t\t\tc0.push(param(continentalness)[0])\n\t\t\t\t\tc1.push(param(continentalness)[1])\n\t\t\t\t\te0.push(param(erosion)[0])\n\t\t\t\t\te1.push(param(erosion)[1])\n\t\t\t\t\tw0.push(param(weirdness)[0])\n\t\t\t\t\tw1.push(param(weirdness)[1])\n\t\t\t\t\td0.push(param(depth)[0])\n\t\t\t\t\td1.push(param(depth)[1])\n\t\t\t\t\to.push(offset)\n\t\t\t\t\tb.push(BiomeIds.getOrPut(i.biome, Math.floor(Math.random() * 2147483647)))\n\t\t\t\t}\n\t\t\t\tconst parameters = biome_parameters(new Float64Array(t0), new Float64Array(t1), new Float64Array(h0), new Float64Array(h1), new Float64Array(c0), new Float64Array(c1), new Float64Array(e0), new Float64Array(e1), new Float64Array(w0), new Float64Array(w1), new Float64Array(d0), new Float64Array(d1), new Float64Array(o), new Int32Array(b))\n\t\t\t\tconst sampler = climate_sampler(options.seed, options.octaves.temperature.firstOctave, new Float64Array(options.octaves.temperature.amplitudes), options.octaves.humidity.firstOctave, new Float64Array(options.octaves.humidity.amplitudes), options.octaves.continentalness.firstOctave, new Float64Array(options.octaves.continentalness.amplitudes), options.octaves.erosion.firstOctave, new Float64Array(options.octaves.erosion.amplitudes), options.octaves.weirdness.firstOctave, new Float64Array(options.octaves.weirdness.amplitudes), options.octaves.shift.firstOctave, new Float64Array(options.octaves.shift.amplitudes))\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x, y, z) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\treturn BiomeIds.getA(ids[0]) ?? 'unknown'\n\t\t\t\t\t},\n\t\t\t\t\tgetBiomes(xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst ids = multi_noise(parameters, sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\treturn [...ids].map(id => BiomeIds.getA(id) ?? 'unknown')\n\t\t\t\t\t},\n\t\t\t\t\tgetClimate(x, y, z) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, x, x + 1, 1, y, y + 1, 1, z, z + 1, 1)\n\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(0, 5)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetClimates(layers, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep) {\n\t\t\t\t\t\tconst climate = climate_noise(sampler, xFrom, xTo, xStep, yFrom, yTo, yStep, zFrom, zTo, zStep)\n\t\t\t\t\t\tconst result = []\n\t\t\t\t\t\tfor (let i = 0; i < climate.length; i += 7) {\n\t\t\t\t\t\t\tconst [t, h, c, e, w] = climate.slice(i, i + 5)\n\t\t\t\t\t\t\tconst point = TerrainShaper.point(c, e, w)\n\t\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\t\ttemperature: t,\n\t\t\t\t\t\t\t\thumidity: h,\n\t\t\t\t\t\t\t\tcontinentalness: c,\n\t\t\t\t\t\t\t\terosion: e,\n\t\t\t\t\t\t\t\tweirdness: w,\n\t\t\t\t\t\t\t\t...layers.has('offset') && { offset: options.shaper.offset(point) },\n\t\t\t\t\t\t\t\t...layers.has('factor') && { factor: options.shaper.factor(point) },\n\t\t\t\t\t\t\t\t...layers.has('jaggedness') && { jaggedness: options.shaper.jaggedness(point) },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst noise = ['altitude', 'temperature', 'humidity', 'weirdness']\n\t\t\t\t\t.map((id, i) => {\n\t\t\t\t\t\tconst config = state[`${id}_noise`]\n\t\t\t\t\t\tconfig.firstOctave = clamp(config.firstOctave ?? -7, -100, -1)\n\t\t\t\t\t\treturn new NormalNoise(new LegacyRandom(options.seed + BigInt(i)), config)\n\t\t\t\t\t})\n\t\t\t\tif (!Array.isArray(state.biomes) || state.biomes.length === 0) {\n\t\t\t\t\treturn new FixedBiome('unknown')\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tgetBiome(x: number, _y: number, z: number): string {\n\t\t\t\t\t\tconst n = noise.map(n => n.sample(x, z, 0))\n\t\t\t\t\t\tlet minDist = Infinity\n\t\t\t\t\t\tlet minBiome = ''\n\t\t\t\t\t\tfor (const { biome, parameters: p } of state.biomes) {\n\t\t\t\t\t\t\tconst dist = square(p.altitude - n[0]) + square(p.temperature - n[1]) + square(p.humidity - n[2]) + square(p.weirdness - n[3]) + square(p.offset)\n\t\t\t\t\t\t\tif (dist < minDist) {\n\t\t\t\t\t\t\t\tminDist = dist\n\t\t\t\t\t\t\t\tminBiome = biome\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn minBiome\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t}\n\tthrow new Error('Unknown biome source')\n}\n\nfunction getBiomeColor(biome: string, biomeColors: BiomeColors): Triple {\n\tif (!biome) {\n\t\treturn [128, 128, 128]\n\t}\n\tconst color = biomeColors[biome] ?? VanillaColors[biome]\n\tif (color === undefined) {\n\t\treturn stringToColor(biome)\n\t}\n\treturn color\n}\n\nfunction toWorld([x, z]: [number, number], options: BiomeSourceOptions) {\n\tconst xx = (x - options.offset[0] - 100 + options.res / 2) * options.scale\n\tconst zz = (z - options.offset[1] - 100 + options.res / 2) * options.scale\n\treturn [xx, zz]\n}\n\nconst VanillaColors: Record<string, Triple> = {\n\t'minecraft:badlands': [217,69,21],\n\t'minecraft:badlands_plateau': [202,140,101],\n\t'minecraft:bamboo_jungle': [118,142,20],\n\t'minecraft:bamboo_jungle_hills': [59,71,10],\n\t'minecraft:basalt_deltas': [64,54,54],\n\t'minecraft:beach': [250,222,85],\n\t'minecraft:birch_forest': [48,116,68],\n\t'minecraft:birch_forest_hills': [31,95,50],\n\t'minecraft:cold_ocean': [32,32,112],\n\t'minecraft:crimson_forest': [221,8,8],\n\t'minecraft:dark_forest': [64,81,26],\n\t'minecraft:dark_forest_hills': [104,121,66],\n\t'minecraft:deep_cold_ocean': [32,32,56],\n\t'minecraft:deep_frozen_ocean': [64,64,144],\n\t'minecraft:deep_lukewarm_ocean': [0,0,64],\n\t'minecraft:deep_ocean': [0,0,48],\n\t'minecraft:deep_warm_ocean': [0,0,80],\n\t'minecraft:desert': [250,148,24],\n\t'minecraft:desert_hills': [210,95,18],\n\t'minecraft:desert_lakes': [255,188,64],\n\t'minecraft:end_barrens': [128,128,255],\n\t'minecraft:end_highlands': [128,128,255],\n\t'minecraft:end_midlands': [128,128,255],\n\t'minecraft:eroded_badlands': [255,109,61],\n\t'minecraft:flower_forest': [45,142,73],\n\t'minecraft:forest': [5,102,33],\n\t'minecraft:frozen_ocean': [112,112,214],\n\t'minecraft:frozen_river': [160,160,255],\n\t'minecraft:giant_spruce_taiga': [129,142,121],\n\t'minecraft:old_growth_spruce_taiga': [129,142,121],\n\t'minecraft:giant_spruce_taiga_hills': [109,119,102],\n\t'minecraft:giant_tree_taiga': [89,102,81],\n\t'minecraft:old_growth_pine_taiga': [89,102,81],\n\t'minecraft:giant_tree_taiga_hills': [69,79,62],\n\t'minecraft:gravelly_hills': [136,136,136],\n\t'minecraft:gravelly_mountains': [136,136,136],\n\t'minecraft:windswept_gravelly_hills': [136,136,136],\n\t'minecraft:ice_spikes': [180,220,220],\n\t'minecraft:jungle': [83,123,9],\n\t'minecraft:jungle_edge': [98,139,23],\n\t'minecraft:sparse_jungle': [98,139,23],\n\t'minecraft:jungle_hills': [44,66,5],\n\t'minecraft:lukewarm_ocean': [0,0,144],\n\t'minecraft:modified_badlands_plateau': [242,180,141],\n\t'minecraft:modified_gravelly_mountains': [120,152,120],\n\t'minecraft:modified_jungle': [123,163,49],\n\t'minecraft:modified_jungle_edge': [138,179,63],\n\t'minecraft:modified_wooded_badlands_plateau': [216,191,141],\n\t'minecraft:mountain_edge': [114,120,154],\n\t'minecraft:extreme_hills': [96,96,96],\n\t'minecraft:mountains': [96,96,96],\n\t'minecraft:windswept_hills': [96,96,96],\n\t'minecraft:mushroom_field_shore': [160,0,255],\n\t'minecraft:mushroom_fields': [255,0,255],\n\t'minecraft:nether_wastes': [191,59,59],\n\t'minecraft:ocean': [0,0,112],\n\t'minecraft:plains': [141,179,96],\n\t'minecraft:river': [0,0,255],\n\t'minecraft:savanna': [189,178,95],\n\t'minecraft:savanna_plateau': [167,157,100],\n\t'minecraft:shattered_savanna': [229,218,135],\n\t'minecraft:windswept_savanna': [229,218,135],\n\t'minecraft:shattered_savanna_plateau': [207,197,140],\n\t'minecraft:small_end_islands': [128,128,255],\n\t'minecraft:snowy_beach': [250,240,192],\n\t'minecraft:snowy_mountains': [160,160,160],\n\t'minecraft:snowy_taiga': [49,85,74],\n\t'minecraft:snowy_taiga_hills': [36,63,54],\n\t'minecraft:snowy_taiga_mountains': [89,125,114],\n\t'minecraft:snowy_tundra': [255,255,255],\n\t'minecraft:snowy_plains': [255,255,255],\n\t'minecraft:soul_sand_valley': [94,56,48],\n\t'minecraft:stone_shore': [162,162,132],\n\t'minecraft:stony_shore': [162,162,132],\n\t'minecraft:sunflower_plains': [181,219,136],\n\t'minecraft:swamp': [7,249,178],\n\t'minecraft:swamp_hills': [47,255,218],\n\t'minecraft:taiga': [11,102,89],\n\t'minecraft:taiga_hills': [22,57,51],\n\t'minecraft:taiga_mountains': [51,142,129],\n\t'minecraft:tall_birch_forest': [88,156,108],\n\t'minecraft:old_growth_birch_forest': [88,156,108],\n\t'minecraft:tall_birch_hills': [71,135,90],\n\t'minecraft:the_end': [128,128,255],\n\t'minecraft:the_void': [0,0,0],\n\t'minecraft:warm_ocean': [0,0,172],\n\t'minecraft:warped_forest': [73,144,123],\n\t'minecraft:wooded_badlands_plateau': [176,151,101],\n\t'minecraft:wooded_badlands': [176,151,101],\n\t'minecraft:wooded_hills': [34,85,28],\n\t'minecraft:wooded_mountains': [80,112,80],\n\t'minecraft:windswept_forest': [80,112,80],\n\t'minecraft:snowy_slopes': [140, 195, 222],\n\t'minecraft:lofty_peaks': [196, 168, 193],\n\t'minecraft:jagged_peaks': [196, 168, 193],\n\t'minecraft:snowcapped_peaks': [200, 198, 200],\n\t'minecraft:frozen_peaks': [200, 198, 200],\n\t'minecraft:stony_peaks': [82, 92, 103],\n\t'minecraft:grove': [150, 150, 189],\n\t'minecraft:meadow': [169, 197, 80],\n\t'minecraft:lush_caves': [112, 255, 79],\n\t'minecraft:dripstone_caves': [140, 124, 0],\n}\n\nconst NetherPreset = {type:'minecraft:multi_noise',seed:0,altitude_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},humidity_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{biome:'minecraft:nether_wastes',parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{altitude:0,temperature:0,humidity:-0.5,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{altitude:0,temperature:0.4,humidity:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{altitude:0,temperature:0,humidity:0.5,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{altitude:0,temperature:-0.5,humidity:0,weirdness:0,offset:0.175}}]}\n\nconst NetherPreset18 = {type:'minecraft:multi_noise',biomes:[{biome:'minecraft:nether_wastes',parameters:{temperature:0,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:soul_sand_valley',parameters:{temperature:0,humidity:-0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:crimson_forest',parameters:{temperature:0.4,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0}},{biome:'minecraft:warped_forest',parameters:{temperature:0,humidity:0.5,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.375}},{biome:'minecraft:basalt_deltas',parameters:{temperature:-0.5,humidity:0,continentalness:0,erosion:0,depth:0,weirdness:0,offset:0.175}}]}\n\nasync function OverworldPreset18() {\n\tconst overworld = await fetchPreset('1.18', 'dimension', 'overworld')\n\treturn overworld.generator.biome_source\n}\n","import { DataModel } from '@mcschema/core'\nimport type { Random } from 'deepslate'\nimport { LegacyRandom, PerlinNoise } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { clamp, isObject, stringToColor } from '../Utils'\n\ntype BlockPos = [number, number, number]\ntype Placement = [BlockPos, number]\n\ntype PlacementContext = {\n\tplacements: Placement[],\n\tfeatures: string[],\n\trandom: Random,\n\tbiomeInfoNoise: PerlinNoise,\n\tseaLevel: number,\n\tversion: VersionId,\n\tnextFloat(): number,\n\tnextInt(max: number): number,\n\tnextGaussian(): number,\n\tsampleInt(provider: any): number,\n}\n\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82] \n\nconst featureColors = [\n\t[255, 77, 54], // red\n\t[59, 118, 255], // blue\n\t[91, 207, 25], // green\n\t[217, 32, 245], // magenta\n\t[255, 209, 41], // yellow\n\t[52, 204, 209], // cyan\n]\n\nexport type DecoratorOptions = {\n\tsize: [number, number, number],\n\tseed: bigint,\n\tversion: VersionId,\n}\nexport function decorator(state: any, img: ImageData, options: DecoratorOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst ctx: PlacementContext = {\n\t\tplacements: [],\n\t\tfeatures: [],\n\t\trandom,\n\t\tbiomeInfoNoise: new PerlinNoise(random.fork(), 0, [1]),\n\t\tseaLevel: 63,\n\t\tversion: options.version,\n\t\tnextFloat: () => random.nextFloat(),\n\t\tnextInt: (max: number) => random.nextInt(max),\n\t\tnextGaussian: () => Math.sqrt(-2 * Math.log(1 - random.nextFloat())) * Math.cos(2 * Math.PI * random.nextFloat()),\n\t\tsampleInt(value) { return sampleInt(value, this) },\n\t}\n\n\tfor (let x = 0; x < options.size[0] / 16; x += 1) {\n\t\tfor (let z = 0; z < options.size[2] / 16; z += 1) {\n\t\t\tif (checkVersion(options.version, undefined, '1.17')) {\n\t\t\t\tgetPlacements([x * 16, 0, z * 16], DataModel.unwrapLists(state), ctx)\n\t\t\t} else {\n\t\t\t\tmodifyPlacement([x * 16, 0, z * 16], DataModel.unwrapLists(state.placement), ctx)\n\t\t\t}\n\t\t}\n\t}\n\n\tconst data = img.data\n\timg.data.fill(255)\n\n\tfor (const [pos, feature] of ctx.placements) {\n\t\tif (pos[0] < 0 || pos[1] < 0 || pos[2] < 0 || pos[0] >= options.size[0] || pos[1] >= options.size[1] || pos[2] >= options.size[2]) continue\n\t\tconst i = (pos[2] * (img.width * 4)) + (pos[0] * 4)\n\t\tconst color = feature < featureColors.length ? featureColors[feature] : stringToColor(ctx.features[feature])\n\t\tdata[i] = clamp(50, 205, color[0])\n\t\tdata[i + 1] = clamp(50, 205, color[1])\n\t\tdata[i + 2] = clamp(50, 205, color[2])\n\t\tdata[i + 3] = 255\n\t}\n\n\tfor (let x = 0; x < options.size[0]; x += 1) {\n\t\tfor (let y = 0; y < options.size[2]; y += 1) {\n\t\t\tif ((Math.floor(x / 16) + Math.floor(y / 16)) % 2 === 0) continue\n\t\t\tconst i = (y * (img.width * 4)) + (x * 4)\n\t\t\tfor (let j = 0; j < 3; j += 1) {\n\t\t\t\tdata[i + j] = 0.85 * data[i + j] \n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction normalize(id: string) {\n\treturn id.startsWith('minecraft:') ? id.slice(10) : id\n}\n\nfunction decorateY(pos: BlockPos, y: number): BlockPos[] {\n\treturn [[ pos[0], y, pos[2] ]]\n}\n\nfunction sampleInt(value: any, ctx: PlacementContext): number {\n\tif (typeof value === 'number') {\n\t\treturn value\n\t} else if (value.base) {\n\t\treturn value.base ?? 1 + ctx.nextInt(1 + (value.spread ?? 0))\n\t} else {\n\t\tswitch (normalize(value.type)) {\n\t\t\tcase 'constant': return value.value\n\t\t\tcase 'uniform': return value.value.min_inclusive + ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1)\n\t\t\tcase 'biased_to_bottom': return value.value.min_inclusive + ctx.nextInt(ctx.nextInt(value.value.max_inclusive - value.value.min_inclusive + 1) + 1)\n\t\t\tcase 'clamped': return clamp(ctx.sampleInt(value.value.source), value.value.min_inclusive, value.value.max_inclusive)\n\t\t\tcase 'clamped_normal':\n\t\t\t\tconst normal = value.value.mean + ctx.nextGaussian() * value.value.deviation\n\t\t\t\treturn Math.floor(clamp(value.value.min_inclusive, value.value.max_inclusive, normal))\n\t\t\tcase 'weighted_list':\n\t\t\t\tconst totalWeight = (value.distribution as any[]).reduce<number>((sum, e) => sum + e.weight, 0)\n\t\t\t\tlet i = ctx.nextInt(totalWeight)\n\t\t\t\tfor (const e of value.distribution) {\n\t\t\t\t\ti -= e.weight\n\t\t\t\t\tif (i < 0) return ctx.sampleInt(e.data)\n\t\t\t\t}\n\t\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t}\n}\n\nfunction resolveAnchor(anchor: any, _ctx: PlacementContext): number {\n\tif (!isObject(anchor)) throw new Error('Invalid vertical anchor')\n\tif (anchor.absolute) return anchor.absolute\n\tif (anchor.above_bottom) return anchor.above_bottom\n\tif (anchor.below_top) return 256 - anchor.below_top\n\tthrow new Error('Invalid vertical anchor')\n}\n\nfunction sampleHeight(height: any, ctx: PlacementContext): number {\n\tif (!isObject(height)) throw new Error('Invalid height provider')\n\tif (typeof height.type !== 'string') {\n\t\treturn resolveAnchor(height, ctx)\n\t}\n\tswitch (normalize(height.type)) {\n\t\tcase 'constant': return resolveAnchor(height.value, ctx)\n\t\tcase 'uniform': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t}\n\t\tcase 'biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst n = ctx.nextInt(max - min - (height.inner ?? 1) + 1)\n\t\t\treturn min + ctx.nextInt(n + (height.inner ?? 1))\n\t\t}\n\t\tcase 'very_biased_to_bottom': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst inner = height.inner ?? 1\n\t\t\tconst n1 = min + inner + ctx.nextInt(max - min - inner + 1)\n\t\t\tconst n2 = min + ctx.nextInt(n1 - min)\n\t\t\treturn min + ctx.nextInt(n2 - min + inner)\n\t\t}\n\t\tcase 'trapezoid': {\n\t\t\tconst min = resolveAnchor(height.min_inclusive, ctx)\n\t\t\tconst max = resolveAnchor(height.max_inclusive, ctx)\n\t\t\tconst plateau = height.plateau ?? 0\n\t\t\tif (plateau >= max - min) {\n\t\t\t\treturn min + ctx.nextInt(max - min + 1)\n\t\t\t}\n\t\t\tconst n1 = (max - min - plateau) / 2\n\t\t\tconst n2 = (max - min) - n1\n\t\t\treturn min + ctx.nextInt(n2 + 1) + ctx.nextInt(n1 + 1)\n\t\t}\n\t\tdefault: throw new Error(`Invalid height provider ${height.type}`)\n\t}\n}\n\n// 1.17 and before\nfunction useFeature(s: string, ctx: PlacementContext) {\n\tconst i = ctx.features.indexOf(s)\n\tif (i != -1) return i\n\tctx.features.push(s)\n\treturn ctx.features.length - 1\n}\n\nfunction getPlacements(pos: BlockPos, feature: any, ctx: PlacementContext): void {\n\tif (typeof feature === 'string') {\n\t\tctx.placements.push([pos, useFeature(feature, ctx)])\n\t\treturn\n\t}\n\tconst type = normalize(feature?.type ?? 'no_op')\n\tconst featureFn = Features[type]\n\tif (featureFn) {\n\t\tfeatureFn(feature.config, pos, ctx)\n\t} else {\n\t\tctx.placements.push([pos, useFeature(JSON.stringify(feature), ctx)])\n\t}\n}\n\nfunction getPositions(pos: BlockPos, decorator: any, ctx: PlacementContext): BlockPos[] {\n\tconst type = normalize(decorator?.type ?? 'nope')\n\tconst decoratorFn = Decorators[type]\n\tif (!decoratorFn) {\n\t\treturn [pos]\n\t}\n\treturn decoratorFn(decorator?.config, pos, ctx)\n}\n\nconst Features: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => void,\n} = {\n\tdecorated: (config, pos, ctx) => {\n\t\tconst positions = getPositions(pos, config?.decorator, ctx)\n\t\tpositions.forEach(p => getPlacements(p, config?.feature, ctx))\n\t},\n\trandom_boolean_selector: (config, pos, ctx) => {\n\t\tconst feature = ctx.nextFloat() < 0.5 ? config?.feature_true : config?.feature_false\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n\trandom_selector: (config, pos, ctx) => {\n\t\tfor (const f of config?.features ?? []) {\n\t\t\tif (ctx.nextFloat() < (f?.chance ?? 0)) {\n\t\t\t\tgetPlacements(pos, f.feature, ctx)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tgetPlacements(pos, config?.default, ctx)\n\t},\n\tsimple_random_selector: (config, pos, ctx) => {\n\t\tconst feature = config?.features?.[ctx.nextInt(config?.features?.length ?? 0)]\n\t\tgetPlacements(pos, feature, ctx)\n\t},\n}\n\nconst Decorators: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tchance: (config, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (config?.chance ?? 1) ? [pos] : []\n\t},\n\tcount: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t},\n\tcount_extra: (config, pos, ctx) => {\n\t\tlet count = config?.count ?? 1\n\t\tif (ctx.nextFloat() < config.extra_chance ?? 0){\n\t\t\tcount += config.extra_count ?? 0\n\t\t}\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_multilayer: (config, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(config?.count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tcount_noise: (config, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < config.noise_level ? config.below_noise : config.above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\tcount_noise_biased: (config, pos, ctx) => {\n\t\tconst factor = Math.max(1, config.noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (config.noise_offset ?? 0)) * config.noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tdark_oak_tree: (_config, pos, ctx) => {\n\t\treturn [...new Array(16)].map((_, i) => {\n\t\t\tconst x = Math.floor(i / 4) * 4 + 1 + ctx.nextInt(3) + pos[0]\n\t\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, x)])\n\t\t\tconst z = Math.floor(i % 4) * 4 + 1 + ctx.nextInt(3) + pos[2]\n\t\t\treturn [x, y, z]\n\t\t})\n\t},\n\tdecorated: (config, pos, ctx) => {\n\t\treturn getPositions(pos, config?.outer, ctx).flatMap(p => {\n\t\t\treturn getPositions(p, config?.inner, ctx)\n\t\t})\n\t},\n\tdepth_average: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(config?.spread ?? 0) + ctx.nextInt(config?.spread ?? 0) - (config.spread ?? 0) + (config?.baseline ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\temerald_ore: (_config, pos, ctx) => {\n\t\tconst count = 3 + ctx.nextInt(6)\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t4 + ctx.nextInt(28),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tfire: (config, pos, ctx) => {\n\t\tconst count = 1 + ctx.nextInt(ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\tglowstone: (config, pos, ctx) => {\n\t\tconst count = ctx.nextInt(1 + ctx.nextInt(ctx.sampleInt(config?.count)))\n\t\treturn [...new Array(count)].map(() => [\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tctx.nextInt(128),\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t])\n\t},\n\theightmap: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\theightmap_spread_double: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, ctx.nextInt(y * 2))\n\t},\n\theightmap_world_surface: (_config, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\ticeberg: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + 4 + ctx.nextInt(8),\n\t\t\tpos[1],\n\t\t\tpos[2] + 4 + ctx.nextInt(8),\n\t\t]]\n\t},\n\tlava_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt((config.chance ?? 1) / 10) === 0) {\n\t\t\tconst y = ctx.nextInt(ctx.nextInt(256 - 8) + 8)\n\t\t\tif (y < ctx.seaLevel || ctx.nextInt((config?.chance ?? 1) / 8) == 0) {\n\t\t\t\tconst x = ctx.nextInt(16) + pos[0]\n\t\t\t\tconst z = ctx.nextInt(16) + pos[2]\n\t\t\t\treturn [[x, y, z]]\n\t\t\t}\n\t\t}\n\t\treturn []\n\t},\n\tnope: (_config, pos) => {\n\t\treturn [pos]\n\t},\n\trange: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)\n\t\treturn decorateY(pos, y)\n\t},\n\trange_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\trange_very_biased: (config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(ctx.nextInt(ctx.nextInt((config?.maximum ?? 1) - (config?.top_offset ?? 0)) + (config?.bottom_offset ?? 0)) + (config?.bottom_offset ?? 0))\n\t\treturn decorateY(pos, y)\n\t},\n\tspread_32_above: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\ttop_solid_heightmap: (_config, pos) => {\n\t\tconst y = terrain[clamp(0, 63, pos[0])]\n\t\treturn decorateY(pos, y)\n\t},\n\tmagma: (_config, pos, ctx) => {\n\t\tconst y = ctx.nextInt(pos[1] + 32)\n\t\treturn decorateY(pos, y)\n\t},\n\tsquare: (_config, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tsurface_relative_threshold: (config, pos) => {\n\t\tconst height = terrain[clamp(0, 63, pos[0])]\n\t\tconst min = height + (config?.min_inclusive ?? -Infinity)\n\t\tconst max = height + (config?.max_inclusive ?? Infinity)\n\t\treturn (pos[1] < min || pos[1] > max) ? [pos] : []\n\t},\n\twater_lake: (config, pos, ctx) => {\n\t\tif (ctx.nextInt(config.chance ?? 1) === 0) {\n\t\t\treturn [[\n\t\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\t\tctx.nextInt(256),\n\t\t\t\tpos[2] + ctx.nextInt(16),\n\t\t\t]]\n\t\t}\n\t\treturn []\n\t},\n}\n\n// 1.18 and after\nfunction modifyPlacement(pos: BlockPos, placement: any[], ctx: PlacementContext) {\n\tlet positions = [pos]\n\tfor (const modifier of placement) {\n\t\tconst modifierFn = PlacementModifiers[normalize(modifier?.type ?? 'nope')]\n\t\tif (!modifierFn) continue\n\t\tpositions = positions.flatMap(pos =>\n\t\t\tPlacementModifiers[normalize(modifier.type)](modifier, pos, ctx)\n\t\t)\n\t}\n\tfor (const pos of positions) {\n\t\tctx.placements.push([pos, 0])\n\t}\n}\n\nconst PlacementModifiers: {\n\t[key: string]: (config: any, pos: BlockPos, ctx: PlacementContext) => BlockPos[],\n} = {\n\tcount: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t},\n\tcount_on_every_layer: ({ count }, pos, ctx) => {\n\t\treturn new Array(ctx.sampleInt(count ?? 1)).fill(pos)\n\t\t\t.map(p => [\n\t\t\t\tp[0] + ctx.nextInt(16),\n\t\t\t\tp[1], \n\t\t\t\tp[2] + ctx.nextInt(16),\n\t\t\t])\n\t},\n\tenvironment_scan: ({}, pos) => {\n\t\treturn [pos]\n\t},\n\theight_range: ({ height }, pos, ctx) => {\n\t\treturn decorateY(pos, sampleHeight(height, ctx))\n\t},\n\theightmap: ({}, pos, ctx) => {\n\t\tconst y = Math.max(ctx.seaLevel, terrain[clamp(0, 63, pos[0])])\n\t\treturn decorateY(pos, y)\n\t},\n\tin_square: ({}, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.nextInt(16),\n\t\t\tpos[1],\n\t\t\tpos[2] + ctx.nextInt(16),\n\t\t]]\n\t},\n\tnoise_based_count: ({ noise_to_count_ratio, noise_factor, noise_offset }, pos, ctx) => {\n\t\tconst factor = Math.max(1, noise_factor)\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / factor, 0, pos[2] / factor)\n\t\tconst count = Math.max(0, Math.ceil((noise + (noise_offset ?? 0)) * noise_to_count_ratio))\n\t\treturn new Array(count).fill(pos)\n\t},\n\tnoise_threshold_count: ({ noise_level, below_noise, above_noise }, pos, ctx) => {\n\t\tconst noise = ctx.biomeInfoNoise.sample(pos[0] / 200, 0, pos[2] / 200)\n\t\tconst count = noise < noise_level ? below_noise : above_noise\n\t\treturn new Array(count).fill(pos)\n\t},\n\trandom_offset: ({ xz_spread, y_spread }, pos, ctx) => {\n\t\treturn [[\n\t\t\tpos[0] + ctx.sampleInt(xz_spread),\n\t\t\tpos[1] + ctx.sampleInt(y_spread),\n\t\t\tpos[2] + ctx.sampleInt(xz_spread),\n\t\t]]\n\t},\n\trarity_filter: ({ chance }, pos, ctx) => {\n\t\treturn ctx.nextFloat() < 1 / (chance ?? 1) ? [pos] : []\n\t},\n}\n","import { LegacyRandom, PerlinNoise } from 'deepslate'\nimport { clampedLerp, lerp2 } from '../../Utils'\n\nexport class NoiseChunkGenerator {\n\tprivate readonly minLimitPerlinNoise: PerlinNoise\n\tprivate readonly maxLimitPerlinNoise: PerlinNoise\n\tprivate readonly mainPerlinNoise: PerlinNoise\n\tprivate readonly depthNoise: PerlinNoise\n\n\tprivate settings: any = {}\n\tprivate chunkWidth: number = 4\n\tprivate chunkHeight: number = 4\n\tprivate chunkCountY: number = 32\n\tprivate biomeDepth: number = 0.1\n\tprivate biomeScale: number = 0.2\n\n\tprivate noiseColumnCache: (number[] | null)[] = []\n\tprivate xOffset: number = 0\n\n\tconstructor(seed: bigint) {\n\t\tconst random = new LegacyRandom(seed)\n\t\tthis.minLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.maxLimitPerlinNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.mainPerlinNoise = new PerlinNoise(random, -7, [1, 1, 1, 1, 1, 1, 1, 1])\n\t\tthis.depthNoise = new PerlinNoise(random, -15, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])\n\t}\n\n\tpublic reset(settings: any, depth: number, scale: number, xOffset: number, width: number) {\n\t\tthis.settings = settings\n\t\tthis.chunkWidth = settings.size_horizontal * 4\n\t\tthis.chunkHeight = settings.size_vertical * 4\n\t\tthis.chunkCountY = Math.floor(settings.height / this.chunkHeight)\n\n\t\tif (settings.amplified && depth > 0) {\n\t\t\tdepth = 1 + depth * 2\n\t\t\tscale = 1 + scale * 4\n\t\t}\n\t\tthis.biomeDepth = 0.265625 * (depth * 0.5 - 0.125)\n\t\tthis.biomeScale = 96.0 / (scale * 0.9 + 0.1)\n\n\t\tthis.noiseColumnCache = Array(width).fill(null)\n\t\tthis.xOffset = xOffset\n\t}\n \n\tpublic iterateNoiseColumn(x: number): number[] {\n\t\tconst data = Array(this.chunkCountY * this.chunkHeight)\n\t\tconst cx = Math.floor(x / this.chunkWidth)\n\t\tconst ox = Math.floor(x % this.chunkWidth) / this.chunkWidth\n\t\tconst noise1 = this.fillNoiseColumn(cx)\n\t\tconst noise2 = this.fillNoiseColumn(cx + 1)\n\n\t\tfor (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n\t\t\tfor (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n\t\t\t\tconst oy = yy / this.chunkHeight\n\t\t\t\tconst i = y * this.chunkHeight + yy\n\t\t\t\tdata[i] = lerp2(oy, ox, noise1[y], noise1[y+1], noise2[y], noise2[y+1])\n\t\t\t}\n\t\t}\n\t\treturn data\n\t}\n\n\tprivate fillNoiseColumn(x: number): number[] {\n\t\tconst cachedColumn = this.noiseColumnCache[x - this.xOffset]\n\t\tif (cachedColumn) return cachedColumn\n\n\t\tconst data = Array(this.chunkCountY + 1)\n\n\t\tconst xzScale = 684.412 * this.settings.sampling.xz_scale\n\t\tconst yScale = 684.412 * this.settings.sampling.y_scale\n\t\tconst xzFactor = xzScale / this.settings.sampling.xz_factor\n\t\tconst yFactor = yScale / this.settings.sampling.y_factor\n\t\tconst randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0\n\n\t\tfor (let y = 0; y <= this.chunkCountY; y += 1) {\n\t\t\tlet noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0)!.zo, xzScale, yScale, xzFactor, yFactor)\n\t\t\tconst yOffset = 1 - y * 2 / this.chunkCountY + randomDensity\n\t\t\tconst density = yOffset * this.settings.density_factor + this.settings.density_offset\n\t\t\tconst falloff = (density + this.biomeDepth) * this.biomeScale\n\t\t\tnoise += falloff * (falloff > 0 ? 4 : 1)\n\n\t\t\tif (this.settings.top_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.top_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size)\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tif (this.settings.bottom_slide.size > 0) {\n\t\t\t\tnoise = clampedLerp(\n\t\t\t\t\tthis.settings.bottom_slide.target,\n\t\t\t\t\tnoise,\n\t\t\t\t\t(y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size)\n\t\t\t\t)\n\t\t\t}\n\t\t\tdata[y] = noise\n\t\t}\n\n\t\tthis.noiseColumnCache[x - this.xOffset] = data\n\t\treturn data\n\t}\n\n\tprivate getRandomDensity(x: number): number {\n\t\tconst noise = this.depthNoise.sample(x * 200, 10, this.depthNoise.getOctaveNoise(0)!.zo, 1, 0, true)\n\t\tconst a = (noise < 0) ? -noise * 0.3 : noise\n\t\tconst b = a * 24.575625 - 2\n\t\treturn (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625\n\t}\n\n\tprivate sampleAndClampNoise(x: number, y: number, z: number, xzScale: number, yScale: number, xzFactor: number, yFactor: number): number {\n\t\tlet a = 0\n\t\tlet b = 0\n\t\tlet c = 0\n\t\tlet d = 1\n\n\t\tfor (let i = 0; i < 16; i += 1) {\n\t\t\tconst x2 = PerlinNoise.wrap(x * xzScale * d)\n\t\t\tconst y2 = PerlinNoise.wrap(y * yScale * d)\n\t\t\tconst z2 = PerlinNoise.wrap(z * xzScale * d)\n\t\t\tconst e = yScale * d\n\n\t\t\tconst minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (minLimitNoise) {\n\t\t\t\ta += minLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tconst maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i)\n\t\t\tif (maxLimitNoise) {\n\t\t\t\tb += maxLimitNoise.sample(x2, y2, z2, e, y * e) / d\n\t\t\t}\n\n\t\t\tif (i < 8) {\n\t\t\t\tconst mainNoise = this.mainPerlinNoise.getOctaveNoise(i)\n\t\t\t\tif (mainNoise) {\n\t\t\t\t\tc += mainNoise.sample(\n\t\t\t\t\t\tPerlinNoise.wrap(x * xzFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(y * yFactor * d),\n\t\t\t\t\t\tPerlinNoise.wrap(z * xzFactor * d),\n\t\t\t\t\t\tyFactor * d,\n\t\t\t\t\t\ty * yFactor * d \n\t\t\t\t\t) / d\n\t\t\t\t}\n\t\t\t}\n\n\t\t\td /= 2\n\t\t}\n\n\t\treturn clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2)\n\t}\n}\n","import { DataModel } from '@mcschema/core'\nimport type { BlockState } from 'deepslate'\nimport { BlockPos, Chunk, ChunkPos, FixedBiome, NoiseChunkGenerator, NoiseGeneratorSettings } from 'deepslate'\nimport type { VersionId } from '../services'\nimport { checkVersion } from '../services'\nimport { deepClone, deepEqual } from '../Utils'\nimport { NoiseChunkGenerator as OldNoiseChunkGenerator } from './noise/NoiseChunkGenerator'\n\nexport type NoiseSettingsOptions = {\n\tbiome?: string,\n\tbiomeScale?: number,\n\tbiomeDepth?: number,\n\toffset: number,\n\twidth: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nconst Z = 0\n\nconst colors: Record<string, [number, number, number]> = {\n\t'minecraft:air': [150, 160, 170],\n\t'minecraft:water': [20, 80, 170],\n\t'minecraft:lava': [200, 100, 0],\n\t'minecraft:stone': [55, 55, 55],\n\t'minecraft:deepslate': [34, 34, 36],\n\t'minecraft:bedrock': [10, 10, 10],\n\t'minecraft:grass_block': [47, 120, 23],\n\t'minecraft:dirt': [64, 40, 8],\n\t'minecraft:gravel': [70, 70, 70],\n\t'minecraft:sand': [196, 180, 77],\n\t'minecraft:sandstone': [148, 135, 52],\n\t'minecraft:netherrack': [100, 40, 40],\n\t'minecraft:crimson_nylium': [144, 22, 22],\n\t'minecraft:warped_nylium': [28, 115, 113],\n\t'minecraft:basalt': [73, 74, 85],\n\t'minecraft:end_stone': [200, 200, 140],\n}\n\nlet cacheState: any\nlet generatorCache: NoiseChunkGenerator\nlet chunkCache: Chunk[] = []\n\nexport function noiseSettings(state: any, img: ImageData, options: NoiseSettingsOptions) {\n\tif (checkVersion(options.version, '1.18')) {\n\t\tconst { settings, generator } = getCached(state, options)\n\n\t\tconst slice = new LevelSlice(-options.offset, options.width, settings.noise.minY, settings.noise.height)\n\t\tslice.generate(generator, options.biome ?? 'minecraft:plains')\n\n\t\tconst data = img.data\n\t\tfor (let x = 0; x < options.width; x += 1) {\n\t\t\tfor (let y = 0; y < settings.noise.height; y += 1) {\n\t\t\t\tconst i = x * 4 + (settings.noise.height-y-1) * 4 * img.width\n\t\t\t\tconst state = slice.getBlockState([x - options.offset, y + settings.noise.minY, Z])\n\t\t\t\tconst color = colors[state.getName()] ?? [0, 0, 0]\n\t\t\t\tdata[i] = color[0]\n\t\t\t\tdata[i + 1] = color[1]\n\t\t\t\tdata[i + 2] = color[2]\n\t\t\t\tdata[i + 3] = 255\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\tconst generator = new OldNoiseChunkGenerator(options.seed)\n\tgenerator.reset(state.noise, options.biomeDepth ?? 0, options.biomeScale ?? 0, options.offset, options.width)\n\tconst data = img.data\n\tconst row = img.width * 4\n\tfor (let x = 0; x < options.width; x += 1) {\n\t\tconst noise = generator.iterateNoiseColumn(x - options.offset).reverse()\n\t\tfor (let y = 0; y < state.noise.height; y += 1) {\n\t\t\tconst i = y * row + x * 4\n\t\t\tconst color = getColor(noise, y)\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n\nexport function getNoiseBlock(x: number, y: number) {\n\tconst chunk = chunkCache.find(c => ChunkPos.minBlockX(c.pos) <= x && ChunkPos.maxBlockX(c.pos) >= x)\n\tif (!chunk) {\n\t\treturn undefined\n\t}\n\treturn chunk.getBlockState(BlockPos.create(x, y, Z))\n}\n\nfunction getCached(state: unknown, options: NoiseSettingsOptions) {\n\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(state))\n\n\tconst newState = [state, `${options.seed}`, options.biome]\n\tif (!deepEqual(newState, cacheState)) {\n\t\tcacheState = deepClone(newState)\n\t\tchunkCache = []\n\t\tconst biomeSource = new FixedBiome('unknown')\n\t\tgeneratorCache = new NoiseChunkGenerator(options.seed, biomeSource, settings)\n\t}\n\treturn {\n\t\tsettings,\n\t\tgenerator: generatorCache,\n\t}\n}\n\nfunction getColor(noise: number[], y: number): number {\n\tif (noise[y] > 0) {\n\t\treturn 0\n\t}\n\tif (noise[y+1] > 0) {\n\t\treturn 150\n\t}\n\treturn 255\n}\n\nclass LevelSlice {\n\tprivate readonly chunks: Chunk[]\n\tprivate readonly done: boolean[]\n\n\tconstructor(\n\t\tprivate readonly minX: number,\n\t\twidth: number,\n\t\tminY: number,\n\t\theight: number,\n\t) {\n\t\tthis.done = []\n\t\tthis.chunks = [...Array(Math.ceil(width / 16) + 1)]\n\t\t\t.map((_, i) => {\n\t\t\t\tconst x = (minX >> 4) + i\n\t\t\t\tconst cached = chunkCache.find(c => c.pos[0] === x)\n\t\t\t\tif (cached) {\n\t\t\t\t\tthis.done[i] = true\n\t\t\t\t\treturn cached\n\t\t\t\t}\n\t\t\t\treturn new Chunk(minY, height, ChunkPos.create(x, Z >> 4))\n\t\t\t})\n\t}\n\n\tpublic generate(generator: NoiseChunkGenerator, forcedBiome: string) {\n\t\tthis.chunks.forEach((chunk, i) => {\n\t\t\tif (!this.done[i]) {\n\t\t\t\tgenerator.fill(chunk)\n\t\t\t\tgenerator.buildSurface(chunk, forcedBiome)\n\t\t\t\tthis.done[i] = true\n\t\t\t\tchunkCache.push(chunk)\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic getBlockState(pos: BlockPos): BlockState {\n\t\tconst chunkIndex = (pos[0] >> 4) - (this.minX >> 4)\n\t\treturn this.chunks[chunkIndex].getBlockState(pos)\n\t}\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport type { NoiseParameters } from 'deepslate'\nimport { NoiseGeneratorSettings, TerrainShaper } from 'deepslate'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { biomeMap, getBiome } from '../../previews'\nimport { newSeed } from '../../Utils'\n\nconst LAYERS = ['biomes', 'temperature', 'humidity', 'continentalness', 'erosion', 'weirdness', 'offset', 'factor', 'jaggedness'] as const\n\nconst OverworldShaper = TerrainShaper.overworld()\n\nexport const BiomeSourcePreview = ({ model, data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(2)\n\tconst [focused, setFocused] = useState<{[k: string]: number | string} | undefined>(undefined)\n\tconst [layers, setLayers] = useState(new Set<typeof LAYERS[number]>(['biomes']))\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst res = useRef(1)\n\tconst refineTimeout = useRef<number>(undefined)\n\n\tconst seed = BigInt(model.get(new Path(['generator', 'seed'])))\n\tconst octaves = getOctaves(model.get(new Path(['generator', 'settings'])))\n\tconst shaper = getShaper(model.get(new Path(['generator', 'settings'])))\n\tconst state = shown ? calculateState(data, octaves, shaper) : ''\n\tconst type: string = data.type?.replace(/^minecraft:/, '')\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [200 / res.current, 200 / res.current]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: res.current, version }\n\t\t\tawait biomeMap(data, img, options)\n\t\t\tif (res.current === 4) {\n\t\t\t\tclearTimeout(refineTimeout.current)\n\t\t\t\trefineTimeout.current = setTimeout(() => {\n\t\t\t\t\tres.current = 1\n\t\t\t\t\tredraw()\n\t\t\t\t}, 150) as any\n\t\t\t}\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 200\n\t\t\toffset.current[1] = offset.current[1] + dy * 200\n\t\t\tclearTimeout(refineTimeout.current)\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst options = { octaves, shaper, biomeColors: {}, layers, offset: offset.current, scale, seed, res: 1, version }\n\t\t\tconst biome = await getBiome(data, Math.floor(x * 200), Math.floor(y * 200), options)\n\t\t\tsetFocused(biome)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, scale, seed, layers])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tres.current = type === 'multi_noise' ? 4 : 1\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, layers, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused.biome as string} class=\"no-pointer\" />}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<BtnMenu icon=\"stack\" tooltip={locale('configure_layers')}>\n\t\t\t\t\t{LAYERS.map(name => {\n\t\t\t\t\t\tconst enabled = layers.has(name)\n\t\t\t\t\t\treturn <Btn label={locale(`layer.${name}`)} \n\t\t\t\t\t\t\tactive={enabled}\n\t\t\t\t\t\t\ttooltip={enabled ? locale('enabled') : locale('disabled')}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tsetLayers(new Set([name]))\n\t\t\t\t\t\t\t\te.stopPropagation()\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t})}\n\t\t\t\t</BtnMenu>}\n\t\t\t{(type === 'multi_noise' || type === 'checkerboard') && <>\n\t\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t</>}\n\t\t\t{type === 'multi_noise' &&\n\t\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\t\tonClick={() => newSeed(model)} />}\n\t\t</div>\n\t\t{focused?.temperature && <div class=\"controls secondary-controls\">\n\t\t\t<Btn class=\"no-pointer\" label={Object.entries(focused)\n\t\t\t\t.filter(([k]) => k !== 'biome')\n\t\t\t\t.map(([k, v]) => `${k[0].toUpperCase()}: ${(v as number).toFixed(2)}`).join(' ')}/>\n\t\t</div>}\n\t\t<canvas ref={canvas} width=\"200\" height=\"200\"></canvas>\n\t</>\n}\n\nfunction calculateState(data: any, octaves: Record<string, NoiseParameters>, shaper: TerrainShaper) {\n\treturn JSON.stringify([data, octaves, shaper.toJson()])\n}\n\nexport function getOctaves(obj: any): Record<string, NoiseParameters> {\n\tif (typeof obj !== 'string') {\n\t\tconst settings = NoiseGeneratorSettings.fromJson(DataModel.unwrapLists(obj))\n\t\tobj = settings.legacyRandomSource ? 'minecraft:nether' : 'minecraft:overworld'\n\t}\n\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\tcase 'overworld':\n\t\tcase 'amplified':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -9, amplitudes: [1.5, 0, 1, 0, 0, 0] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1, 0, 0, 0, 0] },\n\t\t\t\tcontinentalness: { firstOctave: -9, amplitudes: [1, 1, 2, 2, 2, 1, 1, 1, 1] },\n\t\t\t\terosion: { firstOctave: -9, amplitudes: [1, 1, 0, 1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 2, 1, 0, 0, 0] },\n\t\t\t\tshift: { firstOctave: -3, amplitudes: [1, 1, 1, 0] },\n\t\t\t}\n\t\tcase 'end':\n\t\tcase 'floating_islands':\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\thumidity: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tcontinentalness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\terosion: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tweirdness: { firstOctave: 0, amplitudes: [0] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\ttemperature: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\thumidity: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tcontinentalness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\terosion: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tweirdness: { firstOctave: -7, amplitudes: [1, 1] },\n\t\t\t\tshift: { firstOctave: 0, amplitudes: [0] },\n\t\t\t}\n\t}\n}\n\nexport function getShaper(obj: any): TerrainShaper {\n\tif (typeof obj === 'string') {\n\t\tswitch (obj.replace(/^minecraft:/, '')) {\n\t\t\tcase 'overworld':\n\t\t\tcase 'amplified':\n\t\t\t\treturn OverworldShaper\n\t\t\tdefault:\n\t\t\t\treturn TerrainShaper.fromJson({ offset: 0, factor: 0, jaggedness: 0 })\n\t\t}\n\t}\n\treturn TerrainShaper.fromJson(DataModel.unwrapLists(obj?.noise?.terrain_shaper))\n}\n","import { useEffect, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { decorator } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const DecoratorPreview = ({ data, version, shown }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [scale, setScale] = useState(4)\n\tconst [seed, setSeed] = useState(randomSeed())\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [scale * 16, scale * 16]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tdecorator(data, img, { seed, version, size: [scale * 16, 128, scale * 16] })\n\t\t},\n\t})\n\n\tconst state = JSON.stringify(data)\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => setScale(Math.min(16, scale + 1))} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => setScale(Math.max(1, scale - 1))} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"64\" height=\"64\"></canvas>\n\t</>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { normalNoise } from '../../previews'\nimport { randomSeed } from '../../Utils'\n\nexport const NoisePreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [scale, setScale] = useState(2)\n\tconst offset = useRef<[number, number]>([0, 0])\n\tconst state = JSON.stringify([data])\n\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [256, 256]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { offset: offset.current, scale, seed, version }\n\t\t\tnormalNoise(data, img, options)\n\t\t},\n\t\tasync onDrag(dx, dy) {\n\t\t\toffset.current[0] = offset.current[0] + dx * 256\n\t\t\toffset.current[1] = offset.current[1] + dy * 256\n\t\t\tredraw()\n\t\t},\n\t}, [state, scale, seed])\n\n\tuseEffect(() => {\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t}\n\t}, [state, scale, seed, shown])\n\n\tconst changeScale = (newScale: number) => {\n\t\toffset.current[0] = offset.current[0] * scale / newScale\n\t\toffset.current[1] = offset.current[1] * scale / newScale\n\t\tsetScale(newScale)\n\t}\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t<Btn icon=\"dash\" tooltip={locale('zoom_out')}\n\t\t\t\tonClick={() => changeScale(scale * 1.5)} />\n\t\t\t<Btn icon=\"plus\" tooltip={locale('zoom_in')}\n\t\t\t\tonClick={() => changeScale(scale / 1.5)} />\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width=\"256\" height=\"256\"></canvas>\n\t</>\n}\n","import { DataModel } from '@mcschema/core'\nimport { LegacyRandom, NoiseParameters, NormalNoise } from 'deepslate'\nimport type { VersionId } from '../services'\n\nexport type NoiseOptions = {\n\toffset: [number, number],\n\tscale: number,\n\tseed: bigint,\n\tversion: VersionId,\n}\n\nexport function normalNoise(state: any, img: ImageData, options: NoiseOptions) {\n\tconst random = new LegacyRandom(options.seed)\n\tconst params = NoiseParameters.fromJson(DataModel.unwrapLists(state))\n\tconst noise = new NormalNoise(random, params)\n\n\tconst ox = -options.offset[0] - 100\n\tconst oz = -options.offset[1] - 100\n\tconst data = img.data\n\tfor (let x = 0; x < 256; x += 1) {\n\t\tfor (let y = 0; y < 256; y += 1) {\n\t\t\tconst i = x * 4 + y * 4 * 256\n\t\t\tconst xx = (x + ox) * options.scale\n\t\t\tconst yy = (y + oz) * options.scale\n\t\t\tconst color = (noise.sample(xx, yy, 0) + 1) * 128\n\t\t\tdata[i] = color\n\t\t\tdata[i + 1] = color\n\t\t\tdata[i + 2] = color\n\t\t\tdata[i + 3] = 255\n\t\t}\n\t}\n}\n","import { useEffect, useMemo, useRef, useState } from 'preact/hooks'\nimport type { PreviewProps } from '.'\nimport { Btn, BtnInput, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useCanvas } from '../../hooks'\nimport { getNoiseBlock, noiseSettings } from '../../previews'\nimport { CachedCollections, checkVersion } from '../../services'\nimport { randomSeed } from '../../Utils'\n\nexport const NoiseSettingsPreview = ({ data, shown, version }: PreviewProps) => {\n\tconst { locale } = useLocale()\n\tconst [seed, setSeed] = useState(randomSeed())\n\tconst [biome, setBiome] = useState('minecraft:plains')\n\tconst [biomeScale, setBiomeScale] = useState(0.2)\n\tconst [biomeDepth, setBiomeDepth] = useState(0.1)\n\tconst [autoScroll, setAutoScroll] = useState(false)\n\tconst [focused, setFocused] = useState<string | undefined>(undefined)\n\tconst offset = useRef(0)\n\tconst scrollInterval = useRef<number | undefined>(undefined)\n\tconst state = JSON.stringify([data, biomeScale, biomeDepth])\n\n\tconst size = data?.noise?.height ?? 256\n\tconst { canvas, redraw } = useCanvas({\n\t\tsize() {\n\t\t\treturn [size, size]\n\t\t},\n\t\tasync draw(img) {\n\t\t\tconst options = { biome, biomeDepth, biomeScale, offset: offset.current, width: img.width, seed, version }\n\t\t\tnoiseSettings(data, img, options)\n\t\t},\n\t\tasync onDrag(dx) {\n\t\t\toffset.current += dx * size\n\t\t\tredraw()\n\t\t},\n\t\tasync onHover(x, y) {\n\t\t\tconst worldX = Math.floor(x * size - offset.current)\n\t\t\tconst worldY = size - Math.max(1, Math.ceil(y * size)) + (data?.noise?.min_y ?? 0)\n\t\t\tconst block = getNoiseBlock(worldX, worldY)\n\t\t\tsetFocused(block ? `Y=${worldY} (${block.getName().replace(/^minecraft:/, '')})` : `Y=${worldY}`)\n\t\t},\n\t\tonLeave() {\n\t\t\tsetFocused(undefined)\n\t\t},\n\t}, [state, seed])\n\n\tuseEffect(() => {\n\t\tif (scrollInterval.current) {\n\t\t\tclearInterval(scrollInterval.current)\n\t\t}\n\t\tif (shown) {\n\t\t\tredraw()\n\t\t\tif (autoScroll) {\n\t\t\t\tscrollInterval.current = setInterval(() => {\n\t\t\t\t\toffset.current -= 8\n\t\t\t\t\tredraw()\n\t\t\t\t}, 100) as any\n\t\t\t}\n\t\t}\n\t}, [state, seed, shown, biome, biomeScale, biomeDepth, autoScroll])\n\n\tconst allBiomes = useMemo(() => CachedCollections?.get('worldgen/biome') ?? [], [version])\n\n\treturn <>\n\t\t<div class=\"controls preview-controls\">\n\t\t\t{focused && <Btn label={focused} class=\"no-pointer\" />}\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('terrain_settings')}>\n\t\t\t\t{checkVersion(version, undefined, '1.17') ? <>\n\t\t\t\t\t<BtnInput label={locale('preview.scale')} value={`${biomeScale}`} onChange={v => setBiomeScale(Number(v))} />\n\t\t\t\t\t<BtnInput label={locale('preview.depth')} value={`${biomeDepth}`} onChange={v => setBiomeDepth(Number(v))} />\n\t\t\t\t</> :\n\t\t\t\t\t<BtnInput label={locale('preview.biome')} value={biome} onChange={setBiome} dataList={allBiomes} larger />\n\t\t\t\t}\n\t\t\t\t<Btn icon={autoScroll ? 'square_fill' : 'square'} label={locale('preview.auto_scroll')} onClick={() => setAutoScroll(!autoScroll)} />\n\t\t\t</BtnMenu>\n\t\t\t<Btn icon=\"sync\" tooltip={locale('generate_new_seed')}\n\t\t\t\tonClick={() => setSeed(randomSeed())} />\n\t\t</div>\n\t\t<canvas ref={canvas} width={size} height={size}></canvas>\n\t</>\n}\n","import type { DataModel } from '@mcschema/core'\nimport { Path } from '@mcschema/core'\nimport { useState } from 'preact/hooks'\nimport { useModel } from '../../hooks'\nimport type { VersionId } from '../../services'\nimport { checkVersion } from '../../services'\nimport { BiomeSourcePreview, DecoratorPreview, NoisePreview, NoiseSettingsPreview } from '../previews'\n\nexport const HasPreview = ['dimension', 'worldgen/noise', 'worldgen/noise_settings', 'worldgen/configured_feature', 'worldgen/placed_feature']\n\ntype PreviewPanelProps = {\n\tmodel: DataModel | null,\n\tversion: VersionId,\n\tid: string,\n\tshown: boolean,\n\tonError: (message: string) => unknown,\n}\nexport function PreviewPanel({ model, version, id, shown }: PreviewPanelProps) {\n\tconst [, setCount] = useState(0)\n\n\tuseModel(model, () => {\n\t\tsetCount(count => count + 1)\n\t})\n\n\tif (!model) return <></>\n\n\tif (id === 'dimension' && model.get(new Path(['generator', 'type']))?.endsWith('noise')) {\n\t\tconst data = model.get(new Path(['generator', 'biome_source']))\n\t\tif (data) return <BiomeSourcePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoisePreview {...{ model, version, shown, data }} />\n\t}\n\n\tif (id === 'worldgen/noise_settings') {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <NoiseSettingsPreview {...{ model, version, shown, data }} />\n\t}\n\n\tif ((id === 'worldgen/placed_feature' || (id === 'worldgen/configured_feature' && checkVersion(version, '1.16', '1.17')))) {\n\t\tconst data = model.get(new Path([]))\n\t\tif (data) return <DecoratorPreview {...{ model, version, shown, data }} />\n\t}\n\n\treturn <></>\n}\n","import type { DataModel, Hook } from '@mcschema/core'\nimport { ModelPath, relativePath } from '@mcschema/core'\nimport type { BlockStateRegistry } from '../services'\n\nexport function getOutput(model: DataModel, blockStates: BlockStateRegistry): any {\n\treturn model.schema.hook(transformOutput, new ModelPath(model), model.data, { blockStates })\n}\n\nexport type OutputProps = {\n\tblockStates: BlockStateRegistry,\n}\nexport const transformOutput: Hook<[any, OutputProps], any> = {\n\tbase({}, _, value) {\n\t\treturn value\n\t},\n\n\tchoice({ switchNode }, path, value, props) {\n\t\treturn switchNode.hook(this, path, value, props)\n\t},\n\n\tlist({ children }, path, value, props) {\n\t\tif (!Array.isArray(value)) return value\n\t\tconst res = value.map((obj, index) =>\n\t\t\tchildren.hook(this, path.push(index), obj.node, props)\n\t\t)\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a as any]\n\t\t}\n\t\treturn res\n\t},\n\n\tmap({ children, config }, path, value, props) {\n\t\tif (value === undefined) return undefined\n\t\tconst blockState = config.validation?.validator === 'block_state_map'? props.blockStates?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst res: any = {}\n\t\tObject.keys(value).forEach(f => {\n\t\t\tif (blockState) {\n\t\t\t\tif (!Object.keys(blockState.properties ?? {}).includes(f)) return\n\t\t\t}\n\t\t\tres[f] = children.hook(this, path.push(f), value[f], props)\n\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n\n\tobject({ getActiveFields }, path, value, props) {\n\t\tif (value === undefined || value === null || typeof value !== 'object') {\n\t\t\treturn value\n\t\t}\n\t\tconst res: any = {}\n\t\tconst activeFields = getActiveFields(path)\n\t\tObject.keys(activeFields)\n\t\t\t.filter(k => activeFields[k].enabled(path))\n\t\t\t.forEach(f => {\n\t\t\t\tconst out = activeFields[f].hook(this, path.push(f), value[f], props)\n\t\t\t\tif (out !== undefined && out !== null) {\n\t\t\t\t\tres[f] = out\n\t\t\t\t}\n\t\t\t})\n\t\tfor (const a of Object.getOwnPropertySymbols(value)) {\n\t\t\tres[a as any] = value[a]\n\t\t}\n\t\treturn res\n\t},\n}\n","import { DataModel } from '@mcschema/core'\nimport brace from 'brace'\nimport 'brace/mode/json'\nimport 'brace/mode/yaml'\nimport json from 'comment-json'\nimport yaml from 'js-yaml'\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, BtnMenu } from '..'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { getOutput } from '../../schema/transformOutput'\nimport type { BlockStateRegistry } from '../../services'\nimport { Store } from '../../Store'\nimport { message } from '../../Utils'\n\nconst INDENT: Record<string, number | string | undefined> = {\n\t'2_spaces': 2,\n\t'4_spaces': 4,\n\ttabs: '\\t',\n\tminified: undefined,\n}\n\nconst FORMATS: Record<string, {\n\tparse: (v: string) => any,\n\tstringify: (v: any, indentation: string | number | undefined) => string,\n}> = {\n\tjson: {\n\t\tparse: json.parse,\n\t\tstringify: (v, i) => json.stringify(v, null, i) + '\\n',\n\t},\n\tyaml: {\n\t\tparse: yaml.load,\n\t\tstringify: (v, i) => yaml.dump(v, {\n\t\t\tflowLevel: i === undefined ? 0 : -1,\n\t\t\tindent: typeof i === 'string' ? 4 : i,\n\t\t}),\n\t},\n}\n\ntype SourcePanelProps = {\n\tname: string,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tdoCopy?: number,\n\tdoDownload?: number,\n\tdoImport?: number,\n\tcopySuccess: () => unknown,\n\tonError: (message: string) => unknown,\n}\nexport function SourcePanel({ name, model, blockStates, doCopy, doDownload, doImport, copySuccess, onError }: SourcePanelProps) {\n\tconst { locale } = useLocale()\n\tconst [indent, setIndent] = useState(Store.getIndent())\n\tconst [format, setFormat] = useState(Store.getFormat())\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst retransform = useRef<Function>()\n\tconst onImport = useRef<(e: any) => any>()\n\n\tconst editor = useRef<brace.Editor>()\n\n\tconst getSerializedOutput = useCallback((model: DataModel, blockStates: BlockStateRegistry) => {\n\t\tconst data = getOutput(model, blockStates)\n\t\treturn FORMATS[format].stringify(data, INDENT[indent])\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tretransform.current = () => {\n\t\t\tif (!model || !blockStates) return\n\t\t\ttry {\n\t\t\t\tconst output = getSerializedOutput(model, blockStates)\n\t\t\t\teditor.current.getSession().setValue(output)\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error getting JSON output: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t\teditor.current.setValue('')\n\t\t\t}\n\t\t}\n\n\t\tonImport.current = () => {\n\t\t\tconst value = editor.current.getValue()\n\t\t\tif (value.length === 0) return\n\t\t\ttry {\n\t\t\t\tconst data = FORMATS[format].parse(value)\n\t\t\t\tmodel?.reset(DataModel.wrapLists(data), false)\n\t\t\t} catch (e) {\n\t\t\t\tonError(`Error importing: ${message(e)}`)\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}, [model, blockStates, indent, format])\n\n\tuseEffect(() => {\n\t\teditor.current = brace.edit('editor')\n\t\teditor.current.setOptions({\n\t\t\tfontSize: 14,\n\t\t\tshowFoldWidgets: false,\n\t\t\thighlightSelectedWord: false,\n\t\t})\n\t\teditor.current.$blockScrolling = Infinity\n\t\teditor.current.on('blur', e => onImport.current(e))\n\t\teditor.current.getSession().setMode('ace/mode/json')\n\t}, [])\n\n\tuseModel(model, () => {\n\t\tretransform.current()\n\t})\n\tuseEffect(() => {\n\t\tif (model) retransform.current()\n\t}, [model])\n\n\tuseEffect(() => {\n\t\teditor.current.setOption('useSoftTabs', indent !== 'tabs')\n\t\teditor.current.setOption('tabSize', indent === 'tabs' ? 4 : INDENT[indent])\n\t\teditor.current.getSession().setMode(`ace/mode/${format}`)\n\t\tretransform.current()\n\t}, [indent, format])\n\n\tuseEffect(() => {\n\t\tif (doCopy && model && blockStates) {\n\t\t\tnavigator.clipboard.writeText(getSerializedOutput(model, blockStates)).then(() => {\n\t\t\t\tcopySuccess()\n\t\t\t})\n\t\t}\n\t}, [doCopy])\n\n\tuseEffect(() => {\n\t\tif (doDownload && model && blockStates && download.current) {\n\t\t\tconst content = encodeURIComponent(getSerializedOutput(model, blockStates))\n\t\t\tdownload.current.setAttribute('href', `data:text/json;charset=utf-8,${content}`)\n\t\t\tdownload.current.setAttribute('download', `${name}.${format}`)\n\t\t\tdownload.current.click()\n\t\t}\n\t}, [doDownload])\n\n\tuseEffect(() => {\n\t\tif (doImport && editor.current) {\n\t\t\teditor.current.setValue('')\n\t\t\teditor.current.selectAll()\n\t\t}\n\t}, [doImport])\n\n\tconst changeIndent = (value: string) => {\n\t\tStore.setIndent(value)\n\t\tsetIndent(value)\n\t}\n\n\tconst changeFormat = (value: string) => {\n\t\tStore.setFormat(value)\n\t\tsetFormat(value)\n\t}\n\n\treturn <> \n\t\t<div class=\"controls source-controls\">\n\t\t\t<BtnMenu icon=\"gear\" tooltip={locale('output_settings')} data-cy=\"source-controls\">\n\t\t\t\t{Object.entries(INDENT).map(([key]) =>\n\t\t\t\t\t<Btn label={locale(`indentation.${key}`)} active={indent === key}\n\t\t\t\t\t\tonClick={() => changeIndent(key)}/>\n\t\t\t\t)}\n\t\t\t\t<hr />\n\t\t\t\t{Object.keys(FORMATS).map(key =>\n\t\t\t\t\t<Btn label={locale(`format.${key}`)} active={format === key}\n\t\t\t\t\t\tonClick={() => changeFormat(key)} />)}\n\t\t\t</BtnMenu>\n\t\t</div>\n\t\t<pre id=\"editor\" class=\"source\"></pre>\n\t\t<a ref={download} style=\"display: none;\"></a>\n\t</>\n}\n","import type { INode, Path } from '@mcschema/core'\nimport { DataModel } from '@mcschema/core'\n\nexport class ModelWrapper extends DataModel {\n\tconstructor(\n\t\tschema: INode<any>,\n\t\tprivate readonly mapper: (path: Path) => Path,\n\t\tprivate readonly getter: (path: Path) => any,\n\t\tprivate readonly setter: (path: Path, value: any, silent?: boolean) => any,\n\t) {\n\t\tsuper(schema)\n\t}\n\n\tmap(path: Path) {\n\t\treturn this.mapper(path)\n\t}\n\n\tget(path: Path) {\n\t\treturn this.getter(path)\n\t}\n\n\tset(path: Path, value: any, silent?: boolean) {\n\t\treturn this.setter(path, value, silent)\n\t}\n}\n","import type { BooleanHookParams, EnumOption, Hook, INode, NodeChildren, NumberHookParams, StringHookParams, ValidationOption } from '@mcschema/core'\nimport { DataModel, ListNode, MapNode, ModelPath, ObjectNode, Path, relativePath, StringNode } from '@mcschema/core'\nimport type { ComponentChildren, JSX } from 'preact'\nimport { memo } from 'preact/compat'\nimport { useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Btn, Octicon } from '../components'\nimport { localize } from '../contexts'\nimport { useFocus } from '../hooks'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { CachedDecorator, CachedFeature } from '../services'\nimport { deepClone, deepEqual, hexId, isObject, newSeed } from '../Utils'\nimport { ModelWrapper } from './ModelWrapper'\n\nconst selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'generator_structure.type']\nconst hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type']\nconst flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state']\nconst inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type']\nconst nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt']\nconst fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset']\nconst collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper']\n\nconst findGenerator = (id: string) => {\n\treturn config.generators.find(g => g.id === id.replace(/^\\$/, ''))\n}\n\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(\n\tStringNode(),\n\tStringNode()\n), { historyMax: 0 })\n\ntype JSXTriple = [JSX.Element | null, JSX.Element | null, JSX.Element | null]\ntype RenderHook = Hook<[any, string, VersionId, BlockStateRegistry, Record<string, any>], JSXTriple>\n\ntype NodeProps<T> = T & {\n\tnode: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n}\n\nexport function FullNode({ model, lang, version, blockStates }: { model: DataModel, lang: string, version: VersionId, blockStates: BlockStateRegistry }) {\n\tconst path = new ModelPath(model)\n\tconst [prefix, suffix, body] = model.schema.hook(renderHtml, path, deepClone(model.data), lang, version, blockStates, {})\n\treturn suffix?.props?.children.some((c: any) => c) ? <div class={`node ${model.schema.type(path)}-node`} data-category={model.schema.category(path)}>\n\t\t<div class=\"node-header\">{prefix}{suffix}</div>\n\t\t<div class=\"node-body\">{body}</div>\n\t</div> : body\n}\n\nconst renderHtml: RenderHook = {\n\tbase() {\n\t\treturn [null, null, null]\n\t},\n\n\tboolean(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <BooleanSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tchoice({ choices, config, switchNode }, path, value, lang, version, states, ctx) {\n\t\tconst choice = switchNode.activeCase(path, true) as typeof choices[number]\n\t\tconst contextPath = (config?.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path\n\t\tconst [prefix, suffix, body] = choice.node.hook(this, contextPath, value, lang, version, states, ctx)\n\t\tif (choices.length === 1) {\n\t\t\treturn [prefix, suffix, body]\n\t\t}\n\t\tconst choiceContextPath = config?.choiceContext ? new Path([], [config.choiceContext]) : config?.context ? new Path([], [config.context]) : path\n\t\tconst set = (type: string) => {\n\t\t\tconst c = choices.find(c => c.type === type) ?? choice\n\t\t\tconst def = c.node.default()\n\t\t\tconst newValue = c.change\n\t\t\t\t? c.change(DataModel.unwrapLists(value))\n\t\t\t\t: config.choiceContext === 'feature' && def?.type === 'minecraft:decorated' ? def.config.feature : def\n\t\t\tpath.model.set(path, DataModel.wrapLists(newValue))\n\t\t}\n\t\tconst inject = <select value={choice.type} onChange={(e) => set((e.target as HTMLSelectElement).value)}>\n\t\t\t{choices.map(c => <option value={c.type}>\n\t\t\t\t{pathLocale(lang, choiceContextPath.contextPush(c.type))}\n\t\t\t</option>)}\n\t\t</select>\n\t\treturn [prefix, <>{inject}{suffix}</>, body]\n\t},\n\n\tlist({ children, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\t\tconst [maxShown, setMaxShown] = useState(50)\n\n\t\tconst context = path.getContext().join('.')\n\t\tif (fixedLists.includes(context)) {\n\t\t\tconst prefix = <>\n\t\t\t\t{[...Array(config.maxLength!)].map((_, i) =>\n\t\t\t\t\t<ErrorPopup lang={lang} path={path.modelPush(i)} />)}\n\t\t\t\t<div class=\"fixed-list\"></div>\n\t\t\t</>\n\t\t\tconst suffix = <>{[...Array(config.maxLength)].map((_, i) => {\n\t\t\t\tconst child = children.hook(this, path.modelPush(i), value?.[i]?.node, lang, version, states, ctx)\n\t\t\t\treturn child[1]\n\t\t\t})}</>\n\t\t\treturn [prefix, suffix, null]\n\t\t}\n\n\t\tconst onAdd = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [{ node, id: hexId() }, ...value])\n\t\t}\n\t\tconst onAddBottom = () => {\n\t\t\tif (!Array.isArray(value)) value = []\n\t\t\tconst node = DataModel.wrapLists(children.default())\n\t\t\tpath.model.set(path, [...value, { node, id: hexId() }])\n\t\t}\n\t\tconst suffix = <button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_top')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\tconst body = <>\n\t\t\t{(value && Array.isArray(value)) && value.map(({ node: cValue, id: cId }, index) => {\n\t\t\t\tif (index === maxShown) {\n\t\t\t\t\treturn <div class=\"node node-header\">\n\t\t\t\t\t\t<label>{localize(lang, 'entries_hidden', `${value.length - maxShown}`)}</label>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(Math.min(maxShown + 50, value.length))}>{localize(lang, 'entries_hidden.more', '50')}</button>\n\t\t\t\t\t\t<button onClick={() => setMaxShown(value.length)}>{localize(lang, 'entries_hidden.all')}</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tif (index > maxShown) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\tconst cPath = path.push(index).contextPush('entry')\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(cId)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(cId)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{pathLocale(lang, cPath, `${index}`)}</label>\n\t\t\t\t\t\t<Collapsed key={cId} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\tconst onMoveUp = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index - 1], v[index]] = [v[index], v[index - 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst onMoveDown = () => {\n\t\t\t\t\tconst v = [...path.get()];\n\t\t\t\t\t[v[index + 1], v[index]] = [v[index], v[index + 1]]\n\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t}\n\t\t\t\tconst actions: MenuAction[] = [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'duplicate',\n\t\t\t\t\t\tlabel: 'duplicate',\n\t\t\t\t\t\tonSelect: () => {\n\t\t\t\t\t\t\tconst v = [...path.get()]\n\t\t\t\t\t\t\tv.splice(index, 0, { id: hexId(), node: deepClone(cValue) })\n\t\t\t\t\t\t\tpath.model.set(path, v)\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t\treturn <MemoedTreeNode key={cId} path={cPath} schema={children} value={cValue} {...{lang, version, states, actions}} ctx={{...ctx, index: (index === 0 ? 1 : 0) + (index === value.length - 1 ? 2 : 0)}}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(cId)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t\t{value.length > 1 && <div class=\"node-move\">\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_up')} onClick={onMoveUp} disabled={index === 0}>{Octicon.chevron_up}</button>\n\t\t\t\t\t\t<button class=\"move tooltipped tip-se\" aria-label={localize(lang, 'move_down')} onClick={onMoveDown} disabled={index === value.length - 1}>{Octicon.chevron_down}</button>\n\t\t\t\t\t</div>}\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t\t{(value && value.length > 0 && value.length <= maxShown) && <div class=\"node node-header\">\n\t\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add_bottom')} onClick={onAddBottom}>{Octicon.plus_circle}</button>\n\t\t\t</div>}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), DataModel.wrapLists(children.default()))\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, version, states, ctx)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, version, states, ctx)[1]}\n\t\t\t<button class=\"add tooltipped tip-se\" aria-label={localize(lang, 'add')} onClick={onAdd}>{Octicon.plus_circle}</button>\n\t\t</>\n\t\tconst body = <>\n\t\t\t{typeof value === 'object' && Object.entries(value).map(([key, cValue]) => {\n\n\t\t\t\tconst cPath = path.modelPush(key)\n\t\t\t\tconst canToggle = children.type(cPath) === 'object'\n\t\t\t\tconst toggle = isToggled(key)\n\t\t\t\tif (canToggle && (toggle === false || (toggle === undefined && value.length > 20))) {\n\t\t\t\t\treturn <div class=\"node node-header\" data-category={children.category(cPath)}>\n\t\t\t\t\t\t<ErrorPopup lang={lang} path={cPath} nested />\n\t\t\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'expand')}\\n${localize(lang, 'expand_all', 'Ctrl')}`} onClick={expand(key)}>{Octicon.chevron_right}</button>\n\t\t\t\t\t\t<label>{key}</label>\n\t\t\t\t\t\t<Collapsed key={key} path={cPath} value={cValue} schema={children} />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tconst cSchema = blockState\n\t\t\t\t\t? StringNode(null!, { enum: blockState.properties?.[key] ?? [] })\n\t\t\t\t\t: children\n\t\t\t\tif (blockState?.properties?.[key] && typeof cValue === 'string'\n\t\t\t\t\t&& !blockState.properties?.[key].includes(cValue)) {\n\t\t\t\t\tpath.model.errors.add(cPath, 'error.invalid_enum_option', cValue)\n\t\t\t\t}\n\t\t\t\tconst onRemove = () => cPath.set(undefined)\n\t\t\t\treturn <MemoedTreeNode key={key} schema={cSchema} path={cPath} value={cValue} {...{lang, version, states, ctx}} label={key}>\n\t\t\t\t\t{canToggle && <button class=\"toggle tooltipped tip-se\" aria-label={`${localize(lang, 'collapse')}\\n${localize(lang, 'collapse_all', 'Ctrl')}`} onClick={collapse(key)}>{Octicon.chevron_down}</button>}\n\t\t\t\t\t<button class=\"remove tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onRemove}>{Octicon.trashcan}</button>\n\t\t\t\t</MemoedTreeNode>\n\t\t\t})}\n\t\t</>\n\t\treturn [null, suffix, body]\n\t},\n\n\tnumber(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <NumberSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n\n\tobject({ node, config, getActiveFields, getChildModelPath }, path, value, lang, version, states, ctx) {\n\t\tconst { expand, collapse, isToggled } = useToggles()\n\n\t\tif (path.getArray().length == 0 && isDecorated(config.context, value)) {\n\t\t\tconst { wrapper, fields } = createDecoratorsWrapper(getActiveFields(path), path, value)\n\t\t\tvalue = wrapper.data\n\t\t\tgetActiveFields = () => fields\n\t\t\tgetChildModelPath = (path, key) => new ModelPath(wrapper, new Path(path.getArray(), ['feature'])).push(key)\n\t\t}\n\n\t\tlet prefix: JSX.Element | null = null\n\t\tlet suffix: JSX.Element | null = null\n\t\tif (node.optional()) {\n\t\t\tif (value === undefined) {\n\t\t\t\tconst onExpand = () => path.set(DataModel.wrapLists(node.default()))\n\t\t\t\tsuffix = <button class=\"collapse closed tooltipped tip-se\" aria-label={localize(lang, 'expand')} onClick={onExpand}>{Octicon.plus_circle}</button>\n\t\t\t} else {\n\t\t\t\tconst onCollapse = () => path.set(undefined)\n\t\t\t\tsuffix = <button class=\"collapse open tooltipped tip-se\" aria-label={localize(lang, 'remove')} onClick={onCollapse}>{Octicon.trashcan}</button>\n\t\t\t}\n\t\t}\n\t\tconst context = path.getContext().join('.')\n\t\tif (collapsedFields.includes(context)) {\n\t\t\tconst toggled = isToggled('')\n\t\t\tprefix = <>\n\t\t\t\t<button class=\"toggle tooltipped tip-se\" aria-label={localize(lang, toggled ? 'collapse' : 'expand')} onClick={toggled ? collapse('') : expand('')}>{toggled ? Octicon.chevron_down : Octicon.chevron_right}</button>\n\t\t\t</>\n\t\t\tif (!toggled) {\n\t\t\t\treturn [prefix, suffix, null]\n\t\t\t}\n\t\t}\n\n\t\tconst newCtx = (typeof value === 'object' && value !== null && node.default()?.pools)\n\t\t\t? { ...ctx, loot: value?.type } : ctx\n\t\tconst body = <>\n\t\t\t{(typeof value === 'object' && value !== null && !(node.optional() && value === undefined)) &&\n\t\t\t\tObject.entries(getActiveFields(path))\n\t\t\t\t\t.filter(([_, child]) => child.enabled(path))\n\t\t\t\t\t.map(([key, child]) => {\n\t\t\t\t\t\tconst cPath = getChildModelPath(path, key)\n\t\t\t\t\t\tconst context = cPath.getContext().join('.')\n\t\t\t\t\t\tif (hiddenFields.includes(context)) return null\n\t\t\t\t\t\tconst [cPrefix, cSuffix, cBody] = child.hook(this, cPath, value[key], lang, version, states, newCtx)\n\t\t\t\t\t\tif (!cPrefix && !cSuffix && !((cBody?.props?.children?.length ?? 0) > 0)) return null\n\t\t\t\t\t\tconst isFlattened = child.type(cPath) === 'object' && flattenedFields.includes(context)\n\t\t\t\t\t\tconst isInlined = inlineFields.includes(context)\n\t\t\t\t\t\tif (isFlattened || isInlined) {\n\t\t\t\t\t\t\tprefix = <>{prefix}<ErrorPopup lang={lang} path={cPath} /><HelpPopup lang={lang} path={cPath} />{cPrefix}</>\n\t\t\t\t\t\t\tsuffix = <>{suffix}{cSuffix}</>\n\t\t\t\t\t\t\treturn isFlattened ? cBody : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn <MemoedTreeNode key={key} schema={child} path={cPath} value={value[key]} {...{lang, version, states, ctx: newCtx}} />\n\t\t\t\t\t})\n\t\t\t}\n\t\t</>\n\t\treturn [prefix, suffix, body]\n\t},\n\n\tstring(params, path, value, lang, version, states, ctx) {\n\t\treturn [null, <StringSuffix {...{...params, path, value, lang, version, states, ctx}} />, null]\n\t},\n}\n\nfunction Collapsed({ path, value }: { path: ModelPath, value: any, schema: INode<any> }) {\n\tconst context = path.getContext().join('.')\n\tswitch (context) {\n\t\tcase 'loot_table.pools.entry':\n\t\t\treturn <label>{value?.entries?.length ?? 0} entries</label>\n\t\tcase 'function.set_contents.entries.entry':\n\t\tcase 'loot_pool.entries.entry':\n\t\t\treturn <label>{value?.name?.replace(/^minecraft:/, '') ?? value?.type?.replace(/^minecraft:/, '')}</label>\n\t}\n\tfor (const child of Object.values(value ?? {})) {\n\t\tif (typeof child === 'string') {\n\t\t\treturn <label>{child.replace(/^minecraft:/, '')}</label>\n\t\t}\n\t}\n\treturn null\n}\n\nfunction useToggles() {\n\tconst [toggleState, setToggleState] = useState(new Map<string, boolean>())\n\tconst [toggleAll, setToggleAll] = useState<boolean | undefined>(undefined)\n\n\tconst expand = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(true)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, true)))\n\t\t}\n\t}\n\tconst collapse = (key: string) => (evt: MouseEvent) => {\n\t\tif (evt.ctrlKey) {\n\t\t\tsetToggleState(new Map())\n\t\t\tsetToggleAll(false)\n\t\t} else {\n\t\t\tsetToggleState(state => new Map(state.set(key, false)))\n\t\t}\n\t}\n\t\n\tconst isToggled = (key: string) => {\n\t\tif (!(toggleState instanceof Map)) return false\n\t\treturn toggleState.get(key) ?? toggleAll\n\t}\n\n\treturn { expand, collapse, isToggled }\n}\n\nfunction BooleanSuffix({ path, node, value, lang }: NodeProps<BooleanHookParams>) {\n\tconst set = (target: boolean) => {\n\t\tpath.model.set(path, node.optional() && value === target ? undefined : target)\n\t}\n\treturn <>\n\t\t<button class={value === false ? 'selected' : ''} onClick={() => set(false)}>{localize(lang, 'false')}</button>\n\t\t<button class={value === true ? 'selected' : ''} onClick={() => set(true)}>{localize(lang, 'true')}</button>\n\t</>\n}\n\nfunction NumberSuffix({ path, config, integer, value, lang }: NodeProps<NumberHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = integer ? parseInt(value) : parseFloat(value)\n\t\tpath.model.set(path, parsed)\n\t}\n\tconst onColor = (evt: Event) => {\n\t\tconst value = (evt.target as HTMLInputElement).value\n\t\tconst parsed = parseInt(value.slice(1), 16)\n\t\tpath.model.set(path, parsed)\n\t}\n\treturn <>\n\t\t<input type=\"text\" value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}} />\n\t\t{config?.color && <input type=\"color\" value={'#' + (value?.toString(16).padStart(6, '0') ?? '000000')} onChange={onColor} />}\n\t\t{['dimension.generator.seed', 'dimension.generator.biome_source.seed', 'world_settings.seed'].includes(path.getContext().join('.')) && <button onClick={() => newSeed(path.model)} class=\"tooltipped tip-se\" aria-label={localize(lang, 'generate_new_seed')}>{Octicon.sync}</button>}\n\t</>\n}\n\nfunction StringSuffix({ path, getValues, config, node, value, lang, version, states }: NodeProps<StringHookParams>) {\n\tconst onChange = (evt: Event) => {\n\t\tevt.stopPropagation()\n\t\tconst newValue = (evt.target as HTMLSelectElement).value\n\t\tif (newValue === value) return\n\t\tpath.model.set(path, newValue.length === 0 ? undefined : newValue)\n\t}\n\tconst values = getValues()\n\tconst context = path.getContext().join('.')\n\tconst id = !isEnum(config) && config?.validator === 'resource' && typeof config.params.pool === 'string' ? config.params.pool : undefined\n\n\tif (nbtFields.includes(context)) {\n\t\treturn <textarea value={value ?? ''} onBlur={onChange}></textarea>\n\t} else if ((isEnum(config) && !config.additional) || selectRegistries.includes(context)) {\n\t\tlet context = new Path([])\n\t\tif (isEnum(config) && typeof config.enum === 'string') {\n\t\t\tcontext = context.contextPush(config.enum)\n\t\t} else if (id) {\n\t\t\tcontext = context.contextPush(id)\n\t\t} else if (isEnum(config)) {\n\t\t\tcontext = path\n\t\t}\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{node.optional() && <option value=\"\">{localize(lang, 'unset')}</option>}\n\t\t\t{values.map(v => <option value={v}>\n\t\t\t\t{pathLocale(lang, context.contextPush(v.replace(/^minecraft:/, '')))}\n\t\t\t</option>)}\n\t\t</select>\n\t} else if (!isEnum(config) && config?.validator === 'block_state_key') {\n\t\tconst blockState = states?.[relativePath(path, config.params.id).get()]\n\t\tconst values = Object.keys(blockState?.properties ?? {})\n\t\treturn <select value={value ?? ''} onChange={onChange}>\n\t\t\t{values.map(v => <option>{v}</option>)}\n\t\t</select>\n\t} else {\n\t\tconst datalistId = hexId()\n\t\tconst gen = id ? findGenerator(id) : undefined\n\t\treturn <>\n\t\t\t<input value={value ?? ''} onBlur={onChange} onKeyDown={evt => {if (evt.key === 'Enter') onChange(evt)}}\n\t\t\t\tlist={values.length > 0 ? datalistId : ''} />\n\t\t\t{values.length > 0 && <datalist id={datalistId}>\n\t\t\t\t{values.map(v => <option value={v} />)}\n\t\t\t</datalist>}\n\t\t\t{gen && values.includes(value) && value.startsWith('minecraft:') &&\n\t\t\t\t<a href={`/${gen.url}/?version=${version}&preset=${value.replace(/^minecraft:/, '')}`} class=\"tooltipped tip-se\" aria-label={localize(lang, 'follow_reference')}>{Octicon.link_external}</a>}\n\t\t</>\n\t}\n}\n\ntype MenuAction = {\n\tlabel: string,\n\tdescription?: string,\n\ticon: keyof typeof Octicon,\n\tonSelect: () => unknown,\n}\n\ntype TreeNodeProps = {\n\tschema: INode<any>,\n\tpath: ModelPath,\n\tvalue: any,\n\tlang: string,\n\tversion: VersionId,\n\tstates: BlockStateRegistry,\n\tctx: Record<string, any>,\n\tcompare?: any,\n\tlabel?: string,\n\tactions?: MenuAction[],\n\tchildren?: ComponentChildren,\n}\nfunction TreeNode({ label, schema, path, value, lang, version, states, ctx, actions, children }: TreeNodeProps) {\n\tconst type = schema.type(path)\n\tconst category = schema.category(path)\n\tconst context = path.getContext().join('.')\n\n\tconst [active, setActive] = useFocus()\n\tconst onContextMenu = (evt: MouseEvent) => {\n\t\tevt.preventDefault()\n\t\tsetActive()\n\t}\n\n\tconst newCtx: Record<string, any> = { ...ctx, depth: (ctx.depth ?? 0) + 1 }\n\tdelete newCtx.index\n\tconst [prefix, suffix, body] = schema.hook(renderHtml, path, value, lang, version, states, newCtx)\n\treturn <div class={`node ${type}-node`} data-category={category}>\n\t\t<div class=\"node-header\" onContextMenu={onContextMenu}>\n\t\t\t<ErrorPopup lang={lang} path={path} />\n\t\t\t<HelpPopup lang={lang} path={path} />\n\t\t\t{children}\n\t\t\t{prefix}\n\t\t\t<label>\n\t\t\t\t{label ?? pathLocale(lang, path, `${path.last()}`)}\n\t\t\t\t{active && <div class=\"node-menu\">\n\t\t\t\t\t{actions?.map(a => <div key={a.label} class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon={a.icon} tooltip={localize(lang, a.label)} tooltipLoc=\"se\" onClick={() => a.onSelect()}/>\n\t\t\t\t\t\t<span>{a.description ?? localize(lang, a.label)}</span>\n\t\t\t\t\t</div>)}\n\t\t\t\t\t<div class=\"menu-item\">\n\t\t\t\t\t\t<Btn icon=\"clippy\" tooltip={localize(lang, 'copy_context')} tooltipLoc=\"se\" onClick={() => navigator.clipboard.writeText(context)} />\n\t\t\t\t\t\t<span>{context}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>}\n\t\t\t</label>\n\t\t\t{suffix}\n\t\t</div>\n\t\t{body && <div class=\"node-body\">{body}</div>}\n\t</div>\n}\n\nconst MemoedTreeNode = memo(TreeNode, (prev, next) => {\n\treturn prev.schema === next.schema\n\t\t&& prev.lang === next.lang\n\t\t&& prev.path.equals(next.path)\n\t\t&& deepEqual(prev.ctx, next.ctx)\n\t\t&& deepEqual(prev.value, next.value)\n})\n\nfunction isEnum(value?: ValidationOption | EnumOption): value is EnumOption {\n\treturn !!(value as any)?.enum\n}\n\nfunction hashString(str: string) {\n\tvar hash = 0, i, chr\n\tfor (i = 0; i < str.length; i++) {\n\t\tchr = str.charCodeAt(i)\n\t\thash = ((hash << 5) - hash) + chr\n\t\thash |= 0\n\t}\n\treturn hash\n}\n\nfunction pathLocale(lang: string, path: Path, ...params: string[]) {\n\tconst ctx = path.getContext()\n\tfor (let i = 0; i < ctx.length; i += 1) {\n\t\tconst key = ctx.slice(i).join('.')\n\t\tconst result = localize(lang, key, ...params)\n\t\tif (key !== result) {\n\t\t\treturn result\n\t\t}\n\t}\n\treturn ctx[ctx.length - 1]\n}\n\nfunction ErrorPopup({ lang, path, nested }: { lang: string, path: ModelPath, nested?: boolean }) {\n\tif (path.model instanceof ModelWrapper) {\n\t\tpath = path.model.map(path).withModel(path.model)\n\t}\n\tconst e = nested\n\t\t?\tpath.model.errors.getAll().filter(e => e.path.startsWith(path))\n\t\t: path.model.errors.get(path, true)\n\tif (e.length === 0) return null\n\tconst message = localize(lang, e[0].error, ...(e[0].params ?? []))\n\treturn popupIcon('node-error', 'issue_opened', message)\n}\n\nfunction HelpPopup({ lang, path }: { lang: string, path: Path }) {\n\tconst key = path.contextPush('help').getContext().join('.')\n\tconst message = localize(lang, key)\n\tif (message === key) return null\n\treturn popupIcon('node-help', 'info', message)\n}\n\nconst popupIcon = (type: string, icon: keyof typeof Octicon, popup: string) => {\n\tconst [active, setActive] = useFocus()\n\n\treturn <div class={`node-icon ${type}${active ? ' show' : ''}`} onClick={setActive}>\n\t\t{Octicon[icon]}\n\t\t<span class=\"icon-popup\">{popup}</span>\n\t</div>\n}\n\nfunction isDecorated(context: string | undefined, value: any) {\n\treturn context === 'feature'\n\t\t&& value?.type?.replace(/^minecraft:/, '') === 'decorated'\n\t\t&& isObject(value?.config)\n}\n\nfunction createDecoratorsWrapper(originalFields: NodeChildren, path: ModelPath, value: any) {\n\tconst decorators: any[] = []\n\tconst feature = iterateNestedDecorators(value, decorators)\n\tconst fields = {\n\t\ttype: originalFields.type,\n\t\tconfig: ObjectNode({\n\t\t\tdecorators: ListNode(CachedDecorator),\n\t\t\tfeature: CachedFeature,\n\t\t}, { context: 'feature.decorated' }),\n\t}\n\tconst schema = ObjectNode(fields, { context: 'feature' })\n\tconst featurePath = new Path(['config', 'feature'])\n\tconst decoratorsPath = new Path(['config', 'decorators'])\n\tconst model = path.getModel()\n\tconst wrapper: ModelWrapper = new ModelWrapper(schema, path => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\treturn new Path([...[...Array(decorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\treturn new Path([])\n\t\t\t}\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (typeof index === 'number') {\n\t\t\t\treturn new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t}\n\t\t}\n\t\treturn path\n\t}, path => {\n\t\tif (path.equals(decoratorsPath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\treturn newDecorators\n\t\t}\n\t\treturn model.get(wrapper.map(path))\n\t}, (path, value, silent) => {\n\t\tif (path.startsWith(featurePath)) {\n\t\t\tconst newDecorators: any[] = []\n\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\tconst newPath =new Path([...[...Array(newDecorators.length - 1)].flatMap(() => ['config', 'feature']), ...path.modelArr])\n\t\t\treturn model.set(newPath, value, silent)\n\t\t} else if (path.startsWith(decoratorsPath)) {\n\t\t\tconst index = path.modelArr[2]\n\t\t\tif (path.modelArr.length === 2) {\n\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\treturn model.set(new Path(), produceNestedDecorators(feature, value), silent)\n\t\t\t} else if (typeof index === 'number') {\n\t\t\t\tif (path.modelArr.length === 3 && value === undefined) {\n\t\t\t\t\tconst feature = wrapper.get(featurePath)\n\t\t\t\t\tconst newDecorators: any[] = []\n\t\t\t\t\titerateNestedDecorators(model.data, newDecorators)\n\t\t\t\t\tnewDecorators.splice(index, 1)\n\t\t\t\t\tconst newValue = produceNestedDecorators(feature, newDecorators)\n\t\t\t\t\treturn model.set(new Path(), newValue, silent)\n\t\t\t\t} else {\n\t\t\t\t\tconst newPath = new Path([...[...Array(index)].flatMap(() => ['config', 'feature']), 'config', 'decorator', ...path.modelArr.slice(3)])\n\t\t\t\t\treturn model.set(newPath, value, silent)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tmodel.set(path, value, silent)\n\t})\n\twrapper.data = {\n\t\ttype: model.data.type,\n\t\tconfig: {\n\t\t\tdecorators,\n\t\t\tfeature,\n\t\t},\n\t}\n\twrapper.errors = model.errors\n\treturn { fields, wrapper }\n}\n\nfunction iterateNestedDecorators(value: any, decorators: any[]): any {\n\tif (value?.type?.replace(/^minecraft:/, '') !== 'decorated') {\n\t\treturn value\n\t}\n\tif (!isObject(value?.config)) {\n\t\treturn value\n\t}\n\tdecorators.push({ id: decorators.length, node: value.config.decorator })\n\treturn iterateNestedDecorators(value.config.feature ?? '', decorators)\n}\n\nfunction produceNestedDecorators(feature: any, decorators: any[]): any {\n\tif (decorators.length === 0) return feature\n\treturn {\n\t\ttype: 'minecraft:decorated',\n\t\tconfig: {\n\t\t\tdecorator: decorators.shift().node,\n\t\t\tfeature: produceNestedDecorators(feature, decorators),\n\t\t},\n\t}\n}\n","import type { DataModel } from '@mcschema/core'\nimport { useErrorBoundary, useState } from 'preact/hooks'\nimport { useLocale } from '../../contexts'\nimport { useModel } from '../../hooks'\nimport { FullNode } from '../../schema/renderHtml'\nimport type { BlockStateRegistry, VersionId } from '../../services'\n\ntype TreePanelProps = {\n\tversion: VersionId,\n\tmodel: DataModel | null,\n\tblockStates: BlockStateRegistry | null,\n\tonError: (message: string) => unknown,\n}\nexport function Tree({ version, model, blockStates, onError }: TreePanelProps) {\n\tconst { lang } = useLocale()\n\tif (!model || !blockStates || lang === 'none') return <></>\n\n\tconst [error] = useErrorBoundary(e => {\n\t\tonError(`Error rendering the tree: ${e.message}`)\n\t\tconsole.error(e)\n\t})\n\tif (error) return <></>\n\n\tconst [, setState] = useState(0)\n\tuseModel(model, () => {\n\t\tsetState(state => state + 1)\n\t})\n\n\treturn <div class=\"tree\" data-cy=\"tree\">\n\t\t<FullNode {...{model, lang, version, blockStates}}/>\n\t</div>\n}\n","import { getCurrentUrl, Link, route } from 'preact-router'\nimport { Btn, BtnMenu, Icons, Octicon } from '.'\nimport config from '../../config.json'\nimport { useLocale, useTheme, useTitle, useVersion } from '../contexts'\nimport { checkVersion } from '../services'\nimport { cleanUrl, getGenerator } from '../Utils'\n\nconst Themes: Record<string, keyof typeof Octicon> = {\n\tsystem: 'device_desktop',\n\tdark: 'moon',\n\tlight: 'sun',\n}\n\nexport function Header() {\n\tconst { lang, locale, changeLanguage } = useLocale()\n\tconst { theme, changeTheme } = useTheme()\n\tconst { version } = useVersion()\n\tconst { title } = useTitle()\n\tconst gen = getGenerator(getCurrentUrl())\n\n\treturn <header>\n\t\t<div class=\"title\">\n\t\t\t<Link class=\"home-link\" href=\"/\" aria-label={locale('home')} data-cy=\"home-link\">{Icons.home}</Link>\n\t\t\t<h1>{title}</h1>\n\t\t\t{gen && <BtnMenu icon=\"chevron_down\" tooltip={locale('switch_generator')} data-cy=\"generator-switcher\">\n\t\t\t\t{config.generators\n\t\t\t\t\t.filter(g => g.category === gen?.category && checkVersion(version, g.minVersion))\n\t\t\t\t\t.map(g =>\n\t\t\t\t\t\t<Btn label={locale(g.id)} active={g.id === gen.id} onClick={() => route(cleanUrl(g.url))} />\n\t\t\t\t\t)}\n\t\t\t</BtnMenu>}\n\t\t</div>\n\t\t<nav>\n\t\t\t<ul>\n\t\t\t\t<li data-cy=\"language-switcher\">\n\t\t\t\t\t<BtnMenu icon=\"globe\" tooltip={locale('language')}>\n\t\t\t\t\t\t{config.languages.map(({ code, name }) =>\n\t\t\t\t\t\t\t<Btn label={name} active={code === lang}\n\t\t\t\t\t\t\t\tonClick={() => changeLanguage(code)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li data-cy=\"theme-switcher\">\n\t\t\t\t\t<BtnMenu icon={Themes[theme]} tooltip={locale('theme')}>\n\t\t\t\t\t\t{Object.entries(Themes).map(([th, icon]) =>\n\t\t\t\t\t\t\t<Btn icon={icon} label={locale(`theme.${th}`)} active={th === theme}\n\t\t\t\t\t\t\t\tonClick={() => changeTheme(th)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</li>\n\t\t\t\t<li class=\"dimmed\">\n\t\t\t\t\t<a href=\"https://github.com/misode/misode.github.io\" target=\"_blank\" rel=\"noreferrer\" class=\"tooltipped tip-sw\" aria-label={locale('github')}>\n\t\t\t\t\t\t{Octicon.mark_github}\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</header>\n}\n","export const Icons = {\n\thome: <svg width=\"32\" height=\"28\" viewBox=\"0 0 32 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"26\" height=\"6\" rx=\"3\" fill=\"#7CB45C\"/><rect x=\"8\" width=\"18\" height=\"6\" rx=\"3\" fill=\"#4BA041\"/><rect y=\"11\" width=\"32\" height=\"6\" rx=\"3\" fill=\"#AAA8A8\"/><rect x=\"11\" y=\"11\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#91908F\"/><rect x=\"11\" y=\"22\" width=\"21\" height=\"6\" rx=\"3\" fill=\"#70B5C3\"/><rect x=\"17\" y=\"22\" width=\"15\" height=\"6\" rx=\"3\" fill=\"#4D989B\"/></svg>,\n\treport: <svg width=\"30\" height=\"36\" viewBox=\"0 0 30 36\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 16C0 13.7909 1.79086 12 4 12V12C6.20914 12 8 13.7909 8 16V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V16Z\" fill=\"#6ACC5D\"/><path d=\"M11 4C11 1.79086 12.7909 0 15 0V0C17.2091 0 19 1.79086 19 4V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V4Z\" fill=\"#FF4C4C\"/><path d=\"M22 10C22 7.79086 23.7909 6 26 6V6C28.2091 6 30 7.79086 30 10V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V10Z\" fill=\"#E5B442\"/><path d=\"M0 23C0 20.7909 1.79086 19 4 19V19C6.20914 19 8 20.7909 8 23V32C8 34.2091 6.20914 36 4 36V36C1.79086 36 0 34.2091 0 32V23Z\" fill=\"#2BAD1D\"/><path d=\"M11 15C11 12.7909 12.7909 11 15 11V11C17.2091 11 19 12.7909 19 15V32C19 34.2091 17.2091 36 15 36V36C12.7909 36 11 34.2091 11 32V15Z\" fill=\"#C10B0B\"/><path d=\"M22 19C22 16.7909 23.7909 15 26 15V15C28.2091 15 30 16.7909 30 19V32C30 34.2091 28.2091 36 26 36V36C23.7909 36 22 34.2091 22 32V19Z\" fill=\"#CC8E00\"/></svg>,\n\tsounds: <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#451475\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 10C3.5 8.27609 4.18482 6.62279 5.40381 5.40381C6.62279 4.18482 8.27609 3.5 10 3.5C11.7239 3.5 13.3772 4.18482 14.5962 5.40381C15.8152 6.62279 16.5 8.27609 16.5 10C16.5 11.7239 15.8152 13.3772 14.5962 14.5962C13.3772 15.8152 11.7239 16.5 10 16.5C8.27609 16.5 6.62279 15.8152 5.40381 14.5962C4.18482 13.3772 3.5 11.7239 3.5 10V10ZM10 2C7.87827 2 5.84344 2.84285 4.34315 4.34315C2.84285 5.84344 2 7.87827 2 10C2 12.1217 2.84285 14.1566 4.34315 15.6569C5.84344 17.1571 7.87827 18 10 18C12.1217 18 14.1566 17.1571 15.6569 15.6569C17.1571 14.1566 18 12.1217 18 10C18 7.87827 17.1571 5.84344 15.6569 4.34315C14.1566 2.84285 12.1217 2 10 2V2ZM8.379 7.227C8.34101 7.20412 8.29762 7.19175 8.25327 7.19117C8.20892 7.19059 8.16522 7.20181 8.12664 7.2237C8.08807 7.24558 8.05601 7.27733 8.03375 7.3157C8.0115 7.35406 7.99985 7.39765 8 7.442V12.559C8.00003 12.6033 8.0118 12.6467 8.03413 12.685C8.05646 12.7232 8.08854 12.7548 8.12708 12.7765C8.16563 12.7983 8.20926 12.8095 8.25352 12.8088C8.29778 12.8082 8.34108 12.7958 8.379 12.773L12.643 10.214C12.6798 10.1917 12.7103 10.1604 12.7315 10.1229C12.7526 10.0854 12.7638 10.043 12.7638 10C12.7638 9.95695 12.7526 9.91463 12.7315 9.87714C12.7103 9.83965 12.6798 9.80825 12.643 9.786L8.379 7.227Z\" fill=\"#C5A5E6\"/></svg>,\n}\n","import { Howl } from 'howler'\nimport { useEffect, useRef, useState } from 'preact/hooks'\nimport { Btn, NumberInput, RangeInput, TextInput } from '..'\nimport { useLocale, useVersion } from '../../contexts'\nimport type { SoundEvents } from '../../services'\nimport { getSoundUrl } from '../../services'\n\nexport interface SoundConfig {\n\tid: string,\n\tsound: string,\n\tdelay: number,\n\tpitch: number,\n\tvolume: number,\n}\ntype SoundConfigProps = SoundConfig & {\n\tsounds: SoundEvents,\n\tonEdit: (changes: Partial<SoundConfig>) => unknown,\n\tonDelete: () => unknown,\n\tdelayedPlay?: number,\n}\nexport function SoundConfig({ sounds, sound, delay, pitch, volume, onEdit, onDelete, delayedPlay }: SoundConfigProps) {\n\tconst { locale } = useLocale()\n\tconst { version } = useVersion()\n\tconst [loading, setLoading] = useState(true)\n\tconst [playing, setPlaying] = useState(false)\n\tconst [invalid, setInvalid] = useState(false)\n\tconst howls = useRef<Howl[]>([])\n\tconst command = `playsound minecraft:${sound} master @s ~ ~ ~ ${volume} ${pitch}`\n\n\tuseEffect(() => {\n\t\tconst soundEvent = sounds[sound]\n\t\tsetInvalid((soundEvent?.sounds?.length ?? 0) === 0)\n\t\thowls.current.forEach(h => h.stop())\n\t\thowls.current = (soundEvent?.sounds ?? []).map(entry => {\n\t\t\tconst soundPath = typeof entry === 'string' ? entry : entry.name\n\t\t\tconst url = getSoundUrl(version, soundPath)\n\t\t\tconst howl = new Howl({\n\t\t\t\tsrc: [url],\n\t\t\t\tformat: ['ogg'],\n\t\t\t\tvolume,\n\t\t\t\trate: pitch,\n\t\t\t})\n\t\t\thowl.on('end', () => {\n\t\t\t\tsetPlaying(false)\n\t\t\t})\n\t\t\tconst completed = () => {\n\t\t\t\tif (loading && howls.current.every(h => h.state() === 'loaded')) {\n\t\t\t\t\tsetLoading(false)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (howl.state() === 'loaded') {\n\t\t\t\tsetTimeout(() => completed())\n\t\t\t} else {\n\t\t\t\thowl.on('load', () => {\n\t\t\t\t\tcompleted()\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn howl\n\t\t})\n\t\tsetLoading(true)\n\t}, [sound, sounds])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.rate(pitch))\n\t}, [pitch])\n\n\tuseEffect(() => {\n\t\thowls.current.forEach(h => h.volume(volume))\n\t}, [volume])\n\n\tconst play = () => {\n\t\tif (loading || invalid) return\n\t\tstop()\n\t\tconst howl = Math.floor(Math.random() * howls.current.length)\n\t\thowls.current[howl].play()\n\t\tsetPlaying(true)\n\t}\n\tconst stop = () => {\n\t\thowls.current.forEach(h => h.stop())\n\t}\n\tuseEffect(() => {\n\t\tif (delayedPlay) setTimeout(() => play(), delay * 50)\n\t}, [delayedPlay])\n\n\tuseEffect(() => {\n\t\treturn () => stop()\n\t}, [])\n\n\tconst [copyActive, setCopyActive] = useState(false)\n\tconst copyTimeout = useRef<number | undefined>(undefined)\n\tconst copy = () => {\n\t\tnavigator.clipboard.writeText(command)\n\t\tsetCopyActive(true)\n\t\tif (copyTimeout.current !== undefined) clearTimeout(copyTimeout.current)\n\t\tcopyTimeout.current = setTimeout(() => {\n\t\t\tsetCopyActive(false)\n\t\t}, 2000) as any\n\t}\n\n\treturn <div class={`sound-config${loading ? ' loading' : playing ? ' playing' : ''}${invalid ? ' invalid' : ''}`}>\n\t\t<Btn class=\"play\" icon={invalid ? 'alert' : loading ? 'sync' : 'play'} label={locale('sounds.play')} onClick={play} tooltip={invalid ? locale('sounds.unknown_sound') : loading ? locale('sounds.loading_sound') : locale('sounds.play_sound')} tooltipLoc=\"se\" />\n\t\t<TextInput class=\"btn btn-input sound\" list=\"sound-list\" spellcheck={false}\n\t\t\tvalue={sound} onChange={sound => onEdit({ sound })} />\n\t\t<label class=\"delay-label\">{locale('sounds.delay')}: </label>\n\t\t<NumberInput class=\"btn btn-input delay\" min={0}\n\t\t\tvalue={delay} onChange={delay => onEdit({ delay })} />\n\t\t<label class=\"pitch-label\">{locale('sounds.pitch')}: </label>\n\t\t<RangeInput class=\"pitch tooltipped tip-s\" min={0.5} max={2} step={0.01}\n\t\t\taria-label={pitch.toFixed(2)} style={`--x: ${(pitch - 0.5) * (100 / 1.5)}%`}\n\t\t\tvalue={pitch} onChange={pitch => onEdit({ pitch })} />\n\t\t<label class=\"volume-label\">{locale('sounds.volume')}: </label>\n\t\t<RangeInput class=\"volume tooltipped tip-s\" min={0} max={1} step={0.01}\n\t\t\taria-label={volume.toFixed(2)} style={`--x: ${volume * 100}%`}\n\t\t\tvalue={volume} onChange={volume => onEdit({ volume })} />\n\t\t<Btn class={`copy${copyActive ? ' active' : ''}`} icon={copyActive ? 'check' : 'terminal'} label={locale('copy')} tooltip={copyActive ? locale('copied') : locale('sounds.copy_command')}\n\t\t\tonClick={copy} />\n\t\t<Btn class=\"remove\" icon=\"trashcan\" tooltip={locale('sounds.remove_sound')}\n\t\t\tonClick={() => {onDelete(); stop()}} />\n\t</div>\n}\n","import type { ComponentChildren } from 'preact'\nimport { Icons } from './Icons'\n\ntype ToolCardProps = {\n\ttitle: string,\n\tdesc?: string,\n\tlink?: string,\n\ticon?: keyof typeof Icons,\n\tchildren?: ComponentChildren,\n}\nexport function ToolCard({ title, desc, link, icon, children }: ToolCardProps) {\n\tconst content = <>\n\t\t<div class=\"tool-head\">\n\t\t\t{icon && Icons[icon]}\n\t\t\t<div>\n\t\t\t\t<h3>{title}</h3>\n\t\t\t\t<p>{desc}</p>\n\t\t\t</div>\n\t\t</div>\n\t\t{children && <div class=\"tool-body\">\n\t\t\t{children}\n\t\t</div>}\n\t</>\n\treturn link\n\t\t? <a class=\"tool-card\" href={link}>{content}</a>\n\t\t: <div class=\"tool-card\">{content}</div>\n}\n","import { useMemo, useState } from 'preact/hooks'\nimport { Octicon } from '.'\n\nconst SEPARATOR = '/'\n\ninterface Props {\n\tentries: string[],\n\tonSelect: (entry: string) => unknown,\n\tindent?: number,\n}\nexport function TreeView({ entries, onSelect, indent }: Props) {\n\tconst roots = useMemo(() => {\n\t\tconst groups: Record<string, string[]> = {}\n\t\tfor (const entry of entries) {\n\t\t\tconst i = entry.indexOf(SEPARATOR)\n\t\t\tif (i >= 0) {\n\t\t\t\tconst root = entry.slice(0, i)\n\t\t\t\t;(groups[root] ??= []).push(entry.slice(i + 1))\n\t\t\t}\n\t\t}\n\t\treturn Object.entries(groups)\n\t}, entries)\n\n\tconst leaves = useMemo(() => {\n\t\treturn entries.filter(e => !e.includes(SEPARATOR))\n\t}, entries)\n\n\tconst [hidden, setHidden] = useState(new Set<string>())\n\tconst toggle = (root: string) => {\n\t\tif (hidden.has(root)) {\n\t\t\thidden.delete(root)\n\t\t} else {\n\t\t\thidden.add(root)\n\t\t}\n\t\tsetHidden(new Set(hidden))\n\t}\n\n\treturn <div class=\"tree-view\" style={`--indent: ${indent ?? 0};`}>\n\t\t{roots.map(([r, entries]) => <div>\n\t\t\t<TreeViewEntry icon={hidden.has(r) ? 'chevron_right' : 'chevron_down'} key={r} label={r} onClick={() => toggle(r)}/>\n\t\t\t{!hidden.has(r) &&\n\t\t\t\t<TreeView entries={entries} onSelect={e => onSelect(`${r}/${e}`)} indent={(indent ?? 0) + 1} />}\n\t\t</div>)}\n\t\t{leaves.map(e => <TreeViewEntry icon=\"file\" key={e} label={e} onClick={() => onSelect(e)} />)}\n\t</div>\n}\n\ninterface TreeViewEntryProps {\n\ticon: keyof typeof Octicon,\n\tlabel: string,\n\tonClick?: () => unknown,\n}\nfunction TreeViewEntry({ icon, label, onClick }: TreeViewEntryProps) {\n\treturn <div class=\"entry\" onClick={onClick} >\n\t\t{Octicon[icon]}\n\t\t{label}\n\t</div>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tcategory: string,\n\tpath?: string,\n}\nexport function Category({ category }: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.generator_category', locale(category)))\n\treturn <main>\n\t\t<div class=\"category\">\n\t\t\t{config.generators.filter(g => g.category === category).map(g => \n\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t)}\n\t\t</div>\n\t</main>\n}\n","import { marked } from 'marked'\nimport { useEffect, useMemo, useState } from 'preact/hooks'\nimport { Ad, Btn, ErrorPanel, Octicon, TextInput } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport type { ChangelogEntry, ChangelogVersion } from '../services'\nimport { getChangelogs } from '../services'\nimport { hashString } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Changelog({}: Props) {\n\tconst { locale } = useLocale()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.changelog'))\n\n\tconst [changelogs, setChangelogs] = useState<ChangelogEntry[]>([])\n\tuseEffect(() => {\n\t\tgetChangelogs()\n\t\t\t.then(changelogs => setChangelogs(changelogs))\n\t\t\t.catch(e => { console.error(e); setError(e) })\n\t}, [])\n\n\tconst [search, setSearch] = useState('')\n\tconst [tags, setTags] = useState<string[]>([])\n\tconst toggleTag = (tag: string) => {\n\t\tif (!tags.includes(tag)) {\n\t\t\tsetTags([...tags, tag])\n\t\t} else {\n\t\t\tsetTags(tags.filter(t => t !== tag))\n\t\t}\n\t}\n\n\tconst filteredChangelogs = useMemo(() => {\n\t\tconst query = search.split(' ').map(q => q.trim().toLowerCase()).filter(q => q.length > 0)\n\t\tif (query.length === 0 && tags.length === 0) return changelogs\n\t\treturn changelogs.filter(change => {\n\t\t\tif (!tags.every(tag => change.tags.includes(tag))) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tconst content = change.tags.join(' ') + ' ' + change.content.toLowerCase()\n\t\t\treturn query.every(q => {\n\t\t\t\tif (q.startsWith('!')) {\n\t\t\t\t\treturn q.length === 1 || !content.includes(q.slice(1))\n\t\t\t\t}\n\t\t\t\treturn content.includes(q)\n\t\t\t})\n\t\t})\n\t}, [changelogs, search, tags])\n\n\tconst [sort, setSort] = useState(true)\n\n\tconst sortedChangelogs = useMemo(() => {\n\t\treturn filteredChangelogs.sort((a, b) => sort ? b.order - a.order : a.order - b.order)\n\t}, [filteredChangelogs, sort])\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"changelog\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t<div class=\"changelog-controls\">\n\t\t\t<div class=\"changelog-query\">\n\t\t\t\t<TextInput class=\"btn btn-input changelog-search\" list=\"sound-list\" placeholder={locale('changelog.search')}\n\t\t\t\t\tvalue={search} onChange={setSearch} />\n\t\t\t\t<Btn icon={sort ? 'sort_desc' : 'sort_asc'} label={sort ? 'Newest first' : 'Oldest first'} onClick={() => setSort(!sort)} />\n\t\t\t</div>\n\t\t\t{tags.length > 0 && <div class=\"changelog-tags\">\n\t\t\t\t{tags.map(tag => <Tag label={tag} onClick={() => setTags(tags.filter(t => t !== tag))} />)}\n\t\t\t</div>}\n\t\t</div>\n\t\t<div class=\"changelog\">\n\t\t\t{sortedChangelogs.map(change =>\n\t\t\t\t<Change change={change} activeTags={tags} toggleTag={toggleTag} />)}\n\t\t</div>\n\t</main>\n}\n\ntype ChangeProps = {\n\tchange: ChangelogEntry,\n\tactiveTags: string[],\n\ttoggleTag: (tag: string) => unknown,\n}\nfunction Change({ change, activeTags, toggleTag }: ChangeProps) {\n\treturn <div class=\"changelog-entry\">\n\t\t<div class=\"changelog-version\">\n\t\t\t<ArticleLink {...change.version}/>\n\t\t\t<ArticleLink {...change.group}/>\n\t\t</div>\n\t\t<div class=\"changelog-tags\">\n\t\t\t{change.tags.map(tag => <Tag label={tag} onClick={() => toggleTag(tag)} active={activeTags.includes(tag)} />)}\n\t\t</div>\n\t\t<div class=\"changelog-content\" dangerouslySetInnerHTML={{ __html: marked(change.content) }} />\n\t</div>\n}\n\nfunction ArticleLink({ id, article }: ChangelogVersion) {\n\treturn article === null\n\t\t? <span>{id}</span>\n\t\t: <a href={`https://www.minecraft.net/en-us/article/${article}`} target=\"_blank\">{id}</a>\n}\n\ntype TagProps = {\n\tlabel: string,\n\tactive?: boolean,\n\tonClick?: () => unknown,\n}\nfunction Tag({ label, active, onClick }: TagProps) {\n\tconst color = label === 'breaking' ? 5 : hashString(label) % 360\n\treturn <div class={`changelog-tag${active ? ' active' : ''}${onClick ? ' clickable' : ''}`} style={`--tint: ${color}`} onClick={onClick}>\n\t\t{label === 'breaking' && Octicon.alert}\n\t\t{label}\n\t</div>\n}\n","import { DataModel, Path } from '@mcschema/core'\nimport { getCurrentUrl, route } from 'preact-router'\nimport { useEffect, useErrorBoundary, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Analytics } from '../Analytics'\nimport { Ad, Btn, BtnMenu, ErrorPanel, HasPreview, Octicon, PreviewPanel, SearchList, SourcePanel, TextInput, Tree } from '../components'\nimport { useLocale, useProject, useTitle, useVersion } from '../contexts'\nimport { useActiveTimeout, useModel } from '../hooks'\nimport { getOutput } from '../schema/transformOutput'\nimport type { BlockStateRegistry, VersionId } from '../services'\nimport { checkVersion, fetchPreset, getBlockStates, getCollections, getModel } from '../services'\nimport { getGenerator, getSearchParams, message, setSeachParams } from '../Utils'\n\ninterface Props {\n\tdefault?: true,\n}\nexport function Generator({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst { project, file, updateFile, openFile, closeFile } = useProject()\n\tconst [error, setError] = useState<string | null>(null)\n\tconst [errorBoundary, errorRetry] = useErrorBoundary()\n\tif (errorBoundary) {\n\t\treturn <main><ErrorPanel error={`Something went wrong rendering the generator: ${errorBoundary.message}`} onDismiss={errorRetry} /></main>\n\t}\n\n\tconst gen = getGenerator(getCurrentUrl())\n\tif (!gen) {\n\t\treturn <main><ErrorPanel error={`Cannot find generator \"${getCurrentUrl()}\"`} /></main>\n\t}\n\n\tconst allowedVersions = config.versions\n\t\t.filter(v => checkVersion(v.id, gen.minVersion, gen.maxVersion))\n\t\t.map(v => v.id as VersionId)\n\n\tuseTitle(locale('title.generator', locale(gen.id)), allowedVersions)\n\n\tif (!checkVersion(version, gen.minVersion)) {\n\t\tsetError(`The minimum version for this generator is ${gen.minVersion}`)\n\t}\n\tif (!checkVersion(version, undefined, gen.maxVersion)) {\n\t\tsetError(`This generator is not available in versions above ${gen.maxVersion}`)\n\t}\n\n\tconst searchParams = getSearchParams(getCurrentUrl())\n\tconst currentPreset = searchParams.get('preset')\n\tuseEffect(() => {\n\t\tif (model && currentPreset) {\n\t\t\tloadPreset(currentPreset).then(preset => {\n\t\t\t\tmodel?.reset(DataModel.wrapLists(preset), false)\n\t\t\t\tsetSeachParams({ version, preset: currentPreset })\n\t\t\t})\n\t\t}\n\t}, [currentPreset])\n\n\tconst [model, setModel] = useState<DataModel | null>(null)\n\tconst [blockStates, setBlockStates] = useState<BlockStateRegistry | null>(null)\n\tuseEffect(() => {\n\t\tsetError(null)\n\t\tsetModel(null)\n\t\tgetBlockStates(version)\n\t\t\t.then(b => setBlockStates(b))\n\t\tgetModel(version, gen.id)\n\t\t\t.then(async m => {\n\t\t\t\tAnalytics.setGenerator(gen.id)\n\t\t\t\tif (currentPreset) {\n\t\t\t\t\tconst preset = await loadPreset(currentPreset)\n\t\t\t\t\tm.reset(DataModel.wrapLists(preset), false)\n\t\t\t\t}\n\t\t\t\tsetModel(m)\n\t\t\t})\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version, gen.id])\n\n\tconst [dirty, setDirty] = useState(false)\n\tuseModel(model, () => {\n\t\tsetSeachParams({ version: undefined, preset: undefined })\n\t\tsetError(null)\n\t\tsetDirty(true)\n\t})\n\n\tconst [fileRename, setFileRename] = useState('')\n\tconst [fileSaved, doSave] = useActiveTimeout()\n\tconst [fileError, doFileError] = useActiveTimeout()\n\n\tconst doFileRename = () => {\n\t\tif (fileRename !== file?.id && fileRename && model && blockStates) {\n\t\t\tconst data = getOutput(model, blockStates)\n\t\t\tconst success = updateFile(gen.id, file?.id, { id: fileRename, data })\n\t\t\tif (success) {\n\t\t\t\tdoSave()\n\t\t\t} else {\n\t\t\t\tdoFileError()\n\t\t\t\tif (file) {\n\t\t\t\t\tsetFileRename(file?.id)\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (file) {\n\t\t\tsetFileRename(file?.id)\n\t\t}\n\t}\n\n\tconst deleteFile = () => {\n\t\tif (file) {\n\t\t\tupdateFile(gen.id, file.id, {})\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (file) {\n\t\t\tsetFileRename(file.id)\n\t\t}\n\t}, [file])\n\n\tuseEffect(() => {\n\t\tif (model) {\n\t\t\tsetFileRename(file?.id ?? '')\n\t\t\tif (file && gen.id === file.type) {\n\t\t\t\tmodel.reset(DataModel.wrapLists(file.data))\n\t\t\t}\n\t\t\tsetDirty(false)\n\t\t}\n\t}, [file, model])\n\n\tconst reset = () => {\n\t\tAnalytics.generatorEvent('reset')\n\t\tmodel?.reset(DataModel.wrapLists(model.schema.default()), true)\n\t}\n\tconst undo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('undo', 'Menu')\n\t\tmodel?.undo()\n\t}\n\tconst redo = (e: MouseEvent) => {\n\t\te.stopPropagation()\n\t\tAnalytics.generatorEvent('redo', 'Menu')\n\t\tmodel?.redo()\n\t}\n\n\tconst onKeyUp = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 'z') {\n\t\t\tAnalytics.generatorEvent('undo', 'Hotkey')\n\t\t\tmodel?.undo()\n\t\t} else if (e.ctrlKey && e.key === 'y') {\n\t\t\tAnalytics.generatorEvent('redo', 'Hotkey')\n\t\t\tmodel?.redo()\n\t\t}\n\t}\n\tconst onKeyDown = (e: KeyboardEvent) => {\n\t\tif (e.ctrlKey && e.key === 's') {\n\t\t\te.preventDefault()\n\t\t\tif (model && blockStates && file) {\n\t\t\t\tAnalytics.generatorEvent('save', 'Hotkey')\n\t\t\t\tconst data = getOutput(model, blockStates)\n\t\t\t\tupdateFile(gen.id, file?.id, { id: file?.id, data })\n\t\t\t\tsetDirty(false)\n\t\t\t\tdoSave()\n\t\t\t}\n\t\t}\n\t}\n\tuseEffect(() => {\n\t\tdocument.addEventListener('keyup', onKeyUp)\n\t\tdocument.addEventListener('keydown', onKeyDown)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keyup', onKeyUp)\n\t\t\tdocument.removeEventListener('keydown', onKeyDown)\n\t\t}\n\t}, [model, blockStates, file])\n\n\tconst [presets, setPresets] = useState<string[]>([])\n\tuseEffect(() => {\n\t\tgetCollections(version).then(collections => {\n\t\t\tsetPresets(collections.get(gen.id).map(p => p.slice(10)))\n\t\t})\n\t\t\t.catch(e => { console.error(e); setError(e.message) })\n\t}, [version, gen.id])\n\n\tconst selectPreset = (id: string) => {\n\t\tAnalytics.generatorEvent('load-preset', id)\n\t\tsetSeachParams({ version, preset: id })\n\t}\n\n\tconst loadPreset = async (id: string) => {\n\t\ttry {\n\t\t\tconst preset = await fetchPreset(version, gen.path ?? gen.id, id)\n\t\t\tconst seed = model?.get(new Path(['generator', 'seed']))\n\t\t\tif (preset?.generator?.seed !== undefined && seed !== undefined) {\n\t\t\t\tpreset.generator.seed = seed\n\t\t\t\tif (preset.generator.biome_source?.seed !== undefined) {\n\t\t\t\t\tpreset.generator.biome_source.seed = seed\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn preset\n\t\t} catch (e) {\n\t\t\tsetError(message(e))\n\t\t}\n\t}\n\n\tconst [sourceShown, setSourceShown] = useState(window.innerWidth > 820)\n\tconst [doCopy, setCopy] = useState(0)\n\tconst [doDownload, setDownload] = useState(0)\n\tconst [doImport, setImport] = useState(0)\n\n\tconst copySource = () => {\n\t\tAnalytics.generatorEvent('copy')\n\t\tsetCopy(doCopy + 1)\n\t}\n\tconst downloadSource = () => {\n\t\tAnalytics.generatorEvent('download')\n\t\tsetDownload(doDownload + 1)\n\t}\n\tconst importSource = () => {\n\t\tAnalytics.generatorEvent('import')\n\t\tsetSourceShown(true)\n\t\tsetImport(doImport + 1)\n\t}\n\tconst toggleSource = () => {\n\t\tAnalytics.generatorEvent('toggle-output', !sourceShown ? 'visible' : 'hidden')\n\t\tsetSourceShown(!sourceShown)\n\t\tsetCopy(0)\n\t\tsetDownload(0)\n\t\tsetImport(0)\n\t}\n\n\tconst [copyActive, copySuccess] = useActiveTimeout()\n\n\tconst [previewShown, setPreviewShown] = useState(false)\n\tconst hasPreview = HasPreview.includes(gen.id) && !(gen.id === 'worldgen/configured_feature' && checkVersion(version, '1.18'))\n\tif (previewShown && !hasPreview) setPreviewShown(false)\n\tlet actionsShown = 1\n\tif (hasPreview) actionsShown += 1\n\tif (sourceShown) actionsShown += 2\n\n\tconst togglePreview = () => {\n\t\tAnalytics.generatorEvent('toggle-preview', !previewShown ? 'visible' : 'hidden')\n\t\tsetPreviewShown(!previewShown)\n\t\tif (!previewShown && sourceShown) {\n\t\t\tsetSourceShown(false)\n\t\t}\n\t}\n\n\treturn <>\n\t\t<main class={previewShown ? 'has-preview' : ''}>\n\t\t\t<Ad id=\"data-pack-generator\" type=\"text\" />\n\t\t\t<div class=\"controls\">\n\t\t\t\t<div class={`project-controls ${file && 'has-file'}`}>\n\t\t\t\t\t<div class=\"btn-row\">\n\t\t\t\t\t\t<BtnMenu icon=\"repo\" label={project.name} relative={false}>\n\t\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('project.go_to')} onClick={() => route('/project')} />\n\t\t\t\t\t\t\t{file && <Btn icon=\"file\" label={locale('project.new_file')} onClick={closeFile} />}\n\t\t\t\t\t\t\t<SearchList searchPlaceholder={locale(project.name === 'Drafts' ? 'project.search_drafts' : 'project.search')} noResults={locale('project.no_files')} values={project.files.filter(f => f.type === gen.id).map(f => f.id)} onSelect={(id) => openFile(gen.id, id)} />\n\t\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t\t<TextInput class=\"btn btn-input\" placeholder={locale('project.unsaved_file')} value={fileRename} onChange={setFileRename} onEnter={doFileRename} onBlur={doFileRename} />\n\t\t\t\t\t\t{file && <Btn icon=\"trashcan\" tooltip={locale('project.delete_file')} onClick={deleteFile} />}\n\t\t\t\t\t</div>\n\t\t\t\t\t{dirty ? <div class=\"status-icon\">{Octicon.dot_fill}</div>\n\t\t\t\t\t\t: fileSaved ? <div class=\"status-icon active\">{Octicon.check}</div>\n\t\t\t\t\t\t\t: fileError && <div class=\"status-icon danger\">{Octicon.x}</div> }\n\t\t\t\t</div>\n\t\t\t\t<div class=\"generator-controls\">\n\t\t\t\t\t<Btn icon=\"upload\" label={locale('import')} onClick={importSource} />\n\t\t\t\t\t<BtnMenu icon=\"archive\" label={locale('presets')} relative={false}>\n\t\t\t\t\t\t<SearchList searchPlaceholder={locale('search')} noResults={locale('no_presets')} values={presets} onSelect={selectPreset}/>\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"tag\" label={locale(version)} tooltip={locale('switch_version')} data-cy=\"version-switcher\">\n\t\t\t\t\t\t{allowedVersions.reverse().map(v =>\n\t\t\t\t\t\t\t<Btn label={locale(v)} active={v === version} onClick={() => changeVersion(v)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t\t<BtnMenu icon=\"kebab_horizontal\" tooltip={locale('more')}>\n\t\t\t\t\t\t<Btn icon=\"history\" label={locale('reset')} onClick={reset} />\n\t\t\t\t\t\t<Btn icon=\"arrow_left\" label={locale('undo')} onClick={undo} />\n\t\t\t\t\t\t<Btn icon=\"arrow_right\" label={locale('redo')} onClick={redo} />\n\t\t\t\t\t</BtnMenu>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t\t<Tree {...{model, version, blockStates}} onError={setError} />\n\t\t</main>\n\t\t<div class=\"popup-actions\" style={`--offset: -${8 + actionsShown * 50}px;`}>\n\t\t\t<div class={`popup-action action-preview${hasPreview ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale(previewShown ? 'hide_preview' : 'show_preview')} onClick={togglePreview}>\n\t\t\t\t{previewShown ? Octicon.x_circle : Octicon.play}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-download${sourceShown ? ' shown' : ''} tooltipped tip-nw`} aria-label={locale('download')} onClick={downloadSource}>\n\t\t\t\t{Octicon.download}\n\t\t\t</div>\n\t\t\t<div class={`popup-action action-copy${sourceShown ? ' shown' : ''}${copyActive ? ' active' : ''} tooltipped tip-nw`} aria-label={locale(copyActive ? 'copied' : 'copy')} onClick={copySource}>\n\t\t\t\t{copyActive ? Octicon.check : Octicon.clippy}\n\t\t\t</div>\n\t\t\t<div class={'popup-action action-code shown tooltipped tip-nw'} aria-label={locale(sourceShown ? 'hide_output' : 'show_output')} onClick={toggleSource}>\n\t\t\t\t{sourceShown ? Octicon.chevron_right : Octicon.code}\n\t\t\t</div>\n\t\t</div>\n\t\t<div class={`popup-preview${previewShown ? ' shown' : ''}`}>\n\t\t\t<PreviewPanel {...{model, version, id: gen.id}} shown={previewShown} onError={setError} />\n\t\t</div>\n\t\t<div class={`popup-source${sourceShown ? ' shown' : ''}`}>\n\t\t\t<SourcePanel {...{model, blockStates, doCopy, doDownload, doImport}} name={gen.schema ?? 'data'} copySuccess={copySuccess} onError={setError} />\n\t\t</div>\n\t</>\n}\n","import config from '../../config.json'\nimport { ToolCard } from '../components'\nimport { useLocale, useTitle } from '../contexts'\nimport { cleanUrl } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Home({}: Props) {\n\tconst { locale } = useLocale()\n\tuseTitle(locale('title.home'))\n\treturn <main>\n\t\t<div class=\"home\">\n\t\t\t<ToolCard title=\"Data packs\">\n\t\t\t\t{config.generators.filter(g => !g.category).map(g => \n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t\t<ToolCard title={locale('worldgen')} link=\"/worldgen/\" />\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Resource packs\">\n\t\t\t\t{config.generators.filter(g => g.category === 'assets').map(g =>\n\t\t\t\t\t<ToolCard title={locale(g.id)} link={cleanUrl(g.url)} />\n\t\t\t\t)}\n\t\t\t</ToolCard>\n\t\t\t<ToolCard title=\"Report Inspector\" icon=\"report\"\n\t\t\t\tlink=\"https://misode.github.io/report/\"\n\t\t\t\tdesc=\"Analyse your performance reports\" />\n\t\t\t<ToolCard title=\"Minecraft Sounds\" icon=\"sounds\"\n\t\t\t\tlink=\"/sounds/\"\n\t\t\t\tdesc=\"Browse through and mix all the vanilla sounds\" />\n\t\t\t<ToolCard title=\"Data Pack Upgrader\"\n\t\t\t\tlink=\"https://misode.github.io/upgrader/\"\n\t\t\t\tdesc=\"Convert your data packs from 1.16 to 1.17 to 1.18\" />\n\t\t\t<ToolCard title=\"Technical Changelog\" link=\"/changelog/\" />\n\t\t</div>\n\t</main>\n}\n","import { useMemo } from 'preact/hooks'\nimport { Ad, TreeView } from '../components'\nimport { getFilePath, useLocale, useProject, useTitle } from '../contexts'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Project({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { project, openFile } = useProject()\n\tuseTitle(locale('title.project', project.name))\n\tconst entries = useMemo(() => project.files.map(getFilePath), project.files)\n\n\tconst selectFile = (entry: string) => {\n\t\tconst [, namespace, type, ...id] = entry.split('/')\n\t\topenFile(type, `${namespace}:${id}`)\n\t}\n\n\treturn <main>\n\t\t<Ad id=\"data-pack-project\" type=\"text\" />\n\t\t<div class=\"project\">\n\t\t\t<h2>{project.name}</h2>\n\t\t\t<div class=\"file-view\">\n\t\t\t\t<TreeView entries={entries} onSelect={selectFile}/>\n\t\t\t</div>\n\t\t</div>\n\t</main>\n}\n","import { useEffect, useRef, useState } from 'preact/hooks'\nimport config from '../../config.json'\nimport { Ad, Btn, BtnMenu, ErrorPanel, SoundConfig, TextInput } from '../components'\nimport { useLocale, useTitle, useVersion } from '../contexts'\nimport type { SoundEvents, VersionId } from '../services'\nimport { fetchSounds } from '../services'\nimport { hexId, message } from '../Utils'\n\ninterface Props {\n\tpath?: string,\n}\nexport function Sounds({}: Props) {\n\tconst { locale } = useLocale()\n\tconst { version, changeVersion } = useVersion()\n\tconst [error, setError] = useState<string | null>(null)\n\tuseTitle(locale('title.sounds'))\n\n\tconst [sounds, setSounds] = useState<SoundEvents>({})\n\tconst soundKeys = Object.keys(sounds ?? {})\n\tuseEffect(() => {\n\t\tfetchSounds(version)\n\t\t\t.then(setSounds)\n\t\t\t.catch(e => { console.error(e); setError(message(e)) })\n\t}, [version])\n\n\tconst [search, setSearch] = useState('')\n\tconst [configs, setConfigs] = useState<SoundConfig[]>([])\n\tconst addConfig = () => {\n\t\tsetConfigs([{ id: hexId(), sound: search, delay: 0, pitch: 1, volume: 1 }, ...configs])\n\t}\n\tconst editConfig = (id: string) => (changes: Partial<SoundConfig>) => {\n\t\tsetConfigs(configs.map(c => c.id === id ? { ...c, ...changes } : c))\n\t}\n\tconst deleteConfig = (id: string) => () => {\n\t\tsetConfigs(configs.filter(c => c.id !== id))\n\t}\n\n\tconst [delayedPlay, setDelayedPlay] = useState(0)\n\tconst playAll = () => {\n\t\tsetDelayedPlay(delayedPlay + 1)\n\t}\n\n\tconst download = useRef<HTMLAnchorElement>(null)\n\tconst downloadFunction = () => {\n\t\tconst hasDelay = configs.some(c => c.delay > 0)\n\t\tconst content = configs\n\t\t\t.sort((a, b) => a.delay - b.delay)\n\t\t\t.map(c => `${hasDelay ? `execute if score @s delay matches ${c.delay} run ` : ''}playsound minecraft:${c.sound} master @s ~ ~ ~ ${c.volume} ${c.pitch}`)\n\t\t\t.join('\\n')\n\t\tdownload.current.setAttribute('href', 'data:text/plain;charset=utf-8,' + content + '%0A')\n\t\tdownload.current.setAttribute('download', 'sounds.mcfunction')\n\t\tdownload.current.click()\n\t}\n\n\treturn <main>\n\t\t<Ad type=\"text\" id=\"sounds\" />\n\t\t{error && <ErrorPanel error={error} onDismiss={() => setError(null)} />}\n\t\t{soundKeys.length > 0 && <>\n\t\t\t<div class=\"controls sounds-controls\">\n\t\t\t\t<div class=\"sound-search-group\">\n\t\t\t\t\t<TextInput class=\"btn btn-input sound-search\" list=\"sound-list\" placeholder={locale('sounds.search')}\n\t\t\t\t\t\tvalue={search} onChange={setSearch} onEnter={addConfig} />\n\t\t\t\t\t<Btn icon=\"plus\" tooltip={locale('sounds.add_sound')} class=\"add-sound\" onClick={addConfig} />\n\t\t\t\t</div>\n\t\t\t\t{configs.length > 1 && <Btn icon=\"play\" label={ locale('sounds.play_all')} class=\"play-all-sounds\" onClick={playAll} />}\n\t\t\t\t<div class=\"spacer\"></div>\n\t\t\t\t<Btn icon=\"download\" label={locale('download')} tooltip={locale('sounds.download_function')} class=\"download-sounds\" onClick={downloadFunction} />\n\t\t\t\t<BtnMenu icon=\"tag\" label={version}>\n\t\t\t\t\t{config.versions.reverse().map(v =>\n\t\t\t\t\t\t<Btn label={v.id} active={v.id === version} onClick={() => changeVersion(v.id as VersionId)} />\n\t\t\t\t\t)}\n\t\t\t\t</BtnMenu>\n\t\t\t</div>\n\t\t\t<div class=\"sounds\">\n\t\t\t\t{configs.map(c => <SoundConfig key={c.id} {...c} {...{ sounds, delayedPlay }} onEdit={editConfig(c.id)} onDelete={deleteConfig(c.id)} />)}\n\t\t\t</div>\n\t\t\t<a ref={download} style=\"display: none;\"></a>\n\t\t</>}\n\t\t<datalist id=\"sound-list\">\n\t\t\t{soundKeys.map(s => <option key={s} value={s} />)}\n\t\t</datalist>\n\t</main>\n}\n","import type { RouterOnChangeArgs } from 'preact-router'\nimport { Router } from 'preact-router'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { Analytics } from './Analytics'\nimport { Header } from './components'\nimport { Category, Changelog, Generator, Home, Project, Sounds } from './pages'\nimport { cleanUrl } from './Utils'\n\nexport function App() {\n\tconst changeRoute = (e: RouterOnChangeArgs) => {\n\t\t// Needs a timeout to ensure the title is set correctly\n\t\tsetTimeout(() => Analytics.pageview(cleanUrl(e.url)))\n\t}\n\n\treturn <>\n\t\t<Header />\n\t\t<Router onChange={changeRoute}>\n\t\t\t<Home path=\"/\" />\n\t\t\t<Category path=\"/worldgen\" category=\"worldgen\" />\n\t\t\t<Category path=\"/assets\" category=\"assets\" />\n\t\t\t<Sounds path=\"/sounds\" />\n\t\t\t<Changelog path=\"/changelog\" />\n\t\t\t<Project path=\"/project\" />\n\t\t\t<Generator default />\n\t\t</Router>\n\t</>\n}\n","import { render } from 'preact'\nimport '../styles/global.css'\nimport '../styles/nodes.css'\nimport { App } from './App'\nimport { LocaleProvider, ProjectProvider, ThemeProvider, TitleProvider, VersionProvider } from './contexts'\n\nfunction Main() {\n\treturn <LocaleProvider>\n\t\t<ThemeProvider>\n\t\t\t<VersionProvider>\n\t\t\t\t<TitleProvider>\n\t\t\t\t\t<ProjectProvider>\n\t\t\t\t\t\t<App />\n\t\t\t\t\t</ProjectProvider>\n\t\t\t\t</TitleProvider>\n\t\t\t</VersionProvider>\n\t\t</ThemeProvider>\n\t</LocaleProvider>\n}\n\nrender(<Main />, document.body)\n"],"names":["Analytics","type","id","getElementById","remove","window","load","data-ea-publisher","data-ea-type","class","icon","label","active","clazz","tooltip","tooltipLoc","onClick","aria-label","Octicon","Analytics2","ID_SITE","ID_GENERATOR","category","action","index","value","pageview","page","setLanguage","language","setTheme","theme","setVersion","version","setPreview","preview","setGenerator","generator","generatorEvent","obj","dec2hex","dec","toString","substr","length","arr","Uint8Array","crypto","getRandomValues","Array","from","join","BigInt","Math","floor","random","Number","MAX_SAFE_INTEGER","model","seed","dimensions","get","Path","set","keys","forEach","s2","h","i","imul","charCodeAt","url","replaceAll","searchIndex","indexOf","slice","cleanUrl","trimmedUrl","getPath","replace","config","generators","find","g2","Map","split","map","param","decodeURIComponent","modifications","newPath","getCurrentUrl","searchParams","getSearchParams","entries","key","delete","search","encodeURIComponent","str","abs","hashString","a2","b","c","max","min","lerp","e","Error","message","deepClone","rfdc","constructor","isArray","deepEqual","valueOf","Object","prototype","hasOwnProperty","call","[object Object]","forward","backward","this","defaultValue","large","larger","doSelect","placeholder","dataList","onChange","onInput","value2","target","ref","useRef","current","select","dataListId","hexId","stopPropagation","list","cooldown","invert","initial","setActive","useState","timeout","setTimeout","size","draw","onDrag","onHover","onLeave","inputs","canvas","dragStart","dragRequest","dragPending","dragBusy","onMouseDown","offsetX","offsetY","onMouseMove","x","clientWidth","y2","clientHeight","dx","dy","requestAnimationFrame","async","dx2","dy2","onMouseUp","onMouseLeave","addEventListener","body","removeEventListener","redraw","redrawCount","ctx","getContext","width","height","img","getImageData","ownCount","putImageData","hider","invalidated","listener","addListener","removeListener","props","relative","children","useFocus","__spreadValues","Btn","__spreadProps","alert","xmlns","viewBox","fill-rule","d","archive","arrow_left","arrow_right","check","chevron_down","chevron_right","chevron_up","clippy","code","dash","device_desktop","dot_fill","download","duplicate","eye","eye_closed","file","file_directory","gear","globe","history","info","issue_opened","kebab_horizontal","link","link_external","mark_github","moon","play","plus","plus_circle","repo","sort_asc","sort_desc","square","square_fill","stack","sun","sync","tag","terminal","three_bars","trashcan","unfold","upload","x_circle","error","onDismiss","href","component","evt","fn","onKeyDown","onEnter","displayName","name","TextInput","BaseInput","v","NumberInput","RangeInput","values","onSelect","searchPlaceholder","noResults","setSearch","results","useMemo","terms","trim","filter","every","includes","t","BtnInput","Changelogs","fetch","json","Promise","all","group","groupIndex","versionIndex","text","entry","tags","substring","content","parseChangelog","order","change","fetchChangelog","parseVersion","flat","fetchGroup","article","match","isObject","localStorage","removeItem","caches","mcmetaUrl","dynamic","versionId","collectionTarget","blockStateTarget","versions","getItem","matches","cache","open","debug","promises","request","push","warn","deleteMatching","startsWith","setItem","fetchRegistries","fetchBlockStateMap","JSON","stringify","data","getData","mcmeta","register","properties","default","registry","cacheResponse","ok","fetchResponse","responseData","put","Response","VersionIds","Versions","Models","versionGetter","1.15","java15","1.16","java16","1.17","java17","1.18","java18","latest","CachedDecorator","CachedFeature","CachedCollections","scriptRel","collections","getCollections","blockStates","fetchData","schemas","getSchemas","minVersionId","maxVersionId","findIndex","minVersion","maxVersion","seen","__vitePreload","baseModule","deps","relList","document","createElement","supports","dep","isCss","endsWith","cssSelector","querySelector","rel","as","crossOrigin","head","appendChild","res","rej","then","Store","Store2","getLanguage","getTheme","getVersion","getIndent","getFormat","getSoundsVersion","getProjects","projects","parse","DRAFT_PROJECT","setIndent","indent","setFormat","format","setSoundsVersion","setProjects","Locale","createContext","lang","locale","changeLanguage","Locales","fallback","English","params","parseInt","resolveLocaleParams","en","langConfig","languages","__variableDynamicImportRuntime0__","schema","__variableDynamicImportRuntime1__","useContext","useCallback","localize","lang2","loadLocale","Provider","namespace","files","Project","project","changeProject","updateProject","updateFile","openFile","closeFile","projectName","setProjectName","p","fileId","setFileId","f","changeProjects","projects2","edits","newId","exists","some","gen","path","Theme","changeTheme","documentElement","setAttribute","theme2","Title","title","changeTitle","context","useLocale","setTitle","title2","titleVersions","Version","changeVersion","targetVersion","version2","has","ready","LAYERS","temperature","humidity","continentalness","erosion","weirdness","offset","factor","jaggedness","cacheState","biomeSourceCache","state","options","newState","octaves","shaper","toJson","FixedBiome","biome","shift","scale","numBiomes","biomes","_y","z","node","preset","NetherPreset18","NetherPreset","fetchPreset","biome_source","OverworldPreset18","DataModel","unwrapLists","init","wasm","loadWasm","BiomeIds","BiMap","t0","t1","h0","h1","c0","c1","e0","e1","w0","w1","d0","d1","o","depth","parameters","getOrPut","biome_parameters","Float64Array","Int32Array","sampler","climate_sampler","firstOctave","amplitudes","ids","multi_noise","getA","getBiomes","xFrom","xTo","xStep","yFrom","yTo","yStep","zFrom","zTo","zStep","climate","climate_noise","w","layers","result","point","TerrainShaper","noise","config2","clamp","NormalNoise","LegacyRandom","n","n2","sample","minDist","Infinity","minBiome","dist","altitude","getBiomeSource","biomeSource","biomeColors","color","VanillaColors","stringToColor","minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:old_growth_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:old_growth_pine_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_hills","minecraft:gravelly_mountains","minecraft:windswept_gravelly_hills","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:sparse_jungle","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:extreme_hills","minecraft:mountains","minecraft:windswept_hills","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:windswept_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:snowy_plains","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:stony_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:old_growth_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_badlands","minecraft:wooded_hills","minecraft:wooded_mountains","minecraft:windswept_forest","minecraft:snowy_slopes","minecraft:lofty_peaks","minecraft:jagged_peaks","minecraft:snowcapped_peaks","minecraft:frozen_peaks","minecraft:stony_peaks","minecraft:grove","minecraft:meadow","minecraft:lush_caves","minecraft:dripstone_caves","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","terrain","featureColors","placements","features","biomeInfoNoise","PerlinNoise","fork","seaLevel","nextFloat","nextInt","nextGaussian","sqrt","log","cos","PI","base","spread","normalize","min_inclusive","max_inclusive","sampleInt","source","normal","mean","deviation","totalWeight","distribution","reduce","sum","weight","checkVersion","placement","fill","pos","feature","j","anchor","_ctx","absolute","above_bottom","below_top","useFeature","featureFn","Features","decorator2","decoratorFn","Decorators","decorated","getPositions","decorator","getPlacements","random_boolean_selector","feature_true","feature_false","random_selector","chance","simple_random_selector","count","count_extra","extra_chance","extra_count","count_multilayer","count_noise","noise_level","below_noise","above_noise","count_noise_biased","noise_factor","ceil","noise_offset","noise_to_count_ratio","dark_oak_tree","_config","_","outer","flatMap","inner","depth_average","decorateY","baseline","emerald_ore","fire","glowstone","heightmap","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range","maximum","top_offset","bottom_offset","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","surface_relative_threshold","water_lake","positions","modifier","PlacementModifiers","pos2","count_on_every_layer","environment_scan","height_range","resolveAnchor","n1","plateau","sampleHeight","in_square","noise_based_count","noise_threshold_count","random_offset","xz_spread","y_spread","rarity_filter","minLimitPerlinNoise","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","settings","xOffset","chunkWidth","size_horizontal","chunkHeight","size_vertical","chunkCountY","amplified","biomeDepth","biomeScale","noiseColumnCache","cx","ox","noise1","fillNoiseColumn","noise2","yy","oy","d2","cachedColumn","xzScale","sampling","xz_scale","yScale","y_scale","xzFactor","xz_factor","yFactor","y_factor","randomDensity","random_density_offset","getRandomDensity","sampleAndClampNoise","getOctaveNoise","zo","falloff","density_factor","density_offset","top_slide","clampedLerp","bottom_slide","x2","wrap","y22","z2","minLimitNoise","maxLimitNoise","mainNoise","colors","minecraft:air","minecraft:water","minecraft:lava","minecraft:stone","minecraft:deepslate","minecraft:bedrock","minecraft:grass_block","minecraft:dirt","minecraft:gravel","minecraft:sand","minecraft:sandstone","minecraft:netherrack","minecraft:crimson_nylium","minecraft:warped_nylium","minecraft:basalt","minecraft:end_stone","generatorCache","chunkCache","NoiseGeneratorSettings","fromJson","NoiseChunkGenerator","getCached","LevelSlice","minY","generate","generator2","data2","state2","getBlockState","getName","OldNoiseChunkGenerator","reset","row","iterateNoiseColumn","reverse","getColor","minX","done","chunks","cached","Chunk","ChunkPos","create","Z","forcedBiome","chunk","buildSurface","chunkIndex","OverworldShaper","overworld","BiomeSourcePreview","shown","setScale","focused","setFocused","setLayers","Set","refineTimeout","legacyRandomSource","getOctaves","terrain_shaper","getShaper","calculateState","useCanvas","round","oz","col","xRange","zRange","l2","getClimates","worldX","worldZ","getBiomeColor","getBiome","brightness","biomeMap","xx","zz","toWorld","getClimate","changeScale","newScale","BtnMenu","enabled","newSeed","k","toUpperCase","toFixed","DecoratorPreview","setSeed","randomSeed","NoisePreview","NoiseParameters","NoiseSettingsPreview","setBiome","setBiomeScale","setBiomeDepth","autoScroll","setAutoScroll","scrollInterval","worldY","min_y","block","minBlockX","maxBlockX","BlockPos","getNoiseBlock","setInterval","allBiomes","HasPreview","setCount","hook","transformOutput","ModelPath","switchNode","getOwnPropertySymbols","blockState","validation","validator","relativePath","getActiveFields","activeFields","out","INDENT","2_spaces","4_spaces","tabs","minified","FORMATS","yaml","dump","flowLevel","doCopy","doDownload","doImport","copySuccess","onError","retransform","onImport","editor","getSerializedOutput","model2","blockStates2","getOutput","output","getSession","setValue","getValue","wrapLists","brace","edit","setOptions","fontSize","showFoldWidgets","highlightSelectedWord","$blockScrolling","on","setMode","setOption","clipboard","writeText","click","selectAll","data-cy","changeIndent","changeFormat","style","mapper","getter","setter","silent","selectRegistries","hiddenFields","flattenedFields","inlineFields","nbtFields","fixedLists","collapsedFields","keysModel","MapNode","StringNode","historyMax","prefix","suffix","renderHtml","data-category","boolean","states","BooleanSuffix","choices","choice","activeCase","contextPath","getModel","getArray","choiceContextPath","choiceContext","inject","c2","def","newValue","pathLocale","contextPush","expand","collapse","isToggled","useToggles","maxShown","setMaxShown","maxLength","ErrorPopup","modelPush","cValue","cId","cPath","canToggle","toggle","nested","Collapsed","MemoedTreeNode","actions","splice","disabled","keyPath","keysSchema","enum","last","errors","add","ObjectNode","fromEntries","cSchema","number","NumberSuffix","getChildModelPath","isDecorated","wrapper","fields","originalFields","decorators","iterateNestedDecorators","ListNode","featurePath","decoratorsPath","ModelWrapper","path2","modelArr","equals","newDecorators","feature2","produceNestedDecorators","createDecoratorsWrapper","optional","onExpand","onCollapse","toggled","newCtx","pools","loot","child","context2","cPrefix","cSuffix","cBody","isFlattened","isInlined","HelpPopup","string","StringSuffix","toggleState","setToggleState","toggleAll","setToggleAll","ctrlKey","integer","parsed","parseFloat","onBlur","padStart","getValues","isEnum","pool","additional","datalistId","findGenerator","values2","memo","onContextMenu","preventDefault","a","description","navigator","prev","next","hash","withModel","getAll","e2","message2","popupIcon","popup","useErrorBoundary","setState","FullNode","Themes","system","dark","light","useVersion","useTitle","getGenerator","Link","Icons","home","route","th","rx","y","report","sounds","cy","r","clip-rule","sound","delay","pitch","volume","onEdit","onDelete","delayedPlay","loading","setLoading","playing","setPlaying","invalid","setInvalid","howls","command","soundEvent","h2","stop","soundPath","howl","Howl","src","rate","completed","copyActive","setCopyActive","copyTimeout","spellcheck","step","desc","roots","groups","root","leaves","hidden","setHidden","entries2","TreeViewEntry","TreeView","ToolCard","setError","changelogs","setChangelogs","changelogs2","catch","setTags","toggleTag","filteredChangelogs","query","q2","toLowerCase","sort","setSort","sortedChangelogs","Ad","ErrorPanel","Tag","Change","activeTags","ArticleLink","dangerouslySetInnerHTML","__html","marked","useProject","errorBoundary","errorRetry","allowedVersions","currentPreset","setModel","setBlockStates","versionData","Reference","ChoiceNode","schemaName","validate","err","m","loadPreset","dirty","setDirty","fileRename","setFileRename","fileSaved","doSave","useActiveTimeout","fileError","doFileError","doFileRename","onKeyUp","undo","redo","presets","setPresets","sourceShown","setSourceShown","innerWidth","setCopy","setDownload","setImport","previewShown","setPreviewShown","hasPreview","actionsShown","SearchList","Tree","PreviewPanel","SourcePanel","getFilePath","setSounds","soundKeys","configs","setConfigs","addConfig","deleteConfig","setDelayedPlay","hasDelay","SoundConfig","changes","Header","Router","Home","Category","Sounds","Changelog","Generator","LocaleProvider","ThemeProvider","VersionProvider","TitleProvider","ProjectProvider","App","render","Main"],"mappings":"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"} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html index 211d6740..adcf62b6 100644 --- a/assets/index.html +++ b/assets/index.html @@ -17,11 +17,11 @@ </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Assets Generators Minecraft 1.17, 1.18, latest + Assets Generators Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/assets/model/index.html b/assets/model/index.html index 16ee7f62..51448956 100644 --- a/assets/model/index.html +++ b/assets/model/index.html @@ -17,11 +17,11 @@ - Model Generator Minecraft 1.17, 1.18, latest + Model Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/assets/vendor.50c0a5f7.js.map b/assets/vendor.50c0a5f7.js.map deleted file mode 100644 index 58e2e37a..00000000 --- a/assets/vendor.50c0a5f7.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vendor.50c0a5f7.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/brace/index.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/mode/yaml.js","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {},\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n })));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
\");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"
\"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"
\"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
\"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"
\"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
\"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
\"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
\");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
\"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"\",\n \"
\"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
\"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
\");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
'\n        + (escaped ? code : escape(code, true))\n        + '
\\n';\n }\n\n return '
'\n      + (escaped ? code : escape(code, true))\n      + '
\\n';\n }\n\n blockquote(quote) {\n return '
\\n' + quote + '
\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","$0","$1","$2","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","remaining","strLen","parsed","blitBuffer","byteArray","asciiToBytes","units","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","swap16","swap32","swap64","slowToString","inspect","INSPECT_MAX_BYTES","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","aStr","bStr","runHi","pivot","pivotIndex","hint","lastOffset","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","dest","count1","count2","customCursor","customDest","alphabeticalCompare","makeAscendingRun","TimSort","minRun","minRunLength","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","move_comments","remove_comments","begin","item_length","CommentArray","items_length","source_index","real_source_index","mapped","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","tt2","started","parse_object","parse_array","negative","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\\","quote","process_comments","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","one","two","gap","trimRight","join_content","object_stringify","after_comma","sv","AFTER_COLON","holder","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","collectType","compileMap","Schema","DEFAULT","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","toISOString","NodeBuffer","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","_function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","ESCAPE_SEQUENCES","7","10","11","12","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","moreIndented","lineRe","nextLF","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","displayName","isReactComponent","__f","isPureReactComponent","E","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","performance","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","langPrefix","mangle","pedantic","sanitize","sanitizer","smartLists","smartypants","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_inactiveSound","soundId","_loadQueue","seek","_seek","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","linearRampToValueAtTime","_startFadeInterval","isGroup","stepLen","lastTick","_fadeTo","tick","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","events","isId","task","_drain","cnt","_panner","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","__default","loadBuffer","atob","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","spacers","hasMultipleLineBreaks","pre","def","splitCells","align","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","itemBody","checkbox","renderers","tablecell","tablerow","listitem","marked","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"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ACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aA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b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,cAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCngBD7P,iBAAwB,aAAc,CAAErM,OAAO,wBAC1BmS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNgK,EAAS3M,0BACgB,CAC3BolB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B7xB,KAAM,sBACN8xB,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eA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BACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,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AS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnS,OAAOsC,eAAewW,GAAS,aAAc,CAAE7iB,OAAO,mCACrB,EACjC,MAAM8iB,GAAStT,6BACf,SAAgC8I,EAASO,SAC/BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/Ckf,EAAkBjV,GAAO3N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAMya,GAAOrG,IAAIJ,EAAU,qBAC3BjH,eAAmBvH,EAAIiC,SAAoF,UA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sBAAsBskB,GAAaxd,IAMnC,yBALA,iBACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnS,OAAOsC,eAAewW,GAAS,aAAc,CAAE7iB,OAAO,mCACrB,EACjC,MAAM8iB,GAAStT,6BACf,SAAgC8I,EAASO,SAC/BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/Ckf,EAAkBjV,GAAO3N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAMya,GAAOrG,IAAIJ,EAAU,qBAC3BjH,eAAmBvH,EAAIiC,SAAoF,UAAnD,UAAVzO,EAAE,UAAuB,IAAPwM,OAAgB,EAASA,EAAGwP,iBAA8B,IAAPvN,EAAgBA,EAAM,KAE7I,CACIhT,KAAM,OACNuL,KAAMya,GAAOvP,SAAS8I,EAAU,cAChCjH,UAAa,CAAC,CACN8U,UAAW,8BACX7M,UAAWhc,MAGxB,CAAExD,QAAS,iBACNqe,SAAS,cAAe4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACzD2G,QAASH,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC7C4G,KAAMJ,GAAOxG,WAAW,CACpB6C,KAAM/C,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DyG,IAAKsD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE3U,KAAM,gBAEzHymB,MAAO9G,EAAU,kBACjB+G,YAAa/G,EAAU,kBACvBgH,WAAYP,GAAOrG,IAAIL,KACvBkH,MAAOR,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,CAAC,OAAQ,YAAa,WAC3D6K,WAAYT,GAAOrG,IAAIqG,GAAO3P,eAC9BqQ,iBAAkBV,GAAOrG,IAAIqG,GAAO3P,eACpCsQ,OAAQX,GAAOrG,IAAIqG,GAAO3P,iBAC1B,CACAnM,QAAS,KAAO,CACZkc,KAAM,CACF/D,KAAM,mBAEVgE,MAAO,GACPC,YAAa,QAGrBM,OAAQZ,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACvE4K,SAAUb,GAAOrN,QAAQ2G,IAAcC,EAAU,yBACjDuH,aAAcd,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAOvP,SAAS6I,OAEzDyH,QAASf,GAAOrG,IAAIqG,GAAOxG,WAAW,CAClCwH,SAAUhB,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACzEgL,KAAMjB,GAAOrG,IAAIqG,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBACrF+H,QAASgC,GAAOrG,IAAIqG,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxFiL,WAAYlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,SAEzD,CAAEjY,QAAS,gBAAkB,CAC5BmJ,QAAS,KAAO,CACZ2c,SAAU,CACNM,YAAa,CACTC,QAAS,8BAKjBhI,SAAS,uBAAwB4G,GAAOxG,WAAW,CACvD4H,QAAS9H,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,0BAC7EqW,WAAYrB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrCwF,OAAQgB,GAAO7P,IAAI8kB,EAAiB,CAChC1lB,WAAsD,yBAArCjL,EAAKsF,MAAMhQ,KAAK,WAAWoR,SAE/CgV,GAAOlM,QAAS,CAAC,MAAO,CAAEla,KAAM,aAChComB,GAAOjM,MAAO,CACXuN,+BAAgC,CAC5BlH,MAAO4F,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEsL,gBAAiBvB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACzDqJ,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BiI,yBAA0B,CACtBZ,OAAQqU,EACRxT,QAASwT,EACTvT,MAAOuT,GAEXtT,0BAA2B,CACvBlF,OAAQuD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAE3E2L,8BAA+B,CAC3BpV,KAAMwT,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACrE4L,GAAI7B,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEvE6L,gCAAiC,CAC7BC,QAAS/B,GAAOrG,IAAIqG,GAAOvP,SAASwkB,KAExCjT,6BAA8B,CAC1BpI,MAAOL,EAAU,eAErB0I,yBAA0B,CACtB5F,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/B2I,kCAAmC,CAC/BC,SAAU8S,EACV7S,OAAQ6S,GAEZ5S,4BAA6B,CACzBpD,QAASe,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmB+J,GAAOxG,WAAW,CACxH0E,UAAW3E,EAAU,cACrB4E,SAAU5E,EAAU,kBAExB0Q,OAAQjK,GAAOrG,IAAIsb,IAEvB3S,wBAAyB,CACrBlI,MAAO4F,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE/W,MAAO8gB,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,IAAcA,IAAc,CAAE1G,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE3U,KAAM,gBAE7I2oB,2BAA4B,CACxB3F,OAAQrD,EAAU,cAClB8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BiJ,+BAAgC,CAC5BC,OAAQzC,GAAOrG,IAAIJ,EAAU,sBAEjCmJ,iCAAkC,CAC9BjI,OAAQwa,EACRtS,aAAc3C,GAAOrG,IAAIJ,EAAU,6BAEvC09B,6BAA8B,CAC1BC,eAAgBl3B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnCqJ,0BAA2B,CACvBvG,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BsJ,+BAAgC,CAC5BpI,OAAQwa,EACR5Y,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BuJ,gCAAiC,CAC7Bhe,SAAUkb,GAAOrG,IAAIJ,EAAU,wBAEnCwJ,8BAA+B,CAC3BC,MAAOhD,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChCyJ,MAAO1J,EAAU,cACjB2J,SAAU3J,EAAU,cACpB4J,KAAM5J,EAAU,iBAEpB6J,MAAOpD,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,qBAEhD8J,oCAAqC,CACjCC,MAAO/J,EAAU,cACjBiD,WAAYjD,EAAU,cACtB8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/B2b,+BAAgC,CAC5B7Y,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BzU,SAAUkb,GAAOrG,IAAIJ,EAAU,wBAEnCgK,+BAAgC,CAC5BC,oBAAqBjK,EAAU,cAC/BwI,QAAS/B,GAAOrG,IAAIqG,GAAOvP,SAASwkB,KAExCxR,uBAAwB,CACpBhF,SAAUuB,GAAOrG,IAAIJ,EAAU,uBAC/B4E,SAAU5E,EAAU,eAExB4wB,6BAA8B,CAC1BC,UAAWnV,EACXoV,UAAWpV,GAEfvR,qBAAsB,CAClB5e,SAAUkb,GAAOrG,IAAIJ,EAAU,wBAEnCoK,0BAA2B,CACvBuzB,eAAgBl3B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnCuK,yBAA0B,CACtB1J,MAAO4F,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtE/W,MAAO8gB,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,IAAcA,IAAc,CAAE1G,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE3U,KAAM,eACzIyiB,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BzU,SAAUkb,GAAOrG,IAAIJ,EAAU,wBAEnC4b,4CAA6C,CACzCC,WAAY9b,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAEpE8N,+BAAgC,CAC5BtB,OAAQzC,GAAOrG,IAAIJ,EAAU,qBAC7BkB,OAAQwa,GAEZI,0CAA2C,CACvChZ,KAAM2D,GAAOrG,IAAIJ,EAAU,mBAC3BkB,OAAQwa,GAEZjR,iCAAkC,CAC9BvJ,OAAQwa,EACRtS,aAAc3C,GAAOrG,IAAIJ,EAAU,6BAEvC0K,4BAA6B,CACzBC,OAAQ5K,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAEhEkhC,gCAAiC,CAC7BD,eAAgBl3B,GAAOrG,IAAIJ,EAAU,uBACrCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,wBAEnC6K,yBAA0B,CACtBtf,SAAUkb,GAAOrG,IAAIJ,EAAU,wBAEnC8K,6BAA8B,CAC1BjK,MAAO4F,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE1EqO,0BAA2B,CACvBjI,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BgL,4BAA6B,CACzB9J,OAAQwa,GAEZzQ,wBAAyB,CACrB/J,OAAQwa,GAEZK,uBAAwB,CACpBC,WAAYN,EACZO,QAASP,EACTQ,gBAAiBlc,EAAU,eAE/Bmc,4CAA6C,CACzCjb,OAAQuF,GAAOrG,IAAIJ,EAAU,qBAC7B8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BkL,2BAA4B,CACxBhG,SAAUuB,GAAOrG,IAAIJ,EAAU,kBAEnCmL,uBAAwB,CACpBrI,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/B+wB,uBAAwB,CACpBjuB,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BoL,2BAA4B,CACxBxC,SAAUnC,GAAOrG,IAAIJ,EAAU,qBAC/B8C,KAAM2D,GAAOrG,IAAIJ,EAAU,oBAE/BqL,4BAA6B,CACzB9f,SAAUkb,GAAOrG,IAAIJ,EAAU,0BAGxC,CAAExe,QAAS,gBACf,CAAEuU,SAAU,YAAavU,QAAS,gCClPzCkM,OAAOsC,eAAesb,GAAS,aAAc,CAAE3nB,OAAO,6BAC3B,EAC3B,MAAM8iB,GAAStT,uBACf,SAA0B8I,EAASO,MACNR,UAAU/S,UAAK,EAAWgT,SAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/C+O,EAAM,CAACnrB,EAAQgX,EAAKnN,IAAQwc,GAAOvP,SAASuP,GAAO1M,WAAW,CAAE3C,IAAAA,EAAKnN,IAAAA,IAAQ,CAAEoN,UAAWjX,EAAQkX,UAAWlX,IAC7GorB,EAAU/E,GAAO3N,WAAW,CAC9B,CACIrY,KAAM,QACNkJ,MAAQ3E,GAAmB,iBAANA,GAAkBA,EAAEgM,WAAW,KACpDhF,KAAM+T,IACNhH,OAAS/T,GAAmB,iBAANA,EAAiB,IAAIA,IAAM,MAErD,CACIvE,KAAM,YACNkJ,MAAQ3E,GAAmB,iBAANA,EACrBgH,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAC1D3D,OAAS/T,GAAmB,iBAANA,EAAiBA,EAAEX,QAAQ,KAAM,IAAM,KAElE,CAAEoc,cAAe,cACZZ,SAAS,QAAS4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACnDoH,OAAQZ,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvE+O,iBAAkBhF,GAAOrG,IAAIqG,GAAO3P,eACpC4U,UAAWjF,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,eACzCsP,SAAUlF,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,IAAcyL,IAClDI,SAAUnF,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAOxG,WAAW,CACnDhN,KAAMsY,EAAI,MAAQ,IAClBjD,GAAIiD,EAAI,MAAQ,IAChBM,SAAUpF,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnC6L,OAAQP,EAAI,GACZQ,KAAMhM,EAAW,CAAE1D,KAAM,SACzB2P,MAAOvF,GAAOwF,WAAW,CAAEnS,OAAQ,WAAa,EAAG,KAAM,MACzDoS,QAASzF,GAAOrG,IAAIqG,GAAO3P,kBAE/BqV,MAAO1F,GAAOrG,IAAIqG,GAAO3P,eACzBsV,MAAO3F,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,cAAgBoK,GAAOxG,WAAW,CACvEoM,QAASb,EACTc,GAAI7F,GAAOrG,IAAImL,EAAI,IACnBgB,SAAU9F,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,eACxCwP,SAAUpF,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KAClD+S,UAAW/F,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,SAExD,CAAEjY,QAAS,oBACdolB,QAASH,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,qBAAuBoK,GAAOxG,WAAW,CAC3F4L,SAAUN,EAAI,GACdkB,YAAalB,EAAI,MAAQ,IACzBmB,MAAOnB,EAAI,KAAO,IACnB,CAAE/pB,QAAS,qBACdmrB,UAAWlG,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAOxG,WAAW,CACpDe,UAAWyF,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,0BAA4BoK,GAAO1M,cAChF9I,MAAO8O,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAC5D,CAAElb,QAAS,sBACf,CAAEA,QAAS,UAAY,CACtBmJ,QAAS,KAAO,CACZ0c,OAAQ,2BACRsE,SAAU,CACNiB,OAAQ,0CCzDxBlf,OAAOsC,eAAe6c,GAAS,aAAc,CAAElpB,OAAO,uCACjB,EACrC,MAAM8iB,GAAStT,iCACf,SAAoC8I,EAASO,SACnCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,mBAAoB4G,GAAO7P,IAAI6P,GAAO3N,WAAW,CAC9D,CACIrY,KAAM,WACNkJ,MAAQ3E,QAAqB,IAAfA,EAAE8nB,SAChB9gB,KAAMya,GAAOxG,WAAW,CACpB6M,SAAUrG,GAAOrN,QAAQ2G,IAAcC,EAAU,oBAErDjH,OAAS/T,IAAO,CAAE8nB,SAAU,CAAE,GAAI,OAEtC,CACIrsB,KAAM,YACNkJ,MAAQ3E,QAAsB,IAAhBA,EAAE+nB,UAChB/gB,KAAMya,GAAOxG,WAAW,CACpB8M,UAAWtG,GAAOvP,SAASuP,GAAOxG,WAAW,CACzC+M,KAAMvG,GAAOrG,IAAIJ,EAAU,wBAC3BiN,MAAOjN,EAAU,sBAGzBjH,OAAS/T,IAAO,CAAE+nB,UAAW,CAAEC,KAAM,GAAIC,MAAO,QAErD,CAAEzrB,QAAS,qBAAuB,CACjCmJ,QAAS,KAAO,CACZmiB,SAAU,CACN,GAAI,CACA7b,MAAO,qCAKjBic,EAAkB,CACpBjc,MAAO8O,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAC3DhZ,EAAG+iB,GAAOrG,IAAIqG,GAAOwF,WAAW,CAAExS,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QACtEtW,EAAGijB,GAAOrG,IAAIqG,GAAOwF,WAAW,CAAExS,SAAS,EAAMK,OAAQ,CAAC,EAAG,GAAI,IAAK,QACtEqT,OAAQ1G,GAAOrG,IAAIqG,GAAO3P,kBAEtB+I,SAAS,gBAAiB4G,GAAO3N,WAAW,CAChD,CACIrY,KAAM,SACNuL,KAAMya,GAAOxG,WAAWiN,GACxBnU,OAAS/T,GAAM1B,MAAMC,QAAQyB,IAAMA,EAAE5E,OAAS,EAAI4E,EAAE,GAAM,IAE9D,CACIvE,KAAM,OACNuL,KAAMya,GAAOvP,SAASuP,GAAOxG,WAAWpJ,OACjCqW,GADiC,CAEpCE,OAAQ3G,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,OAC5D,CAAE5V,QAAS,mBACduX,OAAS/T,GAAM,CAAC2R,GAAEyW,OAAQ,GAAMpoB,MAErC,CAAExD,QAAS,qBACNqe,SAAS,sBAAuB4G,GAAO3N,WAAW,CACtD,CACIrY,KAAM,SACN4X,YACA1O,MAAO,KAAM,EACbqC,KAAMya,GAAOrN,QAAQ2G,IAAcA,KACnChH,OAAS/T,GAAmB,iBAANA,GAAkB1B,MAAMC,QAAQyB,MAAAA,OAA6B,EAASA,EAAEqoB,KAAOroB,EAAEqoB,GAAGjtB,OAAS,EAAI4E,EAAEqoB,GAAG,GAAM,IAEtI,CACI5sB,KAAM,KACNkJ,MAAQ3E,GAAmB,iBAANA,QAAmE,kBAAnB,EAASA,EAAEqoB,IAChFrhB,KAAMya,GAAOxG,WAAW,CACpBoN,GAAI5G,GAAOvP,SAAS8I,EAAU,0BAElCjH,OAAS/T,IAAO,CAAEqoB,GAAI,CAACroB,MAAAA,EAA6BA,EAAI,QAE7D,CAAExD,QAAS,0BCxElBkM,OAAOsC,eAAesd,GAAS,aAAc,CAAE3pB,OAAO,8BAC1B,EAC5B,MAAM4pB,GAAUpa,GACVqa,GAAoBpa,wBAC1B,SAA2B6I,EAASO,MACdiR,2BAA2BxR,EAASO,MAC9CkR,iBAAiBzR,EAASO,kCCN/BxM,iBAAwB,aAAc,CAAErM,OAAO,wBAC1BmS,MAAcA,iBAAyBA,cAAsBA,gBAAwBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,gBAAwBA,sBAAyB,QACxRgK,EAAS3M,0BACgB,CAC3BolB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,kCACZ8X,MAAO,EACPlX,OAAQ,4BAEmB,CAC3BX,kCACAC,uBAAwB,EACxBC,UAAW,GACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,mBAEVsa,cAAe,CACXra,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVqZ,MAAO,CACHyX,UACAlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACAW,UAAW,CACPjuB,gBACAkuB,KAAM,EACNhpB,OAAQ,GAEZipB,aAAc,CACVnuB,OAAQ,SACRkuB,KAAM,EACNhpB,OAAQ,GAEZ0oB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,KAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,iCAEW3hB,EAASO,SAC1BuD,EAAaD,EAAO3D,WAAWlT,UAAK,EAAWuT,GAC/CwD,EAAYF,EAAO9D,UAAU/S,UAAK,EAAWgT,KAC3C4D,SAAS,cAAeC,EAAOlJ,IAAIkJ,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DyD,WAAYL,EAAOM,IAAIN,EAAO1G,QAAQ2G,IAAcA,IAAc,CAAE1G,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE3U,KAAM,eAC/I,CAAEmB,QAAS,gBAAkB,CAC5BmJ,QAAS,KAAO,CACZuV,KAAM,yBAGNL,SAAS,cAAeC,EAAOlJ,IAAIkJ,EAAOG,WAAW,CACzDC,KAAMH,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC1DyD,WAAYL,EAAOM,IAAIN,EAAO1G,QAAQ2G,IAAcA,OACrD,CAAEve,QAAS,gBAAkB,CAC5BmJ,QAAS,KAAO,CACZuV,KAAM,kBACNC,WAAY,CACRE,MAAS,YAIbR,SAAS,YAAaC,EAAOlJ,IAAIkJ,EAAO5I,SAAS4I,EAAO/F,WAAW,CAAEN,SAAS,IAAS,CAAEpC,UAAW,EAAGC,UAAW,IAAM,CAC5H3M,QAAS,IAAM,CAAC,EAAG,EAAG,YAEpBymC,EAAU33B,GAAYqG,EAAOM,IAAIN,EAAOhH,WAAW,CACrD,CACIrY,KAAM,SACNuL,KAAM8T,EAAO/F,WAAW,CAAEN,QAAAA,IAC1BV,OAAS/T,QAAYwM,EAAIiC,cAAiB,IAANzO,EAAkB,EAAmE,UAAxC,UAAXA,EAAEoS,WAAwB,IAAP5F,EAAgBA,EAAKxM,EAAEiF,WAAwB,IAAPwJ,EAAgBA,EAAK,IAE1J,CACIhT,KAAM,SACNuL,KAAM8T,EAAOG,WAAW,CACpB7I,IAAK0I,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,QAAAA,KACpCxP,IAAK6V,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,QAAAA,MACrC,CAAEjY,QAAS,UACduX,OAAS/T,IAAO,CACZoS,IAAKpS,MAAAA,EAA6BA,EAAI,EACtCiF,IAAKjF,MAAAA,EAA6BA,EAAI,UAI1C6a,SAAS,aAAcuxB,GAAO,MAC9BvxB,SAAS,eAAgBuxB,OACzBvxB,SAAS,YAAaC,EAAOhH,WAAW,CAC5C,CACIrY,KAAM,SACNuL,KAAM8T,EAAOG,WAAW,CACpB7I,IAAK0I,EAAOM,IAAIJ,EAAU,oBAC1B/V,IAAK6V,EAAOM,IAAIJ,EAAU,uBAGlC,CACIvf,KAAM,SACNuL,KAAM8T,EAAO/F,WAAW,CAAEN,SAAS,MAExC,CAAEjY,QAAS,iBACR6vC,EAAiB,CAAC30B,EAAM40B,EAAYC,EAAYC,EAAeC,EAAejwC,EAASwW,SACrF05B,EAAc,GACdD,UACOt4B,KAAKnB,EAAMy5B,IAAgBvrC,eAClBlD,GAAK8c,EAAOlJ,IAAIoB,EAAMy5B,GAAezuC,GAAI,CACjDgT,gBAA6C,IAA5BjL,EAAK1K,KAAK,QAAQoR,iBAIzCk6B,EAAW7rB,EAAOG,WAAWtJ,GAC/BlW,KAAMqf,EAAOlJ,IAAIkJ,EAAOM,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAAA,MAAY,CAClF0K,OAAQ,KAAM,KAEjBtH,EAAOvF,QAAS,CAAC,CAAEla,KAAM,UACzByf,EAAOtF,MAAOxC,GACZ05B,GACJ,CAAElwC,QAAAA,EAAS4Z,sBAAsB,IAC9B3C,EAAU,CAAC,CACThY,KAAM6wC,EACNtlC,KAAMgM,EAAMw5B,GAAeD,YAE/BE,KACQpxC,KAAK,CACTI,KAAM,SACN4X,YACArM,KAAM2/B,WAGPxyB,KAAKnB,GAAO9R,eACP7F,KAAK,CACTI,KAAMuC,EACN2G,MAAQ3E,QACAwM,KACS,cAAwE,UAAlDxM,MAAAA,OAA6B,EAASA,EAAEvE,YAAyB,IAAP+Q,OAAgB,EAASA,EAAGnN,QAAQ,cAAe,OACnIrB,SACF,QACLmW,EAAOnU,EAAI0I,OAAOyL,KAAKnU,GAAK,SACd,iBAANA,IAAiF,kBAA1B,EAASmU,EAAK/Y,SAAgF,kBAA1B,EAAS+Y,EAAK/Y,SAA2E,uBAAtB,EAAS+Y,EAAK,MAE9NnN,KAAM2/B,EACN5yB,OAAS/T,IAAO,CAAEvE,KAAMuC,SAGzB8c,EAAOhH,WAAWL,EAAS,CAAEjX,QAAAA,EAASif,cAAe,GAAGjf,cAE3Dqe,SAAS,kBAAmBwxB,EAAe,4BAA6B,SAAU,QAAS,qBAAsB,oBAAqB,kBAAmB,CAC7JM,qBAAsB,CAClBhuC,MAAOmc,EAAO/F,cAElB63B,oBAAqB,CACjBx6B,IAAK4I,EAAU,mBACf/V,IAAK+V,EAAU,oBAEnB6xB,qBAAsB,CAClB3yC,EAAG8gB,EAAU,mBACbxa,EAAGwa,EAAU,oBAEjB8xB,kBAAmB,CACf3lC,OAAQ6T,EAAU,4BAClBiW,MAAOlW,EAAW,CAAExD,UAAW,cAC/BmQ,MAAO5M,EAAOM,IAAIN,EAAO/F,oBAGzB8F,SAAS,2BAA4BwxB,EAAe,2BAA4B,SAAU,SAAU,oBAAqB,KAAM,iBAAkB,CACrJzU,kBAAmB,CACfv1B,KAAM0Y,EAAW,CAAExD,UAAW,SAAUvK,OAAQ,CAAE0gB,OAAQ,WAAYjyB,KAAM,WAAYy1B,eAAe,MAE3G6b,oBAAqB,CACjB5lC,OAAQ2T,EAAOlJ,IAAImJ,EAAW,CAAE1D,KAAM,kBAAoB,CAAE1R,QAAS,IAAM,eAG3EkV,SAAS,eAAgBwxB,EAAe,yBAA0B,SAAU,SAAU,oBAAqB,KAAM,eAAgB,CACrIW,oBAAqB,CACjBthB,OAAQ3Q,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAEhEq1B,oBAAqB,CACjB5lC,OAAQ2T,EAAOlJ,IAAImJ,EAAW,CAAE1D,KAAM,gBAAkB,CAAE1R,QAAS,IAAM,6BAGxDwM,GAAWk6B,EAAe,sBAAuB,SAAU,QAAS,qBAAsB,KAAM,iBAAkB,CACvIM,qBAAsB,CAClBhuC,MAAOmc,EAAO/F,WAAW5C,IAE7By6B,oBAAqB,CACjBjuC,MAAOmc,EAAOG,WAAW,CACrBgyB,cAAenyB,EAAO/F,WAAW5C,GACjC+6B,cAAepyB,EAAO/F,WAAW5C,MAGzCg7B,2BAA4B,CACxBxuC,MAAOmc,EAAOG,WAAW,CACrB7I,IAAK0I,EAAO/F,aACZ9P,IAAK6V,EAAO/F,aACZq4B,KAAMtyB,EAAO/F,aACbs4B,UAAWvyB,EAAO/F,gBAG1Bu4B,sBAAuB,CACnB3uC,MAAOmc,EAAOG,WAAW,CACrB7I,IAAK0I,EAAO/F,aACZ9P,IAAK6V,EAAO/F,aACZw4B,QAASzyB,EAAO/F,oBAIpB8F,SAAS,iBAAkB/J,EAAQ08B,+BACpBr7B,GAAWk6B,EAAe,oBAAqB,SAAU,QAAS,qBAAsB,KAAM,eAAgB,CACjIM,qBAAsB,CAClBhuC,MAAOmc,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,KAEjDy6B,oBAAqB,CACjBjuC,MAAOmc,EAAOG,WAAW,CACrBgyB,cAAenyB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDs7B,cAAe3yB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7Du7B,6BAA8B,CAC1B/uC,MAAOmc,EAAOG,WAAW,CACrBgyB,cAAenyB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDs7B,cAAe3yB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,OAG7Dw7B,oBAAqB,CACjBhvC,MAAOmc,EAAOG,WAAW,CACrBgyB,cAAenyB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDs7B,cAAe3yB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDuZ,OAAQ1Q,EAAU,mBAG1BmyB,2BAA4B,CACxBxuC,MAAOmc,EAAOG,WAAW,CACrBgyB,cAAenyB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDs7B,cAAe3yB,EAAO/F,WAAWpD,GAAE8C,SAAS,GAAStC,IACrDi7B,KAAMtyB,EAAO/F,aACbs4B,UAAWvyB,EAAO/F,gBAG1B6kC,0BAA2B,CACvBC,aAAc/+B,EAAO5I,SAAS4I,EAAOG,WAAW,CAC5CmN,OAAQtN,EAAO/F,WAAW,CAAEN,SAAS,IACrCzS,KAAMgZ,EAAU,wBAIpBH,SAAS,eAAgB/J,EAAQ88B,iBACjC/yB,SAAS,kBAAmBC,EAAOhH,WAAW,CAAC,WAAY,eAAgB,aAAapO,SAAU,CACtGjK,KAAMV,EACN4J,cAA6D,kBAAnB,EAAS3E,EAAEjF,IACrDgZ,eAAmBvH,EAAIiC,EAAIC,QAAY,EAAG3T,GAAqI,UAA9C,UAAjD,UAAhBiF,EAAE+f,gBAA6B,IAAPvT,EAAgBA,EAAKxM,EAAE6tC,oBAAiC,IAAPp/B,EAAgBA,EAAKzO,EAAE8tC,iBAA8B,IAAPp/B,EAAgBA,EAAK,IAC5M1H,KAAM8T,EAAOG,WAAW,EACnBlgB,GAAI+f,EAAO/F,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,aAE5D,CAAEzI,QAAS,uBACRqe,SAAS,kBAAmBwxB,EAAe,uBAAwB,SAAU,QAAS,qBAAsB,KAAM,kBAAmB,CACzIM,qBAAsB,CAClBhuC,MAAOqc,EAAU,oBAErB4xB,oBAAqB,CACjBK,cAAejyB,EAAU,mBACzByyB,cAAezyB,EAAU,oBAE7B0yB,6BAA8B,CAC1BT,cAAejyB,EAAU,mBACzByyB,cAAezyB,EAAU,mBACzB4iB,MAAO9iB,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9D27B,kCAAmC,CAC/Bd,cAAejyB,EAAU,mBACzByyB,cAAezyB,EAAU,mBACzB4iB,MAAO9iB,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAE9Dk7B,sBAAuB,CACnBL,cAAejyB,EAAU,mBACzByyB,cAAezyB,EAAU,mBACzBuyB,QAASzyB,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,0BAG/BtC,GAAW2I,EAAOG,WAAW,CACnDgyB,cAAenyB,EAAO/F,WAAW5C,GACjCs7B,cAAe3yB,EAAO/F,WAAW5C,IAClC,CAAE3V,QAAS,YACNqe,SAAS,mBAAoBC,EAAOlJ,IAAIkJ,EAAOG,WAAW,CAC9Dke,YAAare,EAAO/F,WAAW,CAAEN,SAAS,IAC1C2kB,WAAYte,EAAO5I,SAAS4I,EAAO/F,eACpC,CAAEvY,QAAS,qBAAuB,CACjCmJ,QAAS,KAAO,CACZwzB,eACAC,WAAY,CAAC,EAAG,cAGTjnB,GAAW2I,EAAOhH,WAAW,CACxC,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMvF,EAAO0tC,SAAUhoC,UAAU,KACrF9D,OAAS/T,OACD1B,MAAMC,QAAQyB,IAAsB,iBAATA,EAAE,KAAoBA,EAAE,GAAGgM,WAAW,YAC1DhM,EAAE,KAKrB,CACIvE,KAAM,OACNuL,KAAM8T,EAAO5I,SAASC,EAAO2tC,aACvBhlC,EAAOhH,WAAW,CAChB,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMvF,EAAO0tC,aAErE,CACIpkD,KAAM,SACNuL,KAAMgU,EAAU7I,EAAO2tC,gBAE5B,CAAErkC,cAAe,aAClBV,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMvF,EAAO0tC,aACjE9rC,OAAS/T,GACY,iBAANA,GAAmBA,EAAEgM,WAAW,KAGpC,GAFI,CAAChM,KAKrB,CAAEyb,cAAe,yBACK,CAACuyB,EAAmBjzB,EAAW,CAAE1D,KAAM,qBAAwB,CACpFqE,wBAAyB,CACrBC,MAAOb,EAAO5I,SAAS8I,EAAU,eAErCY,iCAAkC,CAC9BC,MAAOd,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DoE,WAAYhB,EAAO1G,QAAQ2G,IAAcA,IAAc,CAAE1G,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE3U,KAAM,eAEvI0gB,qCAAsC,CAClCC,UAAWhB,EAAU,4BAEzBiB,8BAA+B,CAC3BC,OAAQ8xB,EACRhyB,UAAWhB,EAAU,qBAEzBmB,0BAA2B,CACvBD,OAAQ8xB,EACR5xB,OAAQtB,EAAO1G,QAAQ2G,EAAW,CAAExD,UAAW,cAAgByD,EAAU,eAE7EsB,qBAAsB,CAClBC,KAAMvB,EAAU,cAEpBwB,6BAA8B,CAC1BC,QAAS3B,EAAOM,IAAIN,EAAOhJ,gBAE/B4K,2BAA4B,CACxBC,QAAS7B,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,KACjDmI,QAAS9B,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,KACjDoI,QAAS/B,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,KACjDuH,UAAWhB,EAAU,uBAEzB8B,uBAAwB,CACpBd,UAAWhB,EAAU,mBAEzB+B,0BAA2B,CACvBC,OAAQlC,EAAO/F,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE7CgY,uCAAwC,CACpCD,OAAQlC,EAAO/F,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzCiY,mBAAoBpC,EAAO/F,cAE/BoI,sBAAuB,CACnB9a,KAAM0Y,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAE9D0F,wBAAyB,CACrBC,YAAatC,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjE4F,QAASxC,EAAO5I,SAAS4I,EAAO/F,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,MAE9DsY,uBAAwB,CACpB5e,MAAOqc,EAAU,aACjBwC,OAAQ1C,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,MAEpDw5B,wBAAyB,CACrBtvC,MAAOqc,EAAU,mBACjBkzB,MAAOlzB,EAAU,cAErByC,0BAA2B,CACvBC,QAAS5C,EAAOM,IAAIN,EAAOhJ,eAC3B6L,WAAY7C,EAAOM,IAAIN,EAAOhJ,kCAGd,CAACgR,EAAYqrB,EAAiBpzB,EAAW,CAAE1D,KAAM,gBAAkB22B,EAAmBjzB,EAAW,CAAE1D,KAAM,2BACvHrE,EAAQ,CACVmY,wBAAyB,CACrB9N,YAAatC,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACjE0T,QAASrQ,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,qCAC7E4e,WAAYvQ,EAAOlJ,IAAIkJ,EAAOG,WAAW,CACrCqQ,gBAAiBxQ,EAAOlJ,IAAIkJ,EAAO/F,aAAc,CAC7C/D,WAAsD,kCAArCjL,EAAKsF,MAAMhQ,KAAK,WAAWoR,QAEhD8e,MAAOzQ,EAAOlJ,IAAIkJ,EAAO/F,aAAc,CACnC/D,WAAsD,wCAArCjL,EAAKsF,MAAMhQ,KAAK,WAAWoR,QAEhD+e,YAAa1Q,EAAOlJ,IAAIkJ,EAAO/F,aAAc,CACzC/D,WAAsD,wCAArCjL,EAAKsF,MAAMhQ,KAAK,WAAWoR,UAEhD,CACAuE,WAAgD,wBAA/BjL,EAAK1K,KAAK,WAAWoR,SAG9Cgf,sBAAuB,CACnBC,OAAQyiB,GAEZxiB,qBAAsB,CAClBD,OAAQ1Q,EAAU,gBAClB4Q,IAAK9Q,EAAO5I,SAAS4I,EAAOG,WAAW,CACnCyQ,OAAQ3Q,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,CAAE8a,OAAQ,cAAe9lB,KAAM,CAAC,MAAO,MAAO,MAAO,CAAE1K,KAAM,eAC7H8L,OAAQ4T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE+D,SAAU,oBAChE+a,GAAI/Q,EAAW,CAAE1D,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAE7a,QAAS,oBAElBuvB,uBAAwB,CACpBlQ,MAAOd,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3DoE,WAAYhB,EAAO5I,SAAS6I,EAAW,CAAExD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,MAAO,CAAE3U,KAAM,eAEhH2wB,6BAA8B,CAC1B5N,aAActD,EAAOM,IAAIN,EAAO5I,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBAEjGuU,gCAAiC,CAC7B5N,OAAQrD,EAAU,mBAClBkR,SAAUpR,EAAOM,IAAIN,EAAOhJ,gBAEhCqa,4BAA6B,CACzBC,YAAatR,EAAOM,IAAIL,EAAW,CAAE1D,KAAM,iBAC3CgV,WAAYvR,EAAOM,IAAIL,EAAW,CAAE1D,KAAM,oBAC1CiV,KAAMxR,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,KAC9C8X,cAAezR,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,KACvD+X,qBAAsB1R,EAAOM,IAAIN,EAAOhJ,gBAE5C2a,6BAA8B,CAC1BvQ,OAAQ8xB,GAEZthB,wBAAyB,CACrBC,MAAO3R,EAAU,cAErB4R,4BAA6B,CACzB5O,MAAOhD,EAAU,mBACjB2R,MAAO7R,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,MAEnDoY,2BAA4B,CACxBC,UAAWhS,EAAO5I,SAAS8I,EAAU,wBAEzCozB,+BAAgC,CAC5BC,SAAUvzB,EAAO5I,SAAS4I,EAAOG,WAAW,CACxCmT,QAASrT,EAAW,CAAE1D,KAAM,mBAC5B3C,MAAOqG,EAAW,CAAE1D,KAAM,iBAE9Bi3B,OAAQxzB,EAAOM,IAAIN,EAAOhJ,gBAE9Bib,yBAA0B,CACtBtxB,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAC1D9G,QAASkK,EAAO5I,SAAS8I,EAAU,gBAEvCgS,sBAAuB,CACnBhP,MAAOhD,EAAU,mBACjBvK,IAAKqK,EAAOM,IAAIN,EAAOhJ,gBAE3Bmb,uBAAwB,CACpB/I,OAAQlJ,EAAU,mBAClBvK,IAAKqK,EAAOM,IAAIN,EAAOhJ,gBAE3By8B,6BAA8B,CAC1BnwB,aAActD,EAAO1G,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoBsD,EAAU,oBAC/GvK,IAAKqK,EAAOM,IAAIN,EAAOhJ,gBAE3Bob,2BAA4B,CACxBzxB,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAC1DrV,KAAM0Y,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1DyV,KAAMrS,EAAOM,IAAIN,EAAO/F,WAAW,CAAEN,SAAS,MAElD2Y,qBAAsB,CAClBlR,OAAQpB,EAAOM,IAAI4yB,GACnB3gB,KAAMvS,EAAO5I,SAAS8I,EAAU,mBAChC3b,QAASyb,EAAOM,IAAIN,EAAOhJ,gBAE/Bwb,qBAAsB,CAClBpR,OAAQpB,EAAOM,IAAI4yB,GACnB3rC,KAAMyY,EAAOM,IAAIJ,EAAU,oBAE/BuS,oBAAqB,CACjBxP,IAAKhD,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,sBAExE+oC,uBAAwB,CACpB9pC,GAAI+K,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAE5D8V,4BAA6B,CACzB9M,QAAS5F,EAAOM,IAAIN,EAAO5I,SAAS4I,EAAOG,WAAW,CAClDxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC1DkI,SAAU5E,EAAU,yBAI1BtK,EAAM,YACAjE,IAAI,sBAAsBvL,eAC9B/F,GAAKwW,OAAKqB,EAAM7X,IAAO2nB,MAExBpS,0BAEqB1J,GAAS8T,EAAO6a,eAAe5a,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAAwB1Q,EAAM,CAC7I4uB,sBAAuB9kB,EAAQ+kB,qBAC/BC,uBAAwB,CACpBzzB,KAAM,uBACNkxB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,GACfgC,WAAY,KACZ/B,eAAgB,IAChBvT,QAAS,uBACTwT,WAAY,+BACZ8X,MAAO,EACPlX,OAAQ,KAEZmB,oBAAqB,CACjB5zB,KAAM,oBACNkxB,WAAW,EACXC,SAAS,EACTuC,QAAQ,EACRtC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbE,cAAe,EACfgC,WAAY,IACZ/B,eAAgB,IAChBvT,QAAS,oBACTwT,WAAY,4BACZ8X,MAAO,EACPlX,OAAQ,8BAGgB9tB,GAAS8T,EAAO6a,eAAe5a,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAAiC1Q,EAAM,CACtJ4uB,sBAAuB9kB,EAAQolB,qBAC/BC,mBAAoB,CAChBhC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,wBAEVsa,cAAe,CACXra,WAAY,CACRE,MAAO,KAEXH,KAAM,kBAEVqZ,MAAO,CACHyX,MAAO,EACPlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAW,UAAW,CACPjuB,OAAQ,MACRkuB,KAAM,EACNhpB,OAAQ,GAEZipB,aAAc,CACVnuB,OAAQ,IACRkuB,KAAM,EACNhpB,WAEJ0oB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,IAEhBxC,gBAAiB,CACbjC,kCACAC,mCACAC,UAAW,EACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,uBAEVsa,cAAe,CACXta,KAAM,iBAEVqZ,MAAO,CACHyX,MAAO,EACPlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvBjB,UAAW,CACPjuB,gBACAkuB,KAAM,GACNhpB,YAEJipB,aAAc,CACVnuB,gBACAkuB,KAAM,EACNhpB,OAAQ,GAEZ0oB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,IAEhBtC,sBAAuB,CACnBnC,kCACAC,uBAAwB,EACxBC,UAAW,GACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,mBAEVsa,cAAe,CACXra,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVqZ,MAAO,CACHyX,UACAlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,uBACA8B,WAAW,EACXnB,UAAW,CACPjuB,gBACAkuB,KAAM,EACNhpB,OAAQ,GAEZipB,aAAc,CACVnuB,OAAQ,SACRkuB,KAAM,EACNhpB,OAAQ,GAEZ0oB,SAAU,CACNC,SAAU,kBACVC,QAAS,kBACTC,UAAW,GACXC,SAAU,KAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,IAEhBpC,kBAAmB,CACfrC,sBAAuB,EACvBC,uBAAwB,EACxBC,UAAW,GACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,mBAEVsa,cAAe,CACXra,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVqZ,MAAO,CACHyX,MAAO,EACPlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,2BACAW,UAAW,CACPjuB,OAAQ,MACRkuB,KAAM,EACNhpB,OAAQ,GAEZipB,aAAc,CACVnuB,OAAQ,IACRkuB,KAAM,EACNhpB,WAEJ0oB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,IAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,IAEhBnC,6BAA8B,CAC1BtC,kCACAC,mCACAC,UAAW,EACX4X,qBAAqB,EACrBE,mBAAmB,EACnBmM,mBAAmB,EACnBD,sBAAsB,EACtB/jB,wBAAwB,EACxB4X,kBAAkB,EAClB3W,cAAe,CACXra,KAAM,mBAEVsa,cAAe,CACXra,WAAY,CACRE,MAAO,KAEXH,KAAM,mBAEVqZ,MAAO,CACHyX,MAAO,EACPlX,OAAQ,IACRF,gBAAiB,EACjBC,cAAe,EACfL,eAAgB,EAChBC,eAAgB,EAChB4B,uBAAuB,EACvBjB,UAAW,CACPjuB,gBACAkuB,KAAM,GACNhpB,YAEJipB,aAAc,CACVnuB,gBACAkuB,KAAM,EACNhpB,OAAQ,GAEZ0oB,SAAU,CACNC,SAAU,EACVC,QAAS,EACTC,UAAW,GACXC,SAAU,KAEdokB,eAAgB,CACZltC,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,IAGpBC,aAAc,CACVj+C,KAAM,qBACNk+C,SAAU,IAEd/gB,WAAY,sBC30BxBlwB,OAAOsC,eAAe2d,GAAS,aAAc,CAAEhqB,OAAO,iCACvB,EAC/B,MAAM8iB,GAAStT,GACTuT,GAAWtT,2BACjB,SAA8B6I,EAASO,SAC7BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,YAAa4G,GAAOmH,aAAa5N,EAAU,aAAc,CAAES,cAAe,iBACnFZ,SAAS,YAAa4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACvD4N,UAAW9N,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC9D+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,eACzBomB,GAAOjM,MAAOkM,GAASoH,kBACzB,CAAE/X,SAAU,YAAavU,QAAS,cAAgB,CACjDmJ,QAAS,KAAO,CACZkjB,UAAW,8BACX3M,OAAQ,uBCfpBxT,OAAOsC,eAAeosB,GAAS,aAAc,CAAEz4B,OAAO,iCACvB,EAC/B,MAAM8iB,GAAStT,GACTuT,GAAWtT,2BACjB,SAA8B6I,EAASO,SAC7BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,YAAa4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACvDxf,KAAMimB,GAAS4V,qBAAqBtc,EAAU,mBAC9Cuc,UAAW9V,GAAOxG,WAAW,CACzBxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXgiB,kBAAmB,CACfrK,KAAM1L,GAAO1M,WAAW,CAAEN,SAAS,IACnCgjB,SAAU/V,GAASgW,qBAAqB1c,EAAU,mBAClD2c,aAAclW,GAAOxG,WAAW,CAC5Bxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,4BACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXoiB,kBAAmB,CACfpZ,MAAOzD,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAE/DmgB,wBAAyB,CACrBC,OAAQrW,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,CAAC,sBAAuB,wBAC/FygB,OAAQ1W,GAAO7P,IAAI6P,GAAOvP,SAAS8I,EAAU,oBAAqB,CAC9DhK,gBAA+C,IAA9BjL,EAAK1K,KAAK,UAAUoR,MACrC9G,QAAS,IAAM,CAAC,CACR6Y,MAAO,wBAIvB4Z,yBAA0B,CACtB1Q,MAAOjG,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClEkzB,OAAQzW,GAASq+B,IAAI,CAAEF,SAAU,qBAErC5pB,oBAAqB,CACjB9I,KAAM1L,GAAO1M,WAAW,CAAEN,SAAS,OAG5C,CAAE1D,SAAU,YAAaqF,sBAAsB,KAEtDoiB,iBAAkB,CACdf,SAAUhW,GAAOxG,WAAW,CACxBuD,MAAOiD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtE+gB,MAAOhX,GAAOrG,IAAIqG,GAAO3P,eACzB4mB,SAAUjX,GAAOrG,IAAIqG,GAAO3P,eAC5B6mB,OAAQlX,GAAOvP,SAAS8I,EAAU,oBAClC4d,WAAY5d,EAAU,6BAInC,CAAE5E,sBAAsB,KAC5B,CAAErF,SAAU,OAAQvU,QAAS,cAAgB,CAC5CmJ,QAAS,WACCwnB,EAAOjoB,KAAK2zB,MAAuB,WAAjB3zB,KAAK4zB,UAA2B,iBACjD,CACHr9B,KAAM,sBACN87B,UAAW,CACP97B,KAAM,kBACN0xB,KAAAA,EACAwK,aAAc,CACVl8B,KAAM,kBACN0xB,KAAAA,EACA3O,MAAO,oBAEXiZ,SAAU,kCAKpBsiB,EAAmBt4B,GAAO3N,WAAW,CACvC,CACIrY,KAAM,SACNuL,KAAMya,GAAO1M,WAAW,CAAE3C,OAASnN,IAAK,IACxC8O,OAAS/T,QAAYwM,SAA2B,UAAVxM,EAAE,UAAuB,IAAPwM,EAAgBA,EAAK,IAEjF,CACI/Q,KAAM,OACNuL,KAAMya,GAAOvP,SAASuP,GAAO1M,WAAW,CAAE3C,OAASnN,IAAK,IAAM,CAAEoN,UAAW,EAAGC,UAAW,IACzFyB,OAAS/T,GAAM,CAACA,MAAAA,EAA6BA,EAAI,EAAGA,MAAAA,EAA6BA,EAAI,QAGrF6a,SAAS,kBAAmB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC7DuD,MAAOzD,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC3D2T,WAAY5J,GAAOxG,WAAW,CAC1B+d,YAAa+gB,EACb9gB,SAAU8gB,EACVC,gBAAiBD,EACjBE,QAASF,EACT7gB,UAAW6gB,EACX/f,MAAO+f,EACP1tC,OAAQoV,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAE9C,CAAEzI,QAAS,oBAAsB,CAChCmJ,QAAS,KAAO,CACZ6Y,MAAO,mBACP6M,WAAY,CACR0N,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACX7sB,OAAQ,mBCtGxB3D,OAAOsC,eAAequB,GAAS,aAAc,CAAE16B,OAAO,qCACnB,EACnC,MAAM8iB,GAAStT,GACTuT,GAAWtT,+BACjB,SAAkC6I,EAASO,SACjCuD,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DsY,UAAW9R,GAAO3P,cAClB0hB,QAAS/R,GAAO3P,cAChB2hB,YAAahS,GAAO3P,cACpB4hB,qBAAsBjS,GAAO3P,cAC7B6hB,UAAWlS,GAAO3P,cAClB8hB,UAAWnS,GAAO3P,cAClB+hB,aAAcpS,GAAO3P,cACrBgiB,YAAarS,GAAO3P,cACpBiiB,iBAAkBtS,GAAO1M,WAAW,CAAE3C,IAAK,KAASnN,IAAK,MACzD+uB,cAAevS,GAAO1M,aACtBihB,WAAYvU,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACpDwf,eAAgBxS,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAChEyb,QAASe,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,CAAC,sBAAuB,uBAAwB,wBACvF6c,WAAYnZ,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,KACrFq0B,MAAOvqB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,OAC3D6vB,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QACzD,CAAEzI,QAAS,wBAA8B,CACxCmJ,QAAS,IAAM+b,GAASmU,qBACxBlmB,SAAU,CAAC5J,EAAMpH,EAAOmO,EAAQ0B,eACpBxH,EAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,SACD,EAAS7P,EAAMqtC,qBAA+C,EAASrtC,EAAMm2B,QAAU,QACtHrkB,IAAI1K,EAAK1K,KAAK,UAAW,0BAA2B,oBAErB,EAASsD,EAAMs1B,8BAAwD,EAASt1B,EAAMm2B,WACrHrkB,IAAI1K,EAAK1K,KAAK,kBAAmB,sCAEF,EAASsD,EAAMm2B,QAAU,IAAO,KAC/DrkB,IAAI1K,EAAK1K,KAAK,UAAW,wBAAyB,kBAEnB,EAASsD,EAAMqtC,OAAS,IAAO,KAC9Dv7B,IAAI1K,EAAK1K,KAAK,SAAU,uBAAwB,IAEpDsD,mBCvCnB+J,OAAOsC,eAAewjC,GAAS,aAAc,CAAE7vC,OAAO,oCACpB,EAClC,MAAM8iB,GAAStT,GACTuT,GAAWtT,8BACjB,SAAiC6I,EAASO,SAChCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,gBAAiB4G,GAAOmH,aAAa5N,EAAU,YAAa,CAAES,cAAe,oBACxFqH,EAAa,CACfA,WAAYrB,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,kBAE7CH,SAAS,WAAY4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACtDwH,SAAU1H,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yBAC7D+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,cACzBomB,GAAOjM,MAAOkM,GAAS+sB,cAAc3rB,IACvC,CAAE/R,SAAU,WAAYvU,QAAS,aAAe,CAC/CmJ,QAAS,IAAM,CAAC,CACR8c,SAAU,sBACVzE,MAAO,wBClBvBtV,OAAOsC,eAAe+d,GAAS,aAAc,CAAEpqB,OAAO,sGAC0E,oBACvG,IAAIqb,IAAI,CAC7B,CAAC,+BAAgC,CAAEgP,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,+BAAgC,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC3F,CAAC,mBAAoB,CAAED,SAAU,CAAC,GAAqBC,OAAQ,KAC/D,CAAC,kBAAmB,CAAED,SAAU,CAAC,EAAoB,EAAgB,GAAeC,OAAQ,CAAC,EAAqB,EAAyB,KAC3I,CAAC,kBAAmB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC3D,CAAC,oBAAqB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,KAC7D,CAAC,kBAAmB,CAAED,SAAU,GAAIC,OAAQ,KAC5C,CAAC,mBAAoB,CAAED,SAAU,CAAC,EAAsB,EAAgB,GAAqBC,OAAQ,CAAC,EAA4B,EAAsB,KACxJ,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAgB,GAAeC,OAAQ,CAAC,KAC3E,CAAC,oBAAqB,CAAED,SAAU,CAAC,EAAsB,EAAqB,EAAoB,EAA4B,EAAyB,EAAsB,EAA0B,EAAgB,EAAoB,GAAeC,OAAQ,KAClQ,CAAC,iBAAkB,CAAED,SAAU,CAAC,EAAgB,GAAqBC,OAAQ,KAC7E,CAAC,qBAAsB,CAAED,SAAU,CAAC,GAAiBC,OAAQ,CAAC,4BAKtC,IAAIjP,IAAI,CAChC,CAAC,gBAAiB,CAAC,IACnB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,yBAKY,IAAIA,IAAI,CAC9B,CAAC,eAAgB,CAAC,IAClB,CAAC,SAAU,CAAC,IACZ,CAAC,gBAAiB,CAAC,IACnB,CAAC,OAAQ,CAAC,wBAKW,IAAIA,IAAI,CAC7B,CAAC,wBAAyB,IAC1B,CAAC,iCAAkC,CAAC,IACpC,CAAC,qCAAsC,CAAC,IACxC,CAAC,8BAA+B,CAAC,IACjC,CAAC,0BAA2B,IAC5B,CAAC,qBAAsB,IACvB,CAAC,6BAA8B,CAAC,IAChC,CAAC,2BAA4B,IAC7B,CAAC,uBAAwB,CAAC,IAC1B,CAAC,0BAA2B,IAC5B,CAAC,uCAAwC,CAAC,IAC1C,CAAC,sBAAuB,IACxB,CAAC,+BAAgC,CAAC,IAClC,CAAC,wBAAyB,CAAC,IAC3B,CAAC,uBAAwB,IACzB,CAAC,0BAA2B,uBAKR,IAAIA,IAAI,CAC5B,CAAC,wBAAyB,CAAC,IAC3B,CAAC,sBAAuB,IACxB,CAAC,qBAAsB,IACvB,CAAC,uBAAwB,CAAC,IAC1B,CAAC,6BAA8B,IAC/B,CAAC,gCAAiC,IAClC,CAAC,4BAA6B,CAAC,IAC/B,CAAC,4BAA6B,IAC9B,CAAC,6BAA8B,IAC/B,CAAC,0BAA2B,IAC5B,CAAC,wBAAyB,IAC1B,CAAC,4BAA6B,CAAC,IAC/B,CAAC,2BAA4B,IAC7B,CAAC,+BAAgC,IACjC,CAAC,yBAA0B,IAC3B,CAAC,sBAAuB,IACxB,CAAC,uBAAwB,IACzB,CAAC,2BAA4B,IAC7B,CAAC,qBAAsB,IACvB,CAAC,qBAAsB,IACvB,CAAC,oBAAqB,IACtB,CAAC,4BAA6B,MChFlCtR,OAAOsC,eAAeke,GAAS,aAAc,CAAEvqB,OAAO,iCACvB,EAC/B,MAAM8iB,GAAStT,GACTgb,GAAgB/a,GAChBsT,GAAWpT,2BACjB,SAA8B2I,EAASO,SAC7BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/CsL,EAAa,CACfA,WAAYrB,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,qBAE/CoO,EAAyBzX,GAC3B0X,UAAW5H,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,oBAC7C8H,cAEoBwG,EAAYC,EAAcC,SAC3CxW,EAAQ,GACRyW,EAAuBC,GAAoBlS,EAC5C/K,IAAI8c,GACJhgB,gBACGiD,SACiD,UAAvB8c,EAAW7c,IAAI1R,UAAuB,IAAPyR,EAAgBA,EAAK,IAC3DJ,UAAWsd,EAAgB1U,SAAStX,kBAEnDisB,GAAWV,OAAEA,WAAQD,MAAeG,GAAcS,eAAgB,OACpEF,EAAkB,IAAIT,KAAWD,KACjC3tB,KAAK,CACPsJ,SAAeoB,EAAKoQ,WAAW1J,IAAI,IAAIgV,GAAO/V,KAAK,CAAC,YAAcie,EAClE3iB,KAAMwiB,EAAQC,EAAoBC,eAGpCruB,KAAK,CAAEsJ,UAAY,EAAMqC,KAAMwiB,EAAQD,KACtC9H,GAAO1O,WAAWC,SAEvB07B,EAAwB5kB,EAAkBX,GAAcY,eAAgB,0BAA+BhP,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBtI,MAAQsI,EAAO,2BAC1L+nC,EAAuB7kB,EAAkBX,GAAcc,cAAe,yBAA8BlP,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,aAAgBtI,MAAQsI,EAAO,0BACvLsjB,EAAyBJ,EAAkBX,GAAcgB,kBAAmB,oBAAyBpP,EAAW,CAAE1D,KAAMzQ,MACxHwjB,EAAuBN,EAAkBX,GAAckB,gBAAiB,kBAAuBtP,EAAW,CAAE1D,KAAMzQ,QAChHiU,SAAS,aAAc4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACxDxf,KAAMgmB,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAMF,EAAY/K,IAAI,yBACrF6d,MAAO7I,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAO7P,IAAI6P,GAAOxG,WAAWtJ,GAC3D4Y,MAAOvP,EAAU,mBACjBwP,YAAa/I,GAAOrG,IAAIJ,EAAU,oBAClCpK,QAAS6Q,GAAOvP,SAAS8I,EAAU,gBAChCoO,GACJ,CAAErY,SAAU,OAAQvU,QAAS,cAAgB,CAC5CmJ,QAAS,KAAO,CACZ4kB,MAAO,EACP3Z,QAAS,CAAC,CACFnV,KAAM,iBACN4G,KAAM,0BAItBgnB,UAAW5H,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,oBACjD,CAAExe,QAAS,eAAiB,CAC3BmJ,QAAS,KAAO,CACZ2kB,MAAO,CAAC,CACAC,MAAO,EACP3Z,QAAS,CAAC,CACFnV,KAAM,iBACN4G,KAAM,iCAKxBooB,EAAY,CACdzZ,gBACQxE,SACgC,UAAtBzG,EAAKsF,MAAMoB,aAA0B,IAAPD,OAAgB,EAASA,EAAGpR,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsB4Z,SAASjP,EAAK1K,KAAK,QAAQoR,WAGvGoO,SAAS,aAAc4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACxDxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,0BAC1D0Q,OAAQ3G,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAAMqY,IAC5EC,QAASjJ,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAASgW,KACpEhJ,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXmV,yBAA0BhZ,GACtBrW,SAAUmmB,GAAOvP,SAAS8I,EAAU,gBACjCoO,GAEPwB,oBAAqBjZ,GACjBtP,KAAM0Y,KACHqO,GAEPyB,kBAAmBlZ,GACfrW,SAAUmmB,GAAOvP,SAAS8I,EAAU,gBACjCoO,GAEP0B,iBAAkBnZ,GACdtP,KAAM0Y,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACvD0R,GAEP2B,uBAAwBpZ,GACpBtP,KAAM0Y,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACvD0R,GAEP4B,qBAAsBrZ,GAClBrW,SAAUmmB,GAAOvP,SAAS8I,EAAU,gBACjCoO,GAEP6B,gBAAiBtZ,GACbtP,KAAM0Y,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DwT,OAAQzJ,GAAOrG,IAAIqG,GAAO3P,gBACvBsX,KAGZ,CAAE5sB,QAAS,eAAiB,CAC3BmJ,QAAS,KAAO,CACZlK,KAAM,iBACN4G,KAAM,yBAGNwY,SAAS,gBAAiB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC3DwH,SAAUksB,GACTltB,GAAOlM,QAAS,CAAC,CAAEla,KAAM,cACzBomB,GAAOjM,MAAOkM,GAAS+sB,cAAc3rB,EAAYsH,EAAsBF,IACzE,CAAEnZ,SAAU,WAAYvU,QAAS,aAAe,CAC/CmJ,QAAS,KAAO,CACZ8c,SAAU,sBACVzE,MAAO,SAGPnD,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5D4N,UAAW6lB,GACVjtB,GAAOlM,QAAS,CAAC,CAAEla,KAAM,eACzBomB,GAAOjM,MAAOkM,GAASoH,eAAeoB,IACxC,CAAEnZ,SAAU,YAAavU,QAAS,cAAgB,CACjDmJ,QAAS,KAAO,CACZkjB,UAAW,0BACX7L,OAAQ,UAGRnC,SAAS,qBAAsB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAChEwS,UAAW1S,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC/DrV,KAAM0Y,IACN2S,OAAQ1S,EAAU,mBAClB2S,UAAW5S,EAAW,CAAE1D,KAAM,CAAC,WAAY,gBAAiB,oBAC5DuW,KAAMnM,GAAOoM,aAAa9S,EAAW,CAAE1D,KAAM,WAC9C,CAAE7a,QAAS,uBAAyB,CACnCmJ,QAAS,KAAO,CACZ8nB,UAAW,+BACXprB,KAAM,GACNqrB,OAAQ,EACRC,UAAW,WACXC,KAAM,2BCnJlBllB,OAAOsC,eAAe8iB,GAAS,aAAc,CAAEnvB,OAAO,kCACtB,EAChC,MAAM8iB,GAAStT,4BAEf,SAA+B8I,EAASlZ,KAE5B8c,SAAS,cAAe4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACzD8S,KAAMtM,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC/B+S,YAAavM,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAL3C,EAKqEnN,IALrE,IAKkG,CAC9GU,QAAS,IANG,EAOZ6L,UAAW,CAACo9B,EAAI5uC,IAPJ,IAOUA,EACtByR,OAAQ,IAAM,CAAC,CAAEpP,KAAM,cAAe2K,OAAQ,CARlC,GAQyD8J,SARzD,MAUhBiL,YAAaN,GAAOzK,UAAUC,EAAS,oBACvC,CACAtR,QAAS,KAAO,CACZqoB,YAbY,EAcZjM,YAAa,SAGrB,CACApc,QAAS,KAAO,CACZooB,KAAM,CACFC,YApBY,EAqBZjM,YAAa,oBCxB7BrZ,OAAOsC,eAAesuB,GAAS,aAAc,CAAE36B,OAAO,kCACtB,EAChC,MAAM8iB,GAAStT,4BACf,SAA+B8I,EAASO,SAC9BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/CqG,EAAc4D,GAAO3N,WAAW,CAClC,CACIrY,KAAM,SACNuL,KAAM+T,IACNhH,UAA2B,kBAAN/T,GAAgC,iBAANA,EAAkBA,EAAE2N,WAAa,IAEpF,CACIlS,KAAM,SACNuL,KAAMya,GAAO1M,aACbhB,UAA2B,iBAAN/T,EAAkB2S,SAAS3S,GAAK,GAEzD,CACIvE,KAAM,SACNuL,KAAMya,GAAOxG,WAAW,CACpB7I,IAAKqP,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KAC7CxP,IAAKwc,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,OAEjDV,UAA2B,iBAAN/T,EAAmB,CAAEoS,IAAKpS,EAAGiF,IAAKjF,GAAQ,IAEnE,CACIvE,KAAM,UACNuL,KAAMya,GAAO3P,cACbiC,UAAmB,SAAN/T,GAAsB,IAANA,OAG7B6a,SAAS,iBAAkB4G,GAAOxG,WAAW,CACjD4J,MAAOpD,GAAOrG,IAAIqG,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtFqG,IAAK0D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACpEsG,MAAOhD,EAAU,cACjBiD,WAAYjD,EAAU,cACtBkD,OAAQuD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvEyG,IAAKsD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE3U,KAAM,cACrH+iB,aAAcqD,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,4BACpD,CAAExe,QAAS,YACNqe,SAAS,wBAAyB4G,GAAOxG,WAAW,CACxDoC,YAAaoE,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAC5E2G,OAAQrD,EAAU,eACnB,CAAExe,QAAS,mBACNqe,SAAS,kBAAmB4G,GAAOxG,WAAW,CAClD+jB,OAAQvd,GAAOrG,IAAIqG,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aACvFqG,IAAK0D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpEyG,IAAKsD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,kBAAmBf,GAAI,CAAC,MAAO,CAAE3U,KAAM,eACtHsF,MAAO8gB,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,IAAc8C,EAAa,CAAExJ,WAAY,CAAEkD,UAAW,kBAAmBvK,OAAQ,CAAEgD,GAAI,CAAC,MAAO,CAAE3U,KAAM,gBACzI,CAAEmB,QAAS,aACNqe,SAAS,kBAAmB4G,GAAOxG,WAAW,CAClDqD,MAAOmD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YACtEqG,IAAK0D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACpE/W,MAAO8gB,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,IAAc8C,KAChD,CAAErhB,QAAS,aACNqe,SAAS,qBAAsB4G,GAAOxG,WAAW,CACrDsD,SAAUkD,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnCvc,EAAGsc,EAAU,gBACbxc,EAAGwc,EAAU,gBACb7X,EAAG6X,EAAU,mBAEjBwD,MAAOiD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBACtE+G,QAASgD,GAAOrG,IAAIL,EAAW,CAAE1D,KAAMG,EAAY/K,IAAI,8BAA8B/G,QAAS1F,EAAET,MAAM,SACtGmf,UAAW+C,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1EiH,MAAO8C,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC0D,MAAO3D,EAAU,iBAErBue,OAAQ9X,GAAOrG,IAAIqG,GAAO3P,eAC1B+J,MAAO4F,GAAOrG,IAAIJ,EAAU,oBAC5BsD,MAAOmD,GAAOrG,IAAIJ,EAAU,qBAC7B,CAAExe,QAAS,gBACNqe,SAAS,sBAAuB4G,GAAOxG,WAAW,CACtDxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eAC1DmH,KAAM9D,IACNpc,MAAOqc,EAAU,eAChByG,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXsJ,kBAAmB,CACfD,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE9DqH,oBAAqB,CACjBF,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DsH,iBAAkB,CACdH,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DuH,mBAAoB,CAChBJ,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DwH,sBAAuB,CACnBL,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9DyH,oBAAqB,CACjBN,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAE9D0H,mBAAoB,CAChBP,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9D2H,sBAAuB,CACnBR,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE9D4H,mBAAoB,CAChBT,KAAM9D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBAI9DmD,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnDsE,SAAUkC,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,cACxCgE,MAAOL,EAAU,cACjBwE,aAAciC,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAAqB+J,GAAO3N,WAAW,CAC/H,CAAErY,KAAM,UAAWuL,KAAMya,GAAO3P,cAAeiC,WAAa,GAC5D,CACItY,KAAM,SAAUuL,KAAMya,GAAOrN,QAAQ2G,IAAc0G,GAAO3P,oBAGlE2N,QAASgC,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,aAAgB+J,GAAO3P,gBAC9G4N,MAAO+B,GAAOrG,IAAIqG,GAAOvP,SAAS8I,EAAU,yBAC5C6zB,WAAYptB,GAAOrG,IAAIJ,EAAU,sBAClC,CAAExe,QAAS,cACNqe,SAAS,0BAA2B4G,GAAOxG,WAAW,CAC1D0E,UAAW3E,EAAU,cACrB4E,SAAU5E,EAAU,cACpB6E,QAAS4B,GAAOrG,IAAIqG,GAAO3P,eAC3BgO,QAAS2B,GAAOrG,IAAIqG,GAAO3P,gBAC5B,CAAEtV,QAAS,qBACNqe,SAAS,qBAAsB4G,GAAOxG,WAAW,CACrDvc,EAAGsc,EAAU,gBACbxc,EAAGwc,EAAU,gBACb7X,EAAG6X,EAAU,gBACb+E,SAAU/E,EAAU,gBACpBgF,WAAYhF,EAAU,iBACvB,CAAExe,QAAS,gBACNqe,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnDxf,KAAMgmB,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,cAAeG,UAAU,MAC9FsG,IAAKsD,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,mBAAoBf,GAAI,CAAC,MAAO,CAAE3U,KAAM,cACvH4kB,KAAMwB,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,UACzChR,SAAUkb,GAAOrG,IAAIJ,EAAU,uBAC/B8zB,YAAartB,GAAOrG,IAAIJ,EAAU,uBAClCkF,SAAUuB,GAAOrG,IAAIJ,EAAU,uBAC/B1V,MAAOmc,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChCkF,WAAYsB,GAAOrG,IAAIqG,GAAO3P,eAC9BsO,YAAaqB,GAAOrG,IAAIqG,GAAO3P,eAC/BuO,aAAcoB,GAAOrG,IAAIqG,GAAO3P,eAChCwO,YAAamB,GAAOrG,IAAIqG,GAAO3P,eAC/ByO,QAASkB,GAAOrG,IAAIqG,GAAO3P,kBAE/B0O,UAAWiB,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,SAAW2D,EAAU,oBAC7EyF,OAAQgB,GAAOrG,IAAIJ,EAAU,qBAC7Bwe,QAAS/X,GAAOrG,IAAIJ,EAAU,qBAC9B+zB,UAAWttB,GAAOrG,IAAIJ,EAAU,qBAChCye,gBAAiBhY,GAAOrG,IAAIJ,EAAU,qBACtCg0B,eAAgBvtB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACzCg0B,mBAAoBxtB,GAAOrG,IAAIJ,EAAU,eACzCk0B,cAAeztB,GAAOrG,IAAIJ,EAAU,wBAExC0e,aAAcjY,GAAOrG,IAAIqG,GAAOxG,WAAW,CACvC0e,cAAelY,GAAOrG,IAAIqG,GAAO3P,kBAErC4O,QAASe,GAAOrG,IAAIqG,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBsD,EAAU,8BACrH,CAAExe,QAAS,cACNqe,SAAS,0BAA2B4G,GAAOxG,WAAW,CAC1D0F,aAAcc,GAAOrG,IAAIqG,GAAO3P,eAChC8O,QAASa,GAAOrG,IAAIqG,GAAO3P,eAC3B+O,SAAUY,GAAOrG,IAAIqG,GAAO3P,eAC5BgP,cAAeW,GAAOrG,IAAIqG,GAAO3P,eACjCiP,aAAcU,GAAOrG,IAAIqG,GAAO3P,eAChCkP,eAAgBS,GAAOrG,IAAIqG,GAAO3P,eAClCmP,yBAA0BQ,GAAOrG,IAAIqG,GAAO3P,eAC5CoP,eAAgBO,GAAOrG,IAAIqG,GAAO3P,eAClCqP,cAAeM,GAAOrG,IAAIJ,EAAU,qBACpCoG,cAAeK,GAAOrG,IAAIJ,EAAU,sBACrC,CAAExe,QAAS,qBACNqe,SAAS,mBAAoB4G,GAAOxG,WAAW,CACnDoG,MAAOrG,EAAU,gBACjBsG,MAAOtG,EAAU,gBACjBuG,QAASE,GAAOrG,IAAIqG,GAAO3P,eAC3BqP,cAAeM,GAAOrG,IAAIJ,EAAU,qBACpCvf,KAAMgmB,GAAOrG,IAAIJ,EAAU,6BAC5B,CAAExe,QAAS,uBClLlBkM,OAAOsC,eAAeijB,GAAS,aAAc,CAAEtvB,OAAO,8BAC1B,EAC5B,MAAM8iB,GAAStT,wBACf,SAA2B8I,EAASO,SAC1BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,SAAU4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACpDxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,wBACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX0Y,4BAA6B,CACzBC,MAAO1M,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,eAAgBW,YAAY,KACjEoW,QAAS3M,GAAOvP,SAAS6I,KACzBpf,IAAK8lB,GAAOrN,QAAQ2G,IACpBC,EAAU,sBACVqT,OAAQrT,EAAU,kBAEtBsT,+BAAgC,CAC5BH,MAAO1M,GAAOrG,IAAIL,KAClBwT,YAAa9M,GAAOvP,SAAS8I,EAAU,sBACvCqT,OAAQrT,EAAU,kBAEtBwT,qBAAsB,CAClBL,MAAO1M,GAAOrG,IAAIL,KAClB0T,WAAYzT,EAAU,qBACtBqT,OAAQtT,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DiL,WAAYlB,GAAOrG,IAAIqG,GAAO1M,cAC9B2Z,YAAajN,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9FgpB,qBAAsB,CAClBR,MAAO1M,GAAOrG,IAAIL,KAClB0T,WAAYzT,EAAU,qBACtBqT,OAAQtT,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DiL,WAAYlB,GAAOrG,IAAIqG,GAAO1M,cAC9B2Z,YAAajN,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9FipB,oBAAqB,CACjBT,MAAO1M,GAAOrG,IAAIL,KAClB0T,WAAYzT,EAAU,qBACtBqT,OAAQtT,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DiL,WAAYlB,GAAOrG,IAAIqG,GAAO1M,cAC9B2Z,YAAajN,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9FkpB,6BAA8B,CAC1BV,MAAO1M,GAAOrG,IAAIL,KAClB0T,WAAYzT,EAAU,qBACtBqT,OAAQtT,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DiL,WAAYlB,GAAOrG,IAAIqG,GAAO1M,cAC9B2Z,YAAajN,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,QAE9FmpB,yBAA0B,CACtBX,MAAO1M,GAAOrG,IAAIL,KAClB0T,WAAYzT,EAAU,qBACtBqT,OAAQtT,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC5DsG,MAAOyD,GAAO1M,WAAW,CAAEN,SAAS,KAExCsa,qBAAsB,CAClBZ,MAAO1M,GAAOrG,IAAIL,KAClBpe,KAAMqe,EAAU,4BAChBgU,SAAUhU,EAAU,4BACpBqT,OAAQrT,EAAU,oBAG3B,CAAExe,QAAS,SAAU4Z,sBAAsB,IAAS,CACnDzQ,QAAS,KAAO,CACZlK,KAAM,mCAGNof,SAAS,oBAAqB4G,GAAO7P,IAAI6P,GAAO3N,WAAW,CAC/D,CACIrY,KAAM,SACNuL,KAAMgU,EAAU,4BAChBjH,UAAa/T,EAAE,IAEnB,CACIvE,KAAM,OACNuL,KAAMya,GAAOvP,SAAS8I,EAAU,6BAChCjH,UAAa,CAAC/T,MAElB,CACA2F,QAAS,KAAO,CACZmY,KAAM,yBAGNjD,SAAS,2BAA4B4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACtE6C,KAAM2D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WACrEqG,IAAK0D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBACpE,CACA/R,QAAS,KAAO,CACZmY,KAAM,yBAGNjD,SAAS,gBAAiB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC3D6C,KAAM/C,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UAC1DsG,MAAOyD,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,IAAS,CAAE9O,QAAS,IAAM,OACpF,CACAA,QAAS,KAAO,CACZmY,KAAM,kCCjGlBpV,OAAOsC,eAAeikB,GAAS,aAAc,CAAEtwB,OAAO,4BAC5B,EAC1B,MAAM8iB,GAAStT,sBACf,SAAyB8I,EAASO,SACxBuD,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/C0X,EAAWtoB,GAAS6a,GAAO7P,IAAI6P,GAAOxG,WAAW,CACnD5b,QAASoiB,GAAOrG,IAAIqG,GAAO3P,eAC3BgD,OAAQ2M,GAAOvP,SAASuP,GAAO3N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,KAC1E9D,UAAa/T,EAAEgQ,IAEnB,CACIvU,KAAM,SACNuL,KAAMya,GAAOxG,WAAW,CACpBjL,GAAI+K,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM9Q,EAAMiR,UAAU,EAAME,cAAc,KAC5FoX,SAAU1N,GAAO3P,gBAErBiC,WAAc,CAAE/D,GAAIhQ,SAG7B,CAAExD,QAAS,QAAU,CACpBmJ,QAAS,KAAO,CACZmP,OAAQ,SAGR+F,SAAS,YAAaqU,EAAQ,YAC9BrU,SAAS,kBAAmBqU,EAAQ,kBACpCrU,SAAS,YAAaqU,EAAQ,YAC9BrU,SAAS,eAAgBqU,EAAQ,gBACjCrU,SAAS,iBAAkBqU,EAAQ,iBACnCrU,SAAS,WAAYqU,EAAQ,oBChCzCxmB,OAAOsC,eAAeokB,GAAS,aAAc,CAAEzwB,OAAO,qCACnB,EACnC,MAAM8iB,GAAStT,+BACf,SAAkC8I,EAASO,SACjCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/C6X,EAAmBrvB,QAAYwM,SAAWxM,aAAa1B,MAAQ+wB,EAAgBrvB,EAAE,IAA8D,UAAlDA,MAAAA,OAA6B,EAASA,EAAEsvB,YAAyB,IAAP9iB,EAAgBA,EAAmB,iBAANxM,EAAiB,GAAKA,MAAAA,OAA6B,EAASA,EAAE2N,cAChPkN,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAO3N,WAAW,CAC5D,CACIrY,KAAM,SACNuL,KAAMgU,EAAU,yBAChBjH,UAAa/T,aAAa1B,MAAyB,iBAAT0B,EAAE,GAAkBA,EAAE,GAAK,CAAEsvB,KAAMD,EAAgBrvB,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEsvB,KAAMD,EAAgBrvB,KAEhK,CACIvE,KAAM,OACNuL,KAAMgU,EAAU,uBAChBjH,UAAa,CAAC/T,IAElB,CACIvE,KAAM,SACN4X,SAAU,EACVrM,KAAM+T,IACNhH,OAAQsb,GAEZ,CACI5zB,KAAM,SACNuL,KAAMya,GAAO1M,aACbhB,iBACUrZ,EAAI60B,WAAWF,EAAgBrvB,WAC9BwvB,SAAS90B,GAAKA,EAAOsF,EAAI,EAAI,IAG5C,CACIvE,KAAM,UACNuL,KAAMya,GAAO3P,cACbiC,iBACUpW,EAAI0xB,EAAgBrvB,SACb,SAANrC,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEnB,QAAS,mBAAqB,CAC/BmJ,QAAS,KAAO,CACZ2pB,KAAM,cAGRG,EAAe,CACjB/a,MAAO+M,GAAOrG,IAAIL,KAClB6e,KAAMnY,GAAOrG,IAAIL,KACjB2U,KAAMjO,GAAOrG,IAAIqG,GAAO3P,eACxB6d,OAAQlO,GAAOrG,IAAIqG,GAAO3P,eAC1B8d,WAAYnO,GAAOrG,IAAIqG,GAAO3P,eAC9B+d,cAAepO,GAAOrG,IAAIqG,GAAO3P,eACjCge,WAAYrO,GAAOrG,IAAIqG,GAAO3P,eAC9Bie,UAAWtO,GAAOrG,IAAIL,KACtBiV,WAAYvO,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrCgV,OAAQlV,EAAW,CAAE1D,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,wBACrGoK,GAAOlM,QAAS,CAAC,CAAEla,KAAM,YACzBomB,GAAOjM,MAAO,CACX0a,YAAe,CACXvxB,MAAOoc,KAEXoV,kBAAqB,CACjBxxB,MAAOoc,KAEXqV,UAAa,CACTzxB,MAAOoc,KAEXsV,SAAY,CACR1xB,MAAOoc,KAEXuV,YAAe,CACX3xB,MAAOoc,EAAW,CAAExD,UAAW,UAAWvK,OAAQ,CAAEujB,cAAc,EAAMC,cAAc,MAE1FC,gBAAmB,CACf9xB,MAAOoc,EAAW,CAAExD,UAAW,UAAWvK,OAAQ,CAAEujB,cAAc,EAAMC,cAAc,UAIlGE,WAAYjP,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrCgV,OAAQlV,EAAW,CAAE1D,KAAM,CAAC,YAAa,YAAa,kBACrDoK,GAAOlM,QAAS,CAAC,CAAEla,KAAM,YACzBomB,GAAOjM,MAAO,CACXmb,UAAa,CACThyB,MAAO8iB,GAAOrG,IAAIJ,EAAU,mBAC5B6e,SAAUpY,GAAOrG,IAAIJ,EAAU,oBAEnC4V,UAAa,CACTjyB,MAAO8iB,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE6jB,OAAQ,0BACnEgJ,SAAUpY,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnCjL,GAAI+K,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,UACxDsG,MAAOyD,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KAC/CsJ,IAAK0D,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,iBAAkBf,GAAI,CAAC,MAAO,CAAE3U,KAAM,gBAG7Hy1B,YAAe,CACXnyB,MAAO8iB,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC5Y,KAAMof,GAAOrG,IAAIL,KACjBtf,KAAMgmB,GAAOrG,IAAIL,KACjB/K,GAAIyR,GAAOrG,IAAIL,QAEnB8e,SAAUpY,GAAOrG,IAAIqG,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC9C5Y,KAAMof,GAAOrG,IAAIJ,EAAU,mBAC3Bvf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D1H,GAAI+K,EAAW,CAAExD,UAAW,WAC5B,CACA5R,QAAS,KAAO,CACZlK,KAAM,gBACNuU,GAAI,iDAMxBub,MAAO9J,GAAOrG,IAAIJ,EAAU,2BAExBH,SAAS,wBAAyB4G,GAAO7P,IAAI6P,GAAO3N,WAAW,CACnE,CACIrY,KAAM,OACNkJ,SAAyB,iBAAN3E,EACnB+T,WAAc,CAAEub,KAAM,KACtBjc,YACArM,KAAMya,GAAOxG,WAAWtJ,GACpB2d,KAAMvU,KACH0U,KAGX,CACIh0B,KAAM,cACNkJ,cAAoE,kBAA1B,EAAS3E,EAAE+wB,WACrDhd,WAAc,CAAEgd,UAAW,KAC3B/pB,KAAMya,GAAOxG,WAAWtJ,GACpBof,UAAWhW,IACXiW,KAAMvP,GAAOrG,IAAIJ,EAAU,yBACxByU,KAGX,CACIh0B,KAAM,QACNkJ,cAAgE,kBAAtB,EAAS3E,EAAEixB,OACrDld,WAAc,CAAEkd,MAAO,KACvBjqB,KAAMya,GAAOxG,WAAWtJ,GACpBsf,MAAOxP,GAAOxG,WAAW,CACrB5Y,KAAM0Y,EAAW,CAAExD,UAAW,SAAUvK,OAAQ,CAAE0gB,OAAQ,SAAUjyB,KAAM,WAAYy1B,eAAe,KACrGC,UAAWpW,EAAW,CAAExD,UAAW,cACnC5Y,MAAO8iB,GAAOrG,IAAIL,QAEnB0U,KAGX,CACIh0B,KAAM,WACNkJ,cAAmE,kBAAzB,EAAS3E,EAAEoxB,UACrDrd,WAAc,CAAEqd,SAAU,KAC1BpqB,KAAMya,GAAOxG,WAAWtJ,GACpByf,SAAUrW,EAAW,CAAExD,UAAW,SAAUvK,OAAQ,CAAE0gB,OAAQ,WAAYjyB,KAAM,cAChF0zC,UAAW1tB,GAAOrG,IAAIJ,EAAU,oBAC7ByU,KAGX,CACIh0B,KAAM,UACNkJ,cAAkE,kBAAxB,EAAS3E,EAAEqxB,SACrDtd,WAAc,CAAEsd,QAAS,KACzBrqB,KAAMya,GAAOxG,WAAWtJ,GACpB0f,QAAStW,EAAW,CAAE1D,KAAM,UAAWW,YAAY,KAChDyX,KAGX,CACIh0B,KAAM,MACNkJ,cAA8D,kBAApB,EAAS3E,EAAEme,KACrDpK,WAAc,CAAEoK,IAAK,KACrBnX,KAAMya,GAAOxG,WAAWtJ,GACpBwM,IAAKpD,EAAW,CAAExD,UAAW,aAC7BsE,MAAO4F,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,SAAUvK,OAAQ,CAAE0R,UAAW,EAAG9J,WAAW,MACvFsH,OAAQuF,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,SAAUvK,OAAQ,CAAE0gB,OAAQ,WAAYjyB,KAAM,eACzF61B,QAAS7P,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,eACxE6Z,UAAW9P,GAAOrG,IAAIqG,GAAO3P,eAC7Bq9B,UAAW1tB,GAAOrG,IAAIJ,EAAU,oBAC7ByU,MAGZ,CAAEjzB,QAAS,wBAAyBif,cAAe,0BAA4B,CAC9E9V,QAAS,KAAO,CACZ2pB,KAAM,UAGNzU,SAAS,sBAAuB4G,GAAO7P,IAAI6P,GAAOvP,SAAS8I,EAAU,mBAAoB,CAC7FrV,QAAS,IAAM,CAAC,CACR2pB,KAAM,yBC7LtB5mB,OAAOsC,eAAe8uB,GAAS,aAAc,CAAEn7B,OAAO,6BAC3B,EAC3B,MAAM8iB,GAAStT,GACTuT,GAAWtT,uBACjB,SAA0B6I,EAASO,SACzBuD,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,QAAS4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACnD+d,YAAavX,GAAO1M,aACpBklB,SAAUxY,GAAO1M,aACjBmlB,cAAenf,EAAW,CAAE1D,KAAM,CAAC,OAAQ,OAAQ,UACnD8iB,qBAAsB1Y,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,CAAC,OAAQ,aAC7DtG,SAAUgK,EAAW,CAAE1D,KAAM,mBAC7BgjB,2BAA4B5Y,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACxEyb,QAASe,GAAOxG,WAAW,CACvBqf,UAAW7Y,GAAO1M,WAAW,CAAEL,OAAO,IACtC6lB,UAAW9Y,GAAO1M,WAAW,CAAEL,OAAO,IACtC8lB,YAAa/Y,GAAO1M,WAAW,CAAEL,OAAO,IACxC+lB,gBAAiBhZ,GAAO1M,WAAW,CAAEL,OAAO,IAC5CgmB,YAAajZ,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEL,OAAO,KACnDimB,cAAelZ,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEL,OAAO,KACrDkmB,qBAAsBnZ,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,CAAC,OAAQ,cAAe,YAC5EwjB,cAAepZ,GAAOrG,IAAIL,KAC1B+f,WAAYrZ,GAAOrG,IAAIqG,GAAOxG,WAAW,CACrC8f,MAAOhgB,IACPigB,WAAYvZ,GAAO1M,WAAW,CAAEN,SAAS,IACzCwmB,oBAAqBxZ,GAAO1M,WAAW,CAAEN,SAAS,IAClDpI,OAAQoV,GAAO1M,gBAEnBmmB,gBAAiBzZ,GAAOrG,IAAIqG,GAAOxG,WAAW,CAC1C8f,MAAOhgB,IACPogB,YAAa1Z,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAElDm2B,MAAO3Z,GAAOrG,IAAIqG,GAAOxG,WAAW,CAChC8f,MAAOhgB,IACPsgB,UAAW5Z,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnDkpB,UAAW7Z,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACnDmpB,sBAAuB9Z,GAAO3P,iBAElC0pB,SAAU/Z,GAAOrG,IAAIqG,GAAOxG,WAAW,CACnCzM,QAASiT,GAAOxG,WAAW,CACvBxf,KAAMsf,MAEVyQ,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,SAGtDy2B,SAAUja,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,CACpC,UACA,WACA,UACA,WACA,6BACA,iBACA,gBACA,UACEoK,GAAO7P,IAAI6P,GAAOvP,SAASuP,GAAOxG,WAAW,CACnDxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAC1D0Q,OAAQ3G,GAAO1M,WAAW,CAAEN,SAAS,IACrCknB,SAAUla,GAAO1M,WAAW,CAAEN,SAAS,IACvCmnB,SAAUna,GAAO1M,WAAW,CAAEN,SAAS,OACtC,CACD1D,SAAU,IAAM,OAChBpL,QAAS,IAAM,CAAC,CACRlK,KAAM,gBACN2sB,OAAQ,OAGpByT,YAAapa,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBAAoB+J,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC7H6gB,cAAera,GAAO1M,aACtBgnB,OAAQta,GAAO1M,cAChB,CAAEhE,SAAU,aAAe,CAC1BpL,QAAS,KAAO,CACZm2B,cAAe,IACfC,OAAQ,OAGhBC,QAASva,GAAOrN,QAAQ2G,EAAW,CAAE1D,KAAM,CAAC,MAAO,YAAcoK,GAAO7P,IAAI8P,GAASq+B,IAAI,CAAEF,SAAU,8BAA+BC,aAAc,sBAAwB,CACtKn6C,QAAS,IAAM,CAAC,qBAEpB+yB,SAAUjX,GAAOvP,SAASuP,GAAO7P,IAAI8P,GAASq+B,IAAI,CAAEF,SAAU,2BAA4BC,aAAc,mBAAqB,CAAE/uC,SAAU,IAAM,cAAgB,CAAEuB,UAAW,MAC7K,CAAE9V,QAAS,UAAY,CACtBmJ,QAAS,KAAO,CACZqzB,YAAa,GACbiB,SAAU,GACVC,cAAe,OACfnpB,SAAU,SACV2P,QAAS,CACL4Z,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,wBCzFjC/xB,OAAOsC,eAAeixB,GAAS,aAAc,CAAEt9B,OAAO,8BAC1B,EAC5B,MAAM8iB,GAAStT,GACTuT,GAAWtT,wBACjB,SAA2B6I,EAASO,SAC1BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/C43B,EAAe,CACjBC,kBAAmB3tB,GAAS8rB,gBAC5B8B,MAAO7tB,GAAOxG,WAAW,CACrBs0B,gBAAiB7tB,GAAS8rB,gBAC1BgC,UAAW9tB,GAAS8rB,gBACpBiC,iBAAkBhuB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC1Ds9B,yBAA0BhuB,GAAS8rB,gBACnCmC,+BAAgCluB,GAAO1M,aACvC66B,8BAA+BnuB,GAAO1M,gBAGxC86B,EAAa,CACfC,6BAA8BpuB,GAAS8rB,gBACvCuC,2BAA4BruB,GAAS8rB,gBACrCwC,YAAatuB,GAAS8rB,cAAc,CAAEp7B,OAASnN,IAAK,OAEhD4V,SAAS,oBAAqB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC/Dxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC1DvF,OAAQsP,GAAOxG,WAAW,CACtBuQ,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC9CzG,EAAGwc,EAAU,mBACbi1B,OAAQvuB,GAAS8rB,gBACjB0C,WAAYl1B,EAAU,mBACtBm1B,eAAgB1uB,GAAOrG,IAAIqG,GAAOxG,WAAW,CACzCm1B,WAAY3uB,GAAOrG,IAAIqG,GAAO3P,eAC9Bu+B,UAAW5uB,GAAOrG,IAAIJ,EAAU,gBAChCs1B,YAAa7uB,GAAOrG,IAAIJ,EAAU,gBAClCu1B,WAAY9uB,GAAOrG,IAAIJ,EAAU,gBACjCw1B,cAAe/uB,GAAOrG,IAAIJ,EAAU,oBAEvCyG,GAAOlM,QAAS,CAAC,MAAO,CAAEla,KAAM,UAChComB,GAAOjM,MAAO,CACXi7B,mBAAoBrB,EACpBsB,iBAAkBb,EAClBc,wBAAyBd,MAGlC,CAAErzC,QAAS,WAAa,CACvBmJ,QAAS,KAAO,CACZlK,KAAM,iBACN0W,OAAQ,CACJqZ,YAAa,oBChD7B9iB,OAAOsC,eAAekxB,GAAS,aAAc,CAAEv9B,OAAO,iCACvB,EAC/B,MAAM8iB,GAAStT,GACTuT,GAAWtT,2BACjB,SAA8B6I,EAASO,SAC7BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,YAAa4G,GAAOxG,WAAW,CAC5Cxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uCACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX0kC,mCAAoC,CAChCl+B,UAAWhB,EAAU,6BAEzB0hB,yBAA0B,CACtBC,KAAM5hB,EAAW,CAAE1D,KAAM,qBAE7B8iC,0BAA2B,CACvBn9B,OAAQyE,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAEpDyqB,kBAAmB,CACf7e,MAAO0D,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,OAE/Cm1C,iCAAkC,CAC9Bp8B,MAAO0D,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,OAE/Co1C,kCAAmC,CAC/Bld,YAAa1b,GAAO1M,aACpBqoB,YAAa3b,GAAO1M,WAAW,CAAEN,SAAS,IAC1C4oB,YAAa5b,GAAO1M,WAAW,CAAEN,SAAS,KAE9C6lC,8BAA+B,CAC3B/c,qBAAsB9b,GAAO1M,WAAW,CAAEN,SAAS,IACnD+oB,aAAc/b,GAAO1M,aACrB0oB,aAAchc,GAAOrG,IAAIqG,GAAO1M,eAEpCwlC,6BAA8B,CAC1BC,oBAAqBz/B,EAAW,CAAE1D,KAAM,CAAC,KAAM,UAC/CojC,UAAWh5B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC3Dy1C,iBAAkB1/B,EAAU,4BAC5B2/B,yBAA0Bl5B,GAAOrG,IAAIJ,EAAU,8BAEnD+1B,sBAAuB,CACnB3R,UAAWrkB,EAAW,CAAE1D,KAAM,oBAElCujC,yBAA0B,CACtB9lB,OAAQ9Z,EAAU,oBAEtB6/B,0BAA2B,CACvBC,UAAWp5B,GAASksB,YAAY,CAAEx7B,QAAUnN,IAAK,KACjD81C,SAAUr5B,GAASksB,YAAY,CAAEx7B,QAAUnN,IAAK,MAEpD+1C,8CAA+C,CAC3C5b,UAAWrkB,EAAW,CAAE1D,KAAM,mBAC9B41B,cAAexrB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACvDg5B,cAAehsB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,MAE3DwmC,uCAAwC,CACpC3V,gBAAiB7jB,GAAO1M,WAAW,CAAEN,SAAS,OAGvD,CAAEjY,QAAS,YAAauU,SAAU,gCC7DzCrI,OAAOsC,eAAeszB,GAAS,aAAc,CAAE3/B,OAAO,mDACE,EACxD,MAAM8iB,GAAStT,+BACf,SAAkC8I,EAASO,SACjCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,iBAChCiK,GAAO3N,WAAW,CACnC,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,8BAC1D3D,cAEJ,CACItY,KAAM,SACNuL,KAAMgU,EAAU,kBAChBjH,WAAc,CACVwqB,WAAY,CAAC,CACLC,eAAkB,yBAK9B3jB,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DsjB,WAAY9c,GAAOvP,SAAS8I,EAAU,eACvC,CAAExe,QAAS,mBAAqB,CAC/BmJ,QAAS,KAAO,CACZ44B,WAAY,CAAC,CACLC,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAMpC9jB,SAAS,YAAa4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACvDujB,eAAgBzjB,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACnE+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,oBACzBomB,GAAOjM,MAAO,CACXqpB,sBAAuB,CACnBC,UAAWrd,GAAO1M,cAEtBgqB,yBAA0B,CACtBC,OAAQvd,GAAOvP,SAAS8I,EAAU,iBAEtCikB,sBAAuB,CACnBC,UAAWzd,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAEhDk6B,oBAAqB,CACjBC,UAAWrkB,EAAW,CAAE1D,KAAM,mBAC9BhL,OAAQoV,GAAO1M,WAAW,CAAEN,SAAS,KAEzCy8B,6BAA8B,CAC1BvyC,MAAOoc,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,MAEpF0nB,iBAAkB,CACdZ,MAAOhd,GAAOvP,SAAS8I,EAAU,sBAG1C,CAAEjK,SAAU,WAAYvU,QAAS,cAAgB,CAChDmJ,QAAS,KAAO,CACZ64B,eAAgB,iBAChBC,MAAO,CAAC,CACAC,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,kCAK5B9jB,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DqkB,mBAAoB7d,GAAOrG,IAAIJ,EAAU,kBACzC0jB,mBAAoB1jB,EAAU,aAC9B4jB,gBAAiB5jB,EAAU,aAC3BukB,aAAcvkB,EAAU,eACxBwkB,WAAY/d,GAAOrG,IAAIL,EAAW,CAAExD,UAAW,MAAOvK,OAAQ,CAAE4K,SAAU,CAAE7G,SAAU,wBACvF,CAAEA,SAAU,YAAavU,QAAS,mBAAqB,CACtDmJ,QAAS,KAAO,CACZ+4B,mBAAoB,CAChBC,eAAgB,yBAEpBC,gBAAiB,CACbD,eAAgB,oCAItBc,EAAgB,CAClBC,SAAUje,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,KACpEkrB,SAAUle,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAAKwP,SAAS,KACpEmrB,WAAYne,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACxD46B,WAAYpe,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,QAEpD4V,SAAS,gBAAiB4G,GAAOxG,WAAW,CAChD0jB,eAAgB5jB,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,oBACnE+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,oBACzBomB,GAAOjM,MAAO,CACXsqB,oCAAqCnuB,GACjCoV,KAAMhM,EAAW,CAAE1D,KAAM,CAAC,IAAK,IAAK,QACjCooB,GAEPM,uBAAwBN,IAE7B,CAAEjjC,QAAS,gBAAiB4Z,sBAAsB,OAC7CyE,SAAS,YAAa4G,GAAOxG,WAAW,CAC5C0jB,eAAgB5jB,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBACnE+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,oBACzBomB,GAAOjM,MAAO,CACXwqB,wBAAyB,CACrBnkB,MAAOd,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,YAE/DuoB,6BAA8B,CAC1BC,YAAallB,EAAU,gBAE3BmlB,+BAAgC,CAC5BtkB,MAAOd,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3D8T,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDm7B,oCAAqC,CACjCF,YAAallB,EAAU,eACvBwQ,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDo7B,sBAAuB,CACnBtiB,IAAKhD,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mBAGlE,CAAElb,QAAS,YAAa4Z,sBAAsB,MCnIrD1N,OAAOsC,eAAes1B,GAAS,aAAc,CAAE3hC,OAAO,+BACzB,EAC7B,MAAM8iB,GAAStT,GACTuT,GAAWtT,GAGX+7B,GAAkB77B,yBACxB,SAA4B2I,EAASO,SAC3BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/C0jC,EAAoBz5B,GAAO3N,WAAW,CACxC,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCAE9D,CACIjc,KAAM,SACNuL,KAAMgU,EAAU,wBAErB,CAAES,cAAe,YACd0/B,EAAgB15B,GAAO3N,WAAW,CACpC,CACIrY,KAAM,SACNuL,KAAM+T,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BAE9D,CACIjc,KAAM,SACNuL,KAAMgU,EAAU,oBAErB,CAAES,cAAe,mBACd8kB,EAAoB,CACtBO,MAAOrf,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC1D0oC,UAAWr5B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC9D2oC,SAAUt5B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAC7DqM,QAAS08B,GAEPha,EAAa,CACfxgC,MAAOqa,EAAU,eACjBomB,OAAQ1f,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,IAC5Co8B,YAAa5f,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAC7Dq8B,QAAS7f,GAAOvP,SAAS8I,EAAU,iBAEjCumB,EAAqB,CACvBC,aAAcxmB,EAAU,wBACxBymB,cAAezmB,EAAU,wBACzB0mB,eAAgBjgB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,MAEtD08B,EAAmB1vB,GAAOxG,WAAW,CACvC9T,OAAQ6T,EAAU,aAClBra,MAAOqa,EAAU,iBAEf2mB,EAAY,CACdtM,KAAM5T,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACtDmsC,+BAAgC3vB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACjEq8B,QAAS7f,GAAOvP,SAASi/B,IAEvBE,EAAwB,CAC1BR,QAAS91B,EAAW,CAAE1D,KAAM,iBAC5B2iB,MAAOtY,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAC3CqsC,eAAgB7vB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAChEssC,0BAA2B9vB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC5DusC,yBAA0B/vB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC3DwsC,kBAAmBhwB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACpDysC,UAAWhwB,GAASksB,cACpB+D,YAAa52B,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,KACtFi6B,aAAc52B,EAAU,wBACxB62B,mBAAoBsJ,KAEhBtgC,SAAS,qBAAsB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAChExf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,sBAC1DvF,OAAQsP,GAAOxG,WAAW,EACrBwG,GAAOlM,QAAS,CAAC,MAAO,CAAEla,KAAM,UAChComB,GAAOjM,MAAO,CACXqsB,mBAAoB,CAChBrW,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD68B,2BAA4B,CACxBC,MAAOrgB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,IAC3C6vB,OAAQpT,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAEhDm2C,yBAA0B,CACtBnG,UAAWl6B,EAAW,CAAE1D,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvEgkC,kBAAmBrgC,EAAU,4BAC7BsgC,eAAgB75B,GAAO3P,cACvB6mB,OAAQlX,GAAOvP,SAASuP,GAAOxG,WAAW,CACtC6Z,OAAQpT,GAASksB,YAAY,CAAEx7B,IAAK,IACpCu0B,SAAU3rB,EAAU,4BAG5BgnB,uBAAwB,CACpBjB,eAAgB/lB,EAAU,yBAE9BknB,0BAA2B,CACvBrI,SAAU7e,EAAU,eACpBmnB,IAAKnnB,EAAU,eACfqa,KAAM3T,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,KAC1Cm9B,SAAU1gB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAElDo9B,iBAAkBlB,EAClB4Q,8BAA+B,CAC3BjB,8BAA+BrvB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC/E6vB,OAAQpT,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAC5Cm8B,OAAQ1f,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAC5C+sC,sCAAuCvwB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACvFgtC,iBAAkBxwB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAClEitC,gCAAiCxwB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MACrEktC,QAASzwB,GAAS8rB,cAAc,CAAEp7B,IAAK,EAAGnN,IAAK,IAC/CmtC,QAAS1wB,GAAS8rB,cAAc,CAAEp7B,IAAK,EAAGnN,IAAK,IAC/CotC,uDAAwD5wB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzFqtC,4DAA6D7wB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7GstC,+CAAgD9wB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAEpGs9B,wBAAyB,CACrBt1B,MAAOwU,GAAO3P,cACd0wB,KAAM/gB,GAAOrG,IAAIJ,EAAU,eAE/BynB,sBAAuB,CACnBC,qBAAsBjhB,GAAOrG,IAAIqG,GAAO3P,eACxC6wB,oBAAqBlhB,GAAOrG,IAAIJ,EAAU,cAC1C4nB,OAAQnhB,GAAOvP,SAASuP,GAAOxG,WAAW,CACtC4nB,QAASphB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACjDquB,QAASrhB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACjD2sB,OAAQ3f,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KAChDqgB,OAAQrT,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KAChDsuB,QAASthB,GAAOrG,IAAIqG,GAAO3P,mBAGnCkxB,uBAAwB,CACpBriC,MAAOqa,EAAU,eACjB8Z,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE5Dg+B,mBAAoB1C,EACpB2C,wBAAyB,CACrBviC,MAAOqa,EAAU,gBAErBw3B,mBAAoB,CAChBC,0BAA2BhxB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,IAC3EytC,kBAAmBjxB,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACvFi7B,mBAAoBlxB,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,iBACxFk7B,kBAAmBzI,GAAgBb,WACnCuJ,mBAAoB1I,GAAgBb,YAExCwJ,kBAAmB,CACf9T,OAAQvd,GAAOxG,WAAW,CACtB83B,iBAAkB/3B,EAAU,wBAC5Bg4B,qBAAsBh4B,EAAU,wBAChCi4B,+BAAgCj4B,EAAU,wBAC1Ck4B,sBAAuBl4B,EAAU,wBACjCm4B,qBAAsBn4B,EAAU,wBAChCo4B,iBAAkB3xB,GAAOvP,SAAS8I,EAAU,gBAC5Cq4B,eAAgBt4B,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,KACzF27B,eAAgBv4B,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,OAE7FghB,OAAQlX,GAAOxG,WAAW,CACtBs4B,QAAS9xB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MACxDuuC,YAAa/xB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MAC5DwuC,aAAchyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,MAC7DyuC,YAAajyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,IAAMnN,IAAK,QAEhE0uC,MAAOlyB,GAAOxG,WAAW,CACrB24B,sBAAuBnyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACnE4uC,gBAAiBpyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC7D6uC,mBAAoBryB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,GAAIwP,SAAS,OAEjFs/B,iBAAkBtyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC9D+uC,gCAAiCvyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC7EgvC,4BAA6BxyB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACzEivC,oCAAqCzyB,GAAOrG,IAAIqG,GAAO3P,eACvDqiC,oBAAqB1yB,GAAOrG,IAAIsG,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MACpEmvC,oBAAqB3yB,GAAOrG,IAAIsG,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MACpEovC,aAAc5yB,GAAOrG,IAAIsG,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAC7DqvC,eAAgB7yB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACxD8/B,eAAgB9yB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,KACxD+/B,yBAA0B/yB,GAAO1M,WAAW,CAAEN,SAAS,KAE3DggC,wBAAyB,CACrBC,aAAcjzB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,GAAIwP,SAAS,KACvEkgC,oBAAqBlzB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACjE2vC,mBAAoBnzB,GAAOrG,IAAIqG,GAAO3P,eACtC+iC,qBAAsBpzB,GAAOrG,IAAIqG,GAAO3P,eACxCgjC,kBAAmBrzB,GAAOrG,IAAIqG,GAAO3P,eACrCijC,iBAAkBrzB,GAASq+B,IAAI,CAAEF,SAAU,WAE/C1c,gCAAiC5B,EACjC6B,wBAAyB,CACrBC,UAAWroB,EAAU,eACrBsoB,YAAatoB,EAAU,eACvBuoB,WAAYvoB,EAAU,eACtBwoB,iBAAkBxoB,EAAU,eAC5ByoB,QAAShiB,GAAOrG,IAAIqG,GAAO3P,gBAE/B4xB,8BAA+BnC,EAC/BoC,sBAAuBxC,EACvByC,oBAAqB,CACjBjjC,MAAOqa,EAAU,gBAErB6oB,iBAAkB,CACdvlB,MAAOtD,EAAU,wBACjBugC,QAASvgC,EAAU,yBAEvBs6B,4BAA6B,CACzBxE,8BAA+BrvB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC1FswC,cAAe7zB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,KACnDuwC,aAAc9zB,GAAS8rB,cAAc,CAAEp7B,IAAK,EAAGnN,IAAK,KACpDwwC,uCAAwCh0B,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzEywC,qBAAsBh0B,GAAS8rB,cAAc,CAAEp7B,IAAK,GAAKnN,IAAK,KAC9D0wC,qBAAsBj0B,GAAS8rB,cAAc,CAAEp7B,IAAK,GAAKnN,IAAK,KAC9D2wC,WAAYl0B,GAAS8rB,cAAc,CAAEp7B,IAAK,EAAGnN,IAAK,IAClD4wC,oBAAqBp0B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACrE6wC,uBAAwBr0B,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE7D6+B,qCAAsC,CAClC/C,eAAgB/lB,EAAU,wBAC1BwgC,aAAc/5B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACtDqpC,cAAeh6B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAE3D2xB,qCAAsC,CAClCpjC,MAAOqa,EAAU,eACjB7T,OAAQ6T,EAAU,eAClBomB,OAAQ1f,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAEhD++B,+BAAgCzD,EAChC2D,gBAAiBvC,EACjB+Z,8BAA+B,CAC3BzE,2BAA4Bx1B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACxE02C,6BAA8Bl6B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAC1E22C,yBAA0Bn6B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KACtE42C,yBAA0Bp6B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,MAE1Ek/B,yBAA0B5D,EAC1B6D,oCAAqC,CACjCC,cAAe8W,EACf7W,aAAc6W,GAElB5W,4BAA6B,CACzB7L,SAAUjX,GAAOvP,SAASuP,GAAOxG,WAAW,CACxC+B,OAAQyE,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACzCwZ,QAAS08B,KAEbx1C,QAASw1C,GAEbpF,iCAAkC,CAC9BzU,QAAS7f,GAAOvP,SAASi/B,IAE7B6E,wBAAyB,CACrBC,iCAAkCx0B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAClFixC,YAAaz0B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7DkxC,wBAAyB10B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACzEmxC,uBAAwB30B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxEoxC,oBAAqB50B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACrEqxC,4BAA6B70B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7EsxC,gCAAiC90B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACjFuxC,gCAAiC/0B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KACjFwxC,iBAAkB17B,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,QAASC,YAAY,KAC3F++B,oBAAqB17B,EAAU,wBAC/B27B,4BAA6B37B,EAAU,wBACvC8gC,sBAAuB9gC,EAAU,4BACjCyD,QAAS08B,GAEbvE,0BAA2BjV,EAC3B6C,uBAAwB,CACpBxmB,MAAO0D,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,OAE/Cw/B,qBAAsB,CAClBjZ,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDy/B,yBAA0B,CACtBC,SAAU3pB,EAAU,yBAExB+pB,mCAAoC,CAChCrM,SAAUhX,GAASq+B,IAAI,CAAEF,SAAU,2BAA4BC,aAAc,oBAEjF9a,2BAA4B,CACxBrkC,MAAOqa,EAAU,eACjBiqB,WAAYxjB,GAAO1M,WAAW,CAAEN,SAAS,IACzCywB,WAAYzjB,GAAO1M,WAAW,CAAEN,SAAS,IACzC0wB,qBAAsB1jB,GAAO3P,cAC7BszB,aAAc1jB,GAASq+B,IAAI,CAAEF,SAAU,WAE3Cxa,iBAAkB,CACdE,aAAc9jB,GAAOrG,IAAIqG,GAAO3P,eAChColC,WAAYz1B,GAAOrG,IAAIqG,GAAO3P,eAC9B0zB,aAAcxqB,EAAU,gBACxBm8B,cAAen8B,EAAU,wBACzByqB,eAAgBzqB,EAAU,wBAC1Bq8B,iBAAkBr8B,EAAU,wBAC5B2qB,aAAclkB,GAAOxG,WAAW,CAC5Bxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DkuB,YAAankB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC7D4gC,cAAepkB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC/D6gC,cAAerkB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAC9Dwc,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX8hC,iCAAkC,CAC9BC,YAAa71B,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,KACjDuyC,sBAAuB/1B,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,QAGnF,CAAE5V,QAAS,iBACdupC,eAAgBtkB,GAAOxG,WAAW,CAC9Bxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCAC1D0pB,OAAQ1f,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,KAC5CoH,OAAQqV,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAC3Cwc,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXwwB,gCAAiC,CAC7BlR,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DghC,gCAAiC,CAC7BnR,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DihC,iCAAkC,CAC9BpR,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DkhC,kCAAmC,CAC/BrR,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAE5DmhC,qCAAsC,CAClCC,aAAc3kB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAEtDqhC,gCAAiC,CAC7BxR,OAAQpT,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MAEhDwyC,yCAA0C,CACtCC,eAAgBh2B,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,MACpD0yC,wBAAyBl2B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE7EshC,kCAAmC,CAC/BC,aAAc9kB,GAASksB,YAAY,CAAEx7B,IAAK,EAAGnN,IAAK,QAG3D,CAAEzI,QAAS,iBAAkB4Z,sBAAsB,IACtDqwB,WAAYhlB,GAAOvP,SAASuP,GAAOxG,WAAW,CAC1Cxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXkxB,yBAA0B,CACtBC,SAAU3rB,EAAU,yBAExB4rB,oBAAqB,CACjBpb,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElD4hC,kBAAmB,CACfrb,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAGvD,CAAEzI,QAAS,qBAElBu/C,2BAA4B,CACxBP,aAAc/5B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACtDqpC,cAAeh6B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IACvD4pC,WAAYv6B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,KAExDwlC,6BAA8B,CAC1BC,mBAAoBp2B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACpE6yC,8BAA+Br2B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC/E8yC,yCAA0Ct2B,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE/E+yC,6BAA8B3G,EAC9B4G,yCAA0C5G,IAE/C,CAAE70C,QAAS,aACf,CAAEA,QAAS,YAAc,CACxBmJ,QAAS,KAAO,CACZlK,KAAM,iBACN0W,OAAQ,CACJqzB,aAAc,CACV/pC,KAAM,qCAEVkqC,aAAc,CACVlqC,KAAM,kCACNmqC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZtqC,KAAM,gCACN2lC,OAAQ,EACR/0B,OAAQ,EACRyoB,OAAQ,WAKhBja,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DwD,QAASy8B,EACTe,UAAWx6B,GAAOvP,SAAS8I,EAAU,eACtC,CAAExe,QAAS,mBAAqB,CAC/BmJ,QAAS,KAAO,CACZ8Y,QAAS,gBACTw9B,UAAW,CACP,CACIxgD,KAAM,kBACNuiB,MAAO,GAEX,CACIviB,KAAM,uBAEV,CACIA,KAAM,sBACN2jC,UAAW,uBAKnBvkB,SAAS,eAAgB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC1Dxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DovB,mBAAoBrlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,OAC/Dwc,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXuxB,oCAAqC,CACjCpa,MAAOlL,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClE+hC,WAAYvlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACvEgiC,WAAYxlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAE3EiiC,sCAAuC,CACnCva,MAAOlL,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MAClEkiC,YAAa1lB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACxE+hC,WAAYvlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACvEmiC,YAAa3lB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,MACxEgiC,WAAYxlB,GAAOrG,IAAIqG,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,SAGhF,CAAEmR,sBAAsB,IAAS,CAChCzQ,QAAS,KAAO,CACZlK,KAAM,+CAGRygD,EAAgB,CAClB/uB,KAAM1L,GAAO1M,WAAW,CAAEN,SAAS,IACnC8f,MAAOvZ,EAAU,oBACjB0M,MAAOjG,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAE3C,IAAKuC,OAAOwnC,YAAc,CAAEx2C,QAAS,IAAM,OAE7EkV,SAAS,uBAAwB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAClExf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,yCACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX4mC,gCAAiCvqC,OAC1BqqC,GAD0B,CAE7BG,QAAS36B,GAAS46B,eAAe,CAAE7nC,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,KAC/Ds3C,WAAYvhC,EAAU,oBACtBwhC,WAAY/6B,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAE3C,IAAKuC,OAAOwnC,YAAc,CAAEx2C,QAAS,IAAM,IACtF82C,OAAQh7B,GAAOvP,SAAS8I,EAAU,kBAEtC0hC,qCAAsC7qC,OAC/BqqC,GAD+B,CAElCS,UAAWl7B,GAAO1M,WAAW,CAAE3C,OAASnN,IAAK,IAC7C23C,YAAan7B,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IAC9C43C,cAAe7hC,EAAU,eACzB8hC,WAAYr7B,GAAOvP,SAAS8I,EAAU,gBACtC+hC,YAAat7B,GAAOvP,SAAS8I,EAAU,kBAE3CgiC,2BAA4BnrC,OACrBqqC,GADqB,CAExBO,OAAQh7B,GAAOvP,SAAS8I,EAAU,kBAEtCk9B,0CAA2C,CACvCC,SAAUp9B,IACVjG,OAAQ4M,GAASksB,cACjBliB,OAAQ1Q,EAAU,yBAEtBqsB,mCAAoC,CAChC1mC,MAAOqa,EAAU,gBAErBssB,kCAAmC,CAC/B3mC,MAAOqa,EAAU,gBAErBusB,oCAAqC,CACjC32B,QAAS6Q,GAAOvP,SAASuP,GAAO7P,IAAI6P,GAAOxG,WAAW,CAClDmN,OAAQ3G,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDpQ,KAAMgZ,EAAU,iBAChB,CACArV,QAAS,KAAO,CACZ3D,KAAM,WAKvB,CAAExF,QAAS,yBAA2B,CACrCmJ,QAAS,KAAO,CACZlK,KAAM,6CAGRwhD,EAAS,CACX5wC,OAAQoV,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,QAAUnN,IAAK,KAAO,CAAEoN,UAAW,EAAGC,UAAW,QAEnHuI,SAAS,2BAA4B4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACtExf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,2BACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX0nC,mBAAoB,CAChBC,WAAY17B,GAAOvP,SAAS8I,EAAU,8BAE1CoiC,mBAAoB,CAChBD,WAAY17B,GAAOvP,SAAS8I,EAAU,8BAE1CqiC,4BAA6BxrC,OACtBorC,GADsB,CAEzBhI,UAAWl6B,EAAW,CAAE1D,KAAM,gBAElCimC,gCAAiC3rC,KAC1BsrC,GAEPM,+BAAgC1rC,OACzBorC,GADyB,CAE5Bl/B,IAAKhD,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kBAE7D8lC,4BAA6B3rC,OACtBorC,GADsB,CAEzBje,OAAQtd,GAASq+B,IAAI,CAAEF,SAAU,YAErCpC,4BAA6B5rC,OACtBorC,GADsB,CAEzBS,OAAQh8B,GAASq+B,IAAI,CAAEF,SAAU,YAErClC,gBAAiB,CACb3hC,UAAWhB,EAAU,6BAEzB4iC,0BAA2B/rC,OACpBorC,GADoB,CAEvBt8C,MAAOqa,EAAU,mBAG1B,CAAExe,QAAS,oBAAsB,CAChCmJ,QAAS,KAAO,CACZlK,KAAM,iCC7gBlBiN,OAAOsC,eAAe28B,GAAS,aAAc,CAAEhpC,OAAO,qCACnB,EACnC,MAAM8iB,GAAStT,GACTuT,GAAWtT,+BACjB,SAAkC6I,EAASO,SACjCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DoZ,UAAW5S,GAAO1M,WAAW,CAAEN,SAAS,IACxC6f,uBAAwB7S,GAAO3P,cAC/Bm6B,oBAAqBxqB,GAAO3P,cAC5BumC,qBAAsB52B,GAAO3P,cAC7Bo6B,iBAAkBzqB,GAAO3P,cACzBwmC,kBAAmB72B,GAAO3P,cAC1B+rC,qBAAsBp8B,GAAO3P,cAC7ByjB,cAAeva,EAAU,eACzBwa,cAAexa,EAAU,eACzBuZ,MAAO9S,GAAOxG,WAAW,CACrB+wB,MAAOvqB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,UAAYnN,IAAK,OAC3D6vB,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxD2vB,gBAAiBnT,GAAO1M,WAAW,CAAEN,SAAS,IAC9CogB,cAAepT,GAAO1M,WAAW,CAAEN,SAAS,IAC5C4hB,sBAAuB5U,GAAOrG,IAAIqG,GAAO3P,eACzCykB,UAAW9U,GAAOrG,IAAIqG,GAAO3P,eAC7BwmB,aAAc7W,GAAOrG,IAAIqG,GAAO3P,eAChCijB,SAAUtT,GAAOxG,WAAW,CACxB+Z,SAAUvT,GAAO1M,aACjBkgB,QAASxT,GAAO1M,aAChBmgB,UAAWzT,GAAO1M,aAClBogB,SAAU1T,GAAO1M,eAErBugB,aAActa,EAAU,gBACxBoa,UAAWpa,EAAU,gBACrBu+B,eAAgBv+B,EAAU,oBAE9B0+B,aAAc1+B,EAAU,iBACxB4d,WAAY5d,EAAU,yBACvB,CAAExe,QAAS,wBAA8B,CACxCmJ,QAAS,IAAM+b,GAASwU,qBACxBvmB,SAAU,CAAC5J,EAAMpH,EAAOmO,EAAQ0B,SACxBhC,EAAIiC,EAAIC,EAAIC,SAE0D,UAA/DhQ,SADHqI,EAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,SACK,EAAS7P,EAAM41B,aAA0B,IAAP/nB,OAAgB,EAASA,EAAGw/B,QAA+E,UAA/DrtC,MAAAA,OAAqC,EAASA,EAAM41B,aAA0B,IAAP9lB,OAAgB,EAASA,EAAGqmB,QAAU,QAChOrkB,IAAI1K,EAAK1K,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,UAA/DsD,MAAAA,OAAqC,EAASA,EAAM41B,aAA0B,IAAP7lB,OAAgB,EAASA,EAAGomB,QAAU,IAAO,KACpHrkB,IAAI1K,EAAK1K,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,UAA/DsD,MAAAA,OAAqC,EAASA,EAAM41B,aAA0B,IAAP5lB,OAAgB,EAASA,EAAGq9B,OAAS,IAAO,KACnHv7B,IAAI1K,EAAK1K,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEsD,UAGPkc,SAAS,eAAgB4G,GAAOxG,WAAW,CAC/C9T,OAAQsa,GAAO1M,aACfsgB,KAAM5T,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C/F,OAAQoV,GAAO1M,WAAW,CAAEN,SAAS,SAEjCoG,SAAS,uBAAwB4G,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAAmC+J,GAAO7P,IAAI6P,GAAOxG,WAAW,CACxKxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,mCACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACXwqC,6BAA8B,CAC1B9/B,SAAUuB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OAC1DwwB,OAAQhU,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACxD+Y,MAAOyD,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QAE3Dg7C,0BAA2B,CACvBC,YAAaz+B,GAAOrG,IAAIL,EAAW,CAAE1D,KAAM,CAAC,SAAU,iBACtDwwB,QAASpmB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,OACzD6iC,WAAYrmB,GAAO7P,IAAI6P,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,EAAGnN,IAAK,QAAU+B,IAAU,CACvF2I,SAAU,CAAC5J,EAAMpH,EAAOmO,EAAQ0B,KACxBzI,EAAKsF,MAAMhQ,KAAK,WAAWoR,OAAS9N,KAC7B8R,IAAI1K,EAAM,oCAEdiB,EAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,QAGlDu5B,KAAMtmB,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAC9C+tC,cAAe1+B,GAAOrG,IAAIqG,GAAOvP,SAASuP,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,QAAUnN,IAAK,KAAO,CAAEoN,UAAW,EAAGC,UAAW,QAGvI,CAAE9V,QAAS,wBAA0B,CACpCmJ,QAAS,KAAO,CACZlK,KAAM,0BACNosC,QAAS,GACTC,WAAY,EACZC,KAAM,UAGNltB,SAAS,kBAAmB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC7DY,MAAOd,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,WAC3Dod,OAAQrT,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,MAChD,CACAzM,QAAS,KAAO,CACZkW,MAAO,kBACPiZ,OAAQ,SAGRja,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5D5O,OAAQ2O,EAAU,kBAClBw+B,OAAQx+B,EAAU,kBAClBy+B,WAAYz+B,EAAU,mBACvB,CAAExe,QAAS,mBAAqB,CAC/BmJ,QAAS,KAAO,CACZ0G,OAAQ,EACRmtC,OAAQ,EACRC,WAAY,SAGZ5+B,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAO3N,WAAW,CAC5D,CACIrY,KAAM,SACNuL,KAAMya,GAAO1M,cAEjB,CACItZ,KAAM,SACNuL,KAAMya,GAAOxG,WAAW,CACpB6iC,WAAYr8B,GAAO7P,IAAImJ,EAAW,CAAE1D,KAAM,CAAC,aAAc,UAAW,YAAa,YAAc,CAAE1R,QAAS,IAAM,eAChHo4C,OAAQt8B,GAAOvP,SAASuP,GAAOxG,WAAW,CACtC1U,SAAUkb,GAAO1M,aACjBipC,WAAYv8B,GAAO1M,aACnBpW,MAAOqc,EAAU,sBAEtB,CAAEjK,SAAU,eAEpB,CAAEvU,QAAS,iBAAkBif,cAAe,mBAAqB,CAChE9V,QAAS,IAAM,gBChIvB+C,OAAOsC,eAAeg9B,GAAS,aAAc,CAAErpC,OAAO,wCAChB,EACtC,MAAM8iB,GAAStT,kCACf,SAAqC8I,EAASO,SACpCuD,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/CwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7CgxB,EAAqB,CACvBC,WAAYntB,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6BAChE2d,KAAM5T,GAAO1M,WAAW,CAAEN,SAAS,OAE/BoG,SAAS,+BAAgC4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC1Exf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gCAC1DvF,OAAQsP,GAAOxG,WAAW,EACrBwG,GAAOlM,QAAS,CAAC,MAAO,CAAEla,KAAM,UAChComB,GAAOjM,MAAO,CACX2yB,4BAA6BF,EAC7BG,4BAA6B,CACzB5c,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDojC,sBAAuB,CACnB5sC,KAAMsf,EAAW,CAAE1D,KAAM,CAAC,SAAU,UACpCmU,YAAa/J,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAElDszC,0BAA2B,CACvBzjB,OAAQ9Z,EAAU,oBAEtBstB,uBAAwB,CACpBC,WAAYxtB,EAAW,CAAE1D,KAAM,CAAC,OAAQ,UACxCmxB,kBAAmB/mB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,IACpDwjC,oBAAqBhnB,GAAO1M,WAAW,CAAE3C,IAAK,EAAGnN,IAAK,KAE1DyjC,6BAA8BT,EAC9BU,0BAA2B,CACvBC,YAAa7tB,EAAW,CAAE1D,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpGwxB,sBAAuB,CACnBC,WAAYrnB,GAAOrG,IAAIqG,GAAO3P,gBAElCi3B,oBAAqBd,IAE1B,CAAEzrC,QAAS,oBAAqB4Z,sBAAsB,KAC1D,CAAE5Z,QAAS,sBAAwB,CAClCmJ,QAAS,KAAO,CACZlK,KAAM,4BACN0W,OAAQ,CACJ+1B,WAAY,2BACZ7S,KAAM,mBC9CtB3sB,OAAOsC,eAAeizC,GAAS,aAAc,CAAEt/C,OAAO,mCACrB,EACjC,MAAM8iB,GAAStT,6BACf,SAAgC8I,EAASO,SAC/BuD,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/CwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,KAC3C4D,SAAS,gBAAiB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC3Dxf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,6BACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX0oC,kBAAmB,CACfC,aAAcnjC,EAAU,gBAE5BojC,sBAAuB,CACnBC,QAASrjC,EAAU,sBACnBsjC,SAAUtjC,EAAU,kBAExBgQ,qBAAsB,CAClB2uB,SAAUl4B,GAAOvP,SAAS8I,EAAU,qBAG7C,CAAExe,QAAS,gBAAiBuU,SAAU,SAAW,CAChDpL,QAAS,KAAO,CACZlK,KAAM,kBACN0iD,aAAc,CACVjjC,KAAM,0BAIVL,SAAS,qBAAsB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAChExf,KAAMsf,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,kCACzD+J,GAAOlM,QAAS,CAAC,CAAEla,KAAM,UACzBomB,GAAOjM,MAAO,CACX+oC,kBAAmB,CACfC,SAAU/8B,GAAOvP,SAAS6I,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,uBAElF+mC,4BAA6B,CACzBlqB,MAAOxZ,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qBAC3DgnC,cAAej9B,GAAO1M,aACtB4pC,cAAel9B,GAAO1M,cAE1B4oC,gBAAiB,CACbiB,OAAQ5jC,EAAU,uBAEtB6jC,wBAAyB,CACrBxyC,OAAQoV,GAAO1M,WAAW,CAAEN,SAAS,IACrCqqC,aAAc/jC,EAAW,CAAE1D,KAAM,iBACjC0nC,kBAAmBt9B,GAAO3P,cAC1BsuC,sBAAuB3+B,GAAO1M,WAAW,CAAEN,SAAS,KAExDwqC,8BAA+B,CAC3BC,YAAankC,IACbokC,kBAAmBnkC,EAAU,mBAC7BokC,mBAAoBpkC,EAAU,oBAElCqkC,kBAAmB,CACfhzC,OAAQoV,GAAO1M,WAAW,CAAEN,SAAS,IACrC6qC,yBAA0B79B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,QAAUnN,IAAK,KAC5Es6C,gBAAiB99B,GAAO3P,eAE5B0tC,oBAAqB,CACjBC,OAAQzkC,EAAU,mBAClBskC,yBAA0B79B,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,QAAUnN,IAAK,KAC5Es6C,gBAAiB99B,GAAO3P,iBAGjC,CAAEtV,QAAS,uBAAyB,CACnCmJ,QAAS,KAAO,CACZlK,KAAM,kBACNikD,SAAU,mCCrEtBh3C,OAAOsC,eAAeq+B,GAAS,aAAc,CAAE1qC,OAAO,oCACpB,EAClC,MAAM8iB,GAAStT,GAETg8B,GAAkB/7B,8BACxB,SAAiC6I,EAASO,SAChCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,gBAAiB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC3D9H,SAAU4H,IACV6L,SAAUnF,GAAOvP,SAAS8I,EAAU,+BACrC,CAAExe,QAAS,kBAAoB,CAC9BmJ,QAAS,KAAO,CACZwN,SAAU,kBACVyT,SAAU,CACN,CACIwB,OAAQ,EACRzc,QAAS,CACL49B,aAAc,gCACdC,WAAY,QACZjL,WAAY,4BAMxB1jB,SAAS,4BAA6B4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CACvEmN,OAAQ3G,GAAO1M,WAAW,CAAEN,SAAS,EAAMrC,IAAK,IAChDzG,QAASqP,EAAU,qBACpB,CAAEjK,SAAU,SAAW,CACtBpL,QAAS,KAAO,CACZyiB,OAAQ,EACRzc,QAAS,CACL49B,aAAc,gCACdC,WAAY,QACZjL,WAAY,0BAIhB1jB,SAAS,mBAAoB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC9DsuB,aAAcxuB,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,qCAClE8xB,WAAYzuB,EAAW,CAAE1D,KAAM,CAAC,QAAS,uBACxCoK,GAAOlM,QAAS,CAAC,CAAEla,KAAM,kBACzBomB,GAAOjM,MAAO,CACXi0B,iCAAkC,CAC9BhrB,QAAS1D,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,+BAEjEgyB,uCAAwC,CACpCnjC,SAAUwU,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D6mB,WAAY4L,GAAgBb,YAEhCK,8BAA+B,CAC3B/iB,SAAUnF,GAAOvP,SAAS8I,EAAU,sBAExC4uB,gCAAiC,CAC7BrjC,SAAUwU,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAC9D6mB,WAAY4L,GAAgBb,cAGrC,CAAE9sC,QAAS,mBAAoB4Z,sBAAsB,IAAS,CAC7DzQ,QAAS,KAAO,CACZ4jC,aAAc,gCACdC,WAAY,QACZjL,WAAY,wBC/DxB71B,OAAOsC,eAAe6+B,GAAS,aAAc,CAAElrC,OAAO,gCACxB,EAC9B,MAAMmrC,GAAU37B,GACV47B,GAAW37B,GACX47B,GAAc17B,GACd27B,GAAY70B,GACZ80B,GAAkB70B,GAClB80B,GAAkBtxB,GAClBuxB,GAAqBtxB,GACrB6mC,GAAgB5mC,GAChBuxB,GAAiBtxB,0BACvB,SAA6B/B,EAASO,MAElBozB,yBAAyB3zB,EAASO,MAC1C+yB,iBAAiBtzB,EAASO,MACzBgzB,kBAAkBvzB,EAASO,MACxBizB,qBAAqBxzB,EAASO,MAChCkzB,mBAAmBzzB,EAASO,MACtBmzB,yBAAyB1zB,EAASO,MAC/BqzB,4BAA4B5zB,EAASO,MAC1CooC,uBAAuB3oC,EAASO,MAC/BuzB,wBAAwB9zB,EAASO,cCrBpD9O,OAAOsC,eAAeggC,GAAS,aAAc,CAAErsC,OAAO,qCACnB,EACnC,MAAM8iB,GAAStT,+BACf,SAAkC8I,EAASO,SACjCwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,KAC7CqD,SAAS,iBAAkB4G,GAAO7P,IAAI6P,GAAOxG,WAAW,CAC5DgwB,kBAAmBxpB,GAAO3P,cAC1Bo5B,YAAazpB,GAAO3P,cACpBqb,KAAM1L,GAAO1M,WAAW,CAAEN,SAAS,IACnC02B,WAAY1pB,GAAOrN,QAAQ2G,EAAW,CAAExD,UAAW,WAAYvK,OAAQ,CAAE0K,KAAM,gBAAmBsD,EAAU,eAC7G,CAAExe,QAAS,mBAAqB,CAC/BmJ,QAAS,WACCwnB,EAAOjoB,KAAK2zB,MAAuB,WAAjB3zB,KAAK4zB,UAA2B,iBACjD,CACHmS,mBAAmB,EACnBC,aAAa,EACb/d,KAAAA,EACAge,WAAY,CACRvV,sBAAuB,CACnBn6B,KAAM,sBACN87B,UAAW,CACP97B,KAAM,kBACN0xB,KAAAA,EACAwK,aAAc,CACVl8B,KAAM,wBACNq8B,OAAQ,uBAEZL,SAAU,wBAGlB3B,uBAAwB,CACpBr6B,KAAM,uBACN87B,UAAW,CACP97B,KAAM,kBACN0xB,KAAAA,EACAwK,aAAc,CACVl8B,KAAM,wBACNq8B,OAAQ,oBAEZL,SAAU,qBAGlBxB,oBAAqB,CACjBx6B,KAAM,oBACN87B,UAAW,CACP97B,KAAM,kBACN0xB,KAAAA,EACAwK,aAAc,CACVl8B,KAAM,oBACN0xB,KAAAA,GAEJsK,SAAU,yBCpDtC/uB,OAAOsC,eAAewmB,GAAS,aAAc,CAAE7yB,OAAO,wBAChC,EACtB,MAAM8yB,GAAgBtjB,GAChBujB,GAAWtjB,GACXsT,GAAWpT,GACXqjB,GAAcvc,GACdg2B,GAAc/1B,GACdg2B,GAAkBxyB,GAClB2/B,GAAiB1/B,GACjB8Y,GAAc7Y,GACd8Y,GAAe7Y,GACf2I,GAAe1I,GACf6Y,GAAW5Y,GACX6Y,GAAS5Y,GACT6Y,GAAkB5Y,GAClBkyB,GAAajyB,GACbkyB,GAAkBjyB,kBACxB,SAAqBrC,EAASO,MAEjBya,kBAAkBhb,EAASO,MACtB2a,uBAAuBlb,EAASO,MACrC4a,kBAAkBnb,EAASO,MACxB6a,qBAAqBpb,EAASO,MAC1Bg0B,yBAAyBv0B,EAASO,MACtCi0B,qBAAqBx0B,EAASO,MAC3BihC,wBAAwBxhC,EAASO,MACpC8a,qBAAqBrb,EAASO,MAC7B+a,sBAAsBtb,EAASO,MAC/B0a,sBAAsBjb,EAASO,MACnCgb,kBAAkBvb,EAASO,MAC7Bib,gBAAgBxb,EAASO,MAChBkb,yBAAyBzb,EAASO,MACvCk0B,oBAAoBz0B,EAASO,MACxBm0B,yBAAyB10B,EAASO,ICjCtD,IAAIe,GAAmBhc,IAAQA,GAAKgc,yBAA4B5P,OAAU,SAAS3N,EAAGkD,EAAGF,EAAGwa,QAC7E,IAAPA,MAAuBxa,UACpBgN,eAAehQ,EAAGwd,EAAI,CAAEC,YAAY,EAAMhM,IAAK,kBAAoBvO,EAAEF,OAC1E,SAAShD,EAAGkD,EAAGF,EAAGwa,QACT,IAAPA,MAAuBxa,KACzBwa,GAAMta,EAAEF,KAEV20B,GAAsBp2B,IAAQA,GAAKo2B,4BAA+BhqB,OAAU,SAAS3N,EAAGgF,UACjFgL,eAAehQ,EAAG,UAAW,CAAEyd,YAAY,EAAM9Z,MAAOqB,KAC9D,SAAShF,EAAGgF,aACEA,IAEf4yB,GAAgBr2B,IAAQA,GAAKq2B,cAAiB,SAAUC,MACpDA,GAAOA,EAAIC,kBAAmBD,MAC9BxE,EAAS,MACF,MAAPwE,UAAsB70B,KAAK60B,EAAe,YAAN70B,GAAmB0K,OAAOkQ,eAAe3W,KAAK4wB,EAAK70B,OAAoBqwB,EAAQwE,EAAK70B,aACzGqwB,EAAQwE,GACpBxE,GAEX3lB,OAAOsC,eAAe+nB,GAAS,aAAc,CAAEp0B,OAAO,IACtD,4CAA8C,EAC9C,MAAM8iB,GAAStT,GACT6kB,GAAgB5kB,GAChB6kB,GAAY3kB,GAClB,sBAAsBskB,GAAaxd,IAMnC,yBALA,iBACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP;wECPX,YAAgBopC,OAAWC,EAAMD,EAAIjlD,cAAiBklD,GAAO,KAASA,GAAO,EAI7E,MA2DMC,GACJ,IAAIzyC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEpE0yC,GACJ,IAAI1yC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAE7E2yC,GACJ,IAAI3yC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAEhD4yC,GACJ,IAAI5yC,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAgBxD6yC,GAAgB,IAAIriD,MAAO,KACjCsiD,GAAOD,IAOP,MAAME,GAAgB,IAAIviD,MAAMwiD,IAChCF,GAAOC,IAKP,MAAME,GAAgB,IAAIziD,MAjBJ,KAkBtBsiD,GAAOG,IAMP,MAAMC,GAAgB,IAAI1iD,MAAM2iD,KAChCL,GAAOI,IAGP,MAAME,GAAgB,IAAI5iD,MAhGF,IAiGxBsiD,GAAOM,IAGP,MAAMC,GAAgB,IAAI7iD,MA3FF,IAgGxB,YAAwB8iD,EAAaC,EAAYC,EAAYC,EAAOC,QAE7DJ,YAAeA,OACfC,WAAeA,OACfC,WAAeA,OACfC,MAAeA,OACfC,WAAeA,OAGfC,UAAeL,GAAeA,EAAYhmD,OAIjD,IAAIsmD,GACAC,GACAC,GAGJ,YAAkBC,EAAUC,QACrBD,SAAWA,OACXE,SAAW,OACXD,UAAYA,EAzBnBlB,GAAOO,IA8BP,MAAMa,GAAUC,GAEPA,EAAO,IAAMlB,GAAWkB,GAAQlB,GAAW,SAAgB,IAQ9DmB,GAAY,CAACvkD,EAAGQ,OAGlBgkD,YAAYxkD,EAAEykD,WAAmB,IAALjkD,IAC5BgkD,YAAYxkD,EAAEykD,WAAcjkD,IAAM,EAAK,KAQrCkkD,GAAY,CAAC1kD,EAAGgB,EAAOvD,KAEvBuC,EAAE2kD,SAtIc,GAsISlnD,KACzBmnD,QAAW5jD,GAAShB,EAAE2kD,SAAY,SAC1B3kD,EAAGA,EAAE4kD,UACbA,OAAS5jD,GAzIO,GAyIchB,EAAE2kD,WAChCA,UAAYlnD,EA1II,OA4IhBmnD,QAAW5jD,GAAShB,EAAE2kD,SAAY,QAClCA,UAAYlnD,IAKZonD,GAAY,CAAC7kD,EAAGD,EAAG+kD,QAEb9kD,EAAG8kD,EAAS,EAAJ/kD,GAAiB+kD,EAAS,EAAJ/kD,EAAQ,KAS5CglD,GAAa,CAACC,EAAMrC,SAEpB5vC,EAAM,QAEM,EAAPiyC,OACG,MACF,UACCrC,EAAM,UACV5vC,IAAQ,GAiIXkyC,GAAY,CAACH,EAAMV,EAAUc,WAK3BC,EAAY,IAAIxkD,MAAMykD,QAExBC,EACAtoD,EAFAioD,EAAO,MAONK,EAAO,EAAGA,GAtTO,GAsTaA,MACvBA,GAAQL,EAAQA,EAAOE,EAASG,EAAO,IAAO,MASrDtoD,EAAI,EAAIA,GAAKqnD,EAAUrnD,IAAK,KAC3B4lD,EAAMmC,EAAS,EAAJ/nD,EAAQ,GACX,IAAR4lD,MAEK,EAAJ5lD,GAAkBgoD,GAAWI,EAAUxC,KAAQA,MAoHlD2C,GAActlD,QAEdjD,MAGCA,EAAI,EAAGA,EAzcUwoD,IAycMxoD,MAASyoD,UAAc,EAAJzoD,GAAkB,MAC5DA,EAAI,EAAGA,EAvcU,GAucMA,MAAS0oD,UAAc,EAAJ1oD,GAAkB,MAC5DA,EAAI,EAAGA,EArcU,GAqcMA,MAAS2oD,QAAY,EAAJ3oD,GAAkB,IAE7DyoD,UAAUG,KAA0B,IACpCC,QAAU5lD,EAAE6lD,WAAa,IACzBC,SAAW9lD,EAAEiH,QAAU,GAOrB8+C,GAAa/lD,IAEbA,EAAE2kD,SAAW,KACL3kD,EAAGA,EAAE4kD,QACN5kD,EAAE2kD,SAAW,MAEpBH,YAAYxkD,EAAEykD,WAAazkD,EAAE4kD,UAE/BA,OAAS,IACTD,SAAW,GA8BTqB,GAAU,CAAClB,EAAM/nD,EAAGwD,EAAG87B,WAErB4pB,EAAU,EAAJlpD,EACNmpD,EAAU,EAAJ3lD,SACJukD,EAAKmB,GAAgBnB,EAAKoB,IAC1BpB,EAAKmB,KAAkBnB,EAAKoB,IAAiB7pB,EAAMt/B,IAAMs/B,EAAM97B,IASnE4lD,GAAa,CAACnmD,EAAG8kD,EAAMzkD,WAKrBgC,EAAIrC,EAAEomD,KAAK/lD,OACbgmD,EAAIhmD,GAAK,OACNgmD,GAAKrmD,EAAEsmD,WAERD,EAAIrmD,EAAEsmD,UACRN,GAAQlB,EAAM9kD,EAAEomD,KAAKC,EAAI,GAAIrmD,EAAEomD,KAAKC,GAAIrmD,EAAEq8B,aAIxC2pB,GAAQlB,EAAMziD,EAAGrC,EAAEomD,KAAKC,GAAIrmD,EAAEq8B,WAGhC+pB,KAAK/lD,GAAKL,EAAEomD,KAAKC,KACfA,MAGE,IAEND,KAAK/lD,GAAKgC,GAURkkD,GAAiB,CAACvmD,EAAGwmD,EAAOC,SAK5BnC,EACAoC,EAEA1B,EACAp3B,EAFA+4B,EAAK,KAIU,IAAf3mD,EAAE8lD,cAEM9lD,EAAEwkD,YAAYxkD,EAAE4mD,MAAa,EAALD,IAAW,EAAM3mD,EAAEwkD,YAAYxkD,EAAE4mD,MAAa,EAALD,EAAS,KAC7E3mD,EAAEwkD,YAAYxkD,EAAE6mD,MAAQF,OAGhB,IAATrC,KACQtkD,EAAG0mD,EAAIF,MAIVnD,GAAaqD,MACV1mD,EAAGglD,EAtkBG,IAskBiB,EAAGwB,KAC5B5D,GAAYoC,GACN,IAAVp3B,OACI21B,GAAYyB,MACRhlD,EAAG0mD,EAAI94B,UAGZy2B,GAAOC,MAGJtkD,EAAGglD,EAAMyB,KACX5D,GAAYmC,GACN,IAAVp3B,OACM41B,GAAUwB,MACRhlD,EAAGskD,EAAM12B,WAQhB+4B,EAAK3mD,EAAE8lD,aAGR9lD,EAlkBQ,IAkkBMwmD,IAYpBM,GAAa,CAAC9mD,EAAG+mD,WAIfjC,EAAWiC,EAAK7C,SAChB8C,EAAWD,EAAK5C,UAAUV,YAC1BK,EAAYiD,EAAK5C,UAAUL,UAC3BF,EAAWmD,EAAK5C,UAAUP,UAC5B7mD,EAAGwD,EAEH8I,EADA+6C,WAOFkC,SAAW,IACXW,SAhnBoB,IAknBjBlqD,EAAI,EAAGA,EAAI6mD,EAAO7mD,IACQ,IAAzB+nD,EAAS,EAAJ/nD,MACLqpD,OAAOpmD,EAAEsmD,UAAYlC,EAAWrnD,IAChCs/B,MAAMt/B,GAAK,KAGJ,EAAJA,EAAQ,GAAa,OASvBiD,EAAEsmD,SAAW,KACXtmD,EAAEomD,OAAOpmD,EAAEsmD,UAAalC,EAAW,IAAMA,EAAW,IAC/C,EAAP/6C,GAAqB,IACxBgzB,MAAMhzB,GAAQ,IACdu8C,UAEE9B,MACA+B,YAAcmB,EAAa,EAAP39C,EAAW,UAIhC+6C,SAAWA,EAKXrnD,EAAKiD,EAAEsmD,UAAY,EAAcvpD,GAAK,EAAGA,OAAkBiD,EAAG8kD,EAAM/nD,KAKlE6mD,OAID5jD,EAAEomD,KAAK,KACTA,KAAK,GAAiBpmD,EAAEomD,KAAKpmD,EAAEsmD,eACtBtmD,EAAG8kD,EAAM,KAGhB9kD,EAAEomD,KAAK,KAETA,OAAOpmD,EAAEinD,UAAYlqD,IACrBqpD,OAAOpmD,EAAEinD,UAAY1mD,IAGX,EAAP8I,GAAqBy7C,EAAS,EAAJ/nD,GAAkB+nD,EAAS,EAAJvkD,KACpD87B,MAAMhzB,MAAWgzB,MAAMt/B,IAAMiD,EAAEq8B,MAAM97B,GAAKP,EAAEq8B,MAAMt/B,GAAKiD,EAAEq8B,MAAM97B,IAAM,IAC9D,EAAJxD,EAAQ,GAAa+nD,EAAS,EAAJvkD,EAAQ,GAAa8I,IAGlD+8C,KAAK,GAAiB/8C,OACbrJ,EAAG8kD,EAAM,SAEb9kD,EAAEsmD,UAAY,KAErBF,OAAOpmD,EAAEinD,UAAYjnD,EAAEomD,KAAK,GApeb,EAACpmD,EAAG+mD,WAIfjC,EAAkBiC,EAAK7C,SACvBE,EAAkB2C,EAAK3C,SACvB4C,EAAkBD,EAAK5C,UAAUV,YACjCK,EAAkBiD,EAAK5C,UAAUL,UACjCl2B,EAAkBm5B,EAAK5C,UAAUT,WACjC1kD,EAAkB+nD,EAAK5C,UAAUR,WACjCE,EAAkBkD,EAAK5C,UAAUN,eACnC3jD,EACAnD,EAAGwD,EACH8kD,EACA6B,EACA1pD,EACA2pD,EAAW,MAEV9B,EAAO,EAAGA,GA1NO,GA0NaA,MAC/BH,SAASG,GAAQ,QAMK,EAArBrlD,EAAEomD,KAAKpmD,EAAEinD,UAAgB,GAAa,EAEtC/mD,EAAIF,EAAEinD,SAAW,EAAG/mD,EAtOH,IAsOoBA,MACpCF,EAAEomD,KAAKlmD,KACJ4kD,EAA+B,EAA1BA,EAAS,EAAJ/nD,EAAQ,GAAiB,GAAa,EACnDsoD,EAAOxB,MACFA,SAGA,EAAJ9mD,EAAQ,GAAasoD,EAGtBtoD,EAAIqnD,MAENc,SAASG,OACH,EACJtoD,GAAKiC,MACC4uB,EAAM7wB,EAAIiC,MAEhB8lD,EAAS,EAAJ/nD,KACP6oD,SAAWpoD,KAAY0pD,GACrBpD,MACA+B,YAAcroD,KAAe,EAAJT,EAAQ,GAAamqD,QAGnC,IAAbC,KAMD,OACMtD,EAAa,EACQ,IAArB7jD,EAAEklD,SAASG,UAChBH,SAASG,OACTH,SAASG,EAAO,IAAM,IACtBH,SAASrB,QAIC,QACLsD,EAAW,OAOf9B,EAAOxB,EAAqB,IAATwB,EAAYA,UAC9BrlD,EAAEklD,SAASG,GACF,IAANtoD,KACDiD,EAAEomD,OAAOlmD,GACTK,EAAI6jD,IACJU,EAAS,EAAJvkD,EAAQ,KAAe8kD,MAE5BO,YAAmBd,EAAS,EAAJvkD,EAAQ,IAAcukD,EAAS,EAAJvkD,KAC5C,EAAJA,EAAQ,GAAa8kD,WAwZrBrlD,EAAG+mD,MAGJjC,EAAMV,EAAUpkD,EAAEklD,WAQxBkC,GAAY,CAACpnD,EAAG8kD,EAAMV,SAKtBrnD,EAEAsqD,EADAC,KAGAC,EAAUzC,EAAK,GAEfzkC,EAAQ,EACRmnC,EAAY,EACZC,EAAY,MAEA,IAAZF,MACU,MACA,KAEQ,KAAL,GAAS,GAAa,MAElCxqD,EAAI,EAAGA,GAAKqnD,EAAUrnD,MAChBwqD,IACCzC,EAAe,KAAL,GAAS,KAEvBzkC,EAAQmnC,GAAaH,IAAWE,IAG3BlnC,EAAQonC,IACf/B,QAAiB,EAAT2B,IAAwBhnC,EAEd,IAAXgnC,GAELA,IAAWC,KAAa5B,QAAiB,EAAT2B,OAClC3B,QAAQgC,OAEDrnC,GAAS,KAChBqlC,QAAQiC,QAGRjC,QAAQkC,QAGJ,IACEP,EAEM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAUZM,GAAY,CAAC7nD,EAAG8kD,EAAMV,SAKtBrnD,EAEAsqD,EADAC,KAGAC,EAAUzC,EAAK,GAEfzkC,EAAQ,EACRmnC,EAAY,EACZC,EAAY,MAGA,IAAZF,MACU,MACA,GAGTxqD,EAAI,EAAGA,GAAKqnD,EAAUrnD,SAChBwqD,IACCzC,EAAe,KAAL,GAAS,OAEvBzkC,EAAQmnC,GAAaH,IAAWE,OAG3BlnC,EAAQonC,QACFznD,EAAGqnD,EAAQrnD,EAAE0lD,eAA+B,KAAVrlC,QAE7B,IAAXgnC,GACLA,IAAWC,OACHtnD,EAAGqnD,EAAQrnD,EAAE0lD,iBAIf1lD,EAlxBI,GAkxBQA,EAAE0lD,YACd1lD,EAAGqgB,EAAQ,EAAG,IAEfA,GAAS,OACRrgB,EAnxBI,GAmxBUA,EAAE0lD,YAChB1lD,EAAGqgB,EAAQ,EAAG,QAGdrgB,EApxBI,GAoxBYA,EAAE0lD,YAClB1lD,EAAGqgB,EAAQ,GAAI,MAGnB,IACEgnC,EACM,IAAZE,KACU,MACA,GAEHF,IAAWE,KACR,IACA,MAGA,IACA,KAwHlB,IAAIO,IAAmB,EAKvB,MAuBMC,GAAqB,CAAC/nD,EAAG0iD,EAAKsF,EAAYC,QAMpCjoD,EAAI,KAA6B,EAAI,GAAI,GA3flC,EAACA,EAAG0iD,EAAKC,EAAKuF,QAMrBloD,GAENkoD,OACQloD,EAAG2iD,MACH3iD,GAAI2iD,MAKd6B,YAAYz1C,IAAI/O,EAAEmoD,OAAOC,SAAS1F,EAAKA,EAAMC,GAAM3iD,EAAEykD,WACrDA,SAAW9B,IA4eF3iD,EAAG0iD,EAAKsF,GAAY,IAoKjC,IAMIK,GAAQ,CACXC,SAzMmBtoD,IAGb8nD,KA5mBgB,UAEjB/qD,EACAsoD,EACA5nD,EACAunD,EACAV,QACEY,EAAW,IAAIvkD,MAAMykD,UAgBlB,EACJJ,EAAO,EAAGA,EAAOuD,GAAoBvD,WAC5BA,GAAQvnD,EACfV,EAAI,EAAGA,EAAK,GAAK6lD,GAAYoC,GAAQjoD,OAC3BU,KAAYunD,SAQhBvnD,EAAS,GAAKunD,IAGpB,EACFA,EAAO,EAAGA,EAAO,GAAIA,WACdA,GAAQV,EACbvnD,EAAI,EAAGA,EAAK,GAAK8lD,GAAYmC,GAAQjoD,OAC7BunD,KAAUU,UAIhB,EACFA,EAvYe,GAuYGA,WACbA,GAAQV,GAAQ,EACrBvnD,EAAI,EAAGA,EAAK,GAAM8lD,GAAYmC,GAAQ,EAAKjoD,OACnC,IAAMunD,KAAUU,MAM1BK,EAAO,EAAGA,GAvYO,GAuYaA,MACxBA,GAAQ,QAGf,EACGtoD,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,UAEJA,GAAK,QACO,EAAJA,EAAQ,GAAa,QAEzB,YAMDimD,GAAcwF,IAAetD,GAGlCnoD,EAAI,EAAGA,EAhbU,GAgbKA,OACR,EAAJA,EAAQ,GAAa,KACjB,EAAJA,GAAkBgoD,GAAWhoD,EAAG,MAI/B,IAAI0rD,GAAezF,GAAcJ,GAAa2C,IAzbxCA,IAYA,OA8aN,IAAIkD,GAAevF,GAAcL,GAAa,EAvbxC,GASA,OA+aL,IAAI4F,GAAe,IAAI9nD,MAAM,GAAImiD,GAAc,EArb1C,GAiBJ,WAk7BG,KAGnB4F,OAAU,IAAIC,GAAS3oD,EAAEwlD,UAAWzB,MACpC6E,OAAU,IAAID,GAAS3oD,EAAEylD,UAAWzB,MACpC6E,QAAU,IAAIF,GAAS3oD,EAAE0lD,QAASzB,MAElCW,OAAS,IACTD,SAAW,KAGF3kD,IA0LZ8oD,iBAPwBf,GAQxBgB,gBA1JyB,CAAC/oD,EAAG0iD,EAAKsF,EAAYC,SAMzCe,EAAUC,EACVC,EAAc,EAGdlpD,EAAE0d,MAAQ,GA5hCgB,IA+hCxB1d,EAAEmpD,KAAKC,cACPD,KAAKC,UArGY,CAACppD,QAMpBjD,EADAssD,EAAa,eAIZtsD,EAAI,EAAGA,GAAK,GAAIA,IAAKssD,KAAgB,KACtB,EAAbA,GAAoD,IAAhCrpD,EAAEwlD,UAAc,EAAJzoD,UAx8BX,KA88BQ,IAAhCiD,EAAEwlD,UAAU,KAA0D,IAAjCxlD,EAAEwlD,UAAU,KAChB,IAAjCxlD,EAAEwlD,UAAU,WA98BY,MAi9BvBzoD,EAAI,GAAIA,EAr7BS,IAq7BOA,OACS,IAAhCiD,EAAEwlD,UAAc,EAAJzoD,UAl9BU,SADA,GAmiCLusD,CAAiBtpD,OAI3BA,EAAGA,EAAE0oD,WAIL1oD,EAAGA,EAAE4oD,UA1LE,CAAC5oD,QAEjBkpD,SAGMlpD,EAAGA,EAAEwlD,UAAWxlD,EAAE0oD,OAAOtE,aACzBpkD,EAAGA,EAAEylD,UAAWzlD,EAAE4oD,OAAOxE,aAGxBpkD,EAAGA,EAAE6oD,SASXK,EAAcK,GAAgBL,GAAe,GACS,IAArDlpD,EAAE0lD,QAAgC,EAAxB3C,GAASmG,GAAmB,GADSA,cAMnDtD,SAAW,KAAmB,GAAK,EAAI,EAAI,EAItCsD,GAwKSM,CAAcxpD,KAGhBA,EAAE4lD,QAAU,EAAI,IAAO,IACpB5lD,EAAE6lD,WAAa,EAAI,IAAO,EAMrCoD,GAAeD,MAAuBC,MAI/BA,EAAcjB,EAAa,EAGnCA,EAAa,GAAKgB,QAActG,KAShB1iD,EAAG0iD,EAAKsF,EAAYC,GAnlCX,IAqlCnBjoD,EAAEypD,UAA0BR,IAAgBD,MAE3ChpD,EAAI,KAA6B,EAAI,GAAI,MACpCA,EAAGgjD,GAAcE,SAGtBljD,EAAI,KAA0B,EAAI,GAAI,GAjM7B,EAACA,EAAG0pD,EAAQC,EAAQC,SAIrCC,SAMM7pD,EAAG0pD,EAAS,IAAK,MACjB1pD,EAAG2pD,EAAS,EAAK,MACjB3pD,EAAG4pD,EAAU,EAAI,GACtBC,EAAO,EAAGA,EAAOD,EAASC,OAEnB7pD,EAAGA,EAAE0lD,QAAyB,EAAjB3C,GAAS8G,GAAY,GAAY,MAIhD7pD,EAAGA,EAAEwlD,UAAWkE,EAAS,MAGzB1pD,EAAGA,EAAEylD,UAAWkE,EAAS,KA4KlB3pD,EAAGA,EAAE0oD,OAAOtE,SAAW,EAAGpkD,EAAE4oD,OAAOxE,SAAW,EAAG8E,EAAc,MAC/DlpD,EAAGA,EAAEwlD,UAAWxlD,EAAEylD,eAMxBzlD,GAEPioD,MACQjoD,IA8Eb8pD,UApEmB,CAAC9pD,EAAGskD,EAAMoC,OAO1BlC,YAAYxkD,EAAE4mD,MAAqB,EAAb5mD,EAAE8lD,UAAqBxB,IAAS,EAAK,MAC3DE,YAAYxkD,EAAE4mD,MAAqB,EAAb5mD,EAAE8lD,SAAe,GAAY,IAAPxB,IAE5CE,YAAYxkD,EAAE6mD,MAAQ7mD,EAAE8lD,UAAiB,IAALY,IACpCZ,WAEW,IAATxB,IAEAkB,UAAe,EAALkB,QAEVz/C,gBAOAu+C,UAAgD,MAAxBkB,GAvmCN,IAumCyB,QAC3CjB,UAAyB,EAAfpB,GAAOC,OA0BbtkD,EAAE8lD,WAAa9lD,EAAE+pD,YAAc,GAkBxCC,UAvKoBhqD,OACTA,EAAGiqD,EAAmB,MACtBjqD,EAl9BQ,IAk9BMgjD,IAjzBT,CAAChjD,IAEG,KAAfA,EAAE2kD,aACM3kD,EAAGA,EAAE4kD,UACbA,OAAS,IACTD,SAAW,GAEJ3kD,EAAE2kD,UAAY,MACrBH,YAAYxkD,EAAEykD,WAAwB,IAAXzkD,EAAE4kD,SAC7BA,SAAW,IACXD,UAAY,KAwyBP3kD,KAuNX,IAAIkqD,GAzBY,CAACC,EAAOzH,EAAKC,EAAKyH,SAC5BC,EAAc,MAARF,EAAiB,EACvBnqD,EAAOmqD,IAAU,GAAM,MAAS,EAChCptD,EAAI,OAEO,IAAR4lD,GAAW,GAIZA,EAAM,IAAO,IAAOA,KACjB5lD,OAGCstD,EAAK3H,EAAI0H,KAAS,IAClBpqD,EAAKqqD,EAAK,UACPttD,MAEL,SACA,aAGAstD,EAAMrqD,GAAM,GAAM,GA8B5B,MAeMsqD,GAAW,IAAIC,YAfH,UACZxqD,EAAGyqD,EAAQ,WAENztD,EAAI,EAAGA,EAAI,IAAKA,IAAK,GACxBA,UACKsD,EAAI,EAAGA,EAAI,EAAGA,MACX,EAAJN,EAAU,WAAcA,IAAM,EAAOA,IAAM,IAE7ChD,GAAKgD,SAGNyqD,GAIwBC,IAiBjC,IAAIC,GAdU,CAACC,EAAKjI,EAAKC,EAAKyH,WACtBhtD,EAAIktD,GACJx8C,EAAMs8C,EAAMzH,gBAITlmD,EAAI2tD,EAAK3tD,EAAIqR,EAAKrR,MAClBkuD,IAAQ,EAAKvtD,EAAmB,OAAVslD,EAAIjmD,cAG3BkuD,GAyBNC,GAAW,CACbC,EAAQ,kBACRC,EAAQ,aACRC,EAAQ,GACRC,KAAQ,aACRC,KAAQ,eACRC,KAAQ,aACRC,KAAQ,sBACRC,KAAQ,eACRC,KAAQ,wBAsBNC,GAAc,CAGhBC,WAAoB,EACpBC,gBAAoB,EACpBC,aAAoB,EACpBC,aAAoB,EACpBC,SAAoB,EACpBC,QAAoB,EACpBC,QAAoB,EAKpBC,KAAoB,EACpBC,aAAoB,EACpBC,YAAoB,EACpBC,WACAC,kBACAC,gBACAC,eACAC,eAIAC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BC,yBAGAC,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1BC,mBAA0B,EAG1BC,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1BC,WAA0B,GAuB5B,MAAM5E,SAAEA,oBAAUQ,mBAAkBC,aAAiBe,aAAWE,IAAc3B,IAS5EkD,WAAY4B,mBAAc3B,GAAiBE,aAAc0B,GAAgBzB,SAAU0B,GAAYzB,QAAS0B,GACxGxB,KAAMyB,GAAQxB,aAAcyB,GAAgBtB,eAAgBuB,GAAkBtB,aAAcuB,GAAgBrB,YAAasB,GACzHlB,sBAAuBmB,cACvBlB,kBAAYC,SAAgBC,WAAOC,GAASC,mBAAoBe,aAChEZ,GACAC,WAAYY,IACVxC,GAgDEyC,GAAM,CAAC5E,EAAM6E,OACZC,IAAMrD,GAASoD,GACbA,GAGH/lD,GAAQzK,OACG,MAAY,EAAI,EAAI,GAG/B0wD,GAAQxL,QACRC,EAAMD,EAAIjlD,cAAiBklD,GAAO,KAASA,GAAO,GAKxD,IAIIwL,GAJY,CAACnuD,EAAGouD,EAAM/pD,QAAmBrE,EAAEquD,WAAchqD,GAAQrE,EAAEsuD,UAYvE,MAAMC,GAAiBpF,UACfnpD,EAAImpD,EAAKnmD,UAGX2/C,EAAM3iD,EAAEykD,QACR9B,EAAMwG,EAAKqF,cACPrF,EAAKqF,WAED,IAAR7L,MAEC8L,OAAO1/C,IAAI/O,EAAEwkD,YAAY4D,SAASpoD,EAAE0uD,YAAa1uD,EAAE0uD,YAAc/L,GAAMwG,EAAKwF,YAC5EA,UAAYhM,IACf+L,aAAe/L,IACZiM,WAAajM,IACb6L,WAAa7L,IAChB8B,SAAW9B,EACK,IAAd3iD,EAAEykD,YACFiK,YAAc,KAKdG,GAAmB,CAAC7uD,EAAGioD,QACXjoD,EAAIA,EAAE8uD,aAAe,EAAI9uD,EAAE8uD,eAAmB9uD,EAAE+uD,SAAW/uD,EAAE8uD,YAAa7G,KACxF6G,YAAc9uD,EAAE+uD,YACJ/uD,EAAEmpD,OAIZ6F,GAAW,CAAChvD,EAAGM,OACjBkkD,YAAYxkD,EAAEykD,WAAankD,GASzB2uD,GAAc,CAACjvD,EAAGM,OAIpBkkD,YAAYxkD,EAAEykD,WAAcnkD,IAAM,EAAK,MACvCkkD,YAAYxkD,EAAEykD,WAAiB,IAAJnkD,GAWzB4uD,GAAW,CAAC/F,EAAMzG,EAAKn1C,EAAOmqB,SAE9BirB,EAAMwG,EAAKgG,gBAEXxM,EAAMjrB,MAAcA,GACZ,IAARirB,EAAoB,KAEnBwM,UAAYxM,IAGb5zC,IAAIo6C,EAAKiG,MAAMhH,SAASe,EAAKkG,QAASlG,EAAKkG,QAAU1M,GAAMp1C,GACvC,IAApB47C,EAAKnmD,MAAMssD,OACRnF,MAAQD,GAAUf,EAAKgB,MAAOzH,EAAKC,EAAKp1C,GAGlB,IAApB47C,EAAKnmD,MAAMssD,SACbnF,MAAQO,GAAQvB,EAAKgB,MAAOzH,EAAKC,EAAKp1C,MAGxC8hD,SAAW1M,IACX4M,UAAY5M,EAEVA,IAaH6M,GAAgB,CAACxvD,EAAGyvD,SAIpBzoD,EACA27C,EAHA+M,EAAe1vD,EAAE2vD,iBACjBC,EAAO5vD,EAAE+uD,SAGTc,EAAW7vD,EAAE8vD,YACbC,EAAa/vD,EAAE+vD,iBACb/gC,EAAShvB,EAAE+uD,SAAY/uD,EAAEgwD,OAhJVC,IAiJjBjwD,EAAE+uD,YAAciB,OAjJCC,KAiJyB,EAExCC,EAAOlwD,EAAEmoD,OAETgI,EAAQnwD,EAAEowD,OACVhC,EAAQpuD,EAAEouD,KAMViC,EAASrwD,EAAE+uD,SA7JD,QA8JZuB,EAAaJ,EAAKN,EAAOC,EAAW,GACpCU,EAAaL,EAAKN,EAAOC,GAQzB7vD,EAAE8vD,aAAe9vD,EAAEwwD,iBACJ,GAKfT,EAAa/vD,EAAEywD,cAA0BzwD,EAAEywD,mBAMrChB,EAWJS,EAAKlpD,EAAQ6oD,KAAkBU,GAC/BL,EAAKlpD,EAAQ6oD,EAAW,KAAOS,GAC/BJ,EAAKlpD,KAA0BkpD,EAAKN,IACpCM,IAAOlpD,KAAwBkpD,EAAKN,EAAO,OAUvC,gBASCM,IAAON,KAAUM,IAAOlpD,IAAUkpD,IAAON,KAAUM,IAAOlpD,IAC1DkpD,IAAON,KAAUM,IAAOlpD,IAAUkpD,IAAON,KAAUM,IAAOlpD,IAC1DkpD,IAAON,KAAUM,IAAOlpD,IAAUkpD,IAAON,KAAUM,IAAOlpD,IAC1DkpD,IAAON,KAAUM,IAAOlpD,IAAUkpD,IAAON,KAAUM,IAAOlpD,IAC1D4oD,EAAOS,QAxNF,OA4NcT,KACrBS,EA7NO,IA+NV1N,EAAMkN,EAAU,MAChBa,YAAcjB,IACL9M,EACPA,GAAOoN,UAGEG,EAAKN,EAAOC,EAAW,KACvBK,EAAKN,EAAOC,cAEPzB,EAAKqB,EAAYU,IAAUnhC,GAA4B,KAAjB0gC,UAExDG,GAAY7vD,EAAEywD,UACTZ,EAEF7vD,EAAEywD,WAcLE,GAAe3wD,UAEb4wD,EAAU5wD,EAAEgwD,WACd7vD,EAAGpD,EAAGwD,EAAGswD,EAAMlhD,IAIhB,MACM3P,EAAE8wD,YAAc9wD,EAAEywD,UAAYzwD,EAAE+uD,SAoBnC/uD,EAAE+uD,UAAY6B,KAtRCX,KAsRoC,GAEnD9H,OAAOp5C,IAAI/O,EAAEmoD,OAAOC,SAASwI,EAASA,EAAUA,GAAU,KAC1DF,aAAeE,IACf7B,UAAY6B,IAEZ9B,aAAe8B,IASb5wD,EAAE+wD,YACFh0D,OAGEiD,EAAEgxD,OAAO7wD,KACX6wD,KAAK7wD,GAAMI,GAAKqwD,EAAUrwD,EAAIqwD,EAAU,UACjC7zD,KAEP6zD,IACA7zD,OAGEiD,EAAEouD,OAAOjuD,KACXiuD,KAAKjuD,GAAMI,GAAKqwD,EAAUrwD,EAAIqwD,EAAU,UAIjC7zD,MAEH6zD,KAEc,IAApB5wD,EAAEmpD,KAAKgG,oBAgBPD,GAASlvD,EAAEmpD,KAAMnpD,EAAEmoD,OAAQnoD,EAAE+uD,SAAW/uD,EAAEywD,UAAWI,KACvDJ,WAAa1zD,EAGXiD,EAAEywD,UAAYzwD,EAAEixD,QAhVN,QAiVNjxD,EAAE+uD,SAAW/uD,EAAEixD,SACnBC,MAAQlxD,EAAEmoD,OAAOx4C,KAGjBuhD,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOx4C,EAAM,IAInC3P,EAAEixD,WAELC,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOx4C,EA3V1B,EA2V4C,MAEpDy+C,KAAKz+C,EAAM3P,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SAChCF,KAAKhxD,EAAEkxD,OAASvhD,QAEhBshD,WACEjxD,EAAEywD,UAAYzwD,EAAEixD,OAjWV,aA0WPjxD,EAAEywD,UAxWUR,KAwWuC,IAApBjwD,EAAEmpD,KAAKgG,WAoJ3CgC,GAAe,CAACnxD,EAAGoxD,SAEnBC,EACAC,SAEK,IAMHtxD,EAAEywD,UAvgBaR,IAugBc,OACnBjwD,GACRA,EAAEywD,UAzgBWR,KAygBkBmB,IAAUjE,UA7fzB,KAggBA,IAAhBntD,EAAEywD,qBAQI,EACRzwD,EAAEywD,WAvhBQ,MAyhBVS,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOnoD,EAAE+uD,SAzhB1B,EAyhBiD,MACjD/uD,EAAEouD,KAAKpuD,EAAE+uD,SAAW/uD,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SACnDF,KAAKhxD,EAAEkxD,OAASlxD,EAAE+uD,UAOJ,IAAdsC,GAA4BrxD,EAAE+uD,SAAWsC,GAAerxD,EAAEgwD,OAhiB3CC,QAqiBfsB,aAAe/B,GAAcxvD,EAAGqxD,IAGhCrxD,EAAEuxD,cA1iBQ,OA+iBHzH,GAAU9pD,EAAGA,EAAE+uD,SAAW/uD,EAAE0wD,YAAa1wD,EAAEuxD,aA/iBxC,KAijBVd,WAAazwD,EAAEuxD,aAKbvxD,EAAEuxD,cAAgBvxD,EAAEwxD,gBAAuCxxD,EAAEywD,WAtjBrD,EAsjB6E,GACrFc,oBAEExC,aAEAmC,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOnoD,EAAE+uD,SA3jB9B,EA2jBqD,MACjD/uD,EAAEouD,KAAKpuD,EAAE+uD,SAAW/uD,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SACnDF,KAAKhxD,EAAEkxD,OAASlxD,EAAE+uD,eAKQ,KAAnB/uD,EAAEuxD,gBACXxC,kBAGAA,UAAY/uD,EAAEuxD,eACdA,aAAe,IACfL,MAAQlxD,EAAEmoD,OAAOnoD,EAAE+uD,YAEnBmC,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOnoD,EAAE+uD,SAAW,WAa1CjF,GAAU9pD,EAAG,EAAGA,EAAEmoD,OAAOnoD,EAAE+uD,aAElC0B,cACA1B,cAEAuC,OAEetxD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBAjlBS,WAulBtByC,OAAWjxD,EAAE+uD,SAAY0C,EAAkBzxD,EAAE+uD,SAAW0C,EACtDL,IAAU/D,OAEKrtD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,UAzlBW,EACA,GA8lBpBxuD,EAAE8lD,cAEa9lD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,WApmBW,EACA,GAgnBpBkD,GAAe,CAAC1xD,EAAGoxD,SAEnBC,EACAC,EAEAK,SAGK,IAMH3xD,EAAEywD,UA3oBaR,IA2oBc,OACnBjwD,GACRA,EAAEywD,UA7oBWR,KA6oBkBmB,IAAUjE,UAjoBzB,KAooBA,IAAhBntD,EAAEywD,qBAMI,EACRzwD,EAAEywD,WAzpBQ,MA2pBVS,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOnoD,EAAE+uD,SA3pB1B,EA2pBiD,MACjD/uD,EAAEouD,KAAKpuD,EAAE+uD,SAAW/uD,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SACnDF,KAAKhxD,EAAEkxD,OAASlxD,EAAE+uD,YAMpBe,YAAc9vD,EAAEuxD,eAChBK,WAAa5xD,EAAE0wD,cACfa,aAAeE,EAEC,IAAdJ,GAA0BrxD,EAAE8vD,YAAc9vD,EAAEwxD,gBAC5CxxD,EAAE+uD,SAAWsC,GAAcrxD,EAAEgwD,OAtqBdC,QA2qBfsB,aAAe/B,GAAcxvD,EAAGqxD,GAG9BrxD,EAAEuxD,cAAgB,MAChB9H,WAAaiD,IAjrBP,IAirBsB1sD,EAAEuxD,cAA8BvxD,EAAE+uD,SAAW/uD,EAAE0wD,YAAc,UAK3Fa,aAAeE,IAMjBzxD,EAAE8vD,aA5rBQ,GA4rBoB9vD,EAAEuxD,cAAgBvxD,EAAE8vD,YAAa,GACpD9vD,EAAE+uD,SAAW/uD,EAAEywD,UA7rBhB,IAosBH3G,GAAU9pD,EAAGA,EAAE+uD,SAAW,EAAI/uD,EAAE4xD,WAAY5xD,EAAE8vD,YApsB3C,KA0sBVW,WAAazwD,EAAE8vD,YAAc,IAC7BA,aAAe,OAET9vD,EAAE+uD,UAAY4C,MAEhBT,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOnoD,EAAE+uD,SA/sB9B,EA+sBqD,MACjD/uD,EAAEouD,KAAKpuD,EAAE+uD,SAAW/uD,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SACnDF,KAAKhxD,EAAEkxD,OAASlxD,EAAE+uD,gBAGK,KAAlB/uD,EAAE8vD,kBACX+B,gBAAkB,IAClBN,aAAeE,IACf1C,WAEEuC,OAEetxD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBA9sBO,UAotBXxuD,EAAE6xD,sBAOF/H,GAAU9pD,EAAG,EAAGA,EAAEmoD,OAAOnoD,EAAE+uD,SAAW,IAE3CuC,MAEetxD,GAAG,KAGpB+uD,aACA0B,YACuB,IAArBzwD,EAAEmpD,KAAKqF,iBApuBS,SA2uBlBqD,gBAAkB,IAClB9C,aACA0B,mBAIFzwD,EAAE6xD,oBAGK/H,GAAU9pD,EAAG,EAAGA,EAAEmoD,OAAOnoD,EAAE+uD,SAAW,MAE7C8C,gBAAkB,KAEpBZ,OAASjxD,EAAE+uD,SAAW0C,EAAgBzxD,EAAE+uD,SAAW0C,EACjDL,IAAU/D,OAEKrtD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,UA1vBW,EACA,GA+vBpBxuD,EAAE8lD,cAEa9lD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,WArwBW,EACA,GA66B1B,YAAgBsD,EAAaC,EAAUC,EAAaC,EAAWC,QAExDJ,YAAcA,OACdC,SAAWA,OACXC,YAAcA,OACdC,UAAYA,OACZC,KAAOA,EAGd,MAAMC,GAAsB,CAE1B,IAAIC,GAAO,EAAG,EAAG,EAAG,GA5iBC,CAACpyD,EAAGoxD,SAKrBiB,EAAiB,UAEjBA,EAAiBryD,EAAEsyD,iBAAmB,MACvBtyD,EAAEsyD,iBAAmB,KAI/B,IAEHtyD,EAAEywD,WAAa,EAAG,OASRzwD,GACQ,IAAhBA,EAAEywD,WAAmBW,IAAUjE,UAraf,KAyaA,IAAhBntD,EAAEywD,kBAQN1B,UAAY/uD,EAAEywD,YACdA,UAAY,QAGR8B,EAAYvyD,EAAE8uD,YAAcuD,MAEf,IAAfryD,EAAE+uD,UAAkB/uD,EAAE+uD,UAAYwD,OAElC9B,UAAYzwD,EAAE+uD,SAAWwD,IACzBxD,SAAWwD,KAEIvyD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBA7bS,KAuclBxuD,EAAE+uD,SAAW/uD,EAAE8uD,aAAgB9uD,EAAEgwD,OAndlBC,SAqdAjwD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBA1cS,WAidtByC,OAAS,EAEPG,IAAU/D,OAEKrtD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,UApdW,EACA,IA0dpBxuD,EAAE+uD,SAAW/uD,EAAE8uD,iBAEA9uD,GAAG,GAChBA,EAAEmpD,KAAKqF,WAheW,MA07BxB,IAAI4D,GAAO,EAAG,EAAG,EAAG,EAAGjB,IACvB,IAAIiB,GAAO,EAAG,EAAG,GAAI,EAAGjB,IACxB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIjB,IAEzB,IAAIiB,GAAO,EAAG,EAAG,GAAI,GAAIV,IACzB,IAAIU,GAAO,EAAG,GAAI,GAAI,GAAIV,IAC1B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,EAAG,GAAI,IAAK,IAAKV,IAC5B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,IAC/B,IAAIU,GAAO,GAAI,IAAK,IAAK,KAAMV,KA+BjC,mBACOvI,KAAO,UACPqJ,OAAS,OACThO,YAAc,UACd8N,iBAAmB,OACnB5D,YAAc,OACdjK,QAAU,OACV6K,KAAO,OACPmD,OAAS,UACTC,QAAU,OACVC,OAAS7E,QACT8E,mBAEA5C,OAAS,OACT6C,OAAS,OACTzC,OAAS,OAETjI,OAAS,UAQT2I,YAAc,OAKd1C,KAAO,UAMP4C,KAAO,UAEPE,MAAQ,OACRH,UAAY,OACZ+B,UAAY,OACZxE,UAAY,OAEZD,WAAa,OAObS,YAAc,OAKdyC,aAAe,OACfK,WAAa,OACbC,gBAAkB,OAClB9C,SAAW,OACX2B,YAAc,OACdD,UAAY,OAEZX,YAAc,OAKdH,iBAAmB,OAMnB6B,eAAiB,OAYjB9zC,MAAQ,OACR+rC,SAAW,OAEX+G,WAAa,OAGbT,WAAa,OAYbvK,UAAa,IAAIuN,YAAYC,WAC7BvN,UAAa,IAAIsN,YAAa,UAC9BrN,QAAa,IAAIqN,YAAa,OAC9Bn0D,KAAK4mD,cACL5mD,KAAK6mD,cACL7mD,KAAK8mD,cAELgD,OAAW,UACXE,OAAW,UACXC,QAAW,UAGX3D,SAAW,IAAI6N,YAAYE,SAI3B7M,KAAO,IAAI2M,YAAY,QACvBn0D,KAAKwnD,WAELE,SAAW,OACXW,SAAW,OAKX5qB,MAAQ,IAAI02B,YAAY,QACxBn0D,KAAKy9B,YAILwqB,MAAQ,OAERkD,YAAc,OAoBdjE,SAAW,OAEXc,MAAQ,OAMRhB,QAAU,OACVC,WAAa,OACb5+C,QAAU,OACVgqD,OAAS,OAGTrM,OAAS,OAITD,SAAW,EAgBlB,MAAMuO,GAAoB/J,QAEnBA,IAASA,EAAKnmD,aACV+qD,GAAI5E,EAAMsE,MAGd8B,SAAWpG,EAAKyF,UAAY,IAC5BxF,UAAY6D,SAEXjtD,EAAImpD,EAAKnmD,eACbyhD,QAAU,IACViK,YAAc,EAEZ1uD,EAAEsvD,KAAO,MACTA,MAAQtvD,EAAEsvD,QAGZkD,OAAUxyD,EAAEsvD,KAxrCG,GAKA,MAorCZnF,MAAoB,IAAXnqD,EAAEsvD,KACd,EAEA,IACAsD,WAAazF,MACNntD,GACFutD,IAIH4F,GAAgBhK,UAEdriD,EAAMosD,GAAiB/J,GAnPf,IAACnpD,SAoPX8G,IAAQymD,MApPGvtD,EAqPLmpD,EAAKnmD,OAnPb8tD,YAAc,EAAI9wD,EAAEgwD,UAGjBhwD,EAAEgxD,QAILQ,eAAiBW,GAAoBnyD,EAAE0d,OAAOq0C,WAC9CvB,WAAa2B,GAAoBnyD,EAAE0d,OAAOo0C,cAC1C/B,WAAaoC,GAAoBnyD,EAAE0d,OAAOs0C,cAC1CrC,iBAAmBwC,GAAoBnyD,EAAE0d,OAAOu0C,YAEhDlD,SAAW,IACXD,YAAc,IACd2B,UAAY,IACZQ,OAAS,IACTM,aAAevxD,EAAE8vD,YAAc2B,IAC/BI,gBAAkB,IAClBX,MAAQ,GAmOHpqD,GAaHssD,GAAe,CAACjK,EAAMzrC,EAAOi1C,EAAQU,EAAYC,EAAU7J,SAE1DN,SACIsE,OAEL6B,EAAO,KAEP5xC,IAAUkwC,OACJ,GAGNyF,EAAa,KACR,KACOA,GAGPA,EAAa,OACb,KACO,IAIZC,EAAW,GAAKA,EAxwCA,GAwwC4BX,IAAW7E,IACzDuF,EAAa,GAAKA,EAAa,IAAM31C,EAAQ,GAAKA,EAAQ,GAC1D+rC,EAAW,GAAKA,EAAWoD,UACpBkB,GAAI5E,EAAMsE,IAIA,IAAf4F,MACW,SAITrzD,EAAI,IAAIuzD,YAETvwD,MAAQhD,IACXmpD,KAAOA,IAEPmG,KAAOA,IACPmD,OAAS,OACTI,OAASQ,IACTrD,OAAS,GAAKhwD,EAAE6yD,SAChBzC,OAASpwD,EAAEgwD,OAAS,IAEpB8C,UAAYQ,EAAW,IACvBvC,UAAY,GAAK/wD,EAAE8yD,YACnBxE,UAAYtuD,EAAE+wD,UAAY,IAC1B1C,iBAAmByE,UA5wCL,EA4wC6B,GA5wC7B,KA8wCd3K,OAAS,IAAIh4C,WAAsB,EAAXnQ,EAAEgwD,UAC1BgB,KAAO,IAAI+B,YAAY/yD,EAAE+wD,aACzB3C,KAAO,IAAI2E,YAAY/yD,EAAEgwD,UAKzBjG,YAAc,GAAMuJ,EAAW,IAE/BhB,iBAAmC,EAAhBtyD,EAAE+pD,cAIrBvF,YAAc,IAAIr0C,WAAWnQ,EAAEsyD,oBAI/B1L,MAAQ,EAAI5mD,EAAE+pD,cAGdlD,MAAS,EAAS7mD,EAAE+pD,cAEpBrsC,MAAQA,IACR+rC,SAAWA,IACXkJ,OAASA,EAEJQ,GAAahK,IAictB,IAmBIqK,GAAc,CACjBC,YAldmB,CAACtK,EAAMzrC,IAElB01C,GAAajK,EAAMzrC,EAAOowC,GAj0Cf,GAEE,EA+zCuDD,IAid5EuF,aApBoBA,GAqBpBD,aApBoBA,GAqBpBD,iBApBwBA,GAqBxBQ,iBA9iBwB,CAACvK,EAAM6H,IAEzB7H,GAASA,EAAKnmD,MACK,IAApBmmD,EAAKnmD,MAAMssD,KAAqB7B,MAC/BzqD,MAAMyvD,OAASzB,EACbzD,IAH4BE,GA6iBpCkG,QAjdiB,CAACxK,EAAMiI,SAEnBwC,EAAK9rD,MAEJqhD,IAASA,EAAKnmD,OACjBouD,EAAQ9D,IAAa8D,EAAQ,SACtBjI,EAAO4E,GAAI5E,EAAMsE,IAAoBA,SAGxCztD,EAAImpD,EAAKnmD,UAEVmmD,EAAKsF,SACJtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,UAjzCN,MAkzCdnvD,EAAEwyD,QAA2BpB,IAAU/D,UACnCU,GAAI5E,EAA0B,IAAnBA,EAAKqF,UAAmBb,GAAgBF,MAG1DtE,KAAOA,QACH0K,EAAY7zD,EAAE4yD,gBAClBA,WAAaxB,EA9zCE,KAi0CbpxD,EAAEwyD,UAEW,IAAXxyD,EAAEsvD,OACCnF,MAAQ,KACJnqD,EAAG,OACHA,EAAG,QACHA,EAAG,GACPA,EAAEyyD,WAaIzyD,KAAMyyD,OAAO9gC,KAAO,EAAI,MAClB8gC,OAAOqB,KAAO,EAAI,IACnB9zD,EAAEyyD,OAAO7kC,MAAY,EAAJ,IACjB5tB,EAAEyyD,OAAO/tD,KAAW,EAAJ,IAChB1E,EAAEyyD,OAAOsB,QAAc,GAAJ,OAExB/zD,EAAmB,IAAhBA,EAAEyyD,OAAOuB,SACZh0D,EAAIA,EAAEyyD,OAAOuB,MAAQ,EAAK,QAC1Bh0D,EAAIA,EAAEyyD,OAAOuB,MAAQ,GAAM,QAC3Bh0D,EAAIA,EAAEyyD,OAAOuB,MAAQ,GAAM,QAC3Bh0D,EAAe,IAAZA,EAAE0d,MAAc,EACf1d,EAAEypD,UAAYkD,IAAkB3sD,EAAE0d,MAAQ,EAC1C,EAAI,MACR1d,EAAiB,IAAdA,EAAEyyD,OAAOwB,IACjBj0D,EAAEyyD,OAAO7kC,OAAS5tB,EAAEyyD,OAAO7kC,MAAMnwB,YAC1BuC,EAA2B,IAAxBA,EAAEyyD,OAAO7kC,MAAMnwB,WAClBuC,EAAIA,EAAEyyD,OAAO7kC,MAAMnwB,QAAU,EAAK,MAEzCuC,EAAEyyD,OAAOqB,SACN3J,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAS,MAE3DiO,QAAU,IACVF,OA12CU,QAw0CHxyD,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAG,MACHA,EAAe,IAAZA,EAAE0d,MAAc,EACf1d,EAAEypD,UAAYkD,IAAkB3sD,EAAE0d,MAAQ,EAC1C,EAAI,MACR1d,EAp0CD,KAq0CNwyD,OA70CS,SA02Cf,KACMtK,EAAU4F,MAAmB+E,OAAS,GAAM,IAAO,EACnDqB,OAEAl0D,EAAEypD,UAAYkD,IAAkB3sD,EAAE0d,MAAQ,EAC9B,EACL1d,EAAE0d,MAAQ,EACL,EACO,IAAZ1d,EAAE0d,MACG,EAEA,KAELw2C,GAAe,EACP,IAAfl0D,EAAE+uD,cA/3CQ,OAg4CJ,GAAM7G,EAAS,KAEvBsK,OA33CW,OA43CDxyD,EAAGkoD,GAGI,IAAfloD,EAAE+uD,cACQ/uD,EAAGmpD,EAAKgB,QAAU,OAClBnqD,EAAgB,MAAbmpD,EAAKgB,UAEjBA,MAAQ,KAv4CC,KA44CdnqD,EAAEwyD,UACAxyD,EAAEyyD,OAAO7kC,MAAqB,OAC1B5tB,EAAEykD,QAEDzkD,EAAE0yD,SAAmC,QAAtBD,OAAO7kC,MAAMnwB,UAC7BuC,EAAEykD,UAAYzkD,EAAEsyD,mBACdtyD,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,OAErDzK,KACRnpD,EAAEykD,QACJzkD,EAAEykD,UAAYzkD,EAAEsyD,uBAIbtyD,EAA+B,IAA5BA,EAAEyyD,OAAO7kC,MAAM5tB,EAAE0yD,YAC3BA,UAEA1yD,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,IAE/D5zD,EAAE0yD,UAAY1yD,EAAEyyD,OAAO7kC,MAAMnwB,WAC7Bi1D,QAAU,IACVF,OAl6CS,WAs6CXA,OAt6CW,MAAA,KAy6CbxyD,EAAEwyD,UACAxyD,EAAEyyD,OAAO/tD,KAAoB,GACzB1E,EAAEykD,UAGL,IACGzkD,EAAEykD,UAAYzkD,EAAEsyD,mBACdtyD,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,OAErDzK,KACRnpD,EAAEykD,QACJzkD,EAAEykD,UAAYzkD,EAAEsyD,kBAAkB,GAC9B,UAKNtyD,EAAE0yD,QAAU1yD,EAAEyyD,OAAO/tD,KAAKjH,OACkB,IAAxCuC,EAAEyyD,OAAO/tD,KAAKyvD,WAAWn0D,EAAE0yD,WAE3B,KAEC1yD,EAAG8H,SACG,IAARA,GAEL9H,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,IAEvD,IAAR9rD,MACA4qD,QAAU,IACVF,OAv8CY,WA28CdA,OA38Cc,MAAA,KA88ChBxyD,EAAEwyD,UACAxyD,EAAEyyD,OAAOsB,QAAuB,GAC5B/zD,EAAEykD,UAGL,IACGzkD,EAAEykD,UAAYzkD,EAAEsyD,mBACdtyD,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,OAErDzK,KACRnpD,EAAEykD,QACJzkD,EAAEykD,UAAYzkD,EAAEsyD,kBAAkB,GAC9B,UAKNtyD,EAAE0yD,QAAU1yD,EAAEyyD,OAAOsB,QAAQt2D,OACkB,IAA3CuC,EAAEyyD,OAAOsB,QAAQI,WAAWn0D,EAAE0yD,WAE9B,KAEC1yD,EAAG8H,SACG,IAARA,GAEL9H,EAAEyyD,OAAOqB,MAAQ9zD,EAAEykD,QAAUmP,MAC1BzJ,MAAQO,GAAQvB,EAAKgB,MAAOnqD,EAAEwkD,YAAaxkD,EAAEykD,QAAUmP,EAAKA,IAEvD,IAAR9rD,MACA0qD,OA3+CS,YA++CXA,OA/+CW,OAAA,MAk/CbxyD,EAAEwyD,SACAxyD,EAAEyyD,OAAOqB,MACP9zD,EAAEykD,QAAU,EAAIzkD,EAAEsyD,qBACNnJ,GAEZnpD,EAAEykD,QAAU,GAAKzkD,EAAEsyD,sBACZtyD,EAAgB,IAAbmpD,EAAKgB,UACRnqD,EAAImpD,EAAKgB,OAAS,EAAK,OAC3BA,MAAQ,IACXqI,OA1/CS,QA8/CXA,OA9/CW,KAogDC,IAAdxyD,EAAEykD,eACU0E,GACS,IAAnBA,EAAKqF,mBAOLoE,cACKrF,WAOkB,IAAlBpE,EAAKgG,UAAkBlnD,GAAKmpD,IAAUnpD,GAAK4rD,IACpDzC,IAAU/D,UACHU,GAAI5E,EAAMwE,OAthDA,MA0hDf3tD,EAAEwyD,QAA6C,IAAlBrJ,EAAKgG,gBAC7BpB,GAAI5E,EAAMwE,OAKG,IAAlBxE,EAAKgG,UAAkC,IAAhBnvD,EAAEywD,WAC1BW,IAAUjE,IAjiDM,MAiiDUntD,EAAEwyD,OAA0B,KACnD4B,EAAUp0D,EAAEypD,WAAakD,GA5qBZ,EAAC3sD,EAAGoxD,SAEnBE,SAEK,IAEa,IAAhBtxD,EAAEywD,eACQzwD,GACQ,IAAhBA,EAAEywD,WAAiB,IACjBW,IAAUjE,UA73BI,aAq4BpBoE,aAAe,IAGRzH,GAAU9pD,EAAG,EAAGA,EAAEmoD,OAAOnoD,EAAE+uD,aAClC0B,cACA1B,WACEuC,OAEetxD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBA94BS,WAo5BtByC,OAAS,EACPG,IAAU/D,OAEKrtD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,UAt5BW,EACA,GA25BpBxuD,EAAE8lD,cAEa9lD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,WAj6BW,EACA,GA+hDyB6F,CAAar0D,EAAGoxD,GAC5DpxD,EAAEypD,WAAamD,GA7wBF,EAAC5sD,EAAGoxD,SAElBE,EACAlD,EACAwB,EAAMS,QAEJH,EAAOlwD,EAAEmoD,cAEN,IAKHnoD,EAAEywD,WA9yBQ,IA8yBgB,OAChBzwD,GACRA,EAAEywD,WAhzBM,KAgzBoBW,IAAUjE,UAnyBtB,KAsyBA,IAAhBntD,EAAEywD,qBAINc,aAAe,EACbvxD,EAAEywD,WAzzBQ,GAyzBkBzwD,EAAE+uD,SAAW,MACpC/uD,EAAE+uD,SAAW,IACbmB,EAAKN,GACRxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IAAO,GAClE5vD,EAAE+uD,SA5zBD,cA+zBDX,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCxB,IAAS8B,IAAON,IAASxB,IAAS8B,IAAON,IACzCA,EAAOS,KACdkB,aAp0BQ,OAo0B6B3B,GACnC5vD,EAAEuxD,aAAevxD,EAAEywD,cACnBc,aAAevxD,EAAEywD,cAOrBzwD,EAAEuxD,cA90BQ,KAk1BHzH,GAAU9pD,EAAG,EAAGA,EAAEuxD,aAl1Bf,KAo1BVd,WAAazwD,EAAEuxD,eACfxC,UAAY/uD,EAAEuxD,eACdA,aAAe,MAKRzH,GAAU9pD,EAAG,EAAGA,EAAEmoD,OAAOnoD,EAAE+uD,aAElC0B,cACA1B,YAEAuC,OAEetxD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,kBAr1BS,WA21BtByC,OAAS,EACPG,IAAU/D,OAEKrtD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,UA71BW,EACA,GAk2BpBxuD,EAAE8lD,cAEa9lD,GAAG,GACK,IAArBA,EAAEmpD,KAAKqF,WAx2BW,EACA,GAgiDI8F,CAAYt0D,EAAGoxD,GACrCe,GAAoBnyD,EAAE0d,OAAOw0C,KAAKlyD,EAAGoxD,MAhiDnB,IAkiDlBgD,GAjiDkB,IAiiDcA,MAChC5B,OAviDa,KAEK,IAuiDlB4B,GAriDkB,IAqiDSA,SACN,IAAnBjL,EAAKqF,cACLoE,eAGGrF,MA3iDa,IAojDlB6G,IACEhD,IAAU5F,MACFxrD,GAEHoxD,IAAU9D,QAEAttD,EAAG,EAAG,GAAG,GAItBoxD,IAAUhE,QAEPptD,EAAEgxD,MAEa,IAAhBhxD,EAAEywD,cACF1B,SAAW,IACXD,YAAc,IACdmC,OAAS,QAIH9H,GACS,IAAnBA,EAAKqF,oBACLoE,cACKrF,UAOT6D,IAAU/D,GAAqBE,GAC/BvtD,EAAEsvD,MAAQ,EAAY9B,IAGX,IAAXxtD,EAAEsvD,SACKtvD,EAAgB,IAAbmpD,EAAKgB,UACRnqD,EAAImpD,EAAKgB,OAAS,EAAK,QACvBnqD,EAAImpD,EAAKgB,OAAS,GAAM,QACxBnqD,EAAImpD,EAAKgB,OAAS,GAAM,QACxBnqD,EAAmB,IAAhBmpD,EAAKoG,aACRvvD,EAAImpD,EAAKoG,UAAY,EAAK,QAC1BvvD,EAAImpD,EAAKoG,UAAY,GAAM,QAC3BvvD,EAAImpD,EAAKoG,UAAY,GAAM,UAIxBvvD,EAAGmpD,EAAKgB,QAAU,OAClBnqD,EAAgB,MAAbmpD,EAAKgB,WAGRhB,GAIVnpD,EAAEsvD,KAAO,MAAOA,MAAQtvD,EAAEsvD,MAET,IAAdtvD,EAAEykD,QAAgB8I,GAASC,KAuInC+G,WAnImBpL,QAEbA,IAAsBA,EAAKnmD,aACvByqD,SAGH+E,EAASrJ,EAAKnmD,MAAMwvD,cAhoDT,KAioDbA,GAhoDc,KAioDhBA,GAhoDe,KAioDfA,GAhoDkB,KAioDlBA,GAhoDe,MAioDfA,GAhoDe,MAioDfA,GAhoDiB,MAioDjBA,EAEOzE,GAAI5E,EAAMsE,OAGdzqD,MAAQ,KAvoDI,MAyoDVwvD,EAAwBzE,GAAI5E,EAAMuE,IAAkBH,KAgH5DiH,qBAxG4B,CAACrL,EAAMsL,SAE9BC,EAAaD,EAAWh3D,WAEvB0rD,IAAsBA,EAAKnmD,aACvByqD,SAGHztD,EAAImpD,EAAKnmD,MACTssD,EAAOtvD,EAAEsvD,QAEF,IAATA,GAAwB,IAATA,GAjqDF,KAiqDgBtvD,EAAEwyD,QAA0BxyD,EAAEywD,iBACtDhD,MAII,IAAT6B,MAEGnF,MAAQD,GAAUf,EAAKgB,MAAOsK,EAAYC,EAAY,MAG3DpF,KAAO,EAGLoF,GAAc10D,EAAEgwD,OAAQ,CACb,IAATV,OAEGtvD,EAAEgxD,QACLjC,SAAW,IACXD,YAAc,IACdmC,OAAS,OAIT0D,EAAU,IAAIxkD,WAAWnQ,EAAEgwD,UACvBjhD,IAAI0lD,EAAWrM,SAASsM,EAAa10D,EAAEgwD,OAAQ0E,GAAa,KACvDC,IACA30D,EAAEgwD,aAGX4E,EAAQzL,EAAKgG,SACb0F,EAAO1L,EAAKkG,QACZD,EAAQjG,EAAKiG,YACdD,SAAWuF,IACXrF,QAAU,IACVD,MAAQqF,KACDz0D,GACLA,EAAEywD,WA3sDO,GA2sDiB,KAC3B9gD,EAAM3P,EAAE+uD,SACRhyD,EAAIiD,EAAEywD,UAAa,OAGnBS,MAAQ/C,GAAKnuD,EAAGA,EAAEkxD,MAAOlxD,EAAEmoD,OAAOx4C,EAhtDxB,EAgtD0C,MAEpDy+C,KAAKz+C,EAAM3P,EAAEowD,QAAUpwD,EAAEgxD,KAAKhxD,EAAEkxD,SAEhCF,KAAKhxD,EAAEkxD,OAASvhD,cAET5S,KACTgyD,SAAWp/C,IACX8gD,UAAYgB,KACFzxD,YAEZ+uD,UAAY/uD,EAAEywD,YACd3B,YAAc9uD,EAAE+uD,WAChBkC,OAASjxD,EAAEywD,YACXA,UAAY,IACZc,aAAevxD,EAAE8vD,YAAc2B,IAC/BI,gBAAkB,IACfxC,QAAUwF,IACVzF,MAAQA,IACRD,SAAWyF,IACdtF,KAAOA,EACF/B,IAgCRuH,YApBiB,sCAuBlB,MAAMC,GAAO,CAACruD,EAAK1I,IACV+M,OAAOpI,UAAUsY,eAAe3W,KAAKoC,EAAK1I,GAGnD,IA0CIg3D,GA1CS,SAAUtuD,SACfuuD,EAAUt0D,MAAMgC,UAAUf,MAAM0C,KAAK/G,UAAW,QAC/C03D,EAAQx3D,QAAQ,OACfswB,EAASknC,EAAQhmD,WAClB8e,MAEiB,iBAAXA,QACH,IAAImnC,UAAUnnC,EAAS,gCAGpB5tB,KAAK4tB,EACVgnC,GAAKhnC,EAAQ5tB,OACXA,GAAK4tB,EAAO5tB,YAKfuG,GAyBLsuD,GApBiBG,QAEfxS,EAAM,UAEDlmD,EAAI,EAAGO,EAAIm4D,EAAO13D,OAAQhB,EAAIO,EAAGP,OACjC04D,EAAO14D,GAAGgB,aAIbizB,EAAS,IAAIvgB,WAAWwyC,WAErBlmD,EAAI,EAAG2tD,EAAM,EAAGptD,EAAIm4D,EAAO13D,OAAQhB,EAAIO,EAAGP,IAAK,KAClD24D,EAAQD,EAAO14D,KACZsS,IAAIqmD,EAAOhL,MACXgL,EAAM33D,cAGRizB,GAgBT,IAAI2kC,IAAmB,EAEvB,WAAaC,aAAahrC,MAAM,KAAM,IAAIna,WAAW,UAAchS,QAAyB,EAM5F,MAAMo3D,GAAW,IAAIplD,WAAW,KAChC,QAASqlD,GAAI,EAAGA,GAAI,IAAKA,QACdA,IAAMA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAIA,IAAK,IAAM,EAAI,EAE5FD,GAAS,KAAOA,GAAS,KAAO,EAiFhC,IAyEIE,GAtJc9lD,OACW,mBAAhB+lD,aAA8BA,YAAY/yD,UAAUgzD,cACtD,IAAID,aAAcC,OAAOhmD,OAG9B+yC,EAAK3iD,EAAG61D,EAAIC,EAAOp5D,EAAGq5D,EAAUnmD,EAAIlS,OAAQs4D,EAAU,MAGrDF,EAAQ,EAAGA,EAAQC,EAASD,MAC3BlmD,EAAIwkD,WAAW0B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCnmD,EAAIwkD,WAAW0B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,gBAIpC91D,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,QAIxD,IAAIoQ,WAAW4lD,GAGhBt5D,EAAI,EAAGo5D,EAAQ,EAAGp5D,EAAIs5D,EAASF,MAC9BlmD,EAAIwkD,WAAW0B,GACE,QAAZ,UAAuBA,EAAQ,EAAIC,MACrCnmD,EAAIwkD,WAAW0B,EAAQ,GACN,QAAZ,aACJ,SAAgB,OAAW,OAAY,aAI3C91D,EAAI,MAEFtD,KAAOsD,EACFA,EAAI,QAETtD,KAAO,IAAQsD,IAAM,IACrBtD,KAAO,IAAY,GAAJsD,GACVA,EAAI,SAETtD,KAAO,IAAQsD,IAAM,KACrBtD,KAAO,IAAQsD,IAAM,EAAI,KACzBtD,KAAO,IAAY,GAAJsD,MAGftD,KAAO,IAAQsD,IAAM,KACrBtD,KAAO,IAAQsD,IAAM,GAAK,KAC1BtD,KAAO,IAAQsD,IAAM,EAAI,KACzBtD,KAAO,IAAY,GAAJsD,UAIhB2iD,GAgGL+S,GAzEa,CAAC/S,EAAKp7C,WACfq7C,EAAMr7C,GAAOo7C,EAAIjlD,UAEI,mBAAhBu4D,aAA8BA,YAAYrzD,UAAUszD,cACtD,IAAID,aAAcC,OAAOvT,EAAI0F,SAAS,EAAG9gD,QAG9C7K,EAAGy5D,QAKDC,EAAW,IAAIx1D,MAAY,EAANgiD,OAEtBuT,EAAM,EAAGz5D,EAAI,EAAGA,EAAIkmD,GAAM,KACzB5iD,EAAI2iD,EAAIjmD,QAERsD,EAAI,IAAM,GAAWm2D,KAASn2D,eAE9Bq2D,EAAQb,GAASx1D,MAEjBq2D,EAAQ,IAAcF,KAAS,SAAaE,EAAQ,cAGzC,IAAVA,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAExCA,EAAQ,GAAK35D,EAAIkmD,KACjB5iD,GAAK,EAAiB,GAAX2iD,EAAIjmD,SAKlB25D,EAAQ,IAAcF,KAAS,MAE/Bn2D,EAAI,QACGm2D,KAASn2D,MAEb,QACIm2D,KAAS,MAAWn2D,GAAK,GAAM,OAC/Bm2D,KAAS,MAAc,KAAJn2D,UA1DZ,EAAC2iD,EAAKC,QAItBA,EAAM,OACJD,EAAI0F,UAAYiN,UACXjrD,OAAOkrD,aAAahrC,MAAM,KAAMo4B,EAAIjlD,SAAWklD,EAAMD,EAAMA,EAAI0F,SAAS,EAAGzF,QAIlFjyB,EAAS,WACJj0B,EAAI,EAAGA,EAAIkmD,EAAKlmD,OACb2N,OAAOkrD,aAAa5S,EAAIjmD,WAE7Bi0B,GAgDA2lC,CAAcF,EAAUD,IA8B7BT,GApBa,CAAC/S,EAAKp7C,QAEfA,GAAOo7C,EAAIjlD,QACPilD,EAAIjlD,WAAgBilD,EAAIjlD,YAG9B2sD,EAAM9iD,EAAM,OACT8iD,GAAO,GAA2B,MAAV,MAAPA,gBAIpBA,EAAM,GAIE,IAARA,EAJkB9iD,EAMd8iD,EAAMmL,GAAS7S,EAAI0H,IAAQ9iD,EAAO8iD,EAAM9iD,GAqDlD,IAAIgvD,GAzBJ,gBAEOlH,MAAQ,UACRC,QAAU,OAEVF,SAAW,OAEXI,SAAW,OAEXd,OAAS,UACTE,SAAW,OAEXH,UAAY,OAEZI,UAAY,OAEZX,IAAM,QAENjrD,MAAQ,UAERomD,UAAY,OAEZe,MAAQ,GAKf,MAAMoM,GAAaxrD,OAAOpI,UAAUqN,UAMlCu7C,WAAYiL,gBAAc/K,gBAAcC,GAAcC,SAAU8K,GAChE3K,KAAM4K,GAAQ3K,aAAc4K,yBAC5BlK,sBACAK,GACAI,WAAY0J,IACVtL,GA0FJ,YAAmBz6C,QACZA,QAAUmkD,GAAc,CAC3Bt3C,MAAO+uC,GACPkG,OAAQiE,GACRC,UAAW,MACXxD,WAAY,GACZC,SAAU,EACV7J,SAAUqD,IACTj8C,GAAW,QAEVimD,EAAMl4D,KAAKiS,QAEXimD,EAAIC,KAAQD,EAAIzD,WAAa,IAC3BA,YAAcyD,EAAIzD,WAGfyD,EAAIE,MAASF,EAAIzD,WAAa,GAAOyD,EAAIzD,WAAa,OACzDA,YAAc,SAGftF,IAAS,OACTE,IAAS,QACTgJ,OAAS,OACT9B,OAAS,QAEThM,KAAO,IAAImN,QACXnN,KAAKqF,UAAY,MAElBgE,EAASgB,GAAYJ,aACvBx0D,KAAKuqD,KACL2N,EAAIp5C,MACJo5C,EAAInE,OACJmE,EAAIzD,WACJyD,EAAIxD,SACJwD,EAAIrN,aAGF+I,IAAWkE,SACP,IAAIQ,MAAMtM,GAAS4H,OAGvBsE,EAAI5O,WACMwL,iBAAiB90D,KAAKuqD,KAAM2N,EAAI5O,QAG1C4O,EAAIrC,WAAY,KACd0C,OAE0B,iBAAnBL,EAAIrC,WAENgB,GAAmBqB,EAAIrC,YACe,yBAApC8B,GAAWjyD,KAAKwyD,EAAIrC,YACtB,IAAItkD,WAAW2mD,EAAIrC,YAEnBqC,EAAIrC,aAGJjB,GAAYgB,qBAAqB51D,KAAKuqD,KAAMgO,GAEjD3E,IAAWkE,SACP,IAAIQ,MAAMtM,GAAS4H,SAGtB4E,WAAY,GA0BrBC,GAAU10D,UAAUjF,KAAO,SAAU2G,EAAMizD,SACnCnO,EAAOvqD,KAAKuqD,KACZ0N,EAAYj4D,KAAKiS,QAAQgmD,cAC3BrE,EAAQ+E,KAER34D,KAAKq4D,aAAgB,QAErBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsBb,GAAaD,GAGlC,iBAATnyD,IAEJ+qD,MAAQqG,GAAmBpxD,GACG,yBAA1BkyD,GAAWjyD,KAAKD,KACpB+qD,MAAQ,IAAIj/C,WAAW9L,KAEvB+qD,MAAQ/qD,IAGVgrD,QAAU,IACVF,SAAWhG,EAAKiG,MAAM3xD,YAGF,IAAnB0rD,EAAKqF,cACFC,OAAS,IAAIt+C,WAAW0mD,KACxBlI,SAAW,IACXH,UAAYqI,QAIEpL,IAAgB8L,IAAgB7L,KAAiBvC,EAAKqF,WAAa,OACjFgJ,OAAOrO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,YAIVgF,GAAYG,QAAQxK,EAAMoO,GAG/B/E,IAAWmE,UACTxN,EAAKwF,SAAW,QACb6I,OAAOrO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aAElC6E,GAAYe,WAAW31D,KAAKuqD,WAChCsO,MAAMjF,QACNyE,OAAQ,EACNzE,IAAWkE,MAIG,IAAnBvN,EAAKqF,cAML+I,EAAc,GAAKpO,EAAKwF,SAAW,OAChC6I,OAAOrO,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,aACpCH,UAAY,UAIG,IAAlBrF,EAAKgG,yBAXFqI,OAAOrO,EAAKsF,eAcd,GAWT4I,GAAU10D,UAAU60D,OAAS,SAAUpC,QAChCD,OAAOz3D,KAAK03D,IAanBiC,GAAU10D,UAAU80D,MAAQ,SAAUjF,GAEhCA,IAAWkE,UACRhmC,OAASskC,GAAqBp2D,KAAKu2D,cAErCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAMrvD,KAAKuqD,KAAK8E,KAsJvB,IAAIyJ,GAAU,SAAsBvO,EAAM57C,OACpCoqD,EACA1P,EACA2P,EACAhE,EACA9lD,EAEA+pD,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACA7S,EACA8S,EACAC,EACAC,EACAC,EACAC,EACApqC,EAEAw0B,EACA2B,EACAh0C,EACAkoD,EAGApJ,EAAOX,QAGLzrD,EAAQmmD,EAAKnmD,QAEbmmD,EAAKkG,UACHlG,EAAKiG,QACNuI,KAAYxI,SAAW,KACvBhG,EAAKwF,WACHxF,EAAKsF,SACRmJ,KAAgBzO,EAAKqF,aACrBoJ,KAAapJ,UAAY,OAExBxrD,EAAM60D,OAEL70D,EAAM80D,QACN90D,EAAM+0D,QACN/0D,EAAMg1D,QACHh1D,EAAMmlD,SACVnlD,EAAMk1D,OACNl1D,EAAMqiD,OACLriD,EAAMy1D,UACNz1D,EAAM01D,eACA11D,EAAM21D,SAAW,QACjB31D,EAAM41D,UAAY,MAO7B,CACGvT,EAAO,QACD+J,EAAMuI,MAAUtS,KAChB,KACA+J,EAAMuI,MAAUtS,KAChB,KAGH8S,EAAMD,EAAOG,YAGX,MACFE,IAAS,QACJpqC,KACFA,IACFoqC,IAAS,GAAM,IACV,IAAPpqC,IAIKypC,KAAiB,MAAPW,YAEL,GAALpqC,OAwKc,IAAR,MAAW,GACjBgqC,GAAc,gBAAqChqC,GAAM,kBAGpD,GAALA,EAAS,GAEV0qC,KArSC,aAySF5K,IAAM,gCACL4K,KA3SA,aAyHO,MAAPN,KACA,GACFpqC,IACEk3B,EAAOl3B,OACDihC,EAAMuI,MAAUtS,KAChB,MAEH6S,MAAc/pC,GAAM,OACjBA,KACFA,GAGNk3B,EAAO,QACD+J,EAAMuI,MAAUtS,KAChB,KACA+J,EAAMuI,MAAUtS,KAChB,KAEH+S,EAAMF,EAAOI,YAGX,MACFC,IAAS,QACJpqC,KACFA,IACFoqC,IAAS,GAAM,MAEZ,GAALpqC,OA+HmB,IAAR,MAAW,GACjBiqC,GAAc,gBAAqCjqC,GAAM,iBAI3D8/B,IAAM,0BACL4K,KAzRJ,gBAqJY,MAAPN,KACD,GACFlT,EAAOl3B,OACDihC,EAAMuI,MAAUtS,KAChB,EACJA,EAAOl3B,OACDihC,EAAMuI,MAAUtS,KAChB,OAGJ6S,MAAc/pC,GAAM,EAExBm2B,EAAOuT,EAAM,GACV5J,IAAM,kCACL4K,KAnKN,mBAuKQ1qC,KACFA,IAEHypC,EAAOhE,EACRtP,EAAOn2B,EAAI,MACRm2B,EAAOn2B,EACRA,EAAK4pC,GACH/0D,EAAM81D,KAAM,GACT7K,IAAM,kCACL4K,KAhLV,gBA0MO,IACOZ,EACA,IAAVD,SACMF,EAAQ3pC,EACZA,EAAKw0B,EAAK,IACLx0B,OAEEypC,KAAUK,EAAS3nD,aACjB6d,KACJypC,EAAOtT,IACAmK,WAGTuJ,EAAQ7pC,SACP2pC,EAAQE,EAAQ7pC,KAClB6pC,EACF7pC,EAAKw0B,EAAK,IACLx0B,OAEEypC,KAAUK,EAAS3nD,aACjB6d,QACJ,EACH6pC,EAAQrV,EAAK,GACVqV,KACE7pC,OAEEypC,KAAUK,EAAS3nD,aACjB6d,KACJypC,EAAOtT,IACAmK,eAKVuJ,EAAQ7pC,EACZA,EAAKw0B,EAAK,IACLx0B,OAEEypC,KAAUK,EAAS3nD,aACjB6d,KACJypC,EAAOtT,IACAmK,OAGX9L,EAAM,KACJiV,KAAUY,EAAYloD,OACtBsnD,KAAUY,EAAYloD,OACtBsnD,KAAUY,EAAYloD,QACtB,EAELqyC,MACKiV,KAAUY,EAAYloD,KACzBqyC,EAAM,MACDiV,KAAUY,EAAYloD,WAI9B,GACIsnD,EAAOtT,OAELsT,KAAUnJ,EAAOn+C,OACjBsnD,KAAUnJ,EAAOn+C,OACjBsnD,KAAUnJ,EAAOn+C,QACjB,QACAqyC,EAAM,GACXA,MACKiV,KAAUnJ,EAAOn+C,KACpBqyC,EAAM,MACDiV,KAAUnJ,EAAOn+C,2BAmC/BqnD,EAAM1P,GAAQ2P,EAAO9pD,KAGxBu3C,GAAQ,KACP1C,KACCA,GAAO,SACD0C,GAAQ,IAGjBgK,QAAUsI,IACVhJ,SAAWiJ,IACXzI,SAAYwI,EAAM1P,IAAmB0P,EAAZ,EAAmB,KAAW1P,KACvDuG,UAAaoJ,EAAO9pD,IAAmB8pD,EAAb,IAAqB,OAAc9pD,KAC5DoqD,KAAOA,IACP7S,KAAOA,GAuBf,MASM0T,GAAQ,IAAIhG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAGzDiG,GAAO,IAAI7oD,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGpD8oD,GAAQ,IAAIlG,YAAY,CAC5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,IAG1BmG,GAAO,IAAI/oD,WAAW,CAC1B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,KAsStB,IAAIgpD,GAnSkB,CAAClwD,EAAMmwD,EAAMC,EAAYC,EAAO9O,EAAO+O,EAAaC,EAAM3yD,WAExEw+C,EAAOx+C,EAAKw+C,SAYdoU,EACAC,EACAC,EACAC,EACA/E,EAIA/mD,EAjBA60C,EAAM,EACNkX,EAAM,EACNplD,EAAM,EAAGnN,EAAM,EACfwyD,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EAMPn7D,EAAO,KACPo7D,EAAa,QAGX/5C,EAAQ,IAAI0yC,YAAYsH,IACxBC,EAAO,IAAIvH,YAAYsH,QAIzBE,EAAWC,EAASC,EAHpB7sC,EAAQ,KACR8sC,EAAc,MAoCb/X,EAAM,EAAGA,GA7FA,GA6FgBA,MACtBA,GAAO,MAEVkX,EAAM,EAAGA,EAAMP,EAAOO,MACnBT,EAAKC,EAAaQ,YAInBxU,EACF/9C,EAtGS,GAsGMA,GAAO,GACN,IAAf+Y,EAAM/Y,GADkBA,QAG1BwyD,EAAOxyD,MACFA,GAEG,IAARA,WAIIiyD,KAAkB,WAMlBA,KAAkB,WAEnBlU,KAAO,EACL,MAEJ5wC,EAAM,EAAGA,EAAMnN,GACC,IAAf+Y,EAAM5L,GADaA,SAGrBqlD,EAAOrlD,MACFA,KAIF,EACFkuC,EAAM,EAAGA,GApIA,GAoIgBA,WACnB,KACDtiC,EAAMsiC,GACVsX,EAAO,cAITA,EAAO,IAtIG,OAsI+B,IAAR3yD,kBAKhC,GAAK,EACLq7C,EAAM,EAAGA,EAjJA,GAiJeA,MACtBA,EAAM,GAAK2X,EAAK3X,GAAOtiC,EAAMsiC,OAI/BkX,EAAM,EAAGA,EAAMP,EAAOO,IACM,IAA3BT,EAAKC,EAAaQ,OACfS,EAAKlB,EAAKC,EAAaQ,OAAWA,MAnJ7B,IAyLV5wD,KACK2kB,EAAQ4rC,IACT,IA1LK,IA4LFvwD,KACF8vD,MACO,MACNC,MACO,MACT,QAGCC,KACCC,WAKH,IACD,IACAzkD,IACC8kD,IACAO,IACA,SAEA,GAAKA,IACLI,EAAO,EAlND,IAqNRjxD,GAAmBixD,EA1NJ,KAMN,IAqNXjxD,GAAoBixD,EA1NF,WA2NZ,SAIA,GAEKvX,EAAMqX,EACdR,EAAKK,GAAO/rD,KACJ,IACC0rD,EAAKK,IAETL,EAAKK,GAAO/rD,KACT8f,EAAM8sC,EAAclB,EAAKK,MACxB76D,EAAKo7D,EAAaZ,EAAKK,QAGxB,KACC,KAIN,GAAMlX,EAAMqX,IACZ,GAAKD,IACNL,QAEID,IACF5E,MAAgBmF,GAAQN,GAASa,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATf,SAGF,GAAM/W,EAAM,EACZwX,EAAOV,OACH,KAEE,IAATA,MACMA,EAAO,KACPA,KAED,MAKY,KAAfp5C,EAAMsiC,GAAY,IAClBA,IAAQr7C,UACN8xD,EAAKC,EAAaG,EAAKK,OAI3BlX,EAAMmX,MAAgBF,KAAUD,EAAK,KAE1B,IAATK,MACKF,MAIDrlD,IAGDkuC,EAAMqX,IACN,GAAKD,EACLA,EAAOC,EAAO1yD,OACX+Y,EAAM05C,EAAOC,KACjBC,GAAQ,aAEH,QAIH,GAAKF,EA5RJ,IA6RJ9wD,GAAmBixD,EAlSR,KAMN,IA6RPjxD,GAAoBixD,EAlSN,WAmSR,IAIHC,EAAOP,IAIPD,GAAQG,GAAQ,GAAOC,GAAQ,GAAOlF,EAAO0E,EAAc,UAOxD,IAATY,MAIItF,EAAOsF,GAAUxX,EAAMqX,GAAS,GAAO,IAAM,GAAK,KAKrD3U,KAAOyU,EACL,GA8BT,MAQEnO,SAAUgP,WAAY/O,WAASC,GAC/BC,KAAM8O,GAAQ7O,aAAc8O,GAAgB7O,YAAa8O,GAAe5O,eAAgB6O,GAAkB5O,aAAc6O,GAAgB5O,YAAa6O,eAAe5O,cACpKa,IACE5B,GAqDE4P,GAAW1F,QAEE,GAAM,UACP,EAAK,SACP,UAAW,KACX,QAAS,IAIzB,mBACOqD,KAAO,OACPrmD,MAAO,OACP88C,KAAO,OACP6L,UAAW,OACXxzD,MAAQ,OACRkwD,KAAO,OACPuD,MAAQ,OACRC,MAAQ,OAERrK,KAAO,UAGPsK,MAAQ,OACRxD,MAAQ,OACRC,MAAQ,OACRC,MAAQ,OACR7P,OAAS,UAGT+P,KAAO,OACP7S,KAAO,OAGP5nD,OAAS,OACTiR,OAAS,OAGTkf,MAAQ,OAGR6qC,QAAU,UACVC,SAAW,UACXC,QAAU,OACVC,SAAW,OAGX2C,MAAQ,OACRC,KAAO,OACPC,MAAQ,OACRC,KAAO,OACPC,KAAO,UAEPvC,KAAO,IAAIrG,YAAY,UACvByG,KAAO,IAAIzG,YAAY,UAOvB6I,OAAS,UACTC,QAAU,UACV/C,KAAO,OACPgD,KAAO,OACPC,IAAM,EAIb,MAAMC,GAAoB7S,QAEnBA,IAASA,EAAKnmD,aAAgB+3D,SAC7B/3D,EAAQmmD,EAAKnmD,eACdusD,SAAWpG,EAAKyF,UAAY5rD,EAAMq4D,MAAQ,IAC1CpN,IAAM,GACPjrD,EAAMssD,SACHnF,MAAqB,EAAbnnD,EAAMssD,QAEfuJ,KA3HQ,IA4HRrmD,KAAO,IACP2oD,SAAW,IACXtD,KAAO,QACP7G,KAAO,OACPkH,KAAO,IACP7S,KAAO,IAEPoT,QAAUz1D,EAAM44D,OAAS,IAAIK,WA9FjB,OA+FZvD,SAAW11D,EAAM64D,QAAU,IAAII,WA9FlB,OAgGbnD,KAAO,IACPgD,QAEClB,IAIHsB,GAAgB/S,QAEfA,IAASA,EAAKnmD,aAAgB+3D,SAC7B/3D,EAAQmmD,EAAKnmD,eACb80D,MAAQ,IACRC,MAAQ,IACRC,MAAQ,EACPgE,GAAiB7S,IAKpBgT,GAAgB,CAAChT,EAAMkK,SACvB/D,MAGCnG,IAASA,EAAKnmD,aAAgB+3D,SAC7B/3D,EAAQmmD,EAAKnmD,aAGfqwD,EAAa,KACR,KACOA,MAGa,MAAL,GAClBA,EAAa,QACD,KAKdA,MAA4B,GAAKA,EAAa,IACzC0H,IAEY,OAAjB/3D,EAAMmlD,QAAmBnlD,EAAMs4D,QAAUjI,MACrClL,OAAS,QAIXmH,KAAOA,IACPgM,MAAQjI,EACP6I,GAAa/S,KAIhBiT,GAAe,CAACjT,EAAMkK,SAErBlK,SAAe4R,SAGd/3D,EAAQ,IAAIq5D,KAIbr5D,MAAQA,IACPmlD,OAAS,WACTrhD,EAAMq1D,GAAchT,EAAMkK,UAC5BvsD,IAAQ8zD,OACL53D,MAAQ,MAER8D,GAoBT,IAEIw1D,GAAQC,GAFRC,IAAS,EAKb,MAAMC,GAAez5D,OAGfw5D,GAAQ,IACD,IAAIP,WAAW,QACd,IAAIA,WAAW,QAGrBpC,EAAM,OACHA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,OACjCA,EAAM,OAAaT,KAAKS,KAAS,SAhQ/B,EAkQO72D,EAAMo2D,KAAM,EAAG,IAAKkD,GAAU,EAAGt5D,EAAMw2D,KAAM,CAAEnU,KAAM,MAG/D,EACCwU,EAAM,MAAYT,KAAKS,KAAS,KArQ7B,EAuQM72D,EAAMo2D,KAAM,EAAG,GAAMmD,GAAS,EAAGv5D,EAAMw2D,KAAM,CAAEnU,KAAM,QAG5D,IAGLoT,QAAU6D,KACV3D,QAAU,IACVD,SAAW6D,KACX3D,SAAW,GAkBb8D,GAAe,CAACvT,EAAMwT,EAAK7uD,EAAKK,SAEhCm2C,QACEthD,EAAQmmD,EAAKnmD,aAGE,OAAjBA,EAAMmlD,WACF2P,MAAQ,GAAK90D,EAAMs4D,QACnBtD,MAAQ,IACRD,MAAQ,IAER5P,OAAS,IAAIh4C,WAAWnN,EAAM80D,QAIlC3pD,GAAQnL,EAAM80D,SACV3P,OAAOp5C,IAAI4tD,EAAIvU,SAASt6C,EAAM9K,EAAM80D,MAAOhqD,GAAM,KACjDkqD,MAAQ,IACRD,MAAQ/0D,EAAM80D,UAGb90D,EAAM80D,MAAQ90D,EAAMg1D,MACvB1T,EAAOn2C,MACFA,KAGHg6C,OAAOp5C,IAAI4tD,EAAIvU,SAASt6C,EAAMK,EAAML,EAAMK,EAAOm2C,GAAOthD,EAAMg1D,WAC5D1T,MAGA6D,OAAOp5C,IAAI4tD,EAAIvU,SAASt6C,EAAMK,EAAML,GAAM,KAC1CkqD,MAAQ7pD,IACR4pD,MAAQ/0D,EAAM80D,UAGdE,OAAS1T,EACXthD,EAAMg1D,QAAUh1D,EAAM80D,UAAeE,MAAQ,GAC7Ch1D,EAAM+0D,MAAQ/0D,EAAM80D,UAAeC,OAASzT,KAG7C,GA8oCT,IAqBIsY,GAAc,CACjBV,aAtBoBA,GAuBpBC,cAtBqBA,GAuBrBH,iBAtBwBA,GAuBxBa,YAnxCoB1T,GAEZiT,GAAajT,EAvKJ,IAy7CjBiT,aAtBoBA,GAuBpBU,QArqCiB,CAAC3T,EAAMiI,SAEnBpuD,EACAosD,EAAOX,EACPoG,EACAkI,EACArB,EAAMzB,EACN/B,EACA7S,EACAsS,EAAKC,EACLzpD,EACAmC,EACAkoD,EAEA+B,EAAWC,EAASC,EAEpBuC,EAAWC,EAASC,EACpBva,EACA77C,EALAyxD,EAAO,QAML4E,EAAO,IAAIhtD,WAAW,OACxBtJ,EAEA9J,QAEEqgE,EACJ,IAAIjtD,WAAW,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,SAG5Eg5C,IAASA,EAAKnmD,QAAUmmD,EAAKsF,SAC5BtF,EAAKiG,OAA2B,IAAlBjG,EAAKgG,gBAChB4L,KAGD5R,EAAKnmD,MApVK,KAqVdA,EAAM61D,SAAuBA,KApVb,MAwVd1P,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACLnsD,EAAMk1D,OACNl1D,EAAMqiD,OAGPqW,IACCzB,IACDW,mBAII53D,EAAM61D,WApXF,KAsXW,IAAf71D,EAAMssD,KAAY,GACduJ,KA3WM,cA+WPxT,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGQ,EAAbriD,EAAMssD,MAAsB,QAAT4I,EAAiB,GACjCkD,MAAQ,IAET,GAAY,IAAPlD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAO+B,EAAM,EAAG,KAIrC,IACA,IAEDtE,KA7YC,aAgZHlxD,MAAQ,EACV3E,EAAMguD,SACFA,KAAKqM,MAAO,KAED,IAAP/N,UACA,QAAoB,OAAc,IAAM,GAAI,GACjDrB,IAAM,2BACL4K,KA3XD,aA8XK,QAAqB3L,GAAY,GACtCe,IAAM,+BACL4K,KAhYD,iBAoYG,KACF,IAEyB,GAAnB,MACM,IAAhB71D,EAAMs4D,QACFA,MAAQ3Y,UAEPA,EAAM3/C,EAAMs4D,MAAO,GACrBrN,IAAM,wBACL4K,KA7YD,WAmZDhB,KAAO,GAAK70D,EAAMs4D,QAInBnR,MAAQnnD,EAAMo4D,MAAQ,IACrBvC,KAAc,IAAPX,EA5aH,GAEE,KA4aL,IACA,aAvbE,OA4bF7S,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,OAGJ19C,MAAQuwD,GACK,MAARvwD,SAAkBulD,GAAY,GAClCe,IAAM,+BACL4K,KA1aD,YA6aW,MAAd71D,EAAM2E,MAAgB,GACnBsmD,IAAM,6BACL4K,KA/aD,SAkbH71D,EAAMguD,SACFA,KAAKr/B,KAASumC,GAAQ,EAAK,GAEjB,IAAdl1D,EAAM2E,UAEH,GAAY,IAAPuwD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KA3dE,OAAA,OA+dDxT,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,EAGNriD,EAAMguD,SACFA,KAAKgD,KAAOkE,GAEF,IAAdl1D,EAAM2E,UAEH,GAAY,IAAPuwD,IACL,GAAMA,IAAS,EAAK,MACpB,GAAMA,IAAS,GAAM,MACrB,GAAMA,IAAS,GAAM,MACpBkD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KArfA,OAAA,OAyfCxT,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,EAGNriD,EAAMguD,SACFA,KAAKsM,OAAiB,IAAPpF,IACflH,KAAKiD,GAAMiE,GAAQ,GAET,IAAdl1D,EAAM2E,UAEH,GAAY,IAAPuwD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAO+B,EAAM,EAAG,MAIvC,IACA,IAEDtE,KA9gBG,OAAA,KAihBS,KAAd71D,EAAM2E,MAAgB,MAEjB09C,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,IAGJ5nD,OAASy6D,EACXl1D,EAAMguD,SACFA,KAAKuM,UAAYrF,GAEP,IAAdl1D,EAAM2E,UAEH,GAAY,IAAPuwD,IACL,GAAMA,IAAS,EAAK,MACnBkD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAO+B,EAAM,EAAG,MAIvC,IACA,OAGAn6D,EAAMguD,SACPA,KAAKpjC,MAAQ,QAEfirC,KA5iBG,OAAA,KA+iBS,KAAd71D,EAAM2E,UACD3E,EAAMvF,OACT0Q,EAAOutD,MAAeA,GACtBvtD,IACEnL,EAAMguD,SACFhuD,EAAMguD,KAAKuM,UAAYv6D,EAAMvF,OAC9BuF,EAAMguD,KAAKpjC,UAERojC,KAAKpjC,MAAQ,IAAIzd,WAAWnN,EAAMguD,KAAKuM,cAEzCvM,KAAKpjC,MAAM7e,IACfqgD,EAAMhH,SACJyM,EAGAA,EAAO1mD,GAGTw0C,IAMc,IAAd3/C,EAAM2E,UACFyzD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAOhM,EAAOjhD,EAAM0mD,OAE1C1mD,KACAA,IACF1Q,QAAU0Q,GAEdnL,EAAMvF,kBAENA,OAAS,IACTo7D,KAhlBE,OAAA,KAmlBU,KAAd71D,EAAM2E,MAAgB,IACX,IAAT+zD,YACG,OAGCtM,EAAMyF,EAAO1mD,KAEfnL,EAAMguD,MAAQrO,GACb3/C,EAAMvF,OAAS,UACZuzD,KAAKtsD,MAAQ0F,OAAOkrD,aAAa3S,UAElCA,GAAOx0C,EAAOutD,MAEL,IAAd14D,EAAM2E,UACFyzD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAOhM,EAAOjhD,EAAM0mD,OAE1C1mD,KACAA,EACJw0C,eAEG3/C,EAAMguD,SACPA,KAAKtsD,KAAO,QAEdjH,OAAS,IACTo7D,KA1mBK,OAAA,KA6mBO,KAAd71D,EAAM2E,MAAgB,IACX,IAAT+zD,YACG,OAECtM,EAAMyF,EAAO1mD,KAEfnL,EAAMguD,MAAQrO,GACb3/C,EAAMvF,OAAS,UACZuzD,KAAK+C,SAAW3pD,OAAOkrD,aAAa3S,UAErCA,GAAOx0C,EAAOutD,MACL,IAAd14D,EAAM2E,UACFyzD,MAAQ1Q,GAAQ1nD,EAAMo4D,MAAOhM,EAAOjhD,EAAM0mD,OAE1C1mD,KACAA,EACJw0C,eAEG3/C,EAAMguD,SACPA,KAAK+C,QAAU,QAEjB8E,KAjoBE,OAAA,KAooBU,IAAd71D,EAAM2E,MAAgB,MAEjB09C,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGN6S,KAAwB,QAARkD,OAAiB,GAC9BnN,IAAM,wBACL4K,KA1nBH,WA8nBE,IACA,EAGL71D,EAAMguD,SACFA,KAAK8C,KAAS9wD,EAAM2E,OAAS,EAAK,IAClCqpD,KAAKqM,MAAO,KAEflT,MAAQnnD,EAAMo4D,MAAQ,IACrBvC,KAzpBM,cAFF,QA+pBHxT,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,IAGL8E,MAAQnnD,EAAMo4D,MAAQF,GAAQhD,KAE5B,IACA,IAEDW,KA1qBE,QAAA,MA6qBe,IAAnB71D,EAAMm4D,kBAEHxM,SAAWoO,IACXvO,UAAYyL,IACZ5K,QAAUwF,IACV1F,SAAWuM,IACVxD,KAAOA,IACP7S,KAAOA,EAENyV,KAEJ3Q,MAAQnnD,EAAMo4D,MAAQ,IACrBvC,KAxrBM,QAAA,MA2rBRzH,IAAUxF,IAAWwF,IAAUvF,gBA1rBrB,MA6rBV7oD,EAAMwP,KAAM,MAEG,EAAP6yC,KACK,EAAPA,IAEFwT,KAprBC,cAwrBFxT,EAAO,GAAG,IACF,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,WAGJ7yC,KAAe,EAAP0lD,OAEJ,KACF,EAGQ,EAAPA,QACF,IAGGW,KAttBI,cAwtBP,QACS71D,KAGN61D,KAttBM,GAutBRzH,IAAUvF,GAAS,MAEX,KACF,qBAKP,IAGGgN,KAruBG,cAuuBN,IACE5K,IAAM,uBACL4K,KA5tBH,QA+tBG,KACF,aAhvBM,YAqvBG,EAAPxT,KACK,EAAPA,EAGDA,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,MAGE,eAAuB,GAAM,OAAS,GAC3C4I,IAAM,iCACL4K,KAlvBD,cAqvBDp7D,OAAgB,MAAPy6D,IAIR,IACA,IAEDW,KA3wBO,GA4wBTzH,IAAUvF,gBA5wBD,KA+wBPgN,KA9wBM,QAAA,QAixBL71D,EAAMvF,OACT0Q,EAAM,IACJA,EAAOutD,MAAeA,GACtBvtD,EAAO8rD,MAAeA,GACb,IAAT9rD,YAEGY,IAAIqgD,EAAMhH,SAASyM,EAAMA,EAAO1mD,GAAO4uD,MAEtC5uD,KACAA,KACAA,KACDA,IACD1Q,QAAU0Q,UAIZ0qD,KAryBM,cAKC,QAoyBNxT,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,OAGJmW,KAAkC,KAAnB,WAEX,KACF,IAEFC,MAAmC,GAAnB,WAEZ,KACF,IAEFF,MAAmC,GAAnB,WAEZ,KACF,EAGJv4D,EAAMw4D,KAAO,KAAOx4D,EAAMy4D,MAAQ,GAAI,GACnCxN,IAAM,wCACL4K,KAhzBD,WAqzBD6C,KAAO,IACP7C,KAl0BS,QAAA,QAq0BR71D,EAAM04D,KAAO14D,EAAMu4D,OAAO,MAExBlW,EAAO,GAAG,IACF,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,IAGJ+T,KAAKgE,EAAMp6D,EAAM04D,SAAmB,EAAPxD,OAEzB,KACF,OAGHl1D,EAAM04D,KAAO,MACZtC,KAAKgE,EAAMp6D,EAAM04D,SAAW,OAM9BjD,QAAUz1D,EAAM44D,SAChBjD,QAAU,IAET,CAAEtT,KAAMriD,EAAM21D,WACfQ,GAl4BA,EAk4BgBn2D,EAAMo2D,KAAM,EAAG,GAAIp2D,EAAMy1D,QAAS,EAAGz1D,EAAMw2D,KAAM3yD,KACjE8xD,QAAU9xD,EAAKw+C,KAEjBv+C,EAAK,GACFmnD,IAAM,6BACL4K,KAx1BD,WA41BD6C,KAAO,IACP7C,KAx2BU,QAAA,QA22BT71D,EAAM04D,KAAO14D,EAAMw4D,KAAOx4D,EAAMy4D,OAAO,QAEnCz4D,EAAMy1D,QAAQP,MAAcl1D,EAAM21D,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGNoV,EAAW,QAEHF,KACFA,IAEFnB,KAAKp2D,EAAM04D,QAAUjB,MAExB,IACc,KAAbA,EAAiB,OAEfF,EAAY,EACTlV,EAAOtoD,GAAG,IACF,IAAT2+D,iBAEItM,EAAMyF,MAAWxP,KACjB,UAIAkV,KACFA,EAEW,IAAfv3D,EAAM04D,KAAY,GACfzN,IAAM,8BACL4K,KAv4BP,WA04BK71D,EAAMo2D,KAAKp2D,EAAM04D,KAAO,KACvB,GAAY,UAET,KACF,UAGY,KAAbjB,EAAiB,OAEpBF,EAAY,EACTlV,EAAOtoD,GAAG,IACF,IAAT2+D,iBAEItM,EAAMyF,MAAWxP,KACjB,OAIAkV,KACFA,IAEF,IACC,GAAY,UAET,KACF,MAGL,OAECA,EAAY,EACTlV,EAAOtoD,GAAG,IACF,IAAT2+D,iBAEItM,EAAMyF,MAAWxP,KACjB,OAIAkV,KACFA,IAEF,IACC,IAAa,YAEV,KACF,KAGNv3D,EAAM04D,KAAOvtD,EAAOnL,EAAMw4D,KAAOx4D,EAAMy4D,MAAO,GAC3CxN,IAAM,8BACL4K,KA77BL,cAg8BI1qD,OACCirD,KAAKp2D,EAAM04D,QAAU/Y,MAj8B1B,KAu8BH3/C,EAAM61D,cAGc,IAApB71D,EAAMo2D,KAAK,KAAY,GACpBnL,IAAM,yCACL4K,KA58BD,cAm9BDF,QAAU,IAET,CAAEtT,KAAMriD,EAAM21D,WACfQ,GApgCD,EAogCgBn2D,EAAMo2D,KAAM,EAAGp2D,EAAMw4D,KAAMx4D,EAAMy1D,QAAS,EAAGz1D,EAAMw2D,KAAM3yD,KAGxE8xD,QAAU9xD,EAAKw+C,KAGjBv+C,EAAK,GACFmnD,IAAM,gCACL4K,KA99BD,cAk+BDD,SAAW,IAGXF,SAAW11D,EAAM64D,UAChB,CAAExW,KAAMriD,EAAM41D,YACfO,GAphCA,EAohCgBn2D,EAAMo2D,KAAMp2D,EAAMw4D,KAAMx4D,EAAMy4D,MAAOz4D,EAAM01D,SAAU,EAAG11D,EAAMw2D,KAAM3yD,KAGpF+xD,SAAW/xD,EAAKw+C,KAGlBv+C,EAAK,GACFmnD,IAAM,0BACL4K,KA/+BD,cAm/BDA,KA7/BU,GA8/BZzH,IAAUvF,gBA9/BE,KAigCVgN,KAhgCS,QAAA,MAmgCX6C,GAAQ,GAAKzB,GAAQ,IAAK,GAEvBtL,SAAWoO,IACXvO,UAAYyL,IACZ5K,QAAUwF,IACV1F,SAAWuM,IACVxD,KAAOA,IACP7S,KAAOA,KAEL8D,EAAMyO,KAERzO,EAAKwF,WACFxF,EAAKsF,SACPtF,EAAKqF,YACLrF,EAAKkG,UACJlG,EAAKiG,QACNjG,EAAKgG,WACLnsD,EAAMk1D,OACNl1D,EAAMqiD,KA9hCH,KAiiCNriD,EAAM61D,SACFiD,qBAIJA,KAAO,IAEJ94D,EAAMy1D,QAAQP,MAAcl1D,EAAM21D,SAAW,KACxCJ,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAEPgC,GAAalV,IANV,IAQM,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGNmV,GAAgC,IAAV,OAAa,OACzBD,IACFC,IACCC,IAEFz3D,EAAMy1D,QAAQyE,UACIF,EAAYC,GAAY,IAAoCD,MACzEzE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENyE,EAAYzC,GAAclV,IAPxB,IASM,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,OAIA2X,KACFA,IAEFlB,MAAQkB,UAGNzC,KACFA,IAEFuB,MAAQvB,IACR98D,OAASg9D,EACC,IAAZD,EAAe,GAIX3B,KA1kCO,YA6kCD,GAAV2B,EAAc,GAEVsB,UACAjD,KA9lCI,YAimCE,GAAV2B,EAAc,GACXvM,IAAM,gCACL4K,KAjlCD,WAolCDjrC,MAAkB,GAAV4sC,IACR3B,KA7lCY,QAAA,MAgmCd71D,EAAM4qB,MAAO,OAEX5qB,EAAM4qB,MACHy3B,EAAOtoD,GAAG,IACF,IAAT2+D,iBAEItM,EAAMyF,MAAWxP,KACjB,IAGJ5nD,QAAUy6D,MAAcl1D,EAAM4qB,OAAS,OAEnC5qB,EAAM4qB,SACR5qB,EAAM4qB,QAERkuC,MAAQ94D,EAAM4qB,QAGhBmuC,IAAM/4D,EAAMvF,SACZo7D,KAlnCU,QAAA,UAsnCP71D,EAAM01D,SAASR,MAAcl1D,EAAM41D,UAAY,KAC1CL,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENgC,GAAclV,IANZ,IAQM,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGe,IAAV,OAAa,OACdkV,IACFC,IACCC,IAEFz3D,EAAM01D,SAASwE,UACGF,EAAYC,GAAY,IAAoCD,MACzEzE,IAAS,KACVA,IAAS,GAAM,MACR,MAAPA,IAENyE,EAAYzC,GAAclV,IAPxB,IASM,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,OAIA2X,KACFA,IAEFlB,MAAQkB,UAGNzC,KACFA,IAEFuB,MAAQvB,EACA,GAAVC,EAAc,GACXvM,IAAM,0BACL4K,KA5pCD,WA+pCDnqD,OAAS+rD,IACT7sC,MAAoB,GAAX4sC,IACT3B,KAvqCa,QAAA,MA0qCf71D,EAAM4qB,MAAO,OAEX5qB,EAAM4qB,MACHy3B,EAAOtoD,GAAG,IACF,IAAT2+D,iBAEItM,EAAMyF,MAAWxP,KACjB,IAGJ32C,QAAUwpD,MAAcl1D,EAAM4qB,OAAS,OAEnC5qB,EAAM4qB,SACR5qB,EAAM4qB,QAERkuC,MAAQ94D,EAAM4qB,SAGlB5qB,EAAM0L,OAAS1L,EAAM60D,KAAM,GACxB5J,IAAM,kCACL4K,KAxrCD,WA6rCDA,KAlsCW,QAAA,MAqsCJ,IAAToB,eACGrC,EAAOqC,EACVj3D,EAAM0L,OAASP,EAAM,MAChBnL,EAAM0L,OAASP,EAClBA,EAAOnL,EAAM+0D,OACX/0D,EAAM81D,KAAM,GACT7K,IAAM,kCACL4K,KAvsCL,SA0tCD1qD,EAAOnL,EAAMg1D,UACPh1D,EAAMg1D,QACPh1D,EAAM80D,MAAQ3pD,KAGdnL,EAAMg1D,MAAQ7pD,EAEnBA,EAAOnL,EAAMvF,WAAiBuF,EAAMvF,UAC1BuF,EAAMmlD,cAGNsG,IACPsO,EAAM/5D,EAAM0L,SACZ1L,EAAMvF,OAEX0Q,EAAO8rD,MAAeA,MAClB9rD,IACF1Q,QAAU0Q,OAEP4uD,KAASvE,EAAYloD,aACnBnC,GACU,IAAjBnL,EAAMvF,WAAsBo7D,KAxvCjB,eAKA,MAsvCF,IAAToB,YACG8C,KAAS/5D,EAAMvF,aAEhBo7D,KA9vCS,cAMN,MA2vCL71D,EAAMssD,KAAM,MAEPjK,EAAO,IAAI,IACH,IAATqW,iBAGItM,EAAMyF,MAAWxP,KACjB,QAGF4U,IACHrL,WAAagJ,IACZyD,OAASzD,EACXA,MACGzN,MAAQnnD,EAAMo4D,MAEdp4D,EAAM2E,MAAQ+iD,GAAQ1nD,EAAMo4D,MAAO3M,EAAQmJ,EAAMmF,EAAMnF,GAAQ1N,GAAUlnD,EAAMo4D,MAAO3M,EAAQmJ,EAAMmF,EAAMnF,MAG1GqC,KAEItyD,MAAQuwD,EAAOgD,GAAQhD,MAAWl1D,EAAMo4D,MAAO,GACnDnN,IAAM,yBACL4K,KA/wCH,WAmxCE,IACA,IAIHA,KA1xCI,QAAA,MA6xCN71D,EAAMssD,MAAQtsD,EAAM2E,MAAO,MAEtB09C,EAAO,IAAI,IACH,IAATqW,iBAEItM,EAAMyF,MAAWxP,KACjB,KAGN6S,KAAwB,aAARmD,OAAqB,GAClCpN,IAAM,2BACL4K,KAtyCH,WA0yCE,IACA,IAIHA,KAhzCE,QAAA,KAmzCFgC,gBAlzCC,KAqzCDG,gBApzCC,UAuzCAC,QAtzCC,kBA0zCDF,YAcRpM,SAAWoO,IACXvO,UAAYyL,IACZ5K,QAAUwF,IACV1F,SAAWuM,IACVxD,KAAOA,IACP7S,KAAOA,GAGTriD,EAAM80D,OAAUF,IAASzO,EAAKqF,WAAaxrD,EAAM61D,KAl1CxC,OAm1CcA,KAt1CZ,IAs1C4BzH,IAAUuJ,MAC/C+B,GAAavT,EAAMA,EAAKsF,OAAQtF,EAAKwF,SAAUiJ,EAAOzO,EAAKqF,cAE1DrF,EAAKgG,YACJhG,EAAKqF,YACRe,UAAYoI,IACZ/I,WAAagJ,IACZyD,OAASzD,EACX50D,EAAMssD,MAAQsI,MACXzN,MAAQnnD,EAAMo4D,MAChBp4D,EAAM2E,MAAQ+iD,GAAQ1nD,EAAMo4D,MAAO3M,EAAQmJ,EAAMzO,EAAKwF,SAAWiJ,GAAQ1N,GAAUlnD,EAAMo4D,MAAO3M,EAAQmJ,EAAMzO,EAAKwF,SAAWiJ,MAE9HxO,UAAYpmD,EAAMqiD,QAAc7yC,KAAO,GAAK,IAj3C/B,OAk3COqmD,KAAgB,IAAM,IA12CzB,OA22CGA,MAh3CN,KAg3CuB71D,EAAM61D,KAAiB,IAAM,IACzD,OAAc,IAATjB,GAAexG,IAAUuJ,KAAe7zD,IAAQ8zD,OAC3DvO,IAEDvlD,GAkGR02D,WA9FmBrU,QAEbA,IAASA,EAAKnmD,aACV+3D,OAGL/3D,EAAQmmD,EAAKnmD,aACbA,EAAMmlD,WACFA,OAAS,QAEZnlD,MAAQ,KACN43D,IAoFR6C,iBAhFwB,CAACtU,EAAM6H,SAGzB7H,IAASA,EAAKnmD,aAAgB+3D,SAC7B/3D,EAAQmmD,EAAKnmD,aACM,IAAP,IAAPssD,MAA0ByL,MAG/B/J,KAAOA,IACRqM,MAAO,EACLzC,KAuER8C,qBAnE4B,CAACvU,EAAMsL,WAC5BC,EAAaD,EAAWh3D,WAE1BuF,EACA26D,EACA72D,SAGCqiD,GAAyBA,EAAKnmD,SAC3BmmD,EAAKnmD,MAEM,IAAfA,EAAMssD,MAp6CI,KAo6CUtsD,EAAM61D,KACrBkC,GAr6CK,KAy6CV/3D,EAAM61D,SACC,IAEA3O,GAAUyT,EAAQlJ,EAAYC,EAAY,GAC/CiJ,IAAW36D,EAAMo4D,OACZJ,MAKL0B,GAAavT,EAAMsL,EAAYC,EAAYA,GAC7C5tD,KACI+xD,KAj6CK,GAk6CJoC,OAEHE,SAAW,EAEVP,MAzB4DG,IA4DpE6C,YAtBiB,sCAgFlB,IAAIC,GApCJ,gBAEOlsC,KAAa,OAEbqiC,KAAa,OAEbsJ,OAAa,OAEbrJ,GAAa,OAEbrmC,MAAa,UAEb2vC,UAAa,OAWb74D,KAAa,QAIbqvD,QAAa,QAIbD,KAAa,OAEbuJ,MAAa,GAKpB,MAAMrtD,GAAWjF,OAAOpI,UAAUqN,UAK5Bu7C,WACJA,YAAYI,QACZG,gBAAMC,eAAcC,kBAAaE,gBAAgBC,eAAcC,IAC7Dd,GAkFJ,YAAmBz6C,QACZA,QAAUmkD,GAAc,CAC3B6B,UAAW,MACXxD,WAAY,GACZ1tC,GAAI,IACH9U,GAAW,UAERimD,EAAMl4D,KAAKiS,QAIbimD,EAAIC,KAAQD,EAAIzD,YAAc,GAAOyD,EAAIzD,WAAa,OACpDA,YAAcyD,EAAIzD,WACC,IAAnByD,EAAIzD,eAAwBA,mBAI7ByD,EAAIzD,YAAc,GAAOyD,EAAIzD,WAAa,QAC9BxiD,EAAQwiD,eACnBA,YAAc,IAKfyD,EAAIzD,WAAa,IAAQyD,EAAIzD,WAAa,IAGf,IAAR,KAAbA,gBACHA,YAAc,SAIjBtF,IAAS,OACTE,IAAS,QACTgJ,OAAS,OACT9B,OAAS,QAEThM,KAAS,IAAImN,QACbnN,KAAKqF,UAAY,MAElBgE,EAAUoK,GAAYR,aACxBx9D,KAAKuqD,KACL2N,EAAIzD,eAGFb,IAAW1G,SACP,IAAIoL,MAAMtM,GAAS4H,YAGtBtK,OAAS,IAAI2V,MAENJ,iBAAiB7+D,KAAKuqD,KAAMvqD,KAAKspD,QAGzC4O,EAAIrC,aAEwB,iBAAnBqC,EAAIrC,aACTA,WAAagB,GAAmBqB,EAAIrC,YACG,yBAAlCzkD,GAAS1L,KAAKwyD,EAAIrC,gBACvBA,WAAa,IAAItkD,WAAW2mD,EAAIrC,aAElCqC,EAAIC,QACG6F,GAAYc,qBAAqB9+D,KAAKuqD,KAAM2N,EAAIrC,YACrDjC,IAAW1G,WACP,IAAIoL,MAAMtM,GAAS4H,IA+BjCsL,GAAUn7D,UAAUjF,KAAO,SAAU2G,EAAMizD,SACnCnO,EAAOvqD,KAAKuqD,KACZ0N,EAAYj4D,KAAKiS,QAAQgmD,UACzBpC,EAAa71D,KAAKiS,QAAQ4jD,eAC5BjC,EAAQ+E,EAAawG,KAErBn/D,KAAKq4D,aAAc,QAEnBK,MAAiBA,EAA0BA,GACb,IAAfA,EAAsB3L,GAAWJ,GAGxB,yBAAxBv7C,GAAS1L,KAAKD,KACX+qD,MAAQ,IAAIj/C,WAAW9L,KAEvB+qD,MAAQ/qD,IAGVgrD,QAAU,IACVF,SAAWhG,EAAKiG,MAAM3xD,SAElB,KACgB,IAAnB0rD,EAAKqF,cACFC,OAAS,IAAIt+C,WAAW0mD,KACxBlI,SAAW,IACXH,UAAYqI,KAGV+F,GAAYE,QAAQ3T,EAAMoO,GAE/B/E,IAAWxG,IAAeyI,MACnBmI,GAAYc,qBAAqBvU,EAAMsL,GAE5CjC,IAAW1G,KACJ8Q,GAAYE,QAAQ3T,EAAMoO,GAC1B/E,IAAWrG,OAEXH,KAKN7C,EAAKgG,SAAW,GAChBqD,IAAWzG,IACX5C,EAAKnmD,MAAMssD,KAAO,GACK,IAAvBjrD,EAAK8kD,EAAKkG,aAEH6M,aAAa/S,KAChByT,GAAYE,QAAQ3T,EAAMoO,UAG7B/E,QACDtG,QACAC,QACAH,QACAI,eACEqL,MAAMjF,QACNyE,OAAQ,GACN,OAKM9N,EAAKqF,UAElBrF,EAAKwF,WACgB,IAAnBxF,EAAKqF,WAAmBgE,IAAWzG,OAEb,WAApBntD,KAAKiS,QAAQ8U,GAAiB,KAE5Bq4C,EAAgBvI,GAAmBtM,EAAKsF,OAAQtF,EAAKwF,UAErDsP,EAAO9U,EAAKwF,SAAWqP,EACvBE,EAAUzI,GAAmBtM,EAAKsF,OAAQuP,KAGzCrP,SAAWsP,IACXzP,UAAYqI,EAAYoH,EACzBA,KAAWxP,OAAO1/C,IAAIo6C,EAAKsF,OAAOrG,SAAS4V,EAAeA,EAAgBC,GAAO,QAEhFzG,OAAO0G,aAGP1G,OAAOrO,EAAKsF,OAAOhxD,SAAW0rD,EAAKwF,SAAWxF,EAAKsF,OAAStF,EAAKsF,OAAOrG,SAAS,EAAGe,EAAKwF,cAMhG6D,IAAW1G,IAA2B,IAAnBiS,MAGnBvL,IAAWzG,YACJ6Q,GAAYY,WAAW5+D,KAAKuqD,WAChCsO,MAAMjF,QACNyE,OAAQ,GACN,KAGa,IAAlB9N,EAAKgG,uBAGJ,GAYT2O,GAAUn7D,UAAU60D,OAAS,SAAUpC,QAChCD,OAAOz3D,KAAK03D,IAanB0I,GAAUn7D,UAAU80D,MAAQ,SAAUjF,GAEhCA,IAAW1G,KACW,WAApBltD,KAAKiS,QAAQ8U,QACV+K,OAAS9xB,KAAKu2D,OAAO/tD,KAAK,SAE1BspB,OAASskC,GAAqBp2D,KAAKu2D,cAGvCA,OAAS,QACTpH,IAAMyE,OACNvE,IAAMrvD,KAAKuqD,KAAK8E,SCx7MjBkQ,GAGJC,mCAHID,GACE,mEAENC,GAAQ,CAENC,KAAM,SAASthE,EAAGuD,UACRvD,GAAKuD,EAAMvD,IAAO,GAAKuD,GAIjCg+D,KAAM,SAASvhE,EAAGuD,UACRvD,GAAM,GAAKuD,EAAOvD,IAAMuD,GAIlCi+D,OAAQ,SAASxhE,MAEXA,EAAE0B,aAAeuY,cACO,SAAnBonD,GAAMC,KAAKthE,EAAG,GAAsC,WAApBqhE,GAAMC,KAAKthE,EAAG,YAI9CN,EAAI,EAAGA,EAAIM,EAAEU,OAAQhB,MAC1BA,GAAK2hE,GAAMG,OAAOxhE,EAAEN,WACjBM,GAITyhE,YAAa,SAASzhE,WACX0hE,EAAQ,GAAI1hE,EAAI,EAAGA,MACpBW,KAAK6J,KAAK2zB,MAAsB,IAAhB3zB,KAAK4zB,kBACtBsjC,GAITC,aAAc,SAASD,WACZE,EAAQ,GAAIliE,EAAI,EAAG6D,EAAI,EAAG7D,EAAIgiE,EAAMhhE,OAAQhB,IAAK6D,GAAK,IACvDA,IAAM,IAAMm+D,EAAMhiE,IAAO,GAAK6D,EAAI,UACnCq+D,GAITC,aAAc,SAASD,WACZF,EAAQ,GAAIn+D,EAAI,EAAGA,EAAmB,GAAfq+D,EAAMlhE,OAAa6C,GAAK,IAChD5C,KAAMihE,EAAMr+D,IAAM,KAAQ,GAAKA,EAAI,GAAO,YAC3Cm+D,GAITI,WAAY,SAASJ,WACVK,EAAM,GAAIriE,EAAI,EAAGA,EAAIgiE,EAAMhhE,OAAQhB,MACtCiB,QAAYjB,KAAO,GAAGuT,SAAS,OAC/BtS,MAAiB,KAALjB,IAAUuT,SAAS,YAE9B8uD,EAAI13D,KAAK,KAIlB23D,WAAY,SAASD,WACVL,EAAQ,GAAI1+D,EAAI,EAAGA,EAAI++D,EAAIrhE,OAAQsC,GAAK,IACzCrC,KAAKsX,SAAS8pD,EAAI7uD,OAAOlQ,EAAG,GAAI,YACjC0+D,GAITO,cAAe,SAASP,WACbQ,EAAS,GAAIxiE,EAAI,EAAGA,EAAIgiE,EAAMhhE,OAAQhB,GAAK,UAC9CyiE,EAAWT,EAAMhiE,IAAM,GAAOgiE,EAAMhiE,EAAI,IAAM,EAAKgiE,EAAMhiE,EAAI,GACxD4pD,EAAI,EAAGA,EAAI,EAAGA,IACb,EAAJ5pD,EAAY,EAAJ4pD,GAAwB,EAAfoY,EAAMhhE,SAClBC,KAAKygE,GAAU12D,OAAQy3D,IAAY,KAAS7Y,GAAM,OAElD3oD,KAAK,YAEXuhE,EAAO73D,KAAK,KAIrB+3D,cAAe,SAASF,KAEbA,EAAOv9D,QAAQ,iBAAkB,YAEjC+8D,EAAQ,GAAIhiE,EAAI,EAAG2iE,EAAQ,EAAG3iE,EAAIwiE,EAAOxhE,OAC9C2hE,IAAU3iE,EAAI,EACH,GAAT2iE,KACE1hE,SAAiBqB,QAAQkgE,EAAOx3D,OAAOhL,EAAI,IAC1C8K,KAAK83D,IAAI,KAAQD,EAAQ,GAAK,IAAgB,EAARA,EACtCjB,GAAUp/D,QAAQkgE,EAAOx3D,OAAOhL,MAAS,EAAY,EAAR2iE,UAE/CX,eAIML,GC9FnB,IAAIkB,GAAU,CAEZC,KAAM,CAEJC,cAAe,SAAS7vD,UACf2vD,GAAQG,IAAID,cAAcE,SAASC,mBAAmBhwD,MAI/DiwD,cAAe,SAASnB,UACft3D,mBAAmB04D,OAAOP,GAAQG,IAAIG,cAAcnB,OAK/DgB,IAAK,CAEHD,cAAe,SAAS7vD,WACb8uD,EAAQ,GAAIhiE,EAAI,EAAGA,EAAIkT,EAAIlS,OAAQhB,MACpCiB,KAAyB,IAApBiS,EAAIwkD,WAAW13D,WACrBgiE,GAITmB,cAAe,SAASnB,WACb9uD,EAAM,GAAIlT,EAAI,EAAGA,EAAIgiE,EAAMhhE,OAAQhB,MACtCiB,KAAK0M,OAAOkrD,aAAamJ,EAAMhiE,YAC9BkT,EAAIvI,KAAK,OAKtB04D,GAAiBR,GCvBjBS,GAAiB,SAAUr5D,UACX,MAAPA,OAAyBA,IAQlC,SAAuBA,SACa,mBAApBA,EAAIs5D,aAAmD,mBAAdt5D,EAAI9E,OAAwBq+D,GAASv5D,EAAI9E,MAAM,EAAG,IATjEs+D,CAAax5D,MAAUA,EAAIy5D,YAGrE,YAAmBz5D,WACRA,EAAIjI,aAAmD,mBAA7BiI,EAAIjI,YAAYwhE,UAA2Bv5D,EAAIjI,YAAYwhE,SAASv5D,ICdxG,eACK03D,EAAQ5tD,WACR+uD,EAAO9uD,GAAmB8uD,KAC1Ba,EAAWzvD,GACX8uD,EAAMhvD,GAAmBgvD,IAG7BY,EAAM,SAAUC,EAASzvD,GAEnByvD,EAAQ7hE,aAAe2L,SACrByG,GAAgC,WAArBA,EAAQ0vD,SACXd,EAAID,cAAcc,GAElBf,EAAKC,cAAcc,GACxBF,EAASE,KACN3/D,MAAMgC,UAAUf,MAAM0C,KAAKg8D,EAAS,GACtC3/D,MAAMC,QAAQ0/D,IAAYA,EAAQ7hE,cAAgB0R,eAChDmwD,EAAQtwD,oBAGhBzP,EAAI69D,EAAMM,aAAa4B,GACvBtjE,EAAqB,EAAjBsjE,EAAQ7iE,OACZwC,EAAK,WACLK,aACAP,cACAuC,EAAK,UAGA7F,EAAI,EAAGA,EAAI8D,EAAE9C,OAAQhB,MAC1BA,GAAsC,YAA7BA,IAAO,EAAM8D,EAAE9D,KAAO,IACO,cAA7BA,IAAM,GAAO8D,EAAE9D,KAAQ,KAIlCO,IAAM,IAAM,KAASA,EAAI,KACC,MAAnB,KAAQ,GAAM,IAAWA,MAG9BwjE,EAAKH,EAAII,IACTC,EAAKL,EAAIM,IACTC,EAAKP,EAAIQ,IACTC,EAAKT,EAAIU,QAEJtkE,EAAI,EAAGA,EAAI8D,EAAE9C,OAAQhB,GAAK,GAAI,KAEjCukE,EAAK/gE,EACLghE,EAAK3gE,EACL4gE,EAAKnhE,EACLohE,EAAK7+D,IAELk+D,EAAGvgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzB+jE,EAAGl+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,iBACxB+jE,EAAGzgE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,GAAK,aAC7B+jE,EAAGlgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,kBACxB+jE,EAAGvgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzB+jE,EAAGl+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,GAAK,cAC7B+jE,EAAGzgE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,kBACxB+jE,EAAGlgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,gBACxB+jE,EAAGvgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,EAAI,cAC7B+jE,EAAGl+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,kBACxB+jE,EAAGzgE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,aACxB+jE,EAAGlgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,kBACxB+jE,EAAGvgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAE,IAAM,EAAI,cAC7B+jE,EAAGl+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAK,gBACxB+jE,EAAGzgE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,kBAGxBikE,EAAGzgE,IAFHugE,EAAGlgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,GAAK,YAEpBsD,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzBikE,EAAGp+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAK,iBACzBikE,EAAG3gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,GAAK,aAC7BikE,EAAGpgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,iBACxBikE,EAAGzgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzBikE,EAAGp+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAM,EAAI,YAC7BikE,EAAG3gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,iBACxBikE,EAAGpgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,iBACxBikE,EAAGzgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,EAAI,aAC7BikE,EAAGp+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAM,iBACzBikE,EAAG3gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,iBACxBikE,EAAGpgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,GAAK,cAC7BikE,EAAGzgE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAE,IAAM,iBACzBikE,EAAGp+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAK,eACzBikE,EAAG3gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,GAAK,cAG7BmkE,EAAG3gE,IAFHygE,EAAGpgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,gBAEfsD,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,aACzBmkE,EAAGt+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,kBACxBmkE,EAAG7gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,GAAK,cAC7BmkE,EAAGtgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,gBACxBmkE,EAAG3gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,iBACzBmkE,EAAGt+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,GAAK,cAC7BmkE,EAAG7gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,iBACxBmkE,EAAGtgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,kBACxBmkE,EAAG3gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAE,IAAM,EAAI,aAC7BmkE,EAAGt+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,iBACxBmkE,EAAG7gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,iBACxBmkE,EAAGtgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,GAAK,YAC7BmkE,EAAG3gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzBmkE,EAAGt+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAK,iBACxBmkE,EAAG7gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,GAAK,aAG7BqkE,EAAG7gE,IAFH2gE,EAAGtgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,eAEfsD,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzBqkE,EAAGx+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,GAAK,cAC7BqkE,EAAG/gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,kBACxBqkE,EAAGxgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,gBACxBqkE,EAAG7gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAE,IAAM,EAAI,cAC7BqkE,EAAGx+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAG,GAAI,kBACxBqkE,EAAG/gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAE,IAAK,eACxBqkE,EAAGxgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,kBACxBqkE,EAAG7gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,EAAI,cAC7BqkE,EAAGx+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAK,gBACxBqkE,EAAG/gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,kBACxBqkE,EAAGxgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAE,IAAK,GAAK,cAC7BqkE,EAAG7gE,EAAGK,EAAGP,EAAGuC,EAAG/B,EAAE9D,EAAG,GAAK,gBACzBqkE,EAAGx+D,EAAGrC,EAAGK,EAAGP,EAAGQ,EAAE9D,EAAE,IAAK,kBACxBqkE,EAAG/gE,EAAGuC,EAAGrC,EAAGK,EAAGC,EAAE9D,EAAG,GAAI,GAAK,aAC7BqkE,EAAGxgE,EAAGP,EAAGuC,EAAGrC,EAAGM,EAAE9D,EAAG,GAAI,iBAEvBwD,EAAI+gE,IAAQ,IACZ1gE,EAAI2gE,IAAQ,IACZlhE,EAAImhE,IAAQ,IACZ5+D,EAAI6+D,IAAQ,SAGZ/C,EAAMG,OAAO,CAACt+D,EAAGK,EAAGP,EAAGuC,OAI5Bm+D,IAAO,SAAUxgE,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASF,GAAKO,EAAIgC,QAAY,GAAKlF,YAC7B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCqgE,IAAO,SAAU1gE,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASqC,EAAIvC,GAAKuC,QAAY,GAAKlF,YAC7B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCugE,IAAO,SAAU5gE,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,KAASF,EAAIuC,QAAY,GAAKlF,YACxB4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAErCygE,IAAO,SAAU9gE,EAAGK,EAAGP,EAAGuC,EAAGE,EAAGxC,EAAG5C,OACjCL,EAAIkD,SAAeqC,SAAa,GAAKlF,YAC3B4C,EAAMjD,IAAO,GAAKiD,GAAOM,KAIrC8gE,WAAa,KACbC,YAAc,cAED,SAAUf,EAASzvD,MAC9ByvD,MAAAA,QACI,IAAIpJ,MAAM,oBAAsBoJ,OAEpCgB,EAAclD,EAAMQ,aAAayB,EAAIC,EAASzvD,WAC3CA,GAAWA,EAAQ0wD,QAAUD,EAChCzwD,GAAWA,EAAQ2wD,SAAW/B,EAAIG,cAAc0B,GAChDlD,EAAMS,WAAWyC,IA5JxB,OCAmG1kE,GAAYQ,kBAAAA,GAAwFR,QAAM,KAAzF6kE,GAAG,KAAKrkE,GAAEskE,KAAK,OAAOtkE,GAAEukE,MAAM,QAAQvkE,GAAEwkE,KAAK,OAAOxkE,GAAEykE,MAAM,QAAQzkE,GAAE0kE,KAAK,OAAmB,MAAMnlE,GAAE,EAAEC,GAAE6kE,IAAI,CAAC,EAAE,EAAE,IAAI7kE,GAAE8kE,MAAM,CAAC,KAAK,IAAI9kE,GAAE+kE,OAAO,CAAC,EAAE,OAAO/kE,GAAEglE,MAAM,CAAC,EAAE,EAAE,IAAIhlE,GAAEilE,OAAO,CAAC,EAAE,EAAE,IAAIjlE,GAAEklE,MAAM,IAAI,EAAE,IAAO,IAACp8D,GAAivMzG,GAAE4B,GAAEY,GAAEsgE,GAAEC,GAA4kkBC,GActuuBC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAd4nJ,YAAW1lE,EAAE0C,EAAErD,OAAOW,EAAE0C,SAAS,IAAIo3D,MAAM,WAAWp3D,YAAY1C,EAAE0C,GAAGhC,OAAOrB,QAAQ,IAAIy6D,MAAM,YAAYp3D,mBAAmBrD,gBAAgBW,EAAE0C,GAAGhC,eAAeV,EAAE0C,GAAGkB,OAAp6L,SAAS5D,KAAK2lE,IAAI,CAAC3lE,EAAEqkE,GAAGrkE,EAAEskE,KAAKtkE,EAAEukE,MAAMvkE,EAAEwkE,KAAKxkE,EAAEykE,MAAMzkE,EAAE0kE,MAAM1kE,EAAE4lE,OAAO,SAAS71D,UAAUxQ,GAAEwQ,IAA5F,CAAiGvQ,QAAM,KAAK,SAASQ,KAAK4N,OAAO,SAASmC,EAAErN,EAAErD,SAAS,CAAC0Q,EAAErN,EAAErD,IAAIW,EAAEsR,OAAO,SAASvB,EAAErN,EAAErD,EAAEuD,SAAS,CAACmN,EAAE,GAAGrN,EAAEqN,EAAE,GAAG1Q,EAAE0Q,EAAE,GAAGnN,IAAI5C,EAAE6lE,QAAQ,SAASnjE,EAAErD,UAAUW,EAAEsR,OAAO5O,KAAKlD,GAAEomE,OAAOvmE,KAAnK,CAAyKiJ,QAAM,KAA89L,SAAStI,cAAc+P,SAAS,iBAAiBA,GAAG,OAAAA,EAASA,OAAE,IAAS+1D,WAAW,SAAS/1D,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ/P,EAAE+lE,QAAQ,SAASh2D,SAAS,iBAAiBA,EAAE5F,KAAK2zB,MAAM/tB,QAAG,GAAQ/P,EAAEgmE,WAAW,SAASj2D,SAAS,iBAAiBA,EAAEA,OAAE,GAAQ/P,EAAEimE,YAAY,SAASl2D,SAAS,kBAAkBA,EAAEA,OAAE,GAAQ/P,EAAEkmE,WAAWxjE,EAAE1C,EAAEmmE,UAAU,SAASp2D,EAAEq2D,MAAM7iE,MAAMC,QAAQuM,UAAUA,EAAEpF,QAAQy7D,EAAEC,MAAMrmE,EAAEsmE,QAAQ,SAASv2D,EAAE1Q,OAAOuD,QAAQjD,EAAE,UAAU+C,EAAEqN,UAAK,IAASnN,EAAEA,EAAE,UAAU+K,OAAO44D,YAAY54D,OAAOkI,QAAQlW,GAAGgL,KAAK,EAAE07D,EAAED,KAAK,CAACC,EAAEhnE,EAAE+mE,QAAQpmE,EAAEwmE,QAAQ,SAASz2D,EAAEq2D,EAAE/mE,SAASuD,EAAEwjE,EAAEr2D,UAAUnN,EAAEvD,EAAEuD,QAAG,GAA1lB,CAAmmBf,QAAM,KAAK,SAAQ0O,YAAYvQ,EAAE0C,EAAE,SAAS4E,KAAKtH,EAAEwB,KAAKuf,WAAWre,EAAE6N,iBAAiB/O,KAAK8F,KAAKiJ,uBAAuB/O,KAAKuf,WAAWxQ,YAAYvQ,UAAUwB,KAAKuf,WAAW/gB,GAAGuQ,gBAAgB,oBAAA/O,KAAyB8F,MAAM,mBAAmB9F,KAAK8F,KAAKiJ,OAAOvQ,UAAUwB,KAAK8F,OAAOtH,EAAEsH,MAAMqG,OAAOyL,KAAK5X,KAAKuf,YAAY1P,UAAUrR,EAAE+gB,WAAWre,KAAKlB,KAAKuf,WAAWre,KAAK6N,kBAAkB,IAAI5C,OAAOyL,KAAK5X,KAAKuf,YAAY1gB,OAAOmB,KAAK8F,KAAK,GAAG9F,KAAK8F,QAAQqG,OAAOkI,QAAQrU,KAAKuf,YAAYpW,KAAK,EAAE3K,EAAE0C,KAAK1C,EAAE,IAAI0C,IAAIsH,KAAK,uBAAuBhK,SAAS0C,EAAEgF,GAAE1H,EAAE4D,MAAM,OAAO,UAAUvE,EAAjuC,SAAWW,EAAE0C,cAAc1C,UAAU+P,UAAUrN,GAAorC+jE,EAAG,IAAI/+D,GAAE1H,EAAE4D,MAAM,aAAa,aAAa,IAAIhB,EAAE+K,OAAOyL,KAAK/Z,GAAGgR,QAAQ,CAACN,EAAEq2D,IAAIz4D,OAAO4B,OAAO5B,OAAO4B,OAAO,GAAGQ,GAAG,EAAEq2D,GAAG1+D,GAAErI,EAAE+mE,EAAE,aAAa,WAAW,IAAIziE,GAAEjB,EAAEE,mBAAmB5C,OAAO0C,EAAErD,QAAQuD,EAAE,UAAUf,GAAEqkE,WAAWlmE,UAAK,IAAS0C,EAAEA,EAAE,GAAG/C,EAAE,UAAUkC,GAAEmkE,WAAWpjE,EAAEud,aAAQ,IAAS9gB,EAAEA,EAAE,kBAAkBa,EAAE2B,GAAEykE,QAAQ1jE,EAAEwd,oBAAoBgmD,SAAS,UAAUvkE,GAAEmkE,WAAWj2D,UAAK,IAASq2D,EAAEA,EAAE,aAAa,IAAIziE,GAAEhE,EAAEO,IAAIyD,GAAE+iE,IAAI,IAAI/iE,GAAE,iBAAiB,SAAQ4M,YAAYvQ,QAAQ2mE,KAAK3mE,EAAEwB,KAAK+0B,QAAQhzB,MAAMd,GAAEmkE,MAAMplE,KAAKqlE,QAAQ,CAACljE,GAAE+iE,4BAA4BllE,KAAKmlE,MAAM,EAAEp2D,MAAMvQ,EAAE0C,EAAErD,aAAa,OAAO,GAAGA,EAAEkR,cAAcvQ,EAAE0C,EAAErD,OAAOuD,QAAQjD,EAAE6B,KAAK+0B,QAAQ/0B,KAAKsJ,MAAM9K,EAAE0C,EAAErD,WAAW,UAAUmC,KAAKqlE,QAAQlnE,UAAK,IAAAiD,EAAWA,EAAEe,GAAE+iE,IAAIn2D,cAAcvQ,EAAE0C,EAAErD,EAAEuD,OAAOjD,EAAE6B,KAAKqlE,QAAQC,cAAc/2D,EAAEoC,OAAOvP,UAAUjD,MAAM6B,KAAKqlE,QAAQxmE,OAAOmB,KAAKqlE,QAAQvmE,KAAKsC,IAAIpB,KAAK+0B,QAAQ/0B,KAAKsJ,MAAM9K,EAAE0C,EAAErD,IAAIM,GAAG8C,GAAEskE,MAAM,GAAGtkE,GAAEmkE,KAAKnkE,GAAEskE,MAAMtkE,GAAEskE,MAAMtkE,GAAEskE,MAAM,SAAQx2D,YAAYvQ,EAAE0C,EAAErD,QAAQsnE,KAAK3mE,EAAEwB,KAAKu4B,OAAOr3B,EAAElB,KAAKwrD,IAAI3tD,EAAEmC,KAAKwlE,SAASzjE,MAAM/B,KAAKylE,eAAe3K,KAAK,wBAAwB96D,KAAKmlE,KAAKnlE,KAAKu4B,+BAA+Bv4B,KAAKmlE,MAAM,0BAA0B,QAAQO,KAAK,GAAG,8BAA8B1lE,KAAK2lE,WAAW3lE,KAAK4lE,WAAW72D,gBAAgBvQ,aAAa,GAAGwB,KAAK4lE,WAAW72D,cAAcvQ,OAAO0C,QAAQrD,EAAEuD,EAAEjD,GAAGK,EAAEE,EAAEsB,KAAKwlE,SAASxlE,KAAK6lE,gBAAgBzkE,WAAW,UAAU,MAAM1C,OAAE,EAAOA,EAAEonE,cAAc,GAAGjoE,EAAE,GAAGuD,EAAE,GAAGjD,UAAK,IAAA+C,EAAWA,EAAEiB,GAAE+iE,IAAIn2D,cAAcvQ,EAAE0C,SAASrD,EAAEuD,EAAEjD,GAAGK,EAAEE,EAAEsB,KAAK6lE,gBAAgBzkE,OAAO3C,EAAEuB,KAAKwlE,SAAS9mE,MAAM,OAAOD,EAAE,IAAIyC,EAAEyP,OAAOxO,GAAE+iE,cAAcllE,KAAK+lE,mBAAmBrnE,KAAKsnE,cAAc,GAAGnoE,EAAE,GAAGuD,EAAE,GAAGjD,EAAE+C,GAAG6N,mBAAmBvQ,UAAU,MAAAwB,KAAWwlE,SAAShnE,UAAUgnE,SAAShnE,GAAG,IAAIyC,GAAEjB,KAAK4lE,WAAWpnE,IAAIwB,KAAKwlE,SAAShnE,IAA80D,YAAWA,OAAO0C,EAAE,WAAW,KAAK,MAAMA,MAAM1C,KAAK0C,GAAG,YAAW1C,EAAE0C,EAAErD,SAASuD,EAAE5C,EAAE0R,IAAIhP,MAAME,SAASA,QAAQjD,EAAEN,EAAEqD,UAAU1C,EAAE2R,IAAIjP,EAAE/C,GAAGA,EAAE,YAAWK,UAAUA,EAAEA,EAAE,YAAWA,EAAE0C,EAAErD,UAAU8K,KAAKD,IAAIxH,EAAEyH,KAAKkN,IAAIhY,EAAEW,IAAI,YAAWA,EAAE0C,EAAErD,UAAUqD,EAAE1C,KAAK0C,GAAG,YAAW1C,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,UAAUunE,GAAE/kE,EAAE+kE,GAAEznE,EAAEX,EAAEuD,GAAG6kE,GAAEznE,EAAEL,EAAEO,IAAgF,YAAWF,EAAE0C,EAAErD,UAAUA,EAAE,EAAEW,EAAEX,EAAE,EAAEqD,EAAE+kE,GAAEpoE,EAAEW,EAAE0C,GAAG,YAAW1C,EAAE0C,EAAErD,YAAYqD,MAAMA,GAAG,YAAW1C,UAAUA,EAAEA,EAAEA,QAAQA,EAAE,IAAI,IAAI,YAAWA,EAAE0C,EAAErD,EAAEuD,EAAEjD,UAAU8nE,GAAEC,GAAE1nE,EAAE0C,EAAErD,GAAGuD,EAAEjD,GAAsJ,YAAWK,EAAE0C,EAAErD,OAAOuD,EAAE+kE,OAAO,QAAQ3nE,GAAG2nE,OAAOtoE,GAAGsoE,OAAO,WAAWA,OAAOjlE,UAAUE,EAAEA,EAAEA,EAAE+kE,OAAO,UAAU/kE,EAAE+kE,OAAO,IAAI/kE,GAAG+kE,OAAO,IAAI,YAAW3nE,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,UAAU8kE,OAAO3nE,IAAI2nE,OAAO,IAAIA,OAAOjlE,IAAIilE,OAAO,IAAIA,OAAOtoE,IAAIsoE,OAAO,IAAIA,OAAO/kE,IAAI+kE,OAAO,IAAIA,OAAOhoE,IAAIgoE,OAAO,IAAIA,OAAOznE,IAAIynE,OAAO,IAAIA,OAAO1nE,IAAI0nE,OAAO,GAAGA,OAAO9kE,IAA70F,SAAS7C,cAAc+P,EAAEq2D,UAAUuB,OAAO,WAAW53D,GAAG43D,OAAO,WAAWvB,IAAIuB,OAAO,MAAM/5D,OAAO,SAASmC,EAAEq2D,SAAS,CAACr2D,EAAEq2D,IAAIpmE,EAAE4nE,aAAa,SAAS73D,SAAS,CAACA,EAAE,IAAI,EAAEA,EAAE,IAAI,IAAI/P,EAAE6nE,SAAS,SAAS93D,SAAS,CAAC,WAAW6J,OAAO7J,GAAG6J,OAAO7J,GAAG43D,OAAO,OAAO3nE,EAAE8nE,OAAO,SAAS/3D,UAAUrN,EAAEqN,EAAE,GAAGA,EAAE,KAAK/P,EAAE+nE,OAAOrlE,EAAE1C,EAAEgoE,UAAU,SAASj4D,UAAUA,EAAE,IAAI,GAAG/P,EAAEioE,UAAU,SAASl4D,UAAUA,EAAE,IAAI,GAAG/P,EAAEkoE,UAAU,SAASn4D,UAAU,MAAM,IAAI,IAAI/P,EAAEmoE,UAAU,SAASp4D,UAAU,MAAM,IAAI,IAAvd,CAA4dtM,QAAM,KAA82E,SAAQ8M,YAAYvQ,QAAQoyB,KAAKu1C,OAAO,GAAGnmE,KAAK4mE,QAAQpoE,GAAGuQ,cAAc,IAAI83D,GAAE7mE,KAAK8mE,YAAY/3D,wBAAwB,IAAI3L,GAAEpD,KAAK4wB,MAAM7hB,QAAQvQ,QAAQoyB,KAAKpyB,EAAEqoE,GAAEE,WAAWF,GAAEG,aAAaj4D,eAAe6hB,KAAK5wB,KAAK4wB,KAAKi2C,GAAEE,WAAWF,GAAEI,UAAUJ,GAAEG,aAAaj4D,QAAQvQ,WAAW0C,EAAE,EAAEA,EAAE1C,EAAE0C,GAAG,OAAOgmE,UAAUn4D,KAAKvQ,QAAQ0oE,gBAAgBhmE,EAAEkX,OAAOpY,KAAK4wB,MAAMu1C,OAAOU,GAAEM,aAAa3oE,WAAW0C,EAAE,WAAWA,EAAE,WAAWA,EAAE6N,QAAQvQ,WAAM,IAAAA,SAAkBwB,KAAK+8D,KAAK,OAAO,MAAMv+D,EAAE,UAAU4Z,OAAO+tD,OAAO3nE,GAAG2nE,OAAOnmE,KAAK+8D,KAAK,MAAMoJ,OAAO,SAASjlE,EAAErD,UAAUmC,KAAK+8D,KAAK,QAAQ77D,EAAE1C,MAAM,GAAG,WAAWX,EAAEkR,yBAAyB/O,KAAK+8D,KAAK,MAAMoJ,OAAO,KAAKA,OAAOnmE,KAAK+8D,KAAK,KAAKhuD,mBAAmB/O,KAAK+8D,KAAK,IAAI8J,GAAEO,iBAAiBr4D,mBAAmBvQ,EAAEwB,KAAK+8D,KAAK,WAAW/8D,KAAKknE,UAAU1oE,EAAEqoE,GAAEQ,mBAAmBR,GAAEM,aAAa,GAAGN,GAAEG,aAAab,OAAO,mBAAmBU,GAAEE,WAAWZ,OAAO,eAAeU,GAAEI,UAAUd,OAAO,MAAMU,GAAEO,iBAAiB,EAAEz+D,KAAK83D,IAAI,EAAE,IAAIoG,GAAEQ,kBAAkB,EAAE1+D,KAAK83D,IAAI,EAAE,IAAI,SAAQ1xD,YAAYvQ,QAAQoyB,KAAKpyB,EAAEuQ,GAAGvQ,EAAE0C,EAAErD,SAASuD,EAAEkmE,GAAE9oE,EAAE0C,EAAErD,UAAU,IAAIgpE,GAAEzlE,EAAEpB,KAAK4wB,MAAM7hB,WAAWvQ,SAASX,EAAEK,GAAEM,EAAE,CAACmkE,SAAQ,IAAKvhE,EAAEmmE,GAAE1pE,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,WAAW,IAAIgpE,GAAEzlE,EAAEpB,KAAK4wB,OAAO,SAAQ7hB,YAAYvQ,QAAQoyB,KAAK,CAACu1C,OAAO,GAAGA,OAAO,IAAInmE,KAAK4wB,KAAKpyB,gBAAgBA,UAAU,IAAIgpE,GAAEA,GAAEC,oBAAoBjpE,yBAAyBA,oBAAoBA,GAAG2nE,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuB3nE,GAAG2nE,OAAO,KAAKA,OAAO,wBAAwBA,OAAO,uBAAuB3nE,GAAG2nE,OAAO,KAAKA,OAAO,iDAAiD3nE,KAAK,OAAO2nE,OAAO,8BAA8BjlE,EAAE1C,EAAEgpE,GAAEE,gBAAgB7pE,EAAEqD,EAAEsmE,GAAEG,gBAAgBxB,OAAO,4BAA4B,CAACqB,GAAEI,cAAc1mE,GAAGsmE,GAAEI,cAAc/pE,sBAAsBW,EAAE0C,UAAU1C,GAAG0C,EAAEilE,OAAO,sBAAsB3nE,GAAG2nE,OAAO,IAAIjlE,EAAE6N,QAAQvQ,QAAQoyB,KAAK42C,GAAEC,oBAAoBjpE,GAAGuQ,cAAc,IAAIy4D,GAAE,CAACxnE,KAAK+8D,OAAO/8D,KAAK+8D,SAAShuD,wBAAwB,IAAI84D,GAAE7nE,KAAK+8D,OAAO/8D,KAAK+8D,QAAQhuD,aAAavQ,EAAEwB,KAAK4wB,KAAK,OAAO1vB,EAAElB,KAAK4wB,KAAK,SAAS/yB,EAAE2pE,GAAEM,WAAWtpE,EAAE0C,EAAEilE,OAAO,sBAAsBA,OAAO,KAAK3nE,EAAE2nE,OAAO,6BAA6BjlE,GAAG1C,EAAEwB,KAAK4wB,KAAK,CAAC42C,GAAEM,WAAWtpE,EAAE2nE,OAAO,KAAKjlE,EAAEA,GAAGilE,OAAO,IAAIA,OAAO,sBAAsBqB,GAAEM,WAAW5mE,EAAEilE,OAAO,MAAMtoE,EAAEkR,eAAevQ,EAAEwB,KAAK+8D,cAAcv+D,EAAE2nE,OAAO,2BAA2BA,OAAO,wBAAwB3nE,EAAEuQ,QAAQvQ,OAAO0C,EAAElB,KAAK4wB,KAAK,GAAG/yB,EAAEmC,KAAK4wB,KAAK,WAAWxvB,EAAE,EAAEA,EAAE5C,EAAE4C,GAAG,KAAKF,EAAEA,EAAEsmE,GAAEM,WAAW5mE,EAAEilE,OAAO,KAAKtoE,EAAEA,GAAGsoE,OAAO,IAAItoE,EAAE2pE,GAAEM,WAAWjqE,EAAEsoE,OAAO,UAAUv1C,KAAK,CAAC1vB,EAAErD,GAAGkR,SAASvQ,UAAUwB,KAAK+8D,QAAQoJ,OAAO,GAAG3nE,GAAGuQ,QAAQvQ,OAAO0C,EAAElB,KAAK+8D,OAAOoJ,OAAO,eAAe3nE,EAAE,OAAOX,EAAEsoE,OAAO3nE,OAAO4C,EAAEF,EAAErD,EAAEM,EAAEiD,EAAE+kE,OAAO,eAAehoE,EAAEN,EAAE,OAAO0Q,KAAK1Q,EAAEsoE,OAAO,aAAaA,OAAO,IAAItoE,OAAOM,EAAEoQ,KAAKvO,KAAK+8D,OAAOoJ,OAAO,YAAY/kE,EAAEF,EAAErD,EAAEM,EAAEiD,EAAE+kE,OAAO,kBAAkBznE,EAAE0C,GAAG+kE,OAAO,WAAW/tD,OAAO1Z,QAAQ6P,EAAE6J,OAAOlX,UAAUqN,GAAG,gBAAgB,YAAYA,GAAGQ,mBAAmBqJ,OAAOpY,KAAK+nE,SAAS,KAAKP,GAAEJ,iBAAiBr4D,oBAAoBqJ,OAAOpY,KAAK+nE,SAAS,KAAKP,GAAEH,kBAAkBt4D,2BAA2B,WAAW/O,KAAK4wB,KAAK,GAAG,aAAa5wB,KAAK4wB,KAAK,IAAI42C,GAAEE,gBAAgBvB,OAAO,uBAAuBqB,GAAEG,gBAAgBxB,OAAO,wBAAwBqB,GAAEJ,iBAAiB,EAAEz+D,KAAK83D,IAAI,EAAE,IAAI+G,GAAEH,kBAAkB,sBAAsB,SAAQt4D,YAAYvQ,EAAE0C,QAAQ8mE,OAAOxpE,EAAEwB,KAAKioE,OAAO/mE,EAAE6N,GAAGvQ,EAAE0C,EAAErD,SAASuD,EAAEkmE,GAAE9oE,EAAE0C,EAAErD,GAAGmC,KAAKgoE,cAAc,IAAIR,GAAE,CAACpmE,EAAEpB,KAAKioE,SAASl5D,WAAWvQ,SAASX,EAAEK,GAAEM,EAAE,CAACmkE,SAAQ,IAAKvhE,EAAEmmE,GAAE1pE,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIM,EAAEopE,GAAE1pE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAIA,EAAE,YAAY,IAAI2pE,GAAE,CAACpmE,EAAEpB,KAAKgoE,OAAO7pE,EAAE6B,KAAKioE,UAAU,SAASl5D,YAAYvQ,QAAQ0pE,GAAG,IAAI1pE,EAAE2pE,aAAanoE,KAAKooE,GAAG,IAAI5pE,EAAE2pE,aAAanoE,KAAKqoE,GAAG,IAAI7pE,EAAE2pE,aAAanoE,KAAKiE,EAAElC,MAAM,aAAawM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOtK,EAAEsK,GAAGA,UAAUrN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOrD,EAAEW,EAAE8pE,QAAQ,IAAIpnE,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAErD,GAAGmC,KAAKiE,EAAE/C,EAAErD,GAAGuD,GAAG2N,SAASvQ,EAAE0C,OAAOrD,EAAEuD,EAAEjD,QAAQO,KAAKwC,GAAGqnE,GAAGC,GAAG/pE,EAAEkK,KAAK2zB,MAAM99B,EAAEE,GAAG2C,EAAE7C,cAAcmK,KAAK2zB,MAAMp7B,EAAExC,KAAK6pE,GAAGE,SAASrqE,EAAEkD,OAAOJ,KAAKrD,OAAO,EAAEyD,EAAE,MAAM,EAAEA,EAAE,SAASjD,EAAEgD,EAAEjD,EAAEmqE,GAAGE,GAAGtnE,EAAEhD,EAAEmD,EAAEinE,GAAGE,GAAG/kE,EAAErC,EAAE,EAAE,EAAEknE,GAAGE,GAAG7pE,EAAET,EAAE,EAAE,EAAEoqE,GAAGE,GAAG9kE,EAAE,IAAIlF,EAAE8C,EAAE,IAAIH,EAAEO,EAAE3B,KAAK6C,EAAEc,EAAE3D,KAAK6C,EAAEtB,IAAI,GAAGkC,EAAEzD,KAAK6C,EAAEc,EAAEvF,EAAE4B,KAAK6C,EAAEtB,EAAED,IAAI,GAAGI,EAAE1B,KAAK6C,EAAEc,EAAE,EAAE3D,KAAK6C,EAAEtB,EAAE,IAAI,UAAU,SAASmnE,iBAAiB/mE,EAAEN,EAAElD,EAAE,EAAE,IAAI6B,KAAK0oE,iBAAiBjlE,EAAEpF,EAAE8C,EAAE,EAAE,IAAInB,KAAK0oE,iBAAiBhnE,EAAEgC,EAAE9E,EAAE,EAAE,KAAKmQ,OAAOvQ,EAAE0C,EAAErD,SAASuD,EAAE,qBAAqBF,EAAErD,GAAGM,EAAEwK,KAAK2zB,MAAM99B,EAAE4C,GAAG1C,EAAEiK,KAAK2zB,MAAMp7B,EAAEE,GAAG3C,EAAEkK,KAAK2zB,MAAMz+B,EAAEuD,GAAGC,EAAE,sBAAsB3C,EAAED,GAAGL,EAAEI,KAAK6C,GAAGC,EAAEJ,KAAKG,GAAGhD,EAAER,KAAKwD,OAAOF,EAAEuC,EAAE9E,EAAE+E,EAAEpC,EAAEI,KAAKL,EAAEA,GAAGjD,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGvD,GAAGC,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGL,EAAEjD,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,GAAGvD,EAAEC,KAAK,EAAEqF,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,MAAM,EAAE+B,EAAE,EAAE9E,EAAE,EAAE+E,EAAE,EAAEpC,EAAE,EAAEI,EAAE,SAAS8B,EAAErF,EAAE+C,EAAE,mBAAmBO,EAAEJ,EAAEoC,EAAE,mBAAmBilE,EAAEtqE,EAAEO,EAAE,mBAAmBgqE,EAAExqE,EAAEuF,EAAE,kBAAkBklE,EAAEvnE,EAAEC,EAAE,kBAAkBK,EAAEvD,EAAEsD,EAAE,kBAAkBE,EAAEzD,EAAE,GAAG0qE,EAAExnE,EAAE,GAAGknE,EAAEnqE,EAAE,GAAGmD,EAAE,IAAIrD,EAAE8G,EAAE,IAAIvG,EAAEoD,EAAE,IAAIrD,EAAEsqE,EAAE/oE,KAAK6C,EAAErB,EAAExB,KAAK6C,EAAEoC,EAAEjF,KAAK6C,EAAEf,KAAK,GAAGknE,EAAEhpE,KAAK6C,EAAErB,EAAEL,EAAEnB,KAAK6C,EAAEoC,EAAEvB,EAAE1D,KAAK6C,EAAEf,EAAElD,KAAK,GAAGgF,EAAE5D,KAAK6C,EAAErB,EAAEmC,EAAE3D,KAAK6C,EAAEoC,EAAE1D,EAAEvB,KAAK6C,EAAEf,EAAEH,KAAK,GAAGsnE,EAAEjpE,KAAK6C,EAAErB,EAAE,EAAExB,KAAK6C,EAAEoC,EAAE,EAAEjF,KAAK6C,EAAEf,EAAE,KAAK,UAAU,SAAS4mE,iBAAiBK,EAAE3qE,EAAEkD,EAAEjD,EAAE,IAAI2B,KAAK0oE,iBAAiBM,EAAEvlE,EAAE/B,EAAEinE,EAAE,IAAI3oE,KAAK0oE,iBAAiB9kE,EAAEglE,EAAEC,EAAEjnE,EAAE,IAAI5B,KAAK0oE,iBAAiBO,EAAEpnE,EAAEinE,EAAEN,EAAE,KAAKz5D,EAAEvQ,UAAUwB,KAAKiE,EAAE,IAAIzF,GAAGuQ,iBAAiBvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,OAAOO,EAAED,EAAEN,EAAE+C,EAAEA,EAAErD,EAAEA,EAAEuD,EAAEA,SAAS3C,EAAE,EAAEC,EAAE,MAAMD,EAAEC,EAAED,EAAEA,EAAE8pE,GAAGW,QAAQ1qE,EAAE0C,EAAErD,EAAEuD,IAAI1C,iBAAiBF,EAAE0C,EAAErD,EAAEuD,SAASjD,EAAEoqE,GAAGY,SAAS,GAAG3qE,UAAUL,EAAE,GAAG+C,EAAE/C,EAAE,GAAGN,EAAEM,EAAE,GAAGiD,GAAGmnE,GAAGY,SAAS,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,UAAUZ,GAAGC,GAAG,SAASY,KAAK,GAAG,GAAGb,GAAGE,MAAM9/D,KAAKygE,KAAK,IAAI,EAAE,SAASr6D,YAAYvQ,QAAQ0pE,GAAG,IAAI1pE,EAAE2pE,aAAanoE,KAAKooE,GAAG,IAAI5pE,EAAE2pE,aAAanoE,KAAKqoE,GAAG,IAAI7pE,EAAE2pE,aAAanoE,KAAKiE,EAAElC,MAAM,aAAawM,EAAE,EAAEA,EAAE,IAAIA,GAAG,OAAOtK,EAAEsK,GAAGA,EAAE,IAAIA,EAAE,IAAIA,UAAUrN,EAAE,EAAEA,EAAE,IAAIA,GAAG,EAAE,OAAOrD,EAAEW,EAAE8pE,QAAQ,IAAIpnE,GAAGE,EAAEpB,KAAKiE,EAAE/C,QAAQ+C,EAAE/C,GAAGlB,KAAKiE,EAAE/C,EAAErD,GAAGmC,KAAKiE,EAAE/C,EAAErD,GAAGuD,GAAG2N,OAAOvQ,EAAE0C,EAAErD,EAAEuD,EAAE,EAAEjD,EAAE,SAASO,EAAEF,EAAEwB,KAAKkoE,GAAGzpE,EAAEyC,EAAElB,KAAKooE,GAAG/mE,EAAExD,EAAEmC,KAAKqoE,GAAGjqE,EAAEuK,KAAK2zB,MAAM59B,GAAG4C,EAAEqH,KAAK2zB,MAAM79B,GAAGJ,EAAEsK,KAAK2zB,MAAMj7B,GAAGF,EAAEzC,EAAEN,EAAEsF,EAAEjF,EAAE6C,EAAE1C,EAAEyC,EAAEhD,MAAMsF,EAAE,KAAK,IAAIvC,EAAE,OAAOmN,EAAEpQ,GAAG,GAAGA,EAAEuF,EAAEvF,EAAEuF,IAAIiF,KAAK2zB,MAAM/tB,EAAEnN,EAAE,MAAMA,SAASpB,KAAKqpE,cAAcjrE,EAAEkD,EAAEjD,EAAE8C,EAAEuC,EAAEC,EAAE/E,EAAE8E,GAAGqL,cAAcvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,SAAS4C,EAAErB,KAAK6C,EAAErE,GAAGJ,EAAE4B,KAAK6C,EAAErE,EAAE,GAAG8C,EAAEtB,KAAK6C,EAAExB,EAAEH,GAAG7C,EAAE2B,KAAK6C,EAAExB,EAAEH,EAAE,GAAGC,EAAEnB,KAAK6C,EAAEzE,EAAE8C,GAAGwC,EAAE1D,KAAK6C,EAAEzE,EAAE8C,EAAE,GAAGtC,EAAE2pE,GAAGW,QAAQlpE,KAAK6C,EAAEvB,EAAEzD,GAAGuD,EAAEjD,EAAEO,GAAGiF,EAAE4kE,GAAGW,QAAQlpE,KAAK6C,EAAE1B,EAAEtD,GAAGuD,EAAE,EAAEjD,EAAEO,GAAG6C,EAAEgnE,GAAGW,QAAQlpE,KAAK6C,EAAExE,EAAER,GAAGuD,EAAEjD,EAAE,EAAEO,GAAGiD,EAAE4mE,GAAGW,QAAQlpE,KAAK6C,EAAEa,EAAE7F,GAAGuD,EAAE,EAAEjD,EAAE,EAAEO,GAAG+E,EAAE8kE,GAAGW,QAAQlpE,KAAK6C,EAAEvB,EAAEzD,EAAE,GAAGuD,EAAEjD,EAAEO,EAAE,GAAGgD,EAAE6mE,GAAGW,QAAQlpE,KAAK6C,EAAE1B,EAAEtD,EAAE,GAAGuD,EAAE,EAAEjD,EAAEO,EAAE,GAAGiqE,EAAEJ,GAAGW,QAAQlpE,KAAK6C,EAAExE,EAAER,EAAE,GAAGuD,EAAEjD,EAAE,EAAEO,EAAE,GAAGkqE,EAAEL,GAAGW,QAAQlpE,KAAK6C,EAAEa,EAAE7F,EAAE,GAAGuD,EAAE,EAAEjD,EAAE,EAAEO,EAAE,UAAn/N,SAAWF,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,EAAEkD,EAAEjD,UAAU4nE,GAAEpoE,EAAEyrE,GAAE9qE,EAAE0C,EAAEE,EAAEjD,EAAEO,EAAED,GAAG6qE,GAAE9qE,EAAE0C,EAAEG,EAAEjD,EAAEkD,EAAEjD,IAAq7NkrE,CAAE3iE,GAAExF,GAAGwF,GAAEnI,GAAGmI,GAAElI,GAAGE,EAAE+E,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEinE,EAAEC,GAAG75D,EAAEvQ,UAAU,IAAIwB,KAAKiE,EAAE,IAAIzF,IAAI,SAASuQ,YAAYvQ,EAAE0C,EAAErD,MAAMW,aAAagpE,GAAE,OAAOpmE,EAAE5C,EAAEgrE,sBAAsBC,YAAY1nE,MAAMlE,EAAEgB,gBAAgB0P,EAAE,EAAEA,EAAE1Q,EAAEgB,OAAO0P,OAAO,IAAI1Q,EAAE0Q,GAAG,OAAOm7D,EAAExoE,EAAEqN,OAAOk7D,YAAYl7D,GAAG,IAAIo7D,GAAGvoE,EAAEwoE,WAAW,UAAUF,SAAS,IAAI,EAAExoE,EAAErD,EAAEgB,aAAa,IAAIy5D,MAAM,iEAAiEmR,YAAY1nE,MAAMlE,EAAEgB,gBAAgBuC,GAAGF,EAAEE,GAAG,EAAEA,GAAG,IAAIvD,EAAEgB,QAAQ,IAAAhB,EAAMuD,GAAGpB,KAAKypE,YAAYroE,GAAG,IAAIuoE,GAAGnrE,GAAGA,EAAEqrE,QAAQ,UAAUhtC,WAAWh/B,EAAEmC,KAAK8pE,sBAAsBnhE,KAAK83D,IAAI,EAAEv/D,GAAGlB,KAAK+pE,sBAAsBphE,KAAK83D,IAAI,EAAE5iE,EAAEgB,OAAO,SAAS4hE,IAAI,EAAE5iE,EAAEgB,QAAQ,GAAGkQ,OAAOvQ,EAAE0C,EAAErD,EAAEuD,EAAE,EAAEjD,EAAE,EAAEO,GAAE,OAAQD,EAAE,EAAE4C,EAAErB,KAAK8pE,sBAAsB1rE,EAAE4B,KAAK+pE,8BAA8BzoE,EAAE,EAAEA,EAAEtB,KAAKypE,YAAY5qE,OAAOyC,GAAG,EAAE,OAAOjD,EAAE2B,KAAKypE,YAAYnoE,UAAUtB,KAAK68B,WAAWv7B,GAAGlD,EAAEC,EAAE2rE,OAAOC,GAAGvZ,KAAKlyD,EAAE6C,GAAG3C,GAAGL,EAAE+pE,GAAG6B,GAAGvZ,KAAKxvD,EAAEG,GAAG4oE,GAAGvZ,KAAK7yD,EAAEwD,GAAGD,EAAEC,EAAElD,EAAEkD,IAAIA,GAAG,EAAEjD,GAAG,SAASK,EAAEsQ,eAAevQ,UAAUwB,KAAKypE,YAAYzpE,KAAKypE,YAAY5qE,OAAO,EAAEL,eAAeA,UAAUA,EAAE,SAASmK,KAAK2zB,MAAM99B,EAAE,SAAS,KAAK,SAASuQ,YAAYvQ,EAAE0C,EAAErD,EAAEuD,QAAQ8oE,UAAUrsE,EAAEmC,KAAKmqE,WAAW/oE,EAAEpB,KAAKoqE,cAAc,IAAIH,GAAGzrE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKqqE,cAAc,IAAIJ,GAAGzrE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKsqE,UAAU,IAAIL,GAAGzrE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIwB,KAAKuqE,QAAQ,QAAQrpE,EAAEqpE,QAAQvqE,KAAK0zC,OAAO,QAAQxyC,EAAEwyC,OAAO1zC,KAAKwqE,YAAYxqE,KAAKuqE,QAAQrpE,EAAEupE,SAASzqE,KAAK0qE,WAAW1qE,KAAK0zC,OAAOxyC,EAAEypE,QAAQ57D,OAAOvQ,EAAE0C,EAAErD,OAAOuD,IAAIuH,KAAK2zB,MAAM99B,EAAEwB,KAAKkqE,WAAWhpE,EAAEyH,KAAK2zB,MAAMp7B,EAAElB,KAAKmqE,YAAYtsE,EAAE8K,KAAK2zB,MAAMz+B,EAAEmC,KAAKkqE,eAAe/rE,EAAE,EAAEO,EAAE,UAAUksE,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,IAAIxpE,EAAEpB,KAAKsqE,UAAUO,eAAeD,GAAGxpE,EAAE,OAAO0pE,EAAE9qE,KAAKwqE,YAAY9rE,EAAEqsE,EAAE/qE,KAAK0qE,WAAWhsE,EAAEN,EAAE6rE,GAAGvZ,KAAKlyD,EAAEssE,GAAGxpE,EAAE2oE,GAAGvZ,KAAKxvD,EAAE6pE,GAAG1sE,EAAE4rE,GAAGvZ,KAAK7yD,EAAEitE,MAAM1pE,EAAE4oE,OAAO5rE,EAAEkD,EAAEjD,EAAE0sE,EAAE7pE,EAAE6pE,GAAGrsE,KAAK,OAAO,GAAG,GAAG,EAAEA,EAAE,MAAMD,EAAE,EAAE4C,EAAE,UAAUjD,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAOkD,EAAEtB,KAAKuqE,QAAQ7rE,EAAEL,EAAE2B,KAAK0zC,OAAOh1C,EAAEyC,EAAE8oE,GAAGvZ,KAAKlyD,EAAE8C,GAAGoC,EAAEumE,GAAGvZ,KAAKxvD,EAAE7C,GAAGO,EAAEqrE,GAAGvZ,KAAK7yD,EAAEyD,KAAK,MAAMtB,KAAKoqE,cAAcS,eAAezsE,SAASgD,EAAE4oE,OAAO7oE,EAAEuC,EAAE9E,EAAEP,EAAE6C,EAAE7C,GAAGK,GAAGP,EAAE,MAAM6B,KAAKqqE,cAAcQ,eAAezsE,SAASgD,EAAE4oE,OAAO7oE,EAAEuC,EAAE9E,EAAEP,EAAE6C,EAAE7C,GAAGK,GAAGA,GAAG,SAASyE,GAAE1E,EAAE,IAAI4C,EAAE,IAAIlD,GAAG,MAAuW0E,QAAM,KAAzVmoE,SAAS,SAASz8D,OAAOrN,EAAErD,EAAEuD,EAAEjD,EAAEO,QAAQD,EAAE,UAAU4B,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,SAAS,CAACqpE,QAAQ,UAAUlqE,GAAEikE,WAAW7lE,EAAEg6B,iBAAY,IAAA56B,EAAWA,EAAE,EAAE61C,OAAO,UAAUrzC,GAAEikE,WAAW7lE,EAAEi6B,gBAAW,IAASt3B,EAAEA,EAAE,EAAEqpE,SAAS,UAAUpqE,GAAEikE,WAAW7lE,EAAEk6B,kBAAa,IAAAx6B,EAAWA,EAAE,GAAGwsE,QAAQ,UAAUtqE,GAAEikE,WAAW7lE,EAAEm6B,iBAAY,IAASl6B,EAAEA,EAAE,KAAiB,SAASqQ,YAAYvQ,GAAGo+B,YAAY17B,EAAE27B,WAAWh/B,SAASotE,MAAM,IAAIhB,GAAGzrE,EAAE0C,EAAErD,GAAGmC,KAAKkrE,OAAO,IAAIjB,GAAGzrE,EAAE0C,EAAErD,OAAOuD,EAAE,EAAA,EAAIjD,GAAE,EAAA,UAAaoQ,EAAE,EAAEA,EAAE1Q,EAAEgB,OAAO0P,GAAG,EAAE,IAAI1Q,EAAE0Q,OAAO5F,KAAKkN,IAAIzU,EAAEmN,GAAGpQ,EAAEwK,KAAKD,IAAIvK,EAAEoQ,UAAU7P,EAAE,MAAM,KAAK0C,EAAE,SAAS+pE,YAAY,EAAE,EAAEzsE,EAAEqQ,OAAOvQ,EAAE0C,EAAErD,SAASuD,EAAE5C,EAAE4sE,GAAGC,aAAaltE,EAAE+C,EAAEkqE,GAAGC,aAAa3sE,EAAEb,EAAEutE,GAAGC,yBAAyBJ,MAAMjB,OAAOxrE,EAAE0C,EAAErD,GAAGmC,KAAKkrE,OAAOlB,OAAO5oE,EAAEjD,EAAEO,IAAIsB,KAAKmrE,aAAaC,GAAGC,aAAa,mBAAmB,SAAS7sE,KAAK4N,OAAO,SAASmC,EAAErN,SAAS,CAAC07B,YAAYruB,EAAEsuB,WAAW37B,IAAI1C,EAAEwsE,SAAS,SAASz8D,OAAOrN,EAAErD,EAAEuD,QAAQjD,EAAE,UAAUkC,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,SAAS,CAAC07B,YAAY,UAAUv8B,GAAEkkE,QAAQpmE,EAAEy+B,oBAAe,IAAS/+B,EAAEA,EAAE,EAAEg/B,WAAW,UAAUx8B,GAAEskE,UAAUxmE,EAAE0+B,oBAAoB+nC,SAAS,UAAUvkE,GAAEikE,WAAWO,UAAK,IAASD,EAAEA,EAAE,YAAO,IAASxjE,EAAEA,EAAE,KAAhW,CAAsW+hE,QAAM,KAA8mB,SAAS3kE,KAAKwsE,SAAS,SAAS9pE,EAAErD,OAAOuD,EAAEjD,EAAEO,EAAED,KAAK,iBAAiByC,SAAS,IAAIoqE,GAAGpqE,SAASG,EAAE,UAAUhB,GAAEqkE,WAAWxjE,UAAK,IAASE,EAAEA,EAAE,GAAGhD,EAAE,IAAImtE,GAAG1tE,EAAEwD,EAAEkgD,aAAajgD,EAAE,UAAUjB,GAAEskE,UAAUtjE,EAAEmgD,gBAAgBojB,SAAS,UAAUvkE,GAAEqkE,WAAWn2D,UAAK,IAASq2D,EAAEA,EAAE,aAAQ,IAASzmE,EAAEA,EAAE,MAAM,IAAImD,EAAEzC,cAAc,IAAIysE,GAAG,aAAa1G,KAAKtjE,EAAE,OAAOkqE,EAAE,UAAUnrE,GAAEikE,WAAWM,EAAE56D,iBAAY,IAAAtL,EAAWA,EAAE,EAAEgC,EAAElC,EAAEwsE,SAASpG,EAAExiE,MAAMvE,GAAGktE,EAAE,UAAU1qE,GAAEikE,WAAWM,EAAEnjB,mBAAc,IAAAhjD,EAAWA,EAAE,IAAIgtE,SAASD,EAAE9qE,EAAEqqE,UAAU3sE,GAAlf,CAAsfglE,QAAM,KAAK,SAASr0D,YAAYvQ,QAAQ4D,MAAM5D,EAAEuQ,eAAe/O,KAAKoC,MAAM2M,gBAAgB/O,KAAKoC,OAAO,SAAS2M,YAAYvQ,EAAE0C,EAAE,GAAGrD,EAAE,GAAGuD,EAAE,SAASmgD,WAAW/iD,EAAEwB,KAAK0rE,UAAUxqE,EAAElB,KAAKuY,OAAO1a,EAAEmC,KAAK2rE,YAAYvqE,EAAE2N,MAAMvQ,SAAS0C,EAAElB,KAAKuhD,WAAW71B,MAAMltB,GAAGX,EAA/sW,SAAWW,EAAE0C,EAAErD,OAAOuD,EAAEF,EAAE1C,OAAO4C,EAAE,GAAG,OAAOwjE,EAAEj8D,KAAK2zB,MAAMl7B,EAAE,GAAGjD,EAAEK,EAAEomE,IAAIzmE,GAAGiD,EAAEwjE,KAAKzmE,EAAE,EAAEiD,GAAGwjE,EAAE,UAAUpmE,EAA6mWotE,CAAE,EAAE5rE,KAAK0rE,UAAU7sE,WAAWqC,EAAElB,KAAK0rE,UAAUn9D,KAAK,EAAEnN,EAAEpB,KAAK0rE,UAAU7sE,OAAO,KAAKhB,EAAE,SAASmC,KAAKuY,OAAO,GAAGmT,MAAMltB,GAAGwB,KAAK2rE,YAAY,MAAM3rE,KAAK0rE,UAAU,OAAO7tE,IAAIuD,SAASpB,KAAKuY,OAAOnX,GAAGsqB,MAAMltB,GAAGwB,KAAK2rE,YAAYvqE,MAAMpB,KAAK0rE,UAAUtqE,UAAUjD,EAAE6B,KAAK0rE,UAAU7tE,GAAGa,EAAEsB,KAAK0rE,UAAU7tE,EAAE,GAAGY,EAAEuB,KAAK2rE,YAAY9tE,GAAGwD,EAAErB,KAAK2rE,YAAY9tE,EAAE,GAAGO,KAAKD,MAAMA,GAAGmD,EAAEtB,KAAKuY,OAAO1a,GAAG6tB,MAAMltB,GAAGH,EAAE2B,KAAKuY,OAAO1a,EAAE,GAAG6tB,MAAMltB,GAAG2C,EAAE1C,KAAKN,MAAMmD,GAAGoC,GAAGrC,KAAKlD,MAAMmD,UAAU2kE,GAAE7nE,EAAEkD,EAAEjD,GAAGD,KAAKA,GAAG6nE,GAAE7nE,EAAE+C,EAAEuC,GAAGqL,SAASvQ,EAAE0C,EAAErD,EAAE,UAAUmC,KAAK0rE,UAAU5sE,KAAKN,GAAGwB,KAAKuY,OAAOzZ,KAAK,iBAAiBoC,EAAE,IAAIoqE,GAAGpqE,GAAGA,GAAGlB,KAAK2rE,YAAY7sE,KAAKjB,GAAGmC,KAAK+O,eAAe,CAACwyC,WAAWvhD,KAAKuhD,WAAWsqB,SAASrqB,OAAOxhD,KAAK0rE,UAAUviE,KAAK,CAAC3K,EAAE0C,KAAK,CAAC8I,SAASxL,EAAE4D,MAAMpC,KAAKuY,OAAOrX,GAAG2qE,SAASpqB,WAAWzhD,KAAK2rE,YAAYzqE,UAA0hDmiE,QAAQ,KAA5VyI,OAAO,SAASv9D,EAAErN,EAAErD,OAAOkuE,GAAG3qE,EAAE4qE,KAAK7tE,EAAE8tE,MAAMvtE,EAAEwtE,KAAKztE,EAAE0tE,MAAM9qE,EAAE+qE,KAAKhuE,GAAGmQ,SAAS1Q,QAAQ,IAAIa,EAAED,EAAE4C,EAAEjD,GAAG,CAACK,EAAE4C,EAAEjD,EAAEM,cAAc,KAAKA,EAAED,EAAE4C,EAAEjD,GAAG,CAACiD,EAAEjD,EAAEM,EAAED,cAAc,KAAKC,EAAED,EAAE4C,EAAEjD,GAAG,CAACA,EAAEM,EAAED,EAAE4C,UAAUH,QAAQ,IAAIE,EAAE1C,EAAEP,EAAEkD,GAAG,CAAC3C,EAAEP,EAAEkD,EAAED,cAAc,KAAKA,EAAE1C,EAAEP,EAAEkD,GAAG,CAAClD,EAAEkD,EAAED,EAAE1C,cAAc,KAAK0C,EAAE1C,EAAEP,EAAEkD,GAAG,CAACA,EAAED,EAAE1C,EAAEP,SAAS,CAAC4tE,GAAG3qE,EAAE4qE,KAAK7tE,EAAE8tE,MAAMvtE,EAAEwtE,KAAKztE,EAAE0tE,MAAM9qE,EAAE+qE,KAAKhuE,IAct0vB,SAASI,cAAc+P,EAAEq2D,SAAS,iBAAiBr2D,EAAE,IAAI1Q,EAAE0Q,EAAE,MAAAq2D,EAAQA,EAAEr2D,GAAGA,IAAI3D,OAAO,SAAS2D,EAAEq2D,EAAE8E,EAAE8B,EAAEa,EAAEzB,UAAU,IAAIzsE,EAAEoQ,EAAEq2D,EAAE8E,EAAE8B,EAAEa,EAAEzB,IAAIpsE,EAAEswB,WAAW,SAASvgB,EAAEm7D,EAAEhpE,EAAE2rE,EAAEzB,EAAEG,EAAEvkE,UAAU,IAAIpF,EAAEF,EAAEqN,GAAGrN,EAAEwoE,GAAGxoE,EAAER,GAAGQ,EAAEmrE,GAAGnrE,EAAE0pE,GAAG1pE,EAAE6pE,GAAGvkE,IAAIhI,EAAEsK,MAAM5H,UAAU6N,YAAYR,EAAEq2D,QAAQ/uD,IAAItH,EAAEvO,KAAK0I,IAAIk8D,EAAE71D,SAASR,SAASq2D,GAAG,iBAAiBr2D,EAAEA,EAAEA,EAAEsH,KAAK7V,KAAK0I,IAAIghE,EAAE1pE,KAAK6V,KAAK,iBAAiBtH,EAAEA,EAAEA,EAAE7F,YAAYk8D,EAAE,EAAEA,EAAEj8D,KAAKD,IAAIghE,EAAE,GAAG36D,MAAMR,UAAU,IAAI1Q,EAAE8K,KAAKkN,IAAI7V,KAAK6V,IAAItH,EAAEsH,KAAKlN,KAAKD,IAAI1I,KAAK0I,IAAI6F,EAAE7F,sBAAsB6F,OAAOq2D,KAAK,iBAAiBr2D,SAAS,IAAI1Q,EAAE0Q,EAAEA,SAASi9D,EAAE9qE,GAAG,UAAUL,GAAEskE,UAAUp2D,MAAMlO,GAAEikE,WAAWO,YAAO,IAAAD,EAAWA,EAAE,UAAU,IAAI/mE,EAAE,MAAM2tE,EAAEA,EAAE,EAAE,MAAM9qE,EAAEA,EAAE,MAAM4rE,MAAMzuE,UAAUkR,YAAYR,EAAEq2D,EAAE8E,EAAE8B,EAAE9qE,EAAE2rE,EAAEzB,QAAQnuC,YAAYluB,EAAEvO,KAAK08B,SAASkoC,EAAE5kE,KAAKy9C,gBAAgBisB,EAAE1pE,KAAK09C,QAAQ8tB,EAAExrE,KAAKy9B,MAAM/8B,EAAEV,KAAK28B,UAAU0vC,EAAErsE,KAAK8P,OAAO86D,EAAE77D,SAASR,UAAUg+D,GAAEvsE,KAAKy8B,YAAY9Y,SAASpV,EAAEkuB,cAAc8vC,GAAEvsE,KAAK08B,SAAS/Y,SAASpV,EAAEmuB,WAAW6vC,GAAEvsE,KAAKy9C,gBAAgB95B,SAASpV,EAAEkvC,kBAAkB8uB,GAAEvsE,KAAK09C,QAAQ/5B,SAASpV,EAAEmvC,UAAU6uB,GAAEvsE,KAAKy9B,MAAM9Z,SAASpV,EAAEkvB,QAAQ8uC,GAAEvsE,KAAK28B,UAAUhZ,SAASpV,EAAEouB,YAAY4vC,GAAEvsE,KAAK8P,OAAOvB,EAAEuB,QAAQf,cAAc,CAAC/O,KAAKy8B,YAAYz8B,KAAK08B,SAAS18B,KAAKy9C,gBAAgBz9C,KAAK09C,QAAQ19C,KAAKy9B,MAAMz9B,KAAK28B,UAAU,IAAI9+B,EAAEmC,KAAK8P,OAAO9P,KAAK8P,yBAAyBvB,OAAOq2D,EAAElkE,QAAQ2rE,EAAE,UAAUhsE,GAAEqkE,WAAWn2D,UAAK,IAASq2D,EAAEA,EAAE,UAAU,IAAIxjE,EAAEvD,EAAEmtE,SAASqB,EAAE5vC,aAAa5+B,EAAEmtE,SAASqB,EAAE3vC,UAAU7+B,EAAEmtE,SAASqB,EAAE5uB,iBAAiB5/C,EAAEmtE,SAASqB,EAAE3uB,SAAS7/C,EAAEmtE,SAASqB,EAAE5uC,OAAO5/B,EAAEmtE,SAASqB,EAAE1vC,WAAW,UAAUt8B,GAAEkkE,QAAQ8H,EAAEv8D,eAAU,IAAApP,EAAWA,EAAE,MAAM8rE,WAAWprE,UAAU2N,YAAYR,EAAEq2D,EAAE8E,EAAE8B,EAAE9qE,EAAE2rE,QAAQ5vC,YAAYluB,EAAEvO,KAAK08B,SAASkoC,EAAE5kE,KAAKy9C,gBAAgBisB,EAAE1pE,KAAK09C,QAAQ8tB,EAAExrE,KAAKy9B,MAAM/8B,EAAEV,KAAK28B,UAAU0vC,sBAAsB,EAAEt9D,gBAAgB,CAAC/O,KAAKy8B,YAAYz8B,KAAK08B,SAAS18B,KAAKy9C,gBAAgBz9C,KAAK09C,QAAQ19C,KAAKy9B,MAAMz9B,KAAK28B,UAAU38B,KAAK8P,WAAW28D,YAAYtuE,IAAIuuE,WAAW,MAAM39D,YAAYR,QAAQo+D,OAAOp+D,EAAEvO,KAAKsJ,MAAM,IAAI5K,EAAE6P,GAAGQ,KAAKR,UAAUvO,KAAKsJ,MAAMa,OAAOoE,GAAG,CAACs2D,EAAED,IAAIC,EAAElhD,SAASihD,eAAe71D,YAAYR,QAAQ2sD,KAAKx8D,EAAEkuE,MAAMr+D,EAAEpF,KAAK,EAAE07D,EAAED,KAAK,IAAIxmE,EAAEymE,EAAED,mBAAmBr2D,MAAM,IAAIA,EAAE1P,cAAc0P,EAAE,MAAMA,EAAE1P,QAAQH,EAAEmuE,kBAAkB,OAAOC,EAAEv+D,EAAEpF,aAAa4jE,EAAE,UAAUC,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOC,EAAEpI,EAAEqI,MAAMF,MAAMrkE,KAAKwkE,OAAOt3D,IAAIo3D,EAAEvkE,KAAK,SAAS,CAACtJ,IAAI2tE,EAAEtiE,KAAKo6D,MAAMpkE,MAAM,CAACokE,EAAEkI,IAAIlI,EAAEzlE,IAAI2tE,EAAE3tE,MAAM+J,KAAK,EAAEsB,KAAKo6D,KAAKA,WAAW,IAAIxjE,EAAEyrE,OAAOlI,EAAE,EAAA,EAAI8E,KAAK8B,EAAE,WAAW9qE,EAAE,EAAEA,EAAE,IAAIA,EAAE,GAAGhC,EAAE+B,KAAK8N,EAAE7N,GAAE,GAAI8qE,EAAE9sE,EAAE0uE,UAAU7+D,OAAOq8D,EAAE,YAAY/F,KAAK2G,KAAK9sE,EAAE2uE,KAAKxI,EAAEqI,SAAStC,MAAMA,EAAElB,EAAEhpE,UAAU6N,EAAE7P,EAAE+B,KAAK8N,EAAEm7D,GAAE,GAAI8B,EAAE9sE,EAAE0uE,UAAU7+D,GAAGi9D,EAAE9sE,EAAE+B,KAAK+qE,EAAE9B,GAAE,GAAI,IAAIroE,EAAEmqE,EAAEriE,QAAQzK,EAAEkuE,MAAM/H,EAAE9lE,yBAAyBwP,EAAEq2D,EAAE8E,UAAUn7D,EAAEpF,eAAeqiE,EAAE3G,EAAEqI,MAAMtI,GAAGlkE,KAAKmV,IAAI21D,EAAE9iE,KAAK,QAAQ,CAACtJ,IAAIsqE,EAAE/gE,KAAKwkE,IAAIzsE,GAAGA,EAAE+J,KAAKo6D,MAAMpkE,MAAM,CAACokE,EAAEiI,IAAIjI,EAAEzlE,IAAI0tE,EAAE1tE,MAAM+J,KAAK,EAAEsB,KAAKo6D,KAAKA,qBAAqBt2D,SAASq2D,EAAE,OAAO8E,EAAE,SAAS8B,EAAE7iE,KAAK83D,IAAI,GAAG93D,KAAK2zB,MAAM3zB,KAAKkL,IAAItF,EAAE1P,OAAO,KAAK8J,KAAKkL,IAAI,gBAAgBnT,KAAK6N,IAAIzP,KAAK4B,GAAGgpE,EAAE7qE,OAAO2sE,MAAM1sE,KAAK,IAAIuC,EAAEqoE,IAAIA,EAAE,WAAW,IAAIA,EAAE7qE,QAAQ+lE,EAAE9lE,KAAK,IAAIuC,EAAEqoE,IAAI9E,cAAcr2D,OAAOq2D,EAAE,YAAY8E,KAAKn7D,KAAK5F,KAAKwkE,IAAIzD,EAAEhhE,IAAIghE,EAAE7zD,YAAY+uD,EAAE71D,OAAOR,EAAEq2D,UAAU5kE,KAAKk7D,KAAK/wD,OAAOoE,EAAE++D,UAAU1I,GAAG2I,WAAWV,kBAAkB,GAAGruE,EAAEgvE,MAAM9uE,UAAUqQ,YAAYR,QAAQ2+D,MAAM3+D,EAAEQ,SAASR,OAAOq2D,EAAE,UAAU8E,EAAE,EAAEA,EAAE,EAAEA,GAAG,KAAK6C,GAAEvsE,KAAKktE,MAAMxD,GAAG/lD,SAASpV,EAAEm7D,YAAY9E,KAAK6I,MAAMhvE,kBAAkBA,EAAEsQ,YAAYR,SAASlN,EAAEqsE,WAAWn/D,IAAIvO,KAAKjB,SAASwP,oBAAoBA,OAAOq2D,EAAE,IAAI7iE,MAAM,IAAIoH,KAAK,IAAI,IAAItL,EAAE,EAAA,GAAI,EAAA,eAAkB6rE,KAAKn7D,IAAI,IAAIxM,MAAM,IAAIoH,KAAK,CAAC07D,EAAE2G,IAAI5G,EAAE4G,GAAGmC,MAAMjE,EAAEwD,MAAM1B,aAAa5G,EAAE71D,OAAOR,EAAEq2D,OAAO8E,EAAE,EAAA,EAAI8B,EAAE,eAAe9qE,KAAKV,KAAKjB,SAAS,OAAOstE,EAAEzH,EAAElkE,EAAE6N,MAAMm7D,GAAG2C,iBAAiBzB,EAAElqE,EAAEyJ,OAAOoE,EAAEq2D,GAAGmG,EAAErqE,GAAGkqE,EAAEyB,EAAEzH,EAAEgG,EAAEr8D,MAAMw8D,MAAMA,EAAES,EAAEZ,UAAUY,KAAKoC,SAASvsE,kBAAkB5C,EAAEsQ,YAAYR,EAAEq2D,SAASr2D,EAAE2+D,SAASltE,KAAKutE,MAAM3I,EAAE71D,gBAAgB/O,QAAQ6tE,MAAMzvE,EAAjmH,CAAomHklE,QAAQ,KAAK,SAASv0D,YAAYvQ,QAAQyjB,MAAMzjB,EAAEuQ,kBAAkB/O,KAAKiiB,sBAAsBzjB,OAAO0C,EAAErD,QAAQuD,EAAE,UAAUf,GAAEqkE,WAAWlmE,UAAK,IAAA0C,EAAWA,EAAE,GAAG/C,EAAE,UAAUkC,GAAEmkE,WAAWpjE,EAAE6gB,cAAS,IAASpkB,EAAEA,EAAE,4BAA4B,IAAIiwE,GAAG3vE,IAA8gB,SAAS4Q,YAAYvQ,EAAE0C,EAAErD,QAAQkwE,cAAcvvE,EAAEwB,KAAKguE,cAAc9sE,EAAElB,KAAKiuE,kBAAkBpwE,mBAAmBW,SAAS,CAACktB,SAASxqB,EAAE1C,GAAGqtE,OAAO,IAAIrtE,mBAAmBA,OAAO0C,QAAQrD,EAAE,UAAUwC,GAAEqkE,WAAWlmE,UAAK,IAAS0C,EAAEA,EAAE,UAAU,IAAIgtE,GAAG9K,GAAE4H,SAASntE,EAAEiS,OAAO9P,KAAKmuE,WAAW/K,GAAE4H,SAASntE,EAAEo/C,OAAOj9C,KAAKmuE,WAAW/K,GAAE4H,SAASntE,EAAEq/C,WAAWl9C,KAAKmuE,YAAYp/D,eAAe,CAACe,OAAO9P,KAAK+tE,cAAclC,SAAS5uB,OAAOj9C,KAAKguE,cAAcnC,SAAS3uB,WAAWl9C,KAAKiuE,kBAAkBpC,UAAU98D,OAAOvQ,UAAUwB,KAAK+tE,cAAcriD,MAAMltB,GAAG0vE,GAAGE,cAAcr/D,OAAOvQ,UAAUwB,KAAKguE,cAActiD,MAAMltB,GAAGuQ,WAAWvQ,UAAUwB,KAAKiuE,kBAAkBviD,MAAMltB,gBAAgBA,EAAE0C,EAAErD,SAAS,CAACwwE,WAAW7vE,EAAEk/C,QAAQx8C,EAAEy7B,UAAU9+B,EAAEywE,OAAOtuE,KAAKuuE,gBAAgB1wE,2BAA2BW,UAAU,SAAS2uE,IAAIxkE,KAAKwkE,IAAI3uE,GAAG,UAAU,oCAAoCA,EAAEwB,KAAKwuE,8BAA8B,EAAE,EAAE,GAAG,QAAO,GAAG,GAAIttE,EAAElB,KAAKwuE,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAI3wE,EAAEmC,KAAKwuE,6BAA6B,IAAI,GAAG,GAAG,UAAS,GAAG,GAAIptE,EAAEpB,KAAKwuE,yBAAyB,GAAG,IAAI,GAAG,EAAE,IAAI,KAAI,GAAG,GAAIrwE,EAAE,IAAIotE,GAAGvrE,KAAKyuE,YAAYhD,cAAc,MAAMA,uBAAuBA,sBAAsBA,oBAAoBA,oBAAoBA,cAAcjtE,GAAGitE,cAAcjtE,GAAGitE,aAAavqE,GAAGuqE,SAAS,IAAI5tE,GAAG4tE,SAAS,EAAErqE,GAAG1C,EAAE,IAAI6sE,GAAGvrE,KAAKyuE,YAAYhD,cAAc,MAAMA,cAAczrE,KAAK0uE,iBAAiB,MAAK,IAAKjD,aAAazrE,KAAK0uE,iBAAiB,MAAK,IAAKjD,SAAS,IAAIzrE,KAAK0uE,iBAAiB,MAAK,IAAKjD,SAAS,IAAIzrE,KAAK0uE,iBAAiB,MAAK,IAAKjwE,EAAE,IAAI8sE,GAAGvrE,KAAKyuE,YAAYhD,SAAS,IAAI,GAAGA,SAAS,IAAIzrE,KAAK2uE,6BAA6B,EAAE,GAAG,EAAE,IAAIlD,SAAS,IAAIzrE,KAAK2uE,6BAA6B,EAAE,EAAE,EAAE,WAAW,IAAIT,GAAG/vE,EAAEO,EAAED,2BAA2BD,EAAE0C,SAASrD,EAAE,IAAI0tE,GAAGvrE,KAAK4uE,WAAWnD,aAAa,KAAKA,SAAS,GAAGjtE,GAAG4C,EAAE,IAAImqE,GAAGvrE,KAAK6uE,SAASpD,aAAa5tE,GAAG4tE,aAAa,IAAIF,GAAGvrE,KAAK4uE,WAAWnD,cAAc,KAAKA,SAAS,IAAI,OAAOA,cAAc5tE,GAAG4tE,cAAc5tE,GAAG4tE,aAAa,IAAIF,GAAGvrE,KAAK4uE,WAAWnD,cAAc,MAAMA,SAAS,IAAI,MAAMA,SAAS,IAAI5tE,MAAMqD,EAAE,OAAO0jE,EAAE,IAAI2G,GAAGvrE,KAAK4uE,WAAWnD,SAAS,EAAEjtE,GAAGitE,SAAS,GAAG,MAAM/B,EAAE,IAAI6B,GAAGvrE,KAAK8uE,QAAQrD,aAAajtE,GAAGitE,cAAc7G,KAAK6G,SAAS,IAAIjtE,GAAGitE,SAAS,IAAI/B,GAAG+B,SAAS,IAAI/B,GAAG+B,SAAS,IAAIjtE,OAAO,OAAOomE,EAAE,IAAI2G,GAAGvrE,KAAK8uE,QAAQrD,aAAa5tE,GAAG4tE,cAAc,MAAMttE,EAAE,IAAIotE,GAAGvrE,KAAK8uE,QAAQrD,SAAS,IAAI5tE,GAAG4tE,SAAS,GAAG,QAAQA,SAAS,IAAIttE,GAAGstE,SAAS,GAAGttE,GAAGstE,SAAS,IAAI7G,GAAG6G,SAAS,IAAI7G,GAAG6G,SAAS,IAAIjtE,UAAU4C,kCAAkC5C,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,SAASjD,EAAE4B,KAAK+uE,mCAAmC9I,GAAE7kE,EAAE,GAAG,KAAKC,GAAGC,EAAEtB,KAAK+uE,mCAAmC9I,GAAE7kE,EAAE,GAAG,GAAGC,GAAGhD,EAAE2B,KAAK+uE,mCAAmC3tE,EAAEC,GAAGF,EAAEnB,KAAKgvE,YAAYxwE,EAAE,IAAI,GAAG4C,EAAE6kE,GAAE,GAAG,GAAG,IAAI7kE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIsC,EAAE1D,KAAKgvE,YAAYxwE,EAAEL,EAAEiD,EAAEF,EAAEE,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAIxC,EAAEoB,KAAKgvE,YAAYxwE,EAAEL,EAAEA,EAAE+C,EAAErD,EAAE,IAAI8F,EAAE3D,KAAKgvE,YAAYxwE,EAAEL,EAAEA,EAAE+C,EAAErD,EAAE,IAAI0D,EAAE,IAAIgqE,GAAGvrE,KAAK8uE,QAAQrD,YAAYjtE,GAAGitE,aAAa7sE,GAAG6sE,SAAS,EAAE5tE,EAAE,KAAK8D,EAAE3B,KAAKgvE,iBAAiBtwE,EAAEA,EAAEwC,EAAErD,EAAE,GAAG4F,EAAE,IAAI8nE,GAAGvrE,KAAK6uE,SAASpD,cAAcrtE,GAAGqtE,aAAanqE,GAAGmqE,aAAaptE,GAAGotE,cAActqE,GAAGsqE,aAAa/nE,GAAG+nE,SAAS,GAAG7sE,UAAUH,GAAGgF,EAAEgoE,SAAS,GAAG9nE,GAAG8nE,SAAS,IAAIlqE,GAAGkqE,SAAS,IAAIlqE,GAAGkqE,SAAS,IAAI9nE,GAAGF,EAAEgoE,SAAS,GAAG9pE,GAAG8B,4CAA4CjF,EAAE0C,SAASrD,EAAE,IAAI0tE,GAAGvrE,KAAK8uE,QAAQ1tE,EAAEpB,KAAKivE,2BAA2BzwE,OAAOL,EAAE6B,KAAKivE,wBAAwB,EAAEzwE,OAAOE,EAAEsB,KAAKkvE,+CAA+C1wE,WAAWE,GAAGA,EAAE,EAAE,OAAOkmE,EAAE5kE,KAAKivE,6BAA6BzwE,OAAOC,EAAEuB,KAAKivE,6BAA6BzwE,OAAO6C,EAAErB,KAAKmvE,eAAe/tE,EAAE3C,aAAagtE,YAAYrqE,EAAEC,GAAGxD,EAAE4tE,cAAchtE,GAAGZ,EAAE4tE,cAAc7G,SAASxmE,EAAE4B,KAAKivE,wBAAwBvwE,EAAEF,OAAO8C,EAAEtB,KAAKmvE,eAAe/wE,EAAED,EAAEO,EAAE,KAAK+sE,SAAS/sE,EAAE,IAAIN,GAAGP,EAAE4tE,SAAS/sE,EAAEN,EAAEkD,GAAGzD,EAAE4tE,SAAS,EAAEttE,EAAEmD,OAAO,OAAOiN,EAAEvO,KAAKmvE,eAAe/tE,EAAEjD,KAAK,QAAQstE,YAAY9iE,KAAKD,IAAI,GAAGtH,IAAIvD,EAAE4tE,SAAS,EAAExF,GAAE,GAAG7kE,EAAEjD,GAAGoQ,IAAI1Q,EAAE4tE,YAAYrqE,EAAEmN,GAAG1Q,EAAE4tE,SAAS,EAAEttE,EAAEoQ,UAAU1Q,iCAAiCW,EAAE0C,EAAErD,SAASuD,EAAE,aAAa,SAAS,MAAMF,IAAI,MAAMA,UAAU1C,EAAEX,EAAE8K,KAAKD,IAAItH,UAAUuH,KAAKD,IAAItH,EAAE,yDAAyD5C,SAAS,MAAMA,iBAAiB,MAAMA,KAAK,2BAA2BA,EAAE0C,EAAErD,EAAEuD,YAAY5C,MAAMX,sBAAsBW,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,SAASD,EAAEkK,KAAKD,IAAI,MAAMlK,GAAGE,GAAG2C,EAAE,KAAKH,UAAU,IAAIqqE,GAAGvrE,KAAK8uE,QAAQrD,YAAYjtE,EAAEC,GAAGgtE,aAAavqE,EAAEyH,KAAKkN,IAAIpX,EAAE4C,IAAIoqE,SAAS,EAAE5tE,EAAEwD,GAAGoqE,SAAS,GAAGrqE,EAAE,KAAKvD,IAAI4tE,SAAS,EAAEttE,EAAE,MAAMiD,wCAAwC5C,EAAE0C,EAAErD,EAAEuD,SAASjD,EAAE6B,KAAKovE,2BAA2B5wE,EAAEX,GAAGa,EAAEsB,KAAKovE,2BAA2BluE,EAAEE,UAAU,IAAImqE,GAAGvrE,KAAK6uE,SAASpD,YAAYttE,GAAGstE,cAAc/sE,GAAG+sE,gBAAgB/sE,GAAG+sE,eAAe,qCAAqCjtE,EAAE0C,SAASrD,EAAEqwE,GAAGK,gBAAgB,IAAIntE,KAAK8sE,GAAGK,gBAAgB,YAAY,SAAS,IAAIhD,GAAGvrE,KAAK8uE,QAAQrD,SAAS5tE,EAAE,GAAG4tE,SAASrqE,EAAEF,EAAE,EAAElB,KAAKqvE,+BAA+BnuE,GAAG,GAAGuqE,SAAS,EAAEjtE,EAAE,EAAEwB,KAAKqvE,+BAA+B7wE,GAAG,yCAAyCA,UAAU,IAAI+sE,GAAG2C,GAAGU,WAAWnD,cAAc,IAAIjtE,GAAGitE,SAAS,IAAI,GAAGjtE,IAAI0vE,GAAGE,sBAAsBF,GAAGC,kBAAkBjtE,QAAQrD,EAAE,UAAUwC,GAAEmkE,WAAWhmE,UAAK,IAAS0C,EAAEA,EAAE,oBAAoBgtE,GAAGoB,UAAUzxE,IAAIqwE,GAAGO,WAAWP,GAAGoB,UAAU,cAAcpB,GAAGW,QAAQX,GAAGoB,UAAU,WAAWpB,GAAGU,UAAUV,GAAGoB,UAAU,aAAapB,GAAGY,OAAOZ,GAAGoB,UAAU,WAAiI/L,QAAQ,KAAjHgM,SAAS,SAAShhE,SAAS,CAACrN,EAAErD,EAAEuD,EAAEjD,eAAeO,KAAK6P,EAAE,OAAOs2D,EAAEnmE,EAAEwC,EAAErD,EAAEuD,EAAEjD,MAAM0mE,SAASA,SAAS,OAAqB,SAASrmE,cAAc+P,UAAUA,EAAEihE,OAAO,IAAIxE,SAAS,SAASz8D,OAAOq2D,EAAE/mE,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,QAAQkD,EAAE,UAAUjB,GAAEqkE,WAAWn2D,UAAK,IAASq2D,EAAEA,EAAE,SAAS,CAACO,KAAK,UAAU9kE,GAAEkkE,QAAQjjE,EAAEmuC,cAAS,IAAA5xC,EAAWA,EAAE,EAAE06B,OAAO,UAAUl4B,GAAEkkE,QAAQjjE,EAAEi3B,eAAU,IAASn3B,EAAEA,EAAE,IAAIquE,OAAO,UAAUpvE,GAAEkkE,QAAQjjE,EAAE+2B,wBAAmB,IAAAl6B,EAAWA,EAAE,EAAEqxE,MAAM,UAAUnvE,GAAEkkE,QAAQjjE,EAAEg3B,sBAAiB,IAAS55B,EAAEA,EAAE,EAAE85B,SAAS31B,GAAEmoE,SAAS1pE,EAAEk3B,UAAUk3C,SAASjM,GAAGuH,SAAS1pE,EAAEu3B,WAAW82C,YAAYlM,GAAGuH,SAAS1pE,EAAEy3B,cAAc62C,cAAc1B,GAAGlD,SAAS1pE,EAAE07C,gBAAgB6yB,oBAAoB,UAAUxvE,GAAEokE,YAAYnjE,EAAEw4B,8BAAyB,IAAAr7B,GAAYA,EAAEqxE,YAAY,UAAUzvE,GAAEokE,YAAYnjE,EAAE04B,kBAAa,IAAA34B,GAAYA,EAAE0uE,eAAe,UAAU1vE,GAAEokE,YAAYnjE,EAAEy6B,qBAAgB,IAAA39B,GAAYA,IAAII,EAAE2rE,WAAWjpE,EAAE1C,EAAE0rE,UAAU,SAAS37D,UAAUA,EAAEkhE,QAAQ,GAAGjxE,EAAEwxE,WAAW,SAASzhE,UAAUA,EAAEgqB,OAAOr3B,EAAEqN,IAAI/P,EAAEyxE,SAAS,SAAS1hE,UAAU5F,KAAK2zB,MAAM/tB,EAAE42D,KAAKjkE,EAAEqN,KAAz4B,CAA+4Bi1D,QAAQ,KAAK,SAAShlE,KAAKwsE,SAAS,SAASz8D,OAAOrN,EAAErD,EAAEuD,EAAEjD,QAAQO,EAAE,UAAU2B,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,SAAS,CAAC0J,OAAO,UAAUvK,GAAEikE,WAAW5lE,EAAEkM,eAAU,IAAS/M,EAAEA,EAAE,EAAEi7B,KAAK,UAAUz4B,GAAEkkE,QAAQ7lE,EAAEo6B,aAAQ,IAAA13B,EAAWA,EAAE,EAAE0O,OAAO,UAAUzP,GAAEkkE,QAAQ7lE,EAAEoR,eAAU,IAAA3R,EAAWA,EAAE,IAAIK,EAAEktB,MAAM,SAASnd,EAAErN,EAAErD,MAAM0Q,EAAEuqB,MAAM,SAAS53B,QAAQE,KAAKmN,EAAEuB,QAAQvB,EAAEuqB,YAAY31B,GAAEoL,EAAE3D,OAAO1J,EAAEE,IAA3W,CAAgXqiE,QAAQ,KAAK,SAAS10D,YAAYvQ,EAAE0C,QAAQs1D,MAAMh4D,EAAEwB,KAAKkwE,OAAOhvE,EAAElB,KAAKmwE,SAAS,EAAEnwE,KAAKowE,SAAS,EAAEpwE,KAAKqwE,SAAS,EAAErwE,KAAKswE,SAAS,EAAEtwE,KAAKuwE,SAAS,EAAEvwE,KAAKwwE,SAAS,EAAExwE,KAAKywE,SAAS,EAAEzwE,KAAK0wE,SAAS,EAAE1wE,KAAK2wE,UAAU,EAAE3wE,KAAK4wE,UAAU,EAAE5wE,KAAK6wE,UAAU,EAAE7wE,KAAK8wE,UAAU,EAAE9wE,KAAK+wE,QAAQ,EAAE/wE,KAAKgxE,QAAQ,EAAEhxE,KAAKoC,MAAM,EAAEpC,KAAKixE,OAAOC,GAAGC,cAAc3yE,EAAEwxE,WAAWxxE,EAAE4yE,aAAapxE,KAAKqxE,OAAOH,GAAGC,cAAc3yE,EAAEwxE,WAAWxxE,EAAE4yE,kCAAkC5yE,EAAE0C,SAASrD,EAAEkE,MAAMb,EAAE,WAAWE,EAAE,EAAEA,EAAEF,EAAE,EAAEE,GAAG,IAAIA,GAAGW,MAAMvD,EAAE,UAAUX,EAAEkR,+BAA+BuiE,UAAUtxE,KAAKixE,OAAOjxE,KAAKw2D,MAAM+a,YAAYxiE,aAAavQ,QAAQ8yE,UAAUtxE,KAAKqxE,OAAOrxE,KAAKw2D,MAAM+a,WAAW/yE,EAAE,GAAGuQ,UAAUvQ,EAAE0C,SAASrD,EAAE2lE,GAAG0G,UAAUlqE,KAAKw2D,MAAMt7B,SAASlD,OAAO52B,EAAEoiE,GAAG2G,WAAWnqE,KAAKw2D,MAAMt7B,SAASlD,OAAO75B,EAAE+C,EAAErD,UAAU+mE,EAAE,EAAEA,EAAE5kE,KAAKw2D,MAAM4a,YAAY,EAAExM,GAAG,EAAE,OAAOlmE,QAAQ83D,MAAMgb,WAAW5M,GAAG/mE,UAAU6rE,EAAE,EAAEA,EAAE1pE,KAAKw2D,MAAMwZ,WAAW,EAAEtG,GAAG,EAAE,OAAOjrE,QAAQ+3D,MAAMib,mBAAmB/H,GAAGtoE,IAAIwjE,GAAG8E,GAAG1pE,KAAKkwE,OAAO/xE,EAAEM,EAAEC,KAAKqQ,aAAavQ,EAAE0C,QAAQivE,SAASnwE,KAAKixE,OAAO/vE,GAAG1C,GAAGwB,KAAKowE,SAASpwE,KAAKixE,OAAO/vE,EAAE,GAAG1C,GAAGwB,KAAKqwE,SAASrwE,KAAKqxE,OAAOnwE,GAAG1C,GAAGwB,KAAKswE,SAAStwE,KAAKqxE,OAAOnwE,EAAE,GAAG1C,GAAGwB,KAAKuwE,SAASvwE,KAAKixE,OAAO/vE,GAAG1C,EAAE,GAAGwB,KAAKwwE,SAASxwE,KAAKixE,OAAO/vE,EAAE,GAAG1C,EAAE,GAAGwB,KAAKywE,SAASzwE,KAAKqxE,OAAOnwE,GAAG1C,EAAE,GAAGwB,KAAK0wE,SAAS1wE,KAAKqxE,OAAOnwE,EAAE,GAAG1C,EAAE,GAAGuQ,WAAWvQ,QAAQmyE,UAAU1K,GAAEznE,EAAEwB,KAAKmwE,SAASnwE,KAAKuwE,UAAUvwE,KAAK4wE,UAAU3K,GAAEznE,EAAEwB,KAAKqwE,SAASrwE,KAAKywE,UAAUzwE,KAAK6wE,UAAU5K,GAAEznE,EAAEwB,KAAKowE,SAASpwE,KAAKwwE,UAAUxwE,KAAK8wE,UAAU7K,GAAEznE,EAAEwB,KAAKswE,SAAStwE,KAAK0wE,UAAU3hE,WAAWvQ,QAAQuyE,QAAQ9K,GAAEznE,EAAEwB,KAAK2wE,UAAU3wE,KAAK4wE,WAAW5wE,KAAKgxE,QAAQ/K,GAAEznE,EAAEwB,KAAK6wE,UAAU7wE,KAAK8wE,WAAW/hE,WAAWvQ,QAAQ4D,MAAM6jE,GAAEznE,EAAEwB,KAAK+wE,QAAQ/wE,KAAKgxE,SAASjiE,gBAAgB/O,KAAKoC,MAAM2M,cAAc/O,KAAKixE,OAAOjxE,KAAKqxE,QAAQ,CAACrxE,KAAKqxE,OAAOrxE,KAAKixE,SAAS,SAASliE,YAAYvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,QAAQ+vE,YAAY5yE,EAAEwB,KAAKgwE,WAAW9uE,EAAElB,KAAKyxE,mBAAmB5zE,EAAEmC,KAAK0xE,QAAQtwE,EAAEpB,KAAKk7B,SAAS75B,QAAQjD,EAAEolE,GAAG0G,UAAU7oE,EAAE22B,YAAYu5C,WAAW5oE,KAAK2zB,MAAMn+B,EAAEC,GAAG4B,KAAKwxE,WAAW7oE,KAAK2zB,MAAM59B,EAAEN,GAAG4B,KAAK2xE,YAAYxzE,GAAG,EAAE6B,KAAK4xE,YAAYlzE,GAAG,EAAEsB,KAAK6xE,cAAc,SAASvwE,EAAE9C,EAAEJ,GAAG,OAAO0zE,UAAU/vE,MAAMT,EAAE,WAAWiN,EAAE,EAAEA,GAAGjN,EAAEiN,GAAG,EAAE,OAAOq2D,EAAE5kE,KAAK2xE,YAAYpjE,OAAOujE,UAAUvjE,GAAGxM,MAAMT,EAAE,WAAWooE,EAAE,EAAEA,GAAGpoE,EAAEooE,GAAG,EAAE,OAAOhpE,EAAEV,KAAK4xE,YAAYlI,OAAOoI,UAAUvjE,GAAGm7D,GAAGtoE,EAAE0wE,UAAUlN,EAAElkE,SAASqxE,wBAAwB,IAAIt0D,IAAIzd,KAAKgyE,UAAU5wE,EAAE6wE,oBAAoBjyE,KAAKvB,EAAE4C,EAAE6wE,oBAAoBnjE,aAAavQ,EAAE0C,UAAUlB,KAAK8xE,UAAUtzE,EAAEwB,KAAK2xE,aAAazwE,EAAElB,KAAK4xE,aAAa7iE,2BAA2BvQ,EAAE0C,UAAUgD,GAAElE,KAAK+xE,wBAAwB9vE,GAAEskE,OAAO/nE,EAAE0C,IAAI,WAAWrD,EAAEW,EAAEwB,KAAK2xE,YAAYvwE,EAAEF,EAAElB,KAAK4xE,YAAYzzE,EAAE6B,KAAK8xE,UAAUjzE,OAAOH,EAAEb,GAAG,GAAGuD,GAAG,GAAGvD,EAAEM,GAAGiD,EAAEjD,EAAE6B,KAAK8xE,UAAUj0E,GAAGuD,GAAG+wE,YAAYnyE,KAAK0xE,QAAQI,UAAUtzE,EAAE0C,GAAGixE,mBAAmBnyE,KAAK0xE,QAAQU,2BAA2B5zE,GAAG,EAAE0C,GAAG,EAAExC,MAAMqQ,wBAAwBvQ,SAAS0C,EAAE,IAAIgwE,GAAGlxE,KAAKxB,UAAUwB,KAAK6xE,cAAc/yE,KAAKoC,GAAGA,EAAE8oE,OAAOtiE,KAAKxG,GAAG6N,+BAA+B8iE,cAAcltE,YAAYnG,EAAE6zE,4BAA4BtjE,aAAavQ,QAAQqzE,cAAcltE,YAAYzD,EAAEoxE,aAAa9zE,KAAKuQ,aAAavQ,EAAE0C,QAAQ2wE,cAAcltE,YAAY9G,EAAE00E,aAAa/zE,EAAE0C,KAAK6N,WAAWvQ,QAAQqzE,cAAcltE,YAAYzD,EAAEsxE,WAAWh0E,KAAKuQ,WAAWvQ,QAAQqzE,cAAcltE,YAAYzD,EAAEuxE,WAAWj0E,KAAKuQ,WAAWvQ,QAAQqzE,cAAcltE,YAAYzD,EAAEwxE,WAAWl0E,KAAKuQ,kBAAkB8iE,cAAcltE,YAAYnG,EAAEm0E,eAAe5jE,gCAAgCvQ,EAAE0C,EAAErD,UAAUmC,KAAKgyE,UAAUxzE,EAAE0C,EAAErD,KAAmF6lE,QAAQ,KAAxEt3D,OAAO,SAASmC,EAAErN,EAAErD,SAAS,CAACiS,OAAOvB,EAAE0uC,OAAO/7C,EAAEg8C,WAAWr/C,IAAkB,SAASW,SAAS0C,EAAE,IAAIuc,eAAelP,EAAEm7D,EAAEtoE,SAASjD,EAAEgO,OAAO4B,OAAO,CAACjI,KAAK,aAAayI,KAAK40D,GAAE/2D,OAAOs9D,EAAEtoE,WAAWF,EAAEiP,IAAI5B,EAAEpQ,GAAGA,IAAIy0E,YAAY/0E,EAAE,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEq0E,WAAWh1E,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEs0E,gBAAgBj1E,EAAE,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEqwE,QAAQhxE,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEu0E,kBAAkBl1E,EAAE,wBAAwB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEw0E,iBAAiBn1E,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEy0E,sBAAsBp1E,EAAE,4BAA4B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAE00E,cAAcr1E,EAAE,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAE20E,MAAMt1E,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAE40E,MAAMv1E,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAIW,EAAE60E,OAAOx1E,EAAE,YAAY,CAAC,EAAE,IAAIW,EAAE80E,gBAAgBz1E,EAAE,qBAAqB,CAAC,IAAIW,EAAE+0E,iBAAiB11E,EAAE,sBAAsB,CAAC,IAAIW,EAAEg1E,aAAa31E,EAAE,kBAAkB,CAAC,IAAIW,EAAEi1E,uBAAuB51E,EAAE,4BAA4B,CAAC,IAAIW,EAAEk1E,uBAAuB71E,EAAE,4BAA4B,CAAC,IAAIW,EAAEm1E,uBAAuB91E,EAAE,4BAA4B,CAAC,IAAIW,EAAEo1E,eAAe/1E,EAAE,oBAAoB,CAAC,IAAIW,EAAEq1E,eAAeh2E,EAAE,oBAAoB,CAAC,IAAIW,EAAEs1E,oBAAoBj2E,EAAE,yBAAyB,CAAC,IAAIW,EAAEu1E,uBAAuBl2E,EAAE,4BAA4B,CAAC,IAAIW,EAAEw1E,oBAAoBn2E,EAAE,yBAAyB,CAAC,IAAIW,EAAEy1E,8BAA8Bp2E,EAAE,mCAAmC,CAAC,IAAIW,EAAE01E,cAAcr2E,EAAE,mBAAmB,CAAC,GAAG,GAAG,IAAIW,EAAE21E,WAAWt2E,EAAE,gBAAgB,CAAC,IAAIW,EAAE41E,YAAYv2E,EAAE,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAE61E,OAAOx2E,EAAE,YAAY,CAAC,IAAIW,EAAE81E,iBAAiBz2E,EAAE,sBAAsB,CAAC,IAAIW,EAAE+1E,eAAe12E,EAAE,oBAAoB,CAAC,IAAIW,EAAEg2E,eAAe32E,EAAE,oBAAoB,CAAC,IAAIW,EAAEi2E,OAAO52E,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAIW,EAAEk2E,QAAQ72E,EAAE,aAAa,CAAC,EAAE,EAAE,IAAIW,EAAEm2E,kBAAkB92E,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,IAAIW,EAAEo2E,YAAY,SAASrmE,EAAEq2D,UAAU,IAAIwG,GAAG78D,EAAEq7D,WAAWhF,EAAE9+D,MAAM8+D,IAAtyD,CAA2yDjB,QAAQ,KAAK,SAAS50D,YAAYvQ,EAAE0C,EAAErD,EAAEuD,GAAE,QAAS85B,SAAS18B,EAAEwB,KAAK60E,oBAAoB3zE,QAAQ/C,EAAEK,EAAEuxE,eAAerxE,KAAK,IAAImoE,GAAEhpE,GAAG2pE,GAAEp7D,OAAOvO,IAAI2rE,yBAAyBsL,aAAa,IAAIC,GAAG,IAAIlO,GAAEhpE,GAAGW,EAAEg6B,SAASgrC,GAAG0G,UAAU1rE,GAAGglE,GAAG2G,WAAW3rE,IAAIwB,KAAKg1E,iBAAiB,IAAI5J,GAAG,IAAIvE,GAAEhpE,GAAGslE,GAAE/2D,UAAU,CAAC,EAAE,KAAKpM,KAAKi1E,cAAc,IAAI7J,GAAG,IAAIvE,GAAEhpE,EAAEsoE,OAAO,IAAIhD,GAAE/2D,UAAU,CAAC,EAAE,KAAKpM,KAAKk1E,YAAY,IAAI9J,GAAG,IAAIvE,GAAEhpE,EAAEsoE,OAAO,IAAIhD,GAAE/2D,OAAO,EAAE,CAAC,YAAY0oE,aAAa,IAAIC,GAAGr2E,EAAEkrE,WAAW,qBAAqBprE,EAAEg6B,SAASgrC,GAAG0G,UAAU1rE,GAAGglE,GAAG2G,WAAW3rE,IAAIwB,KAAKg1E,iBAAiBrR,GAAGiR,YAAYl2E,EAAEP,EAAEwlE,GAAGoP,kBAAkBpP,GAAGiP,aAAa5yE,KAAKi1E,cAActR,GAAGiR,YAAYl2E,EAAEP,EAAEwlE,GAAGqP,iBAAiBrP,GAAGkP,YAAY7yE,KAAKk1E,YAAYvR,GAAGiR,YAAYl2E,EAAEilE,GAAGyP,QAAQpzE,KAAKm1E,qBAAqBxR,GAAGiR,YAAYl2E,EAAEP,EAAEwlE,GAAGsP,sBAAsBtP,GAAGmP,iBAAiB9yE,KAAKo1E,aAAazR,GAAGiR,YAAYl2E,EAAEP,EAAEwlE,GAAGuP,cAAcvP,GAAGkL,SAAS7uE,KAAKq1E,eAAe1R,GAAGiR,YAAYl2E,EAAEilE,GAAGwP,OAAOnzE,KAAKs1E,YAAY3R,GAAGiR,YAAYl2E,EAAEilE,GAAG0P,QAAQrzE,KAAKu1E,wBAAwB5R,GAAGiR,YAAYl2E,EAAEilE,GAAG2P,iBAAiBtzE,KAAKw1E,yBAAyB7R,GAAGiR,YAAYl2E,EAAEilE,GAAG4P,kBAAkBvzE,KAAKy1E,iBAAiB9R,GAAGiR,YAAYl2E,EAAEilE,GAAG6P,cAAcxzE,KAAK01E,8BAA8B/R,GAAGiR,YAAYl2E,EAAEilE,GAAG8P,wBAAwBzzE,KAAK21E,2BAA2BhS,GAAGiR,YAAYl2E,EAAEilE,GAAG+P,wBAAwB1zE,KAAK41E,8BAA8BjS,GAAGiR,YAAYl2E,EAAEilE,GAAGgQ,wBAAwB3zE,KAAK61E,kBAAkBlS,GAAGiR,YAAYl2E,EAAEilE,GAAGiQ,gBAAgB5zE,KAAK81E,kBAAkBnS,GAAGiR,YAAYl2E,EAAEilE,GAAGkQ,gBAAgB7zE,KAAK+1E,2BAA2BpS,GAAGiR,YAAYl2E,EAAEilE,GAAGmQ,qBAAqB9zE,KAAKg2E,8BAA8BrS,GAAGiR,YAAYl2E,EAAEilE,GAAGoQ,wBAAwB/zE,KAAKi2E,wBAAwBtS,GAAGiR,YAAYl2E,EAAEilE,GAAGqQ,qBAAqBh0E,KAAKk2E,4BAA4BvS,GAAGiR,YAAYl2E,EAAEilE,GAAGsQ,+BAA+Bj0E,KAAKm2E,iBAAiBxS,GAAGiR,YAAYl2E,EAAEilE,GAAGuQ,eAAel0E,KAAKo2E,WAAWzS,GAAGiR,YAAYl2E,EAAEilE,GAAGwQ,YAAYn0E,KAAKq2E,YAAY1S,GAAGiR,YAAYl2E,EAAEilE,GAAGyQ,mBAAmB31E,EAAED,EAAE2mE,KAAK,EAAE9jE,EAAE5C,EAAED,EAAE+5B,YAAY+9C,kBAAkBt2E,KAAKu2E,uBAAuB5S,GAAGiR,YAAYl2E,EAAEilE,GAAG0Q,QAAQ51E,EAAE4C,KAAK,GAAGrB,KAAKw2E,qBAAqBx2E,KAAKu2E,uBAAuB5S,GAAGiR,YAAYl2E,EAAEilE,GAAG2Q,kBAAkB71E,EAAE4C,EAAE,EAAE,GAAGrB,KAAKy2E,kBAAkBz2E,KAAKu2E,uBAAuB5S,GAAGiR,YAAYl2E,EAAEilE,GAAG4Q,gBAAgB91E,EAAE4C,EAAE,EAAE,EAAE,GAAGrB,KAAK02E,kBAAkB12E,KAAKu2E,uBAAuB5S,GAAGiR,YAAYl2E,EAAEilE,GAAG6Q,gBAAgB/1E,EAAE4C,EAAE,EAAE,EAAE,GAAGrB,KAAK22E,YAAYhT,GAAGiR,YAAYl2E,EAAEilE,GAAG8Q,QAAQz0E,KAAK42E,OAAOp4E,EAAEoxE,cAAc5vE,KAAKgyE,aAAazjE,EAAEsoE,yBAAyB,CAACjS,EAAE8E,EAAE8B,IAAIxrE,KAAK82E,0BAA0BlS,EAAE8E,EAAE8B,EAAEj9D,EAAEwoE,aAAanS,GAAG,EAAE4G,GAAG,GAAG2G,eAAepjE,uBAAuBvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,SAASO,EAAE,CAAC2tE,EAAE5tE,EAAE4C,IAAI5C,EAAEZ,GAAGY,EAAEyC,EAAEE,EAAE5C,EAAEwrE,OAAOqC,EAAEluE,EAAEM,EAAEN,EAAEkD,EAAElD,aAAaoQ,EAAEsoE,wBAAwBn4E,GAAGqQ,UAAUvQ,EAAE0C,SAASrD,EAAEW,EAAEwB,KAAKg3E,UAAUx4E,EAAE,EAAE0C,GAAGE,EAAEF,EAAElB,KAAKg3E,UAAU91E,EAAE1C,EAAE,GAAGL,EAAE6B,KAAKi3E,mBAAmBp5E,EAAEuD,GAAG1C,EAAEsB,KAAKk3E,WAAWr5E,EAAEuD,GAAG3C,EAAEuB,KAAKm3E,aAAat5E,EAAEuD,GAAGC,EAAErB,KAAKmyE,YAAYh0E,EAAEO,EAAED,UAAUmlE,GAAGx3D,OAAOvO,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,GAAG0N,OAAOvQ,EAAE0C,EAAErD,UAAUmC,KAAK4K,OAAOpM,EAAE0C,EAAErD,EAAEmC,KAAK8xE,UAAUtzE,EAAEX,IAAIkR,OAAOvQ,EAAE0C,EAAErD,EAAEuD,SAASjD,EAAEiD,EAAEg2E,SAAS14E,EAAEwC,EAAElB,KAAKg3E,UAAU91E,EAAErD,EAAEW,GAAGC,EAAE2C,EAAEi2E,SAASh2E,EAAErB,KAAKs3E,eAAen5E,EAAEO,EAAED,GAAGL,EAAE4B,KAAKu3E,YAAYp5E,EAAEO,EAAED,GAAG6C,EAAEtB,KAAKw3E,wBAAwBt2E,GAAG,EAAEE,EAAE+wE,oBAAoB7O,GAAG14D,OAAOvJ,EAAEjD,EAAEgD,EAAEq8C,gBAAgBr8C,EAAEs8C,QAAQp8C,EAAEF,EAAEu7B,WAAW5tB,YAAYvQ,EAAE0C,EAAErD,SAASuD,EAAE8sE,GAAGuJ,MAAMj5E,EAAE0C,EAAErD,GAAGM,EAAE6B,KAAK42E,OAAO9mE,OAAO1O,GAAG1C,EAAEsB,KAAK42E,OAAO35B,OAAO77C,GAAG3C,EAAEuB,KAAK42E,OAAO15B,WAAW97C,UAAUsiE,GAAGt3D,OAAOjO,EAAEO,EAAED,GAAGsQ,UAAUvQ,EAAE0C,EAAErD,UAAU,EAAEmC,KAAKk1E,YAAYlL,OAAOxrE,EAAE0C,EAAErD,GAAGkR,eAAevQ,EAAE0C,EAAErD,UAAUmC,KAAKg1E,iBAAiBhL,OAAOxrE,EAAE0C,EAAErD,GAAGkR,YAAYvQ,EAAE0C,EAAErD,UAAUmC,KAAKi1E,cAAcjL,OAAOxrE,EAAE0C,EAAErD,GAAGkR,mBAAmBvQ,EAAE0C,UAAUlB,KAAKm1E,qBAAqBnL,OAAOxrE,EAAE,EAAE0C,GAAG6N,WAAWvQ,EAAE0C,UAAUlB,KAAKo1E,aAAapL,OAAOxrE,EAAE,EAAE0C,GAAG6N,aAAavQ,EAAE0C,UAAUlB,KAAKq1E,eAAerL,OAAOxrE,EAAE,EAAE0C,GAAG6N,oBAAoBvQ,EAAE0C,EAAErD,SAASuD,EAAEpB,KAAKgyE,UAAUxzE,GAAGL,EAAEN,EAAEmC,KAAKs2E,kBAAkB93E,GAAG,OAAOE,EAAEb,EAAEmC,KAAKw2E,qBAAqBh4E,GAAG,IAAI,EAAEC,EAAEZ,EAAEmC,KAAKy2E,kBAAkBj4E,GAAG,IAAI,EAAE6C,EAAExD,EAAEmC,KAAK02E,kBAAkBl4E,GAAG,IAAI,QAAQ,CAAC+P,EAAEm7D,EAAEtrE,SAASkD,EAAEF,OAAOE,EAAEe,GAAE,IAAIf,KAAK,GAAGA,EAAEA,EAAE,EAAEA,EAAEA,EAAEA,EAAE,GAAGnD,KAAK,EAAE,OAAO0mE,EAdzmT,SAAWrmE,EAAE0C,EAAErD,EAAEuD,EAAEjD,UAAUgF,GAAE/B,EAAEjD,EAAE+nE,GAAE1nE,EAAE0C,EAAErD,IAckkT65E,CAAEh5E,OAAO,EAAE,IAAI,IAAIkmE,EAAEj8D,KAAKwkE,IAAI,IAAI1uE,KAAKomE,EAAEmI,EAAErkE,KAAKwkE,IAAI,IAAI9rE,KAAKwjE,IAAIl8D,KAAKkN,IAAIvU,EAAEqH,KAAKD,IAAIk8D,EAAEoI,WAAW1rE,GAAGJ,EAAEqN,EAAEm7D,EAAEtrE,GAAGkD,EAAE,EAAE,KAAKa,GAAE+iE,KAAKn2D,0BAA0BvQ,EAAE0C,EAAErD,EAAEuD,SAASjD,EAAE6B,KAAK80E,aAAa9K,OAAOxrE,EAAE0C,EAAErD,UAAUmC,KAAK23E,mBAAmBn5E,EAAE0C,EAAErD,EAAEuD,EAAEjD,GAAG6B,KAAK60E,qBAAoB,GAAI9lE,mBAAmBvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,OAAOuB,KAAKk7B,SAAS20C,oBAAoB,OAAOxD,EAAE5tE,EAAEuB,KAAK43E,kBAAkBx2E,EAAE87C,WAAW1+C,EAAEX,GAAG,EAAEktE,EAAE/qE,KAAKw3E,wBAAwBt2E,EAAEE,GAAGoF,EAAEpF,EAAE67C,UAAU8tB,MAAMvkE,EAAE,EAAE,EAAEA,EAAEA,MAAMnF,MAAMjD,EAAE,OAAOM,GAAGP,OAAO,OAAOqtE,EAAErtE,EAAE,OAAOkuE,EAAErsE,KAAK63E,gBAAgBr5E,EAAE0C,EAAErD,GAAG+sE,EAAE5qE,KAAK83E,sBAAsBt5E,EAAE0C,EAAErD,GAAGyD,EAAEtB,KAAK+3E,eAAev5E,EAAE0C,EAAErD,GAAGQ,EAAEsK,KAAKkN,IAAIw2D,EAAE/qE,EAAEspE,MAAMY,EAAE,IAAIntE,MAAM,OAAO25E,EAAEh4E,KAAKi4E,oBAAoBz5E,EAAE0C,EAAErD,KAAMm6E,EAAE,GAAK,GAAUh4E,KAAKk4E,UAAU15E,EAAE0C,EAAErD,GAAGm6E,EAAE70E,GAAE,GAAG,EAAE,KAAKqoE,SAAS2M,EAAEn4E,KAAKo4E,eAAe55E,EAAE0C,EAAErD,KAAKmC,KAAKq4E,WAAW75E,EAAE0C,EAAErD,GAAGO,EAAEuK,KAAKkN,IAAIxX,EAAE85E,EAAEvN,WAAWzsE,EAAEkE,GAAElE,EAAEkD,EAAEjD,GAAKiE,GAAElE,EAAE6B,KAAKs4E,WAAWn6E,EAAE+C,EAAEsiE,GAAG2G,WAAWnqE,KAAKk7B,eAAe,IAAInsB,kBAAkBvQ,EAAE0C,EAAErD,MAAM,IAAAW,SAAa,QAAQ4C,EAAEpB,KAAK22E,YAAY3M,OAAO,KAAK9oE,EAAE,EAAE,KAAKrD,UAAUuD,EAAE,EAAE5C,EAAE4C,EAAE5C,EAAE,EAAE4C,EAAE2N,wBAAwBvQ,EAAE0C,UAAU,EAAE1C,EAAE,IAAI0C,EAAE4O,OAAOf,gBAAgBvQ,EAAE0C,EAAErD,UAAUmC,KAAKm2E,iBAAiBnM,OAAO,IAAIxrE,EAAE,GAAG0C,EAAE,IAAIrD,GAAG,IAAIsF,GAAE,GAAG,KAAK,IAAI,IAAI4L,sBAAsBvQ,EAAE0C,EAAErD,SAASuD,EAAEpB,KAAKi2E,wBAAwBjM,OAAOxrE,EAAE0C,EAAErD,GAAGM,EAAEmI,GAAEtG,KAAKk2E,4BAA4BlM,OAAOxrE,EAAE0C,EAAErD,MAAM,EAAE,EAAE,aAAa8K,KAAKwkE,IAAI/rE,IAAIjD,EAAE4Q,eAAevQ,EAAE0C,EAAErD,SAASuD,EAAEpB,KAAKu4E,0BAA0Bv4E,KAAK21E,2BAA2B3L,OAAO,EAAExrE,EAAE0C,EAAE,EAAErD,IAAIM,EAAEmI,GAAEtG,KAAK41E,8BAA8B5L,OAAO,EAAExrE,EAAE0C,EAAE,EAAErD,MAAM,EAAE,GAAG,KAAKa,EAAEsB,KAAKw4E,iBAAiBx4E,KAAKy1E,iBAAiBj3E,EAAE0C,EAAErD,EAAEuD,GAAG3C,EAAEkK,KAAKwkE,IAAI/rE,EAAE1C,GAAG,KAAKP,EAAEkD,EAAEmiE,GAAGyM,SAASjwE,KAAKk7B,UAAU98B,EAAEkI,GAAEtG,KAAK01E,8BAA8B1L,OAAOxrE,EAAE,EAAEX,MAAM,EAAEwD,EAAE,GAAGC,EAAEqH,KAAKwkE,IAAI/uE,EAAE8C,EAAE,GAAG,EAAE/C,SAASkE,GAAEsG,KAAKD,IAAIpH,EAAE7C,MAAM,GAAGsQ,eAAevQ,EAAE0C,EAAErD,SAASuD,EAAEpB,KAAKy4E,0BAA0Bz4E,KAAK+1E,2BAA2B/L,OAAO,EAAExrE,EAAE0C,EAAE,EAAErD,IAAIM,EAAEmI,GAAEtG,KAAKg2E,8BAA8BhM,OAAOxrE,EAAE0C,EAAErD,MAAM,EAAE,KAAK,MAAMa,EAAEsB,KAAKw4E,iBAAiBx4E,KAAK61E,kBAAkBr3E,EAAE0C,EAAErD,EAAEuD,GAAG3C,EAAEkK,KAAKwkE,IAAI/rE,EAAE1C,GAAGP,EAAEkD,EAAErB,KAAKw4E,iBAAiBx4E,KAAK81E,kBAAkBt3E,EAAE0C,EAAErD,EAAEuD,GAAGhD,EAAEuK,KAAKwkE,IAAI/rE,EAAEC,GAAGlD,SAASkE,GAAEsG,KAAKD,IAAIjK,EAAEL,MAAM,GAAG2Q,0BAA0BvQ,UAAUA,OAAO,GAAGA,MAAM,IAAIA,EAAE,GAAG,EAAEA,EAAE,IAAI,EAAE,EAAEuQ,0BAA0BvQ,UAAUA,MAAM,IAAIA,EAAE,EAAE,EAAEA,EAAE,GAAG,IAAI,EAAEuQ,iBAAiBvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,UAAUK,EAAEwrE,OAAO9oE,EAAE/C,EAAEN,EAAEM,EAAEiD,EAAEjD,GAAG4Q,oBAAoBvQ,EAAE0C,EAAErD,UAAU,EAAE0uE,GAAEvsE,KAAKo2E,WAAWpM,OAAOxrE,EAAE,EAAE0C,EAAErD,IAAIkR,UAAUvQ,EAAE0C,EAAErD,UAAUwE,GAAErC,KAAKq2E,YAAYrM,OAAOxrE,EAAE0C,EAAE,IAAIrD,GAAG,OAAO,GAAGkR,WAAWvQ,EAAE0C,EAAErD,SAASuD,EAAEkF,GAAEtG,KAAKu1E,wBAAwBvL,OAAOxrE,EAAE0C,EAAErD,MAAM,EAAE,EAAE,GAAGM,EAAEmI,GAAEtG,KAAKw1E,yBAAyBxL,OAAOxrE,EAAE0C,EAAErD,MAAM,EAAE,EAAE,KAAKa,EAAEsB,KAAKs1E,YAAYtL,OAAO,GAAGxrE,EAAE,GAAG0C,EAAE,GAAGrD,GAAGY,EAAEkK,KAAK83D,IAAItiE,EAAE,MAAMO,EAAE0C,UAAU3C,GAAG,IAAI2Z,OAAOsgE,iBAAiBj6E,EAAEsQ,WAAWvQ,EAAE0C,SAASrD,EAAEqD,EAAEsiE,GAAGyM,SAASjwE,KAAKk7B,iBAAiB18B,EAAEilE,GAAG/3C,MAAM1rB,KAAKk7B,SAASw0C,SAASlxE,EAAEglE,GAAGwM,WAAWhwE,KAAKk7B,UAAUr9B,GAAK4lE,GAAG/3C,MAAM1rB,KAAKk7B,SAASy0C,YAAYnxE,EAAEX,GAAGkR,2BAA2BvQ,EAAE0C,EAAErD,SAASuD,EAAEoiE,GAAGyM,SAASjwE,KAAKk7B,UAAUsoC,GAAGwM,WAAWhwE,KAAKk7B,UAAU/8B,EAAEqlE,GAAGyM,SAASjwE,KAAKk7B,UAAUx8B,EAAE8kE,GAAG2G,WAAWnqE,KAAKk7B,kBAAkBz8B,EAAE2C,EAAE3C,GAAGN,EAAEM,GAAG,EAAE,OAAO+sE,EAAE/sE,EAAEC,KAAKsB,KAAK23E,mBAAmBn5E,EAAEgtE,EAAEtqE,EAAErD,YAAW,GAAG,IAAK,eAAe2tE,SAASpzD,OAAOugE,mBAAoJ/U,QAAQ,KAA3Hx3D,OAAO,SAASmC,EAAErN,EAAErD,EAAEuD,EAAEjD,EAAEO,SAAS,CAAC04E,SAAS7oE,EAAE8oE,SAASn2E,EAAEu8C,gBAAgB5/C,EAAE8+B,UAAUv7B,EAAEs8C,QAAQv/C,EAAEg0E,YAAYzzE,KAAwbmlE,QAAQ,KAAhamH,SAAS,SAASz8D,OAAOrN,EAAErD,EAAEuD,EAAEjD,QAAQO,EAAE,UAAU2B,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,eAAU,IAASxC,EAAE8kB,YAAY,UAAUnjB,GAAEikE,WAAW5lE,EAAE8kB,iBAAY,IAAA3lB,EAAWA,EAAE,EAAE,IAAIY,QAAG,IAAAC,EAAW4yC,cAAsBuzB,EAAuB,UAAUxkE,GAAEikE,WAAW5lE,EAAE4yC,qBAAgB,IAASlwC,EAAEA,EAAE,KAAhEwjE,EAAEO,KAAKN,QAA4D,IAASnmE,EAAE6yC,UAAU,SAASszB,aAAaD,EAAEc,KAAKb,EAA7B,CAAgC,UAAUxkE,GAAEikE,WAAW5lE,EAAE6yC,kBAAa,IAASpzC,EAAEA,EAAE,GAAG,IAAI,EAAxM,IAAS0mE,EAAqMpmE,IAAyFqlE,QAAQ,KAAlE13D,OAAO,SAASmC,EAAErN,SAAS,CAACikE,KAAK52D,EAAEgqB,OAAOr3B,EAAEwkE,KAAKn3D,EAAErN,EAAE,IAAkB,SAAS6N,YAAYvQ,EAAE0C,EAAErD,QAAQ+6E,KAAKp6E,EAAEwB,KAAK64E,aAAa33E,EAAElB,KAAKu8B,OAAOirC,GAAEp7D,OAAOvO,GAAG2rE,iBAAiBxpE,KAAK84E,aAAanV,GAAGiR,YAAY50E,KAAKu8B,OAAOonC,GAAG+Q,SAAS10E,KAAK+4E,sBAAsBpV,GAAGiR,YAAY50E,KAAKu8B,OAAOonC,GAAGgR,mBAAmB30E,KAAKg5E,kBAAkB,IAAIv7D,IAAI1O,aAAavQ,EAAE0C,EAAErD,EAAEuD,SAASjD,EAAE8D,GAAEukE,UAAUhoE,EAAEgtD,KAAK9sD,EAAEuD,GAAEwkE,UAAUjoE,EAAEgtD,KAAK/sD,EAAE,IAAIw6E,GAAGj5E,KAAKxB,EAAE0C,EAAErD,EAAEuD,GAAGhD,EAAE4B,KAAK44E,KAAKn6E,WAAWmmE,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAE,OAAO8E,EAAEvrE,EAAEymE,UAAUkI,EAAE,EAAEA,EAAE,EAAEA,GAAG,EAAE,OAAOtB,EAAE9sE,EAAEouE,IAAIoM,SAASxP,EAAE8B,OAAO9qE,EAAE,EAAEY,EAAE8W,OAAOsgE,iBAAiBr6E,EAAE+Z,OAAOugE,yBAAyB5L,EAAEvuE,EAAEknE,KAAKqH,GAAGvuE,EAAE2mE,KAAK4H,GAAG,EAAE,OAAOV,EAAEvlE,GAAEsF,OAAOs9D,EAAEqD,EAAEvB,GAAGrqE,EAAE3C,EAAEsnE,cAAcuG,MAAMlrE,EAAEwP,OAAOxO,GAAE+iE,KAAK,GAAG,EAAE5jE,EAAE8W,OAAOsgE,6BAA6Bv3E,EAAEg4E,UAAU,KAAK/gE,OAAOsgE,qBAAqB3L,EAAE,eAAe1uE,GAAG0uE,EAAE,GAAG30D,OAAOsgE,yBAAyBzxE,EAAE8lE,EAAE,EAAE9lE,GAAGzI,EAAE2mE,KAAKl+D,GAAG,EAAE,OAAOmyE,EAAE56E,EAAEsnE,cAAch/D,GAAEsF,OAAOs9D,EAAEziE,EAAEukE,OAAO4N,EAAEzoE,OAAOxO,GAAE+iE,MAAMkU,EAAED,UAAU,GAAGlyE,EAAE,aAAa,QAAQvD,EAAEqpE,EAAE1uE,EAAE,MAAM8C,EAAEwP,OAAO3Q,KAAK64E,yBAAyBQ,QAAQ34E,EAAEgD,EAAEpC,EAAEyrE,SAASnuE,EAAER,EAAEsrE,EAAEqD,EAAEvB,MAAMhtE,EAAEwnE,cAAcqG,EAAEztE,MAAMmQ,gBAAgBvQ,EAAE0C,UAAU,KAAKlB,KAAK84E,aAAa9O,OAAOxrE,EAAE,EAAE0C,GAAG,EAAE,IAAIlB,KAAKu8B,OAAOgvC,GAAG/sE,EAAE,EAAE0C,GAAGinE,aAAap5D,oBAAoBvQ,EAAE0C,UAAUlB,KAAK+4E,sBAAsB/O,OAAOxrE,EAAE,EAAE0C,GAAG6N,UAAUvQ,UAAU0F,GAAElE,KAAKg5E,kBAAkBx6E,GAAG,IAAIwB,KAAKu8B,OAAOqtC,WAAWprE,MAAM,SAASuQ,YAAYvQ,EAAE0C,EAAErD,EAAEuD,EAAEjD,QAAQm7E,OAAO96E,EAAEwB,KAAKw2D,MAAMt1D,EAAElB,KAAKu5E,WAAW17E,EAAEmC,KAAKC,QAAQmB,EAAEpB,KAAKw5E,SAASr7E,EAAE6B,KAAKy5E,OAAO,EAAEz5E,KAAK05E,OAAO,EAAE15E,KAAK25E,OAAO,EAAE35E,KAAK45E,gBAAgB,EAAE55E,KAAK65E,gBAAgB,EAAE75E,KAAK85E,aAAa,EAAE95E,KAAK+5E,YAAY,EAAE/5E,KAAKiiB,MAAM,IAAI,GAAGjiB,KAAKg6E,iBAAiB,IAAI,EAAEh6E,KAAKi6E,gBAAgB,IAAI,EAAElrE,SAASvQ,EAAE0C,QAAQu4E,OAAOj7E,EAAEwB,KAAK25E,OAAOz4E,EAAElB,KAAK85E,aAAa95E,KAAKs5E,OAAOY,gBAAgB17E,EAAE0C,GAAGlB,KAAKg6E,iBAAiBG,IAAG,IAAIn6E,KAAKs5E,OAAOc,oBAAoB57E,EAAE0C,KAAKlB,KAAKi6E,gBAAgBE,IAAG,IAAIn6E,KAAKq6E,yBAAyB77E,EAAE0C,KAAK6N,QAAQvQ,EAAE0C,EAAErD,EAAEuD,QAAQs4E,OAAOt4E,EAAEpB,KAAK45E,gBAAgBp7E,EAAEwB,KAAK65E,gBAAgB34E,EAAElB,KAAK+5E,YAAYl8E,EAAEmC,KAAKiiB,MAAMk4D,IAAG,IAAIn6E,KAAKw5E,SAAS1yE,GAAEsF,OAAOpM,KAAKy5E,OAAOz5E,KAAK05E,OAAO15E,KAAK25E,WAAW5qE,yBAAyBvQ,EAAE0C,SAASrD,EAAEW,GAAG,EAAE4C,EAAEF,GAAG,EAAE/C,EAAE6B,KAAKu5E,WAAWnH,2BAA2Bv0E,GAAG,EAAEuD,GAAG,GAAG1C,EAAEsB,KAAKu5E,WAAWnH,2BAA2Bv0E,EAAE,GAAG,EAAEuD,GAAG,GAAG3C,EAAEuB,KAAKu5E,WAAWnH,2BAA2Bv0E,GAAG,EAAEuD,EAAE,GAAG,GAAGC,EAAErB,KAAKu5E,WAAWnH,2BAA2Bv0E,EAAE,GAAG,EAAEuD,EAAE,GAAG,UAAUuH,KAAK2zB,MAAMgtC,OAAM9qE,GAAG,OAAO0C,GAAG,GAAG/C,EAAEO,EAAED,EAAE4C,IAAIrB,KAAK85E,aAAa,IAAI,SAASt7E,cAAc+P,SAAS,IAAI,IAAIA,aAAaA,oBAAoBm7D,EAAEn7D,EAAEpF,QAAQ07D,EAAED,WAAW,CAACC,EAAEiI,EAAEtB,eAAertE,KAAKurE,EAAE,OAAOsD,EAAE7uE,EAAE0mE,EAAEiI,EAAEtB,MAAMwB,SAASA,gBAAgBz+D,EAAEq2D,aAAa,CAAC4G,EAAErtE,EAAEO,QAAQ6P,EAAEm7D,UAAU9E,EAAE8E,EAAF9E,CAAK4G,EAAErtE,EAAEO,MAAM47E,KAAK,IAAI,OAAO97E,EAAEwsE,SAAS,SAAS7sE,OAAOO,EAAED,EAAE4C,QAAQjD,EAAE,UAAUiC,GAAEqkE,WAAWvmE,UAAK,IAASO,EAAEA,EAAE,UAAU,UAAU2B,GAAEmkE,WAAWpmE,EAAEc,aAAQ,IAAST,OAAE,EAAOA,EAAEqE,QAAQ,cAAc,SAAS,eAAe5B,EAAEiB,GAAE6oE,SAAS5sE,EAAEwjD,mBAAmB,kBAAkB/jD,EAAE,UAAUwC,GAAEskE,UAAUvmE,EAAEg/C,SAAS5+C,EAAEwsE,iBAAY,IAAA3pE,EAAWA,EAAE,QAAQ,mBAAmBD,EAAE4iE,GAAGgH,SAAS5sE,EAAE0jD,SAAStjD,EAAEwsE,SAAS5sE,EAAE2jD,kBAAkBvjD,EAAE87E,MAAM97E,EAAE8gB,MAAMpe,EAAE1C,EAAE4+C,SAASv/C,EAAEW,EAAE8tB,UAAUlrB,EAAjqB,CAAoqB2iE,QAAQ,KAAK,SAASvlE,cAAmE+P,SAASq2D,EAAE,IAAItqD,IAAI/L,aAAaq2D,EAAE2V,IAAI1V,EAAE5iD,oBAAoB1T,cAAcA,EAAEq2D,cAAcr2D,EAAEq2D,EAAE8E,EAAE8B,oBAAoBa,EAAEb,EAAE9qE,EAAEm5E,gBAAgBn5E,EAAEk5E,gBAAgBhP,EAAEhG,EAAElkE,EAAEo5E,aAAa,EAAE/O,EAAE,IAAIrB,EAAE,EAAEpjE,GAAE5F,EAAEs5E,sBAAsB,EAAE,EAAEtQ,UAAU2C,GAAG,EAAE99D,EAAEq8D,EAAEG,cAAcx8D,EAAEq2D,EAAE8E,oBAAoBhpE,EAAEkkE,EAAE4G,EAAEvrE,SAASosE,EAAE3C,EAAE8B,EAAEvrE,YAAYurE,EAAEkO,QAAQh5E,SAAQ,KAAM8qE,EAAEkO,QAAQrN,SAAQ,QAASzB,EAAEY,EAAE8N,OAAOkB,UAAUjsE,GAAGw8D,EAAEzkE,GAAEklE,EAAEkO,OAAOh5E,EAAE2rE,EAAE,EAAE,UAAUzB,EAAE6P,YAAY1P,cAAcx8D,EAAEq2D,EAAE8E,iBAAiB8B,EAAEuO,cAAc3hE,OAAOsgE,wBAAuB,QAASh4E,EAAEgpE,EAAE8B,EAAEoO,gBAAgB,SAASpO,EAAEkO,OAAOh5E,GAAG8qE,EAAEuO,YAAYxrE,EAAEi9D,EAAEsO,aAAalV,cAAcr2D,EAAEq2D,EAAE8E,oBAAoBhpE,EAAEgpE,EAAE8B,EAAEoO,gBAAgB,SAASpO,EAAEkO,OAAOh5E,GAAG6N,EAAEi9D,EAAEvrE,SAASurE,EAAEsO,aAAalV,KAAK8V,MAAM,KAAI,EAAGl8E,EAAEm8E,KAAK,KAAI,EAAGn8E,EAAEwsE,SAAS,SAASpG,OAAOxmE,EAAEkD,EAAEjD,EAAE8C,EAAEuC,EAAE9E,EAAE+E,EAAEpC,EAAEI,EAAE8B,EAAE/B,EAAEinE,QAAQC,EAAE,UAAUvoE,GAAEqkE,WAAWE,UAAK,IAASxmE,EAAEA,EAAE,UAAU,UAAUiC,GAAEmkE,WAAWoE,EAAE1pE,aAAQ,IAASoC,OAAE,EAAOA,EAAEwB,QAAQ,cAAc,SAAS,sCAAsCyL,EAAEmrE,QAAQnrE,EAAE0rE,sBAAsB,eAAep8E,EAAE,UAAUwC,GAAEskE,UAAUiE,EAAE3mB,kBAAkB6qB,SAAS,UAAUzsE,GAAEmkE,WAAWj2D,UAAK,IAASu+D,EAAEA,EAAE,aAAQ,IAASzuE,EAAEA,EAAE,QAAQ,aAAa+C,EAAE5C,EAAEwsE,SAASpC,EAAEvmB,aAAa,qBAAqBlkD,EAAE,UAAUkC,GAAEkkE,QAAQqE,EAAE94D,eAAU,IAAS3O,EAAEA,EAAE,EAAE,UAAUd,GAAEokE,YAAYmE,EAAEpmB,0BAAqB,IAAA9+C,GAAYA,EAAE,UAAUrD,GAAEkkE,QAAQqE,EAAE/kB,8BAAyB,IAAAjlD,EAAWA,EAAE,EAAE,YAAAyB,GAAcmkE,WAAWoE,EAAErmB,mBAAmB,2BAA2B7jD,EAAE,UAAU2B,GAAEmkE,WAAWoE,EAAEjmB,oBAAe,IAASh/C,EAAEA,EAAE,GAAGkgE,GAAGmH,SAASpC,EAAEhmB,mBAAmBihB,GAAGmH,SAASpC,EAAE/lB,yBAAyB,eAAepkD,EAAE,UAAU4B,GAAEkkE,QAAQqE,EAAE94D,eAAU,IAASvO,EAAEA,EAAE,EAAE,UAAUlB,GAAEkkE,QAAQqE,EAAE7lB,iCAA4B,IAASphD,EAAEA,EAAE,EAAE,UAAUtB,GAAEokE,YAAYmE,EAAEpmB,0BAAqB,IAAS/+C,GAAGA,OAAO,iBAAiBpC,EAAEwiE,GAAGmH,SAASpC,EAAE1lB,QAAQ,UAAU7iD,GAAEkkE,QAAQqE,EAAE7lB,iCAA4B,IAASrhD,EAAEA,EAAE,EAAE,UAAUrB,GAAEokE,YAAYmE,EAAEpmB,0BAAqB,IAAAmmB,GAAYA,UAAUnqE,EAAEk8E,OAAOl8E,EAAEo8E,6CAAz8DrsE,EAAEmrE,QAAQnrE,EAAE0rE,mBAAu9Dz7E,EAAEyjB,MAAMpkB,EAAEW,EAAEq8E,IAAIz5E,EAAE5C,EAAEs8E,WAAW38E,EAAEK,EAAEu8E,iBAAiBr8E,EAAEF,EAAEw8E,MAAMv8E,EAAED,EAAEy8E,OAAO55E,EAA/kE,CAAklE2iE,QAAQ,KAAK,SAASj1D,YAAYvQ,EAAE0C,EAAErD,QAAQq9E,YAAYh6E,EAAElB,KAAKk7B,SAASr9B,EAAEmC,KAAK0xE,QAAQ,IAAIyJ,GAAGt9E,EAAEm6B,MAAMn6B,EAAEu9E,kBAAkB58E,EAAEX,EAAEw9E,oBAAoBr7E,KAAKs7E,gBAAgB,IAAI79D,IAAIzd,KAAKu7E,aAAahY,GAAGgM,SAAS,CAAC,CAAChhE,EAAEq2D,EAAE8E,EAAEtoE,IAAImN,EAAEitE,gCAAgC5W,EAAE8E,EAAEtoE,KAAKpB,KAAKy7E,cAAc,IAAIC,GAAG79E,EAAE89E,YAAY99E,EAAEg7E,aAAar6E,GAAGuQ,KAAKvQ,OAAO0C,QAAQrD,EAAE8K,KAAKD,IAAIlK,EAAE2mE,KAAKnlE,KAAKk7B,SAASlD,MAAMmtC,MAAM/jE,EAAEuH,KAAKkN,IAAIrX,EAAEknE,KAAK1lE,KAAKk7B,SAASlD,MAAMmtC,KAAKnlE,KAAKk7B,SAASlD,MAAMO,QAAQp6B,EAAEqlE,GAAG0G,UAAUlqE,KAAKk7B,SAASlD,OAAOt5B,EAAE8kE,GAAG2G,WAAWnqE,KAAKk7B,SAASlD,OAAOv5B,EAAEkK,KAAK2zB,MAAM,GAAGn+B,GAAGkD,EAAEsH,KAAK2zB,MAAMz+B,EAAEa,GAAGN,EAAEuK,KAAK2zB,SAASz+B,GAAGa,GAAG4C,EAAEW,GAAEukE,UAAUhoE,EAAEgtD,KAAKntD,EAAE4D,GAAEwkE,UAAUjoE,EAAEgtD,KAAKrqD,EAAEnB,KAAK47E,cAAcp9E,KAAK6zE,kCAAkC3I,EAAE,EAAEA,EAAEjrE,EAAEirE,GAAG,EAAE,GAAG4I,aAAa5I,WAAW8B,EAAE,EAAEA,EAAE/sE,EAAE+sE,GAAG,EAAE,KAAKZ,EAAEpsE,EAAEunE,mBAAmBvnE,EAAEinE,cAAc,WAAW/hE,EAAEtF,EAAE,EAAEsF,GAAG,EAAEA,GAAG,EAAE,GAAG6uE,aAAa7uE,EAAE8nE,WAAWhlE,EAAE9H,EAAE,EAAE8H,GAAG,EAAEA,GAAG,EAAE,OAAO5H,KAAK8E,GAAGhF,EAAE8H,EAAE7C,EAAE,GAAG/E,EAAE2C,EAAE/C,EAAEqnE,gBAAgBjnE,KAAKinE,gBAAgB+E,EAAEiR,aAAat6E,MAAM/C,EAAEunE,mBAAmBxkE,UAAUI,EAAE6E,EAAE9H,IAAI8zE,WAAW7wE,WAAW4M,EAAE,EAAEA,EAAEpQ,EAAEoQ,GAAG,EAAE,OAAO89D,EAAE/qE,EAAEooE,EAAEvrE,EAAEoQ,EAAEw8D,EAAE,GAAGsB,EAAEyP,EAAEvtE,EAAEpQ,IAAIs0E,WAAWqJ,WAAWjX,EAAE,EAAEA,EAAE1mE,EAAE0mE,GAAG,EAAE,OAAOmI,EAAE3uE,EAAEmtE,EAAErtE,EAAE0mE,EAAEkX,EAAE,GAAG/O,EAAEmL,EAAEtT,EAAE1mE,IAAIu0E,WAAWyF,OAAO6D,EAAE,UAAUh8E,KAAKu7E,aAAap6E,EAAEkrE,EAAEztE,EAAEouE,UAAK,IAAA9rE,EAAWA,EAAElB,KAAKk7B,SAAS29C,gBAAgBmD,EAAErrE,OAAOxO,GAAE+iE,KAAK,QAAQllE,KAAKk7B,SAAS+gD,qBAAqBj8E,KAAKk7B,SAASghD,eAAelW,cAAc+E,EAAEpnE,EAAEo4E,EAAEC,SAASrJ,cAAc5jE,aAAavQ,EAAE0C,EAAE,0BAA0BrD,EAAEmC,KAAK47E,cAAcp9E,GAAG4C,EAAE0iE,GAAG13D,OAAOpM,KAAKk7B,SAASlD,MAAMmtC,KAAKnlE,KAAKk7B,SAASlD,MAAMO,aAAakjD,cAAcU,aAAa39E,EAAEX,EAAEuD,GAAG,IAAIF,IAAI6N,cAAcvQ,UAAU0F,GAAElE,KAAKs7E,gBAAgBr5E,GAAEqkE,OAAO9nE,EAAEgtD,MAAM,WAAWtqD,EAAEyH,KAAKD,IAAIlK,EAAE2mE,KAAKnlE,KAAKk7B,SAASlD,MAAMmtC,MAAMtnE,EAAE8K,KAAKkN,IAAIrX,EAAEknE,KAAK1lE,KAAKk7B,SAASlD,MAAMmtC,KAAKnlE,KAAKk7B,SAASlD,MAAMO,QAAQn3B,EAAEoiE,GAAG0G,UAAUlqE,KAAKk7B,SAASlD,OAAO75B,EAAEqlE,GAAG2G,WAAWnqE,KAAKk7B,SAASlD,OAAOt5B,EAAEiK,KAAK2zB,MAAM,GAAGl7B,GAAG3C,EAAEkK,KAAK2zB,MAAMp7B,EAAE/C,GAAGkD,EAAEsH,KAAK2zB,SAASp7B,GAAG/C,GAAGC,EAAE6D,GAAEukE,UAAUhoE,EAAEgtD,KAAKlqD,EAAEW,GAAEwkE,UAAUjoE,EAAEgtD,YAAY,IAAI4wB,GAAG19E,EAAE2C,EAAE5C,EAAEuB,KAAK0xE,QAAQtzE,EAAEkD,GAAG,IAAI,GAAGtB,KAAKk7B,cCbhggC,IAAImhD,IDasliCpY,QAAQ,KAArkC+G,SAAS,SAASz8D,OAAOrN,EAAErD,EAAEuD,EAAEjD,EAAEO,EAAED,EAAE4C,EAAEjD,EAAEkD,EAAEjD,EAAE8C,QAAQuC,EAAE,UAAUrD,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,SAAS,CAACm7B,WAAW6nC,GAAG8G,SAAStnE,EAAE24B,YAAYs/C,YAAY5X,GAAGiH,SAAStnE,EAAEy5C,cAAcnlB,MAAMwrC,GAAGwH,SAAStnE,EAAEs0B,OAAO6gD,aAAa12E,GAAE6oE,SAAStnE,EAAEs1B,eAAekjD,aAAa/5E,GAAE6oE,SAAStnE,EAAEu1B,eAAeqjD,oBAAoB,UAAUj8E,GAAEkkE,QAAQ7gE,EAAEk0B,8BAAyB,IAAS/5B,EAAEA,EAAE,EAAE0+E,qBAAqB,UAAUl8E,GAAEkkE,QAAQ7gE,EAAEm0B,+BAA0B,IAAAz2B,EAAWA,EAAE,EAAE66E,SAAS,UAAU57E,GAAEkkE,QAAQ7gE,EAAEo0B,kBAAa,IAAA35B,EAAWA,EAAE,EAAEq+E,qBAAqB,UAAUn8E,GAAEokE,YAAY/gE,EAAEq0B,+BAA0B,IAAAr5B,GAAYA,EAAE+9E,gBAAgB,UAAUp8E,GAAEokE,YAAY/gE,EAAEisC,yBAAoB,IAAAlxC,GAAYA,EAAE28E,kBAAkB,UAAU/6E,GAAEokE,YAAY/gE,EAAEgsC,4BAAuB,IAASruC,GAAGA,EAAEq7E,iBAAiB,UAAUr8E,GAAEokE,YAAY/gE,EAAEksC,0BAAqB,IAAAxxC,GAAYA,EAAEu+E,gBAAgB,UAAUt8E,GAAEokE,YAAY/gE,EAAEq4C,0BAAqB,IAASz6C,GAAGA,EAAE4wE,mBAAmB,UAAU7xE,GAAEokE,YAAY/gE,EAAEo4C,6BAAwB,IAASz9C,GAAGA,EAAEg9E,mBAAmB,UAAUh7E,GAAEokE,YAAY/gE,EAAE49C,6BAAwB,IAASngD,GAAGA,KAA0oB+iE,QAAQ,KAAlnB8G,SAAS,SAASz8D,OAAOrN,QAAQrD,EAAE,UAAUwC,GAAEqkE,WAAWn2D,UAAK,IAASrN,EAAEA,EAAE,SAAS,CAACmqC,WAAWhrC,GAAE2kE,QAAQnnE,EAAEwtC,WAAWhrC,GAAEqkE,oBAAoBE,EAAE8E,EAAEtoE,QAAQ,CAACuiB,SAAS,UAAUtjB,GAAEkkE,QAAQM,EAAElhD,iBAAY,IAASihD,EAAEA,EAAE,EAAE1rC,OAAO,UAAU74B,GAAEkkE,QAAQM,EAAE3rC,eAAU,IAAAwwC,EAAWA,EAAE,EAAEjoD,MAAM,UAAUphB,GAAEkkE,QAAQM,EAAEpjD,cAAS,IAAArgB,EAAWA,EAAE,MAAMi7B,WAAWh8B,GAAEykE,QAAQjnE,EAAEw+B,oBAAoBuoC,IAAiBkI,EAAEpD,EAAEtoE,WAAoL,UAAUf,GAAEqkE,WAAWG,UAAK,IAASD,EAAEA,EAAE,GAArN,CAACt5B,QAAQ,UAAUjrC,GAAEkkE,QAAQqY,EAAEtxC,gBAAW,IAASwhC,EAAEA,EAAE,EAAEvhC,WAAW,UAAUlrC,GAAEkkE,QAAQqY,EAAErxC,mBAAc,IAAAm+B,EAAWA,EAAE,EAAEl+B,KAAK,UAAUnrC,GAAEkkE,QAAQqY,EAAEpxC,aAAQ,IAAApqC,EAAWA,EAAE,QCXvqjC,IAAIy7E,GAAoB,IAAIzlB,YAAY,QAAS,CAAE0lB,WAAW,EAAMC,OAAO,IAE3EF,GAAkBxlB,SAElB,IAAI2lB,GAAuB,KAQ3B,YAA4BC,EAAKl5B,UACtB84B,GAAkBxlB,QAPI,OAAzB2lB,IAAiCA,GAAqB7+D,SAAWk+D,GAAKa,OAAO/+D,YACtD,IAAI5M,WAAW8qE,GAAKa,OAAO/+D,SAE/C6+D,IAI2CxzB,SAASyzB,EAAKA,EAAMl5B,IAG1E,MAAMo5B,GAAa,IAAIxxB,YAAY,GAE7ByxB,GAAe,IAAIC,cAAcF,GAAWh/D,QAElD,IAAIm/D,GAAuB,KAC3B,qBACiC,OAAzBA,IAAiCA,GAAqBn/D,SAAWk+D,GAAKa,OAAO/+D,YACtD,IAAIk/C,WAAWgf,GAAKa,OAAO/+D,SAE/Cm/D,GAGX,IAAIC,GAAyB,KAC7B,qBACmC,OAA3BA,IAAmCA,GAAuBp/D,SAAWk+D,GAAKa,OAAO/+D,YACxD,IAAIq/D,aAAanB,GAAKa,OAAO/+D,SAEnDo/D,GAoCX,IAAIE,GAAkB,EAEtB,YAA6BC,EAAKC,SACxBV,EAAMU,EAAoB,EAAbD,EAAI7+E,oBACHsR,IAAIutE,EAAKT,EAAM,MACjBS,EAAI7+E,OACfo+E,EAsEX,IAAIW,GAAwB,KAQ5B,YAA4BF,EAAKC,SACvBV,EAAMU,EAAoB,EAAbD,EAAI7+E,eAPO,OAA1B++E,IAAkCA,GAAsBz/D,SAAWk+D,GAAKa,OAAO/+D,YACvD,IAAIwtC,YAAY0wB,GAAKa,OAAO/+D,SAEjDy/D,IAKYztE,IAAIutE,EAAKT,EAAM,MAChBS,EAAI7+E,OACfo+E,EAmBJ,YAA0BY,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAO1uE,EAAQmS,OACrHw8D,EAAOC,GAAoBb,EAAOxB,GAAKsC,mBACvCC,EAAOnB,GACPoB,EAAOH,GAAoBZ,EAAOzB,GAAKsC,mBACvCG,EAAOrB,GACPsB,EAAOL,GAAoBX,EAAO1B,GAAKsC,mBACvCK,EAAOvB,GACPwB,EAAOP,GAAoBV,EAAO3B,GAAKsC,mBACvCO,EAAOzB,GACP0B,EAAOT,GAAoBT,EAAO5B,GAAKsC,mBACvCS,EAAO3B,GACP4B,EAAOX,GAAoBR,EAAO7B,GAAKsC,mBACvCW,EAAO7B,GACP8B,EAAOb,GAAoBP,EAAO9B,GAAKsC,mBACvCa,EAAO/B,GACPgC,EAAOf,GAAoBN,EAAO/B,GAAKsC,mBACvCe,EAAOjC,GACPkC,EAAOjB,GAAoBL,EAAOhC,GAAKsC,mBACvCiB,EAAOnC,GACPoC,EAAOnB,GAAoBJ,EAAOjC,GAAKsC,mBACvCmB,EAAOrC,GACPsC,EAAQrB,GAAoBH,EAAOlC,GAAKsC,mBACxCqB,EAAQvC,GACRwC,EAAQvB,GAAoBF,EAAOnC,GAAKsC,mBACxCuB,EAAQzC,GACR0C,EAAQzB,GAAoB5uE,EAAQusE,GAAKsC,mBACzCyB,EAAQ3C,GACR4C,EAAQC,GAAmBr+D,EAAOo6D,GAAKsC,mBACvC4B,EAAQ9C,GACRv1E,EAAMm0E,GAAKmE,iBAAiB/B,EAAMG,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOC,EAAOE,UAClME,GAAcC,OAAOx4E,GA+BzB,YAAyB0oB,EAAM+vD,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,EAAcC,EAASC,MACjJ,GAAK1wD,QACZ2wD,EAAOpE,GAAW,GAClBqE,EAAQrE,GAAW,OACrB0B,EAAOH,GAAoBkC,EAAcvE,GAAKsC,mBAC9CG,EAAOrB,GACPsB,EAAOL,GAAoBoC,EAAczE,GAAKsC,mBAC9CK,EAAOvB,GACPwB,EAAOP,GAAoBsC,EAAc3E,GAAKsC,mBAC9CO,EAAOzB,GACP0B,EAAOT,GAAoBwC,EAAc7E,GAAKsC,mBAC9CS,EAAO3B,GACP4B,EAAOX,GAAoB0C,EAAc/E,GAAKsC,mBAC9CW,EAAO7B,GACP8B,EAAOb,GAAoB4C,EAAcjF,GAAKsC,mBAC9Ca,EAAO/B,GACPv1E,EAAMm0E,GAAKoF,gBAAgBF,EAAMC,EAAOb,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,EAAM+B,EAAS9B,EAAMC,UAC7JkC,GAAQhB,OAAOx4E,GAG1B,YAAsBy5E,EAAUC,qBACFA,SAChB,IAAItpB,MAAM,wBAAwBspB,EAAM97E,eAE3C67E,EAAS1E,IAgCb,YAAqBnuD,EAAY4iD,EAASmQ,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAE7FC,EAASjG,GAAKkG,wCACPzzD,EAAY2xD,OACZ/O,EAASgQ,OACjBc,YAAYF,EAAQxzD,EAAWmuD,IAAKvL,EAAQuL,IAAK4E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC5GI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,EAzBZ,SAA8B3F,EAAKl5B,UACxB2+B,KAAkBl5B,SAASyzB,EAAM,EAAGA,EAAM,EAAIl5B,GAwBxC8+B,CAAqBJ,EAAIE,GAAI3/E,kBACjC8/E,gBAAgBL,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,KAiBtC,YAAuB7Q,EAASmQ,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,aAEnFC,EAASjG,GAAKkG,wCACP7Q,EAASgQ,OACjBqB,cAAcT,EAAQ5Q,EAAQuL,IAAK4E,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,EAAQC,EAAQC,EAAMC,OAC9FI,EAAKC,KAAkBJ,EAAS,EAAI,GACpCK,EAAKD,KAAkBJ,EAAS,EAAI,GACpCM,EArSZ,SAA8B3F,EAAKl5B,UACxBi/B,KAAoBx5B,SAASyzB,EAAM,EAAGA,EAAM,EAAIl5B,GAoS1Ck/B,CAAqBR,EAAIE,GAAI3/E,kBACjC8/E,gBAAgBL,EAAS,EAALE,GAClBC,aAEFL,gCAAgC,KAgGtC,uBAEWtF,SACJn1E,EAAMqE,OAAOC,OAAOq0E,GAAc18E,oBACpCk5E,IAAMA,EAEHn1E,EAGXiH,2BACUkuE,EAAMj9E,KAAKi9E,gBACZA,IAAM,EAEJA,EAGXluE,aACUkuE,EAAMj9E,KAAKkjF,wBACZC,yBAAyBlG,IAqB/B,uBAEWA,SACJn1E,EAAMqE,OAAOC,OAAOs1E,GAAQ39E,oBAC9Bk5E,IAAMA,EAEHn1E,EAGXiH,2BACUkuE,EAAMj9E,KAAKi9E,gBACZA,IAAM,EAEJA,EAGXluE,aACUkuE,EAAMj9E,KAAKkjF,wBACZE,mBAAmBnG,IA0DhCoG,kBAAoB7yB,QACK,IAAVA,MACC,IAAI8yB,IAAI,uBAAwBC,EAAYx7E,YAElDy7E,EAAU,KACF,MACNC,IAAIC,iBAAmB,SAASC,EAAMC,SACpC,IAAItrB,MAAMurB,GAAmBF,EAAMC,MAGxB,iBAAVpzB,GAA0C,mBAAZszB,SAA0BtzB,aAAiBszB,SAA4B,mBAARR,KAAsB9yB,aAAiB8yB,SACnIS,MAAMvzB,UAKZmxB,SAAEA,SAAUrtD,SA/CtB+uD,eAAoB/uD,EAAQkvD,MACA,mBAAbQ,UAA2B1vD,aAAkB0vD,SAAU,IACd,mBAArCC,YAAYC,sCAEFD,YAAYC,qBAAqB5vD,EAAQkvD,SAEjDtiF,MACqC,oBAAtCozB,EAAO6vD,QAAQj0E,IAAI,sBAIbhP,UAHE2a,KAAK,oMAAqM3a,SAQxN2+D,QAAcvrC,EAAO8vD,2BACdH,YAAYrP,YAAY/U,EAAO2jB,GAEzC,OACG7B,QAAiBsC,YAAYrP,YAAYtgD,EAAQkvD,UAEnD7B,aAAoBsC,YAAYI,SACzB,CAAE1C,SAAAA,EAAUrtD,OAAAA,GAGZqtD,GAqBoB2C,OAAW9zB,EAAOgzB,aAE9C7B,EAASptE,WACXgwE,uBAAyBjwD,EAEvB+nD,GCxjBX,OAAe,yCCoCd,eAIGmI,EAAU,kBAAoBxkF,KAApB,GACTwkF,GAA2B,oBAAVj7B,WAAgCA,YAOlDk7B,EAAS,SAASnwD,EAAQowD,EAAMC,GACV,iBAAXrwD,GASa,GAApB31B,UAAUE,WACA6lF,GACTD,EAAOG,QAAQtwD,OACTuwD,SAASvwD,GAAUqwD,IACnBC,QAAQtwD,GAAU,OAZrBmwD,EAAOK,WACAA,SAASp5D,MAAM1rB,KAAMrB,oBAEpB6R,MAAM,2DACNu0E,YAYbH,QAAU,KACVC,SAAW,OAmFCG,EACX9pB,EA/EJ+pB,EAAY,SAASC,EAAU5wD,EAAQ6wD,MACjB,iBAAX7wD,EAAqB,KACxBqwD,EAAUS,EAAOF,EAAU5wD,MAChB,MAAXqwD,YACYQ,IACLR,UAEuC,mBAA3Cx4E,OAAOpI,UAAUqN,SAAS1L,KAAK4uB,GAA8B,SAChE7jB,EAAS,GACJ5S,EAAI,EAAGO,EAAIk2B,EAAOz1B,OAAQhB,EAAIO,IAAKP,EAAG,KACvCwnF,EAAMD,EAAOF,EAAU5wD,EAAOz2B,OACvB,MAAPwnF,GAAoBC,EAASR,kBAE1BhmF,KAAKumF,UAETF,GAAYA,EAASz5D,MAAM,KAAMjb,KAAW,IAIvD60E,EAAW,SAAShxD,EAAQ6wD,OACxBI,EAAiBN,EAAU,GAAI3wD,EAAQ6wD,UACrB,MAAlBI,GAA+BD,EAASR,SACjCQ,EAASR,SAASp5D,MAAM1rB,KAAMrB,WAClC4mF,GAGPC,EAAkB,SAASN,EAAUO,WAEjCA,EAAWtlF,QAAQ,KAAa,KAC5Bo2D,EAASkvB,EAAWn9E,MAAM,YACvBk9E,EAAgBN,EAAU3uB,EAAO,IAAM,IAAMivB,EAAgBN,EAAU3uB,EAAO,OAG7D,KAAxBkvB,EAAW58E,OAAO,SACPq8E,EAAS58E,MAAM,KAAKtF,MAAM,MAAOwF,KAAK,KAC7B,IAAMi9E,OAEpBA,EAAWtlF,QAAQ,MAAeuN,GAAY+3E,GAAY,KACxD/3E,EAAW+3E,IACFA,EAAW3iF,QAAQ,SAAU,KAAKA,QAAQ,iBAAkB,WAG1E2iF,GAOPL,EAAS,SAASF,EAAUO,KACfD,EAAgBN,EAAUO,OAEnCnxD,EAASmwD,EAAOG,QAAQa,OACvBnxD,EAAQ,IAEa,qBADbmwD,EAAOI,SAASY,IACS,KAC1BlxE,EAAU,GACV+hB,EAAM,CACN7iB,GAAIgyE,EACJC,IAAK,GACLnxE,QAAAA,EACAoxE,UAAU,KAOIrxD,GAJR,SAASsxD,EAAQT,UAChBF,EAAUQ,EAAYG,EAAQT,KAGX5wE,EAAS+hB,IACdA,EAAI/hB,UACtBqwE,QAAQa,GAAclxE,SACtBkwE,EAAOI,SAASY,KAElBhB,EAAOG,QAAQa,GAAclxE,GAAW+f,SAE9CA,GAIH4mC,EAAOspB,GADIQ,EAhHC,SAmHPR,EAAOQ,OACDA,GAAM,MACVR,EAAOQ,IAGb9pB,EAAK2qB,QAAW3qB,EAAK2qB,OAAOF,aACtBb,SAAW5pB,EAAK2qB,SAClBA,OAASpB,IACToB,OAAOF,UAAW,GAGtBzqB,EAAKoqB,UAAapqB,EAAKoqB,SAASK,aACxBb,SAAW5pB,EAAKoqB,WACpBA,SAAWA,IACXA,SAASK,UAAW,GAnIhC,GA2IDG,IAAID,OAAO,iBAAiB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAYxE1wB,EATRmiF,EAAO,CACH54E,KAAM64E,OAAOjiF,UAAUoJ,KACvBzK,KAAMsjF,OAAOjiF,UAAUrB,KACvB0F,MAAOoD,OAAOzH,UAAUqE,MACxBtF,QAAS0I,OAAOzH,UAAUjB,QAC1BwF,MAAOkD,OAAOzH,UAAUuE,OAE5B29E,OAAsD,IAAlCF,EAAK54E,KAAKzH,KAAK,OAAQ,IAAI,GAC/CwgF,GACQtiF,EAAI,OACHlB,KAAKgD,KAAK9B,EAAG,KACVA,EAAEuiF,sBAuCOC,YACPC,OAAa,IAAM,OACnBC,WAAa,IAAM,OACnBC,UAAa,IAAM,OACnBC,SAAa,IAAM,OACnBC,OAAa,IAAM,eAGnBC,EAAOnlE,EAAM7P,MACvB3P,MAAMgC,UAAU5D,eACTumF,EAAMvmF,QAAQohB,EAAM7P,WACtB7T,EAAI6T,GAAQ,EAAG7T,EAAI6oF,EAAM7nF,OAAQhB,OAClC6oF,EAAM7oF,KAAO0jB,SACN1jB,WAjDfqoF,GAA+BD,WAE5BliF,UAAUoJ,KAAO,SAAU4D,OAE1BjL,EAAMpH,EADN0J,EAAQ29E,EAAK54E,KAAKue,MAAM1rB,KAAMrB,cAEd,iBAARoS,GAAoB3I,EAAO,KAC9B69E,GAAqB79E,EAAMvJ,OAAS,GAAKsB,EAAQiI,EAAO,WACpD49E,OAAOhmF,KAAKmvB,OAAQ42D,EAAKjjF,QAAQ4C,KAAKihF,EAAe3mF,MAAO,IAAK,OACjE8C,QAAQ4C,KAAKqL,EAAI/N,MAAMoF,EAAMkB,OAAQ5K,GAAI,mBACjCgrE,EAAI,EAAGA,EAAI/qE,UAAUE,OAAS,EAAG6qE,SACjB,IAAjB/qE,UAAU+qE,OACJA,QAAK,OAIvB1pE,KAAK4mF,UAAY5mF,KAAK4mF,SAASC,qBACtBhpF,EAAI,EAAGA,EAAIuK,EAAMvJ,OAAQhB,OACvBmC,KAAK4mF,SAASC,aAAahpF,EAAI,QAE7BiI,GAAQsC,EAAMvK,KAG1BqoF,GAA+BlmF,KAAKqmF,SAAWj+E,EAAM,GAAGvJ,QAAWmB,KAAKmmF,UAAY/9E,EAAMkB,YACtF68E,mBAEN/9E,GAEN89E,WACMniF,UAAUrB,KAAO,SAAUqO,OAC1B3I,EAAQ29E,EAAK54E,KAAKzH,KAAK1F,KAAM+Q,UAC7B3I,GAASpI,KAAKqmF,SAAWj+E,EAAM,GAAGvJ,QAAWmB,KAAKmmF,UAAY/9E,EAAMkB,YAC/D68E,cACA/9E,QAwBrB09E,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,iBAIrFwyD,SAAS/iF,UAAU2D,gBACX3D,UAAU2D,KAAO,SAAcq/E,OAChCn8E,EAAS5K,QACQ,mBAAV4K,QACD,IAAI0rD,UAAU,kDAAoD1rD,OAExEoK,EAAOhS,EAAM0C,KAAK/G,UAAW,GAC7BqoF,EAAQ,cAEJhnF,gBAAgBgnF,EAAO,KAEnBl1D,EAASlnB,EAAO8gB,MAChB1rB,KACAgV,EAAK2B,OAAO3T,EAAM0C,KAAK/G,oBAEvBwN,OAAO2lB,KAAYA,EACZA,EAEJ9xB,YAGA4K,EAAO8gB,MACVq7D,EACA/xE,EAAK2B,OAAO3T,EAAM0C,KAAK/G,qBAMhCiM,EAAO7G,cACAA,UAAY6G,EAAO7G,YACnBA,UAAY,IAAIkjF,IAChBljF,UAAY,MAEfijF,QASXE,EACAC,EACAC,EACAC,EACAC,EAVA5hF,EAAOohF,SAAS/iF,UAAU2B,KAC1B6hF,EAAmBxlF,MAAMgC,UACzByjF,EAAoBr7E,OAAOpI,UAC3Bf,EAAQukF,EAAiBvkF,MACzBykF,EAAY/hF,EAAKgC,KAAK8/E,EAAkBp2E,UACxCs2E,EAAOhiF,EAAKgC,KAAK8/E,EAAkBnrE,oBAMlCirE,EAAoBI,EAAKF,EAAmB,yBAC9B9hF,EAAKgC,KAAK8/E,EAAkBG,oBAC5BjiF,EAAKgC,KAAK8/E,EAAkBI,oBAC5BliF,EAAKgC,KAAK8/E,EAAkBK,oBAC5BniF,EAAKgC,KAAK8/E,EAAkBM,mBAEjB,GAA1B,CAAC,EAAE,GAAG3gF,OAAO,GAAGtI,UACb,sBACoBT,OACXiD,EAAI,IAAIU,MAAM3D,EAAE,YAClB,GAAKiD,EAAE,GAAK,EACPA,MAEK0mF,EAAZrB,EAAQ,QAENv/E,OAAOukB,MAAMg7D,EAAOsB,EAAU,OAC9B7gF,OAAOukB,MAAMg7D,EAAOsB,EAAU,OAErBtB,EAAM7nF,SACfsI,OAAO,EAAG,EAAG,OAECu/E,EAAM7nF,OAEtBkpF,EAAe,GAAKrB,EAAM7nF,cACnB,EAjBZ,GAmBE,KACGopF,EAAelmF,MAAMgC,UAAUoD,aAC7BpD,UAAUoD,OAAS,SAASwH,EAAOu5E,UAChCvpF,UAAUE,OAGJopF,EAAav8D,MAAM1rB,KAAM,MAClB,IAAV2O,EAAmB,EAAIA,OACP,IAAhBu5E,EAA0BloF,KAAKnB,OAAS8P,EAASu5E,GACnDvxE,OAAO3T,EAAM0C,KAAK/G,UAAW,KALxB,eASToF,UAAUoD,OAAS,SAASqkD,EAAK28B,OAC/BtpF,EAASmB,KAAKnB,OACd2sD,EAAM,EACFA,EAAM3sD,MACAA,GACI,MAAP2sD,IACD,EACCA,EAAM,MACP7iD,KAAKD,IAAI7J,EAAS2sD,EAAK,MAGvB28B,EAActpF,MACNA,EAAS2sD,OAEvB48B,EAAUpoF,KAAKgD,MAAMwoD,EAAKA,EAAI28B,GAC9B91B,EAASrvD,EAAM0C,KAAK/G,UAAW,GAC/BuV,EAAMm+C,EAAOxzD,UACb2sD,IAAQ3sD,EACJqV,QACKpV,KAAK4sB,MAAM1rB,KAAMqyD,OAEvB,KACCg2B,EAAS1/E,KAAKkN,IAAIsyE,EAAatpF,EAAS2sD,GACxC88B,EAAa98B,EAAM68B,EACnBE,EAAaD,EAAap0E,EAAMm0E,EAChCG,EAAY3pF,EAASypF,EACrBG,EAAoB5pF,EAASwpF,KAE7BE,EAAaD,UACJzqF,EAAI,EAAGA,EAAI2qF,IAAa3qF,OACxB0qF,EAAW1qF,GAAKmC,KAAKsoF,EAAWzqF,WAElC0qF,EAAaD,MACfzqF,EAAI2qF,EAAW3qF,UACX0qF,EAAW1qF,GAAKmC,KAAKsoF,EAAWzqF,MAIzCqW,GAAOs3C,IAAQi9B,OACV5pF,OAAS4pF,OACT3pF,KAAK4sB,MAAM1rB,KAAMqyD,iBAEjBxzD,OAAS4pF,EAAoBv0E,EAC7BrW,EAAI,EAAGA,EAAIqW,IAAOrW,OACd2tD,EAAI3tD,GAAKw0D,EAAOx0D,UAI1BuqF,GAIdrmF,MAAMC,gBACDA,QAAU,SAAiB8F,SACJ,kBAAlB2/E,EAAU3/E,SAuRjB4gF,EAwH6BC,EA5YjCC,EAAcz8E,OAAO,KACrB08E,EAAgC,KAAlBD,EAAY,WAAoBA,MAE7C7mF,MAAMgC,UAAUY,gBACXZ,UAAUY,QAAU,SAAiBmkF,OACnCtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJyuE,EAAQtqF,UAAU,GAClBd,KACAgB,EAASmqF,EAAKnqF,SAAW,KACP,qBAAlB4oF,EAAUqB,SACJ,IAAIxyB,iBAGLz4D,EAAIgB,GACLhB,KAAKmrF,KACDtjF,KAAKujF,EAAOD,EAAKnrF,GAAIA,EAAG2c,KAKvCzY,MAAMgC,UAAUoF,YACXpF,UAAUoF,IAAM,SAAa2/E,OAC3BtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJ3b,EAASmqF,EAAKnqF,SAAW,EACzBizB,EAAS/vB,MAAMlD,GACfoqF,EAAQtqF,UAAU,MACA,qBAAlB8oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,8BAGrBjrF,EAAI,EAAGA,EAAIgB,EAAQhB,IACpBA,KAAKmrF,MACEnrF,GAAKirF,EAAIpjF,KAAKujF,EAAOD,EAAKnrF,GAAIA,EAAG2c,WAEzCsX,IAGV/vB,MAAMgC,UAAUiJ,eACXjJ,UAAUiJ,OAAS,SAAgB87E,OAOjC1mF,EANAoY,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACPkS,EACR3b,EAASmqF,EAAKnqF,SAAW,EACzBizB,EAAS,GAETm3D,EAAQtqF,UAAU,MACA,qBAAlB8oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,8BAGrBjrF,EAAI,EAAGA,EAAIgB,EAAQhB,IACpBA,KAAKmrF,MACGA,EAAKnrF,GACTirF,EAAIpjF,KAAKujF,EAAO7mF,EAAOvE,EAAG2c,MACnB1b,KAAKsD,WAIjB0vB,IAGV/vB,MAAMgC,UAAU8L,cACX9L,UAAU8L,MAAQ,SAAei5E,OAC/BtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJ3b,EAASmqF,EAAKnqF,SAAW,EACzBoqF,EAAQtqF,UAAU,MACA,qBAAlB8oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,8BAGrBjrF,EAAI,EAAGA,EAAIgB,EAAQhB,OACpBA,KAAKmrF,IAASF,EAAIpjF,KAAKujF,EAAOD,EAAKnrF,GAAIA,EAAG2c,UACnC,SAGR,IAGVzY,MAAMgC,UAAUpD,aACXoD,UAAUpD,KAAO,SAAcmoF,OAC7BtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJ3b,EAASmqF,EAAKnqF,SAAW,EACzBoqF,EAAQtqF,UAAU,MACA,qBAAlB8oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,8BAGrBjrF,EAAI,EAAGA,EAAIgB,EAAQhB,OACpBA,KAAKmrF,GAAQF,EAAIpjF,KAAKujF,EAAOD,EAAKnrF,GAAIA,EAAG2c,UAClC,SAGR,IAGVzY,MAAMgC,UAAU8K,eACX9K,UAAU8K,OAAS,SAAgBi6E,OACjCtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJ3b,EAASmqF,EAAKnqF,SAAW,KACP,qBAAlB4oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,0BAEzBjqF,GAA8B,GAApBF,UAAUE,aACf,IAAIy3D,UAAU,mDAIpBxkC,EADAj0B,EAAI,KAEJc,UAAUE,QAAU,IACXF,UAAU,eAEhB,IACKd,KAAKmrF,EAAM,GACFA,EAAKnrF,gBAGZA,GAAKgB,QACD,IAAIy3D,UAAU,oDAKzBz4D,EAAIgB,EAAQhB,IACXA,KAAKmrF,MACIF,EAAIpjF,UAAK,EAAQosB,EAAQk3D,EAAKnrF,GAAIA,EAAG2c,WAI/CsX,IAGV/vB,MAAMgC,UAAUmlF,oBACXnlF,UAAUmlF,YAAc,SAAqBJ,OAC3CtuE,EAASuuE,EAAS/oF,MAClBgpF,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXkS,EACJ3b,EAASmqF,EAAKnqF,SAAW,KACP,qBAAlB4oF,EAAUqB,SACJ,IAAIxyB,UAAUwyB,EAAM,0BAEzBjqF,GAA8B,GAApBF,UAAUE,aACf,IAAIy3D,UAAU,wDAGpBxkC,EAAQj0B,EAAIgB,EAAS,KACrBF,UAAUE,QAAU,IACXF,UAAU,eAEhB,IACKd,KAAKmrF,EAAM,GACFA,EAAKnrF,gBAGZA,EAAI,QACA,IAAIy4D,UAAU,uDAMxBz4D,KAAKmC,SACI8oF,EAAIpjF,UAAK,EAAQosB,EAAQk3D,EAAKnrF,GAAIA,EAAG2c,UAE7C3c,YAEFi0B,IAGV/vB,MAAMgC,UAAU5D,aAAY,CAAC,EAAG,GAAGA,QAAQ,EAAG,WACzC4D,UAAU5D,QAAU,SAAiBgpF,OACnCH,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXygF,EAAS/oF,MACbnB,EAASmqF,EAAKnqF,SAAW,MAExBA,eAIDhB,EAAI,MACJc,UAAUE,OAAS,MACfuqF,EAAUzqF,UAAU,OAExBd,GAAK,EAAIA,EAAI8K,KAAKD,IAAI,EAAG7J,EAAShB,GAC/BA,EAAIgB,EAAQhB,OACXA,KAAKmrF,GAAQA,EAAKnrF,KAAOsrF,SAClBtrF,aAMlBkE,MAAMgC,UAAUslF,iBAAgB,CAAC,EAAG,GAAGA,YAAY,cAC9CtlF,UAAUslF,YAAc,SAAqBF,OAC3CH,EAAOH,GAAkC,mBAAnBpB,EAAUznF,MAC5BA,KAAKsI,MAAM,IACXygF,EAAS/oF,MACbnB,EAASmqF,EAAKnqF,SAAW,MAExBA,eAGDhB,EAAIgB,EAAS,MACbF,UAAUE,OAAS,MACf8J,KAAKkN,IAAIhY,EAAGurF,EAAUzqF,UAAU,QAEpCd,GAAK,EAAIA,EAAIgB,EAAS8J,KAAKwkE,IAAItvE,GAC5BA,GAAK,EAAGA,OACPA,KAAKmrF,GAAQG,IAAWH,EAAKnrF,UACtBA,aAMlBsO,OAAOm9E,wBACDA,eAAiB,SAAwB9uE,UACrCA,EAAOtO,cACHrM,YACP2a,EAAO3a,YAAYkE,UACnByjF,MAIPr7E,OAAOo9E,yBAA0B,QAG3BA,yBAA2B,SAAkC/uE,EAAQohC,MAClD,iBAAVphC,GAAuC,mBAAVA,GAAoC,OAAXA,QACxD,IAAI87C,UAJG,2DAIwB97C,MACpCktE,EAAKltE,EAAQohC,QAGd4tC,OACU,CAAEttE,YAAY,EAAMutE,cAAc,GAC5CnC,EAAmB,KACfvjF,EAAYyW,EAAOtO,YAChBA,UAAYs7E,MAEfl4D,EAAS83D,EAAa5sE,EAAQohC,GAC9B8tC,EAASrC,EAAa7sE,EAAQohC,QAC3B1vC,UAAYnI,EAEfurB,GAAUo6D,SACNp6D,MAAmBpf,IAAMof,GACzBo6D,MAAmBv5E,IAAMu5E,GACtBF,WAGJpnF,MAAQoY,EAAOohC,GACnB4tC,KAGVr9E,OAAOw9E,6BACDA,oBAAsB,SAA6BnvE,UAC/CrO,OAAOyL,KAAK4C,KAGtBrO,OAAOC,YAE2B,OAA/BD,OAAOpI,UAAUmI,UACH,iBACH,CAAEA,UAAa,OAGZ,eACNic,EAAQ,WACHtqB,KAAKsqB,IACJtqB,GAAK,cACTgC,YACNsoB,EAAM9L,eACN8L,EAAMyhE,qBACNzhE,EAAM0hE,cACN1hE,EAAM2hE,eACN3hE,EAAM/W,SACN+W,EAAM4hE,QACN5hE,EAAMjc,UAAY,KACXic,UAIR/b,OAAS,SAAgBrI,EAAWwb,OACnC/E,KACc,OAAdzW,IACS2kF,QACN,IACqB,iBAAb3kF,QACD,IAAIuyD,UAAU,2BAA4BvyD,EAAW,qBAC3DimF,EAAO,eACNjmF,UAAYA,KACR,IAAIimF,GACN99E,UAAYnI,cAEJ,IAAfwb,UACO0qE,iBAAiBzvE,EAAQ+E,GAC7B/E,eAIiBA,qBAEjB/L,eAAe+L,EAAQ,WAAY,IACnC,aAAcA,QAChB0vE,QAGT/9E,OAAOsC,eAAgB,KACnB07E,EAA8BC,EAAuB,IACrDC,EAA8C,oBAAZjlF,UAClCglF,EAAuBhlF,SAASG,cAAc,YAC7C4kF,IAAgCE,MAC7BC,EAAyBn+E,OAAOsC,mBAIvCtC,OAAOsC,gBAAkB67E,EAAwB,QAM3C77E,eAAiB,SAAwB+L,EAAQohC,EAAU4tC,MACxC,iBAAVhvE,GAAuC,mBAAVA,GAAoC,OAAXA,QACxD,IAAI87C,UANU,+CAMwB97C,MACtB,iBAAdgvE,GAA+C,mBAAdA,GAA4C,OAAfA,QAChE,IAAIlzB,UATc,2CASwBkzB,MAChDc,aAEWA,EAAuB5kF,KAAKyG,OAAQqO,EAAQohC,EAAU4tC,SACxDU,OAGTxC,EAAK8B,EAAY,YAEblC,MAAmC9sE,EAAQohC,IACrByrC,EAAa7sE,EAAQohC,IAC/C,KACQ73C,EAAYyW,EAAOtO,YAChBA,UAAYs7E,SACZhtE,EAAOohC,KACPA,GAAY4tC,EAAWpnF,QACvB8J,UAAYnI,SAEZ63C,GAAY4tC,EAAWpnF,UAE/B,KACEklF,QACK,IAAIhxB,UA7BY,kEA8BtBoxB,EAAK8B,EAAY,UACJhvE,EAAQohC,EAAU4tC,EAAWt5E,KAC1Cw3E,EAAK8B,EAAY,UACJhvE,EAAQohC,EAAU4tC,EAAWr5E,YAG3CqK,GAGVrO,OAAO89E,0BACDA,iBAAmB,SAA0BzvE,EAAQ+E,WAC/Cq8B,KAAYr8B,EACbmoE,EAAKnoE,EAAYq8B,WACVntC,eAAe+L,EAAQohC,EAAUr8B,EAAWq8B,WAEpDphC,IAGVrO,OAAOo+E,cACDA,KAAO,SAAc/vE,UACjBA,IAGVrO,OAAOq+E,gBACDA,OAAS,SAAgBhwE,UACrBA,eAIJgwE,QAAO,qBACTN,UACEM,QAA0B7B,EAQ9Bx8E,OAAOq+E,OAPC,SAAgBhwE,SACE,mBAAVA,EACAA,EAEAmuE,EAAanuE,QAK/BrO,OAAOs+E,2BACDA,kBAAoB,SAA2BjwE,UAC3CA,IAGVrO,OAAOu+E,kBACDA,SAAW,SAAkBlwE,UACzB,IAGVrO,OAAOw+E,kBACDA,SAAW,SAAkBnwE,UACzB,IAGVrO,OAAOy+E,sBACDA,aAAe,SAAsBpwE,MACpCrO,OAAOqO,KAAYA,QACb,IAAI87C,kBAEVxwD,EAAO,GACJ4hF,EAAKltE,EAAQ1U,OACR,MAELA,IAAQ,MACX+kF,EAAcnD,EAAKltE,EAAQ1U,iBACxB0U,EAAO1U,GACP+kF,KAGV1+E,OAAOyL,KAAM,KACVkzE,GAAiB,EACjBC,EAAY,CACR,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAEJC,EAAkBD,EAAUlsF,eAEvBO,IAAO,CAACgS,SAAY,SACR,SAGdwG,KAAO,SAAc4C,MAGF,iBAAVA,GAAuC,mBAAVA,GAC1B,OAAXA,QAEM,IAAI87C,UAAU,0CAGpB20B,EAAO,WACFnlF,KAAQ0U,EACTktE,EAAKltE,EAAQ1U,MACRhH,KAAKgH,MAIdglF,UACSjtF,EAAI,EAAGqtF,EAAKF,EAAiBntF,EAAIqtF,EAAIrtF,IAAK,KAC3CstF,EAAWJ,EAAUltF,GACrB6pF,EAAKltE,EAAQ2wE,MACRrsF,KAAKqsF,UAIfF,GAIV3tE,KAAK8tE,WACDA,IAAM,kBACA,IAAI9tE,MAAO+tE,gBAGtBC,EAAK,qDAGJ9/E,OAAOzH,UAAUwnF,MAAQD,EAAGC,OAAQ,GAChC,IAAMD,EAAK,QACZE,EAAkB,IAAIxF,OAAO,IAAMsF,EAAKA,EAAK,KAC7CG,EAAgB,IAAIzF,OAAOsF,EAAKA,EAAK,aAClCvnF,UAAUwnF,KAAO,kBACb//E,OAAOxL,MAAM8C,QAAQ0oF,EAAiB,IAAI1oF,QAAQ2oF,EAAe,gBAI7DttF,aACVA,IACKA,IACF,EACS,IAANA,GAAWA,IAAO,EAAA,GAAQA,KAAQ,EAAA,SAChC,OAAWwK,KAAK2zB,MAAM3zB,KAAKwkE,IAAIhvE,KAErCA,MAmCP4qF,EAAW,SAAUtqF,MACZ,MAALA,QACM,IAAI63D,UAAU,iBAAiB73D,EAAE,qBAEpC0N,OAAO1N,OAKlBqnF,IAAID,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,iBAAiB,qBAAqB,SAASP,EAAU/wE,EAAS+f,KAG3H,cACA,iBAITwxD,IAAID,OAAO,cAAc,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KAK7Eo3D,gBAAkB,SAASC,UAC1BA,MACKvmF,UACHumF,EAAIv5B,MAAQu5B,EAAIC,qBAAqB,QAAQ,IAAMD,EAAIE,mBAG1DtmF,cAAgB,SAASic,EAAKwjE,UAC3B5/E,SAASE,gBACTF,SAASE,gBAAgB0/E,GAVrB,+BAUqCxjE,GACzCpc,SAASG,cAAcic,MAG1BsqE,YAAc,SAASC,EAAIjmF,iBACbkmF,UAAY,IAAI1jF,MAAM,QACzBnI,QAAQ2F,MAEnBmmF,YAAc,SAASF,EAAIjmF,GAC1ByO,EAAQu3E,YAAYC,EAAIjmF,OACtBkmF,WAAa,IAAMlmF,MAGtBomF,eAAiB,SAASH,EAAIjmF,WAC9BqmF,EAAUJ,EAAGC,UAAU1jF,MAAM,UACpB,KACLiB,EAAQ4iF,EAAQhsF,QAAQ2F,UACxByD,UAGIpC,OAAOoC,EAAO,KAEvByiF,UAAYG,EAAQ3jF,KAAK,QAGxB4jF,eAAiB,SAASL,EAAIjmF,WAC9BqmF,EAAUJ,EAAGC,UAAU1jF,MAAM,QAAS4L,GAAM,IACnC,KACL3K,EAAQ4iF,EAAQhsF,QAAQ2F,UACxByD,WAGE,IACEpC,OAAOoC,EAAO,UAEtB2K,KACQpV,KAAKgH,KAEdkmF,UAAYG,EAAQ3jF,KAAK,KACrB0L,KAEHm4E,YAAc,SAAS5hF,EAAMuhF,EAAWM,GACxCA,IACQL,YAAYxhF,EAAMuhF,KAElBE,eAAezhF,EAAMuhF,MAI7BO,aAAe,SAAS94E,EAAIk4E,OACjBa,EAAXjjF,EAAQ,QACNoiF,GAAOvmF,UAELqnF,qBAA8Bd,EAAIe,mBAC/BnjF,EAAQijF,EAAO3tF,WACd2tF,EAAOjjF,KAASojF,cAAcl5E,KAAOA,SAAW,UAChD+4E,EAASb,EAAIC,qBAAqB,cACnCriF,EAAQijF,EAAO3tF,WACd2tF,EAAOjjF,KAASkK,KAAOA,SAAW,SAGvC,KAGHm5E,gBAAkB,SAAyBhqF,EAAS6Q,EAAIk4E,QACtDA,GAAOvmF,SACTqO,GAAMc,EAAQg4E,aAAa94E,EAAIk4E,UACxB,SAEPhpF,EAEA8Q,OACW,2BAA6BA,EAAK,OAE7Ck4E,EAAIc,qBACId,EAAIc,oBACN7pF,QAAUA,EACZ6Q,MACMk5E,cAAcl5E,GAAKA,QAErBc,EAAQhP,cAAc,UACxBjD,YAAYqpF,EAAItmF,eAAezC,IACjC6Q,MACMA,GAAKA,KAEPi4E,gBAAgBC,GAAKrpF,YAAYK,OAIzCkqF,mBAAqB,SAASnH,EAAKiG,MACnCA,EAAIc,mBACAA,iBAAiB/G,OAClB,KACCoH,EAAOv4E,EAAQhP,cAAc,UAC5BwnF,IAAM,eACNpiF,KAAO+6E,IAEJgG,gBAAgBC,GAAKrpF,YAAYwqF,OAIzCE,cAAgB,SAAS59E,UAEzBgH,SAAS7B,EAAQ04E,cAAc79E,EAAS,eAAgB,IACxDgH,SAAS7B,EAAQ04E,cAAc79E,EAAS,gBAAiB,IACzDA,EAAQ89E,eAIRC,eAAiB,SAAS/9E,UAE1BgH,SAAS7B,EAAQ04E,cAAc79E,EAAS,cAAe,IACvDgH,SAAS7B,EAAQ04E,cAAc79E,EAAS,iBAAkB,IAC1DA,EAAQg+E,gBAIRC,eAAiB,SAASC,OAC1BjsD,EAAQ9sB,EAAQhP,cAAc,eAC5B5C,MAAM4qF,MAAQ,SACd5qF,MAAM6qF,SAAW,QACjB7qF,MAAM41B,OAAS,UACf51B,MAAM0iB,QAAU,YAElB+b,EAAQ7sB,EAAQhP,cAAc,aAC9B5C,EAAQy+B,EAAMz+B,QAEZqf,SAAW,aACXq5C,KAAO,aACP9S,SAAW,WACXglC,MAAQ,UACRC,SAAW,QACXj1D,OAAS,UACTlT,QAAU,UAEV/iB,YAAY++B,OAEdosD,EAAOH,EAASzB,kBACfvpF,YAAY8+B,OAEbssD,EAAcrsD,EAAMssD,cAElBplC,SAAW,aACbqlC,EAAgBvsD,EAAMssD,mBAEtBD,GAAeE,MACCxsD,EAAM8rD,eAGrB3uF,YAAY6iC,GAEVssD,EAAYE,GAGA,oBAAZxoF,eAKgB,IAAvBmkD,OAAOskC,eACCC,iBAAmB,kBAChBvkC,OAAOskC,eAGVE,kBAAoB,kBACjBxkC,OAAOykC,iBAIVF,iBAAmB,kBAChB1oF,SAASqoF,KAAKQ,aAGjBF,kBAAoB,kBACjB3oF,SAASqoF,KAAKS,aAIzB3kC,OAAO4kC,mBACClB,cAAgB,SAAS79E,EAASzM,UAClCA,UACewrF,iBAAiB/+E,EAAS,KAAO,IAAIzM,IAAU,GAC3D4mD,OAAO4kC,iBAAiB/+E,EAAS,KAAO,MAG3C69E,cAAgB,SAAS79E,EAASzM,UAClCA,EACOyM,EAAQg/E,aAAazrF,GACzByM,EAAQg/E,gBAEfC,aAAe,SAAStC,EAAIuC,OAC5Bl/E,EAAU28E,EAAGwC,WAAU,YACnBvoF,UAAYsoF,IACjBhwF,WAAWkwF,aAAap/E,EAAS28E,GAC7B38E,GAGP,gBAAiBhK,SAASymF,mBAClB4C,aAAe,SAAS1C,EAAI2C,KAC7BC,YAAcD,KAGbE,aAAe,SAAS7C,UACrBA,EAAG4C,iBAINF,aAAe,SAAS1C,EAAI2C,KAC7BA,UAAYA,KAGXE,aAAe,SAAS7C,UACrBA,EAAG2C,cAIVG,gBAAkB,SAASvB,UACxBA,EAASwB,aAAexB,EAASyB,iBA9DhCnC,gBAAkB,gBAmE9B9G,IAAID,OAAO,cAAc,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KAG7E06D,SAAW,SAASC,EAAMC,KACzBC,OAASD,IACTnrF,UAAYoI,OAAOC,OAAO8iF,EAAUnrF,UAAW,CAChDlE,YAAa,CACTuC,MAAO6sF,EACP/yE,YAAY,EACZkzE,UAAU,EACV3F,cAAc,QAKlB4F,MAAQ,SAASvnF,EAAKunF,WACjBjwF,KAAOiwF,IACRjwF,GAAOiwF,EAAMjwF,UAEd0I,KAGHwnF,UAAY,SAASjyE,EAAOgyE,KACxBA,MAAMhyE,EAAOgyE,OAKzBvJ,IAAID,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,yBAAyB,gBAAgB,SAASP,EAAU/wE,EAAS+f,KAGpH,wBAELi7D,EAAMjK,EAAS,SACfkK,EAAQ,eAmEJ1pF,EAAMjI,EAlENqK,EAAM,CACNunF,cAAe,CACXC,GAAI,QAASC,GAAI,OAAQC,GAAI,MAAOC,IAAK,QAG7CC,SAAU,CACNC,KAAQ,EAAGC,IAAO,EAAGC,OAAW,EAAG5/E,MAAS,EAC5CD,MAAS,EAAG8/E,KAAQ,EAAGC,QAAW,EAAGC,IAAO,GAGhDC,cAAgB,CACZC,EAAK,YACLC,EAAK,MACLC,GAAK,SACLC,GAAK,QACLC,GAAK,MACLC,GAAK,QACLC,GAAK,SACLC,GAAK,WACLC,GAAK,MACLC,GAAK,OACLC,GAAK,OACLC,GAAK,KACLC,GAAK,QACLC,GAAK,OACLC,GAAK,QACLC,GAAK,SACLC,GAAK,SACLC,GAAK,UACLC,GAAK,UACLC,GAAK,UACLC,GAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,IAAK,UACLC,MAAO,cACPC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,UACLC,IAAK,cAGTC,eAAgB,CACbrC,GAAI,IAAMsC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,GAAK,IAChEC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAMC,GAAI,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IACjEC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IACjEC,IAAK,IAAKC,IAAK,KAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,IAAKC,IAAK,UAIxDz4F,KAAKqK,EAAImoF,gBACHnoF,EAAImoF,cAAcxyF,GAAGkF,gBACxB+C,GAAQsQ,SAASvY,EAAG,QAEvBA,KAAKqK,EAAI8qF,iBACH9qF,EAAI8qF,eAAen1F,GAAGkF,gBACzB+C,GAAQsQ,SAASvY,EAAG,aAExBwxF,MAAMnnF,EAAKA,EAAIunF,iBACfJ,MAAMnnF,EAAKA,EAAI8qF,kBACf3D,MAAMnnF,EAAKA,EAAImoF,iBACfkG,MAAQruF,WACR+4D,OAAS/4D,EAAIsuF,MACbC,IAAMvuF,WACN,KAAO,IAEV,mBACOiN,EAAO,CAAC,MAAO,OAAQ,MAAO,SACzBu0D,EAAI/gE,KAAK83D,IAAI,EAAGtrD,EAAKtW,QAAS6qE,OAC/BomB,SAASpmB,GAAKv0D,EAAKnI,QAAO,SAASpJ,UAC5B8lE,EAAIxhE,EAAI4nF,SAASlsF,MACzB4E,KAAK,KAAO,IALtB,KASGsnF,SAAS,GAAK,KACdA,aAAe,SAEZ5nF,EAhGC,KAkGRmnF,MAAM96E,EAASi7E,KAEXkH,gBAAkB,SAASC,OAC3BC,EAAYpH,EAAKmH,SACG,iBAAbC,MACKprF,OAAOkrD,aAAaigC,IAC7BC,EAAU7zF,kBAKrB+iF,IAAID,OAAO,oBAAoB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,QAEnFuiE,GAAK,CACTC,MAAO,QACPC,IAAK,MACLC,QAAS,aAELC,MAAQ,kBACR1iF,EAAQ2iF,MACD3iF,EAAQsiF,GAAGE,IACXxiF,EAAQ4iF,QACR5iF,EAAQsiF,GAAGC,MAEXviF,EAAQsiF,GAAGG,SAGF,iBAAbI,eAGP/hC,aAAgBgiC,SAASjvF,MAAM,mBAAqB,CAAC,UAAU,GAAGrF,cAClEu0F,EAAKF,UAAUG,YACXC,MAAe,OAANniC,IACT6hC,MAAe,OAAN7hC,IACT8hC,QAAiB,SAAN9hC,IACXoiC,KACkB,+BAArBL,UAAUM,SAA4CN,UAAUM,QAAQv3F,QAAQ,cAAgB,EAC/F6yB,cAAe5qB,MAAM,4DAA4D,IAAI,IACrF4qB,cAAe5qB,MAAM,sDAAsD,IAAI,MAE7EuvF,QAAUpjF,EAAQkjF,MAAQljF,EAAQkjF,KAAO,IACzCG,QAAUrjF,EAAQsjF,kBAAoBC,aAAevuC,OAAOwuC,cAA6C,UAA7BxuC,OAAO6tC,UAAUY,UAC7FC,WAAa1jF,EAAQqjF,SAAWxhF,YAAahO,MAAM,aAAa,IAAI,GAAI,IAAM,IAC9E8vF,QAAU3uC,OAAO4uC,OAAyD,kBAAhDhsF,OAAOpI,UAAUqN,SAAS1L,KAAK6jD,OAAO4uC,SAChEC,SAAWplE,WAAWskE,EAAGhvF,MAAM,WAAW,UAAO,IAEjD+vF,SAAWrlE,WAAWskE,EAAGhvF,MAAM,YAAY,UAAO,IAElDgwF,MAAQhB,EAAGn3F,QAAQ,aAAe,IAElCo4F,OAASjB,EAAGn3F,QAAQ,SAAW,IAE/Bq4F,WAAalB,EAAGn3F,QAAQ,WAAa,IAErCs4F,MAAQ,mBAAmB/1F,KAAK40F,KAAQ/tC,OAAOmvC,SAEnDnkF,EAAQkkF,UAAevB,OAAQ,OAInCpR,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,eAAe,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAGtH1c,EAAO0tE,EAAS,UAChBqT,EAAYrT,EAAS,eAErBsT,EAAc,KACdC,EAAK,IAEDC,YAAc,SAASC,EAAM1uF,EAAM86E,MACnC4T,EAAK71F,wBACE61F,EAAK71F,iBAAiBmH,EAAM86E,GAAU,MAE7C4T,EAAKC,YAAa,KACdC,EAAU,aACDvzF,KAAKqzF,EAAMxvC,OAAO/lD,UAEtB01F,SAAWD,IACfD,YAAY,KAAO3uF,EAAM4uF,OAI9BE,eAAiB,SAASJ,EAAM1uF,EAAM86E,MACtC4T,EAAK11F,2BACE01F,EAAK11F,oBAAoBgH,EAAM86E,GAAU,GAEhD4T,EAAKK,eACAA,YAAY,KAAO/uF,EAAM86E,EAAS+T,UAAY/T,MAGnDkU,UAAY,SAASn4F,YACjBoK,gBAAgBpK,KAChBqK,eAAerK,IAChB,KAGHoK,gBAAkB,SAASpK,GAC3BA,EAAEoK,kBACAA,oBAEAguF,cAAe,KAGjB/tF,eAAiB,SAASrK,GAC1BA,EAAEqK,iBACAA,mBAEAs/E,aAAc,KAEhB0O,UAAY,SAASr4F,SACX,YAAVA,EAAEhC,KACK,EACG,eAAVgC,EAAEhC,MAA0By5F,EAAUzB,SAAYpsF,UAAY5J,EAAE8J,SAAW9J,EAAE+J,SACtE,EACP/J,EAAEqK,eACKrK,EAAEgK,OAGF,CAACghD,EAAE,EAAGD,EAAE,EAAGutC,EAAE,GAAGt4F,EAAEgK,WAIzBuuF,QAAU,SAAS1N,EAAI2N,EAAcC,cACtBz4F,MACCw4F,EAAax4F,MACJy4F,EAAsBz4F,KAEvCi4F,eAAe/zF,SAAU,YAAas0F,GAAc,KACpDP,eAAe/zF,SAAU,UAAWw0F,GAAW,KAC/CT,eAAe/zF,SAAU,YAAaw0F,GAAW,YAGrDd,YAAY1zF,SAAU,YAAas0F,GAAc,KACjDZ,YAAY1zF,SAAU,UAAWw0F,GAAW,KAC5Cd,YAAY1zF,SAAU,YAAaw0F,GAAW,GAE/CA,KAGHC,qBAAuB,SAAU9N,EAAI5G,OACrC2U,EAAQC,IACJjB,YAAY/M,EAAI,cAAc,SAAU7qF,OAExC84F,EADU94F,EAAE+4F,QACO,KACdD,EAASE,UACTF,EAASG,aAEdrB,YAAY/M,EAAI,aAAa,SAAU7qF,OACvC+4F,EAAU/4F,EAAE+4F,aACZA,EAAQp7F,OAAS,QAEjBm7F,EAAWC,EAAQ,KAErBG,OAASN,EAASE,EAASE,UAC3BG,OAASN,EAASC,EAASG,UAEpBH,EAASE,UACTF,EAASG,UAETj5F,UAITo5F,sBAAwB,SAASvO,EAAI5G,GACrC,iBAAkB4G,IACV+M,YAAY/M,EAAI,cAAc,SAAS7qF,QAErB,IAAlBA,EAAEq5F,eACAH,QAAUl5F,EAAEq5F,YAFL,IAGPF,QAAUn5F,EAAEs5F,YAHL,MAKPJ,OAAS,IACTC,QAAUn5F,EAAEu5F,WANL,KAQJv5F,MAEN,YAAa6qF,IACZ+M,YAAY/M,EAAI,SAAU,SAAS7qF,UAE/BA,EAAEw5F,gBACDx5F,EAAEy5F,kBACDP,OAHG,IAGMl5F,EAAE05F,QAAmB,IAC9BP,OAJG,IAIMn5F,EAAE25F,QAAmB,aAE/B35F,EAAE45F,oBACF55F,EAAE65F,iBACDX,OAA2B,KAAfQ,QAAU,KACtBP,OAA2B,KAAfQ,QAAU,KAIvB35F,QAGL43F,YAAY/M,EAAI,kBAAkB,SAAS7qF,GAC3CA,EAAEspB,MAAQtpB,EAAEspB,MAAQtpB,EAAE85F,mBACpBZ,OAA2B,KAAfa,QAAU,KACtBZ,OAAS,MAETD,OAAS,IACTC,OAA2B,KAAfY,QAAU,MAEnB/5F,SAKbg6F,0BAA4B,SAAS7wE,EAAU8wE,EAAUzB,EAAc0B,OAEvEC,EAAQC,EAAQC,EADhBC,EAAS,EAETC,EAAa,CACbxvC,EAAG,WACHyvC,EAAG,cACHlC,EAAG,wBAGct4F,MACY,IAAzBqT,EAAQglF,UAAUr4F,KACT,EACFA,EAAE+5F,OAAS,MAEL,MACA,KAEJ,EAETtC,EAAUlB,KAAM,KACZkE,EAAahzF,KAAKwkE,IAAIjsE,EAAEg5F,QAAUmB,GAAU,GAAK1yF,KAAKwkE,IAAIjsE,EAAEi5F,QAAUmB,GAAU,EAC/EC,IAASI,MACD,GACTJ,gBACaA,KACT3zF,YAAW,aAAoB,OAAQuzF,EAASK,EAAS,IAAM,KAEzD,GAAVA,MACSt6F,EAAEg5F,UACFh5F,EAAEi5F,cAIjByB,QAAUJ,IAECJ,GAAc,YAAal6F,GAEpCs6F,EAAS,IACA,UACJA,EAAS,SACP9B,EAAa0B,GAAcK,EAAWD,GAASt6F,cAE1CA,KACP,EACLq6F,gBACaA,KACT3zF,YAAW,aAAoB,OAAQuzF,EAASK,EAAS,IAAM,OAC1DJ,GAAc,YAAal6F,KAC3Bk6F,GAAcK,EAAWD,GAASt6F,GAE9Ca,MAAMC,QAAQqoB,OACJ,CAACA,MACP1lB,SAAQ,SAASonF,KACd+M,YAAY/M,EAAI,YAAa8P,GACjClD,EAAUhB,WACFmB,YAAY/M,EAAI,WAAY+P,WAI5CC,EAAkBpD,EAAUzB,OAASyB,EAAUT,6BAAgC3uC,QAC7E,SAASroD,UACA,KAAO6J,QAAU,EAAI,MAAQC,OAAS,EAAI,MAAQC,SAAW,EAAI,MAAQH,QAAU,EAAI,IAEhG,SAAS5J,UACA,KAAO4J,QAAU,EAAI,MAAQE,OAAS,EAAI,MAAQC,SAAW,EAAI,MAAQF,QAAU,EAAI,eAOxEo6E,EAAUjkF,EAAGy1F,OACnCqF,EAASD,EAAgB76F,OAExBy3F,EAAUzB,OAAS0B,EAAa,IAC7B13F,EAAE+6F,qBAAuBA,iBAAiB,OAAS/6F,EAAE+6F,iBAAiB,aAC5D,GACVrD,EAAYsD,MAAO,IACC,MAAXF,YACOE,MAAQ,KAIZ,KAAZvF,GAA8B,KAAZA,EAAgB,KAC9B7pF,EAAW,aAAc5L,EAAIA,EAAE8I,SAAW9I,EAAEi7F,eAChC,KAAZxF,GAA+B,IAAb7pF,EACU,GAAxB8rF,EAAYjC,OACPz1F,EAAEk7F,mBACQ,KAAZzF,GAA6B,IAAXqF,GAA6B,IAAblvF,EAAgB,CAChD5L,EAAEk7F,UAAYvD,EACd,OACOqD,OAAQ,SAKhCvF,KAAW/+E,EAAK63E,sBAGP,EAATuM,MAA0B,IAAMrF,GAAW,YAI1CqF,GAAsB,KAAZrF,KAEM,KADb7pF,EAAW,aAAc5L,EAAIA,EAAE8I,SAAW9I,EAAEi7F,iBAEnCj7F,EAAG86F,GAASrF,GACjBz1F,EAAEm7F,6BAKV1D,EAAUH,YAAuB,EAATwD,EAAY,MAC3B96F,EAAG86F,EAAQrF,GAChBz1F,EAAEm7F,4BAGQ,WAEbL,QAAuBpkF,EAAKy4E,oBAA+Bz4E,EAAKo7E,iBAI9D7N,EAASjkF,EAAG86F,EAAQrF,kBA0CbxqF,OAAOC,OAAO,WAlGxBkwF,kBAAoB,SAASp7F,UAC1B0W,EAAKk4E,SAASiM,EAAgB76F,OA2DjCq7F,sBAAwB,SAASxQ,EAAI5G,OACrC2T,EAAcvkF,EAAQukF,eACtBH,EAAUV,YAAeU,EAAUT,6BAAgC3uC,QAAU,KACzEizC,EAAqB,OACbzQ,EAAI,WAAW,SAAS7qF,KACXA,EAAEy1F,aAEf5K,EAAI,YAAY,SAAS7qF,UAC1Bu7F,EAAqBtX,EAAUjkF,EAAGs7F,UAE1C,KACCE,EAAuB,OAEf3Q,EAAI,WAAW,SAAS7qF,KACpBA,EAAEy1F,YAAwBz1F,EAAEy1F,UAAY,GAAK,MACrD7kE,EAAS2qE,EAAqBtX,EAAUjkF,EAAGA,EAAEy1F,kBAC1Bz1F,EAAEm7F,iBAClBvqE,OAGCi6D,EAAI,YAAY,SAAS7qF,GAC7Bw7F,MAA2B5xF,SAAW5J,EAAE8J,QAAU9J,EAAE+J,UAAY/J,EAAE6J,aAC1DsuF,UAAUn4F,KACK,WAInB6qF,EAAI,SAAS,SAAS7qF,KAClBA,EAAEy1F,SAAW,QAGxBiC,UAEWrvC,OAAQ,QAASozC,MAQpB,iBAAVpzC,QAAsBA,OAAOqzC,cAAgBjE,EAAUhB,QAAS,GAE/DkF,SAAW,SAAS1X,EAAU2X,KAC5BA,GAAOvzC,WACTwzC,EAAc,2BACVjE,YAAYgE,EAAK,WAAW,WAAkB57F,GAC9CA,EAAEuE,MAAQs3F,MACFzxF,gBAAgBpK,KAChBi4F,eAAe2D,EAAK,UAAW/pF,aAI3C6pF,YAAYG,EAAa,QAK7BC,UAA6B,iBAAVzzC,gBAA8Bj7C,uBAClDi7C,OAAO0zC,0BACP1zC,OAAO2zC,6BACP3zC,OAAO4zC,yBACP5zC,OAAO6zC,wBAEV7oF,EAAQyoF,YACAA,UAAYzoF,EAAQyoF,UAAUt1F,KAAK6hD,UAEnCyzC,UAAY,SAAS7X,cACdA,EAAU,QAI7BW,IAAID,OAAO,eAAe,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KAG9E1gB,KAAO,SAASvS,UACbA,EAAEA,EAAExC,OAAS,MAGhBw+F,cAAgB,SAAS3hF,UACtBA,EAAOpT,MAAM,IAAIg1F,UAAU90F,KAAK,OAGnC+0F,aAAe,SAAU7hF,EAAQ+F,WACjCqQ,EAAS,GACNrQ,EAAQ,GACC,EAARA,OACU/F,IAEV+F,IAAU,QACA/F,UAEXoW,OAGP05D,EAAkB,SAClBC,EAAgB,WAEZ+R,eAAiB,SAAU9hF,UACxBA,EAAO5Y,QAAQ0oF,EAAiB,OAGnCiS,gBAAkB,SAAU/hF,UACzBA,EAAO5Y,QAAQ2oF,EAAe,OAGjCiS,WAAa,SAAS51F,OACtByH,EAAO,WACFnQ,KAAO0I,IACP1I,GAAO0I,EAAI1I,UAEbmQ,KAGHouF,UAAY,SAASjX,WACrBn3E,EAAO,GACF1R,EAAE,EAAGO,EAAEsoF,EAAM7nF,OAAQhB,EAAEO,EAAGP,IAC3B6oF,EAAM7oF,IAAyB,iBAAZ6oF,EAAM7oF,KACpBA,GAAKmC,KAAK09F,WAAWhX,EAAM7oF,MAE3BA,GAAK6oF,EAAM7oF,UAEjB0R,KAGHquF,SAAW,WAAkB91F,MACd,iBAARA,IAAqBA,SACrBA,MACPyH,KACAxN,MAAMC,QAAQ8F,GAAM,GACb,WACE1I,EAAM,EAAGA,EAAM0I,EAAIjJ,OAAQO,MAC3BA,GAAOw+F,EAAS91F,EAAI1I,WAEtBmQ,KAEiC,oBAAxCpD,OAAOpI,UAAUqN,SAAS1L,KAAKoC,UACxBA,UAGF1I,OADF,GACS0I,IACP1I,GAAOw+F,EAAS91F,EAAI1I,WACtBmQ,KAGHsuF,WAAa,SAASvsF,WACtBwsF,EAAM,GACDjgG,EAAE,EAAGA,EAAEyT,EAAIzS,OAAQhB,MACpByT,EAAIzT,IAAM,SAEXigG,KAIHC,UAAY,SAAS5+F,OACrB2+F,EAAM3xF,OAAOC,OAAO,cACfvO,KAAKsB,IACNtB,GAAKsB,EAAMtB,UAEZigG,KAEHE,YAAc,SAAStX,EAAOtkF,WAC3BvE,EAAI,EAAGA,GAAK6oF,EAAM7nF,OAAQhB,IAC7BuE,IAAUskF,EAAM7oF,MACZsJ,OAAOtJ,EAAG,MAKdogG,aAAe,SAASltF,UACrBA,EAAIjO,QAAQ,0BAA2B,WAG1Co7F,WAAa,SAASntF,UACnBA,EAAIjO,QAAQ,KAAM,SAASA,QAAQ,KAAM,SAASA,QAAQ,KAAM,SAASA,QAAQ,KAAM,YAG1Fq7F,gBAAkB,SAASziF,EAAQ0iF,OACnC/1F,EAAU,YAEPvF,QAAQs7F,GAAQ,SAASrtF,KACpBjS,KAAK,CACTgR,OAAQnR,UAAUA,UAAUE,OAAO,GACnCA,OAAQkS,EAAIlS,YAIbwJ,KAEHg2F,aAAe,SAASC,OACxB/C,EAAQ,KACRpW,EAAW,aACH,UAIRoZ,EAAW,SAASC,YACXC,WACD72F,WAAWu9E,EAAUqZ,GAAW,GACjCD,YAGFG,SAAWH,IAEX74F,KAAO,uBACP+4F,aAEEF,KAGFE,OAAS,+BACDlD,KACL,KACDgD,KAGFI,UAAY,kBACVpD,GAGJgD,KAIHK,YAAc,SAASN,EAAKO,OAC5BtD,EAAQ,KACRpW,EAAW,aACH,UAIR2Z,EAAQ,SAASN,GACJ,MAATjD,MACQ3zF,WAAWu9E,EAAUqZ,GAAWK,cAG1CE,MAAQ,SAASP,MACVQ,aAAazD,KACd3zF,WAAWu9E,EAAUqZ,GAAWK,MAEtCH,SAAWI,IAEXp5F,KAAO,gBACJ+4F,gBAIHA,OAAS,cACFO,aAAazD,KACd,QAGNoD,UAAY,kBACPpD,GAGJuD,MAIXhZ,IAAID,OAAO,6BAA6B,CAAC,UAAU,UAAU,SAAS,gBAAgB,oBAAoB,cAAc,eAAe,iBAAiB,SAASP,EAAU/wE,EAAS+f,OAGhL9wB,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,oBACrB2Z,EAAM3Z,EAAS,cACf4Z,EAAO5Z,EAAS,eAChB6Z,EAAO7Z,EAAS,eAChB8Z,EAAOD,EAAKrP,SACZuP,EAAiB1G,EAAUN,SAAW,GACtCiH,EAAoB3G,EAAUlB,OA4c1B8H,UA1cQ,SAASjhG,EAAYkhG,OAE7BzsE,EAAOksE,EAAI15F,cAAc,cACxBymF,UAAY2M,EAAUF,MAAQ,oCAAsC,iBAErEE,EAAU8G,cACLn8F,aAAa,2BAA2B,KAE5CA,aAAa,OAAQ,SACrBA,aAAa,cAAe,SAC5BA,aAAa,iBAAkB,SAC/BA,aAAa,cAAc,KAE3BX,MAAM+8F,QAAU,MACVl9F,aAAauwB,EAAMz0B,EAAW6H,gBAErCw5F,EAAc,cAEdC,GAAS,EACTC,GAAM,EACNC,GAAS,EACTC,GAAgB,EAChBC,EAAY,GACZC,GAAmB,UACbC,EAAY96F,SAAS+6F,gBAAkBptE,QAAc7xB,MAEzD43F,YAAY/lE,EAAM,QAAQ,SAAS7xB,KAChCk/F,OAAOl/F,MACA,OAEV43F,YAAY/lE,EAAM,SAAS,SAAS7xB,MAC1B,IACPm/F,QAAQn/F,eAGZo/F,MAAQ,cACLN,SAAkBjtE,EAAKutE,UACtB39F,MAAMqf,SAAW,UACjBs+E,cAEJC,KAAO,aACHA,aAEJL,UAAY,kBACNA,OAEPM,EAAgBtB,EAAKN,aAAY,cACpB6B,EAAeR,MAE5BS,EAAYxB,EAAKN,aAAY,WACvBmB,MACG39F,MAAQu9F,KACAc,mBAIGE,OAChBZ,SAEY,EAEZa,IACiB,IACFD,EAAU,EAAI5tE,EAAK3wB,MAAMvD,OAAS,WAE7CgiG,EAAiB,EACjBC,EAAe,QAGdC,kBAAkBF,EAAgBC,SACnC5/F,OAEQ,gBAIZ6+F,MAEC39F,MAAQu9F,EACThH,EAAUP,YACAsG,cAGRtG,UAAYoH,EAAKt8F,iBAAiB,mBAAmB,WACvDs8F,EAAKwB,UAAUL,WAAaV,OACRA,IACNvB,mBAKlBwB,KACKG,cAgBLO,EAAe,UACdK,gBAAkB,SAASC,KAAoBA,QAC/CC,gBAAkB,kBAAmBP,OACtCQ,GAAmB,EAEnBC,EAAW,SAAS57F,GACQ,IAAxBstB,EAAK8tE,gBAA8C,IAAtB9tE,EAAK+tE,eAGlCF,MACOA,EAAan7F,KACL,MAEfq6F,OAEIr6F,KACK67F,QAAQ77F,MACR,GACFA,GAAQk6F,EAAYtuF,OAAO,IAA8B,IAAxB0hB,EAAK8tE,eACzCO,IACKG,YAAY,MAAO,CAACpyE,OAAQ,UAE5BoyE,YAAY,YAAa,CAACpyE,OAAQ,QACnCywE,IACJn6F,EAAK+7F,UAAU,EAAG,IAAM7B,GAAel6F,EAAK5G,OAAS8gG,EAAY9gG,SAC1D4G,EAAK4L,OAAO,GACd5L,EAAK4L,OAAO,EAAG,IAAMsuF,EAAYtuF,OAAO,EAAG,KACzC5L,EAAK4L,OAAO,EAAG5L,EAAK5G,OAAS8gG,EAAY9gG,OAAS,GACpD4G,EAAKoD,OAAOpD,EAAK5G,OAAS,IAAM8gG,EAAY92F,OAAO,OACjDpD,EAAKzC,MAAM,OAClByC,GAAQk6F,EAAY92F,OAAO,IACpBpD,EAAKoD,OAAOpD,EAAK5G,OAAS,IAAM8gG,EAAY92F,OAAO,OACnDpD,EAAKzC,MAAM,OAElByC,KACKg8F,YAAYh8F,IAErBm6F,OACO,GAEPwB,OACmB,KAEvBM,EAAU,SAASxgG,OACf6+F,OAEAt6F,EAAOstB,EAAK3wB,QACPqD,SAITk8F,EAAsB,SAASzgG,EAAGuE,EAAMm8F,OACpCC,EAAgB3gG,EAAE2gG,eAAiBt4C,OAAOs4C,iBACzCA,IAAiBxC,OAElByC,EAAOxC,GAAoBsC,EAAc,OAAS,wBAE9Cn8F,GAC6C,IAAtCo8F,EAAcE,QAAQD,EAAMr8F,GAE5Bo8F,EAAcG,QAAQF,SAE7Bl9B,OACCg9B,SACMD,EAAoB/8B,EAAGn/D,GAAM,MAI5Cw8F,EAAS,SAAS/gG,EAAGghG,OACjBz8F,EAAO+5F,EAAK2C,kBACX18F,SACMjC,EAAM+H,eAAerK,GAE5BygG,EAAoBzgG,EAAGuE,IACnBkzF,EAAUF,UACJyJ,IACD9/F,MAAQ,QAAUqD,EAAO,UACzBs7F,kBAAkB,EAAG,EAAIt7F,EAAK5G,UAC1B,CACLuD,MAAOqD,MAGP+5F,EAAK4C,QAAU5C,EAAK6C,SACvB1J,EAAUF,SAAaltF,eAAerK,QAElC,IACJkB,MAAQqD,IACR68F,qBACM,cACE,YAGD9C,EAAK4C,QAAU5C,EAAK6C,gBA4BlC9F,sBAAsBxpE,EAAMysE,EAAK+C,aAAa76F,KAAK83F,MAEnD1G,YAAY/lE,EAAM,UAnIT,SAAS7xB,GAJJ,IAASshG,EACM,KADNA,EAKPzvE,GAJN8tE,gBAAwB2B,EAAK1B,eAAiB0B,EAAKpgG,MAAMvD,UAK5D4jG,iBAEE7B,KACQpB,EAAKwB,UAAUL,gBAgIhC7H,YAAY/lE,EAAM,QAAS2uE,KAE3B5I,YAAY/lE,EAAM,OA7BZ,SAAS7xB,KACVA,GAAG,QA6BR43F,YAAY/lE,EAAM,QA1BX,SAAS7xB,KACXA,GAAG,QA0BR43F,YAAY/lE,EAAM,SAvBV,SAAS7xB,OACfuE,EAAOk8F,EAAoBzgG,GACZ,iBAARuE,GACHA,KACK67F,QAAQ77F,EAAMvE,GACnBy3F,EAAUlB,iBACCgJ,KACTl1F,eAAerK,OAGhBkB,MAAQ,MACJ,UAoJbsgG,EAvHAC,EAAsB,cACjB5C,GAAkBP,EAAKmD,sBAAuBnD,EAAKoD,eAEpD15F,EAAM6pB,EAAK3wB,MAAMU,QAAQ,QAAS,OAClCi9F,EAAc8C,YAAc35F,MAE3By5F,oBAAoBz5F,GACrB62F,EAAc8C,aACTC,OACL/C,EAAcgD,YACAF,UAAY35F,GAC1B62F,EAAc8C,WAAW,KACrBnkG,EAAI8gG,EAAKwB,UAAUgC,aAClB3wC,OAAO0tC,EAAc8C,aACrBI,QAAQC,kBACCvxD,MAAQ6tD,EAAKwB,UAAUgC,aAChChC,UAAUmC,SAASzkG,KACnBsiG,UAAUoC,oBAInBC,EAAmB,SAASniG,MACvBs+F,EAAK6D,mBAAoB7D,EAAKoD,eAC/BzhG,EAAI4+F,KACQ,MACZxE,EAAQ3zF,YAAW,aACX,SACJmJ,EAAMgiB,EAAK3wB,MAAMU,QAAQ,QAAS,IAClCi9F,IAEKhvF,GAAO5P,EAAE0hG,eAER1hG,EAAE0hG,WAAa9xF,UAEZA,UAGF,SAAiCA,UACxCwqF,gBACaA,MACXxqF,EAAIjO,QAAQ,QAAS,MAChB3B,EAAE0hG,UACF,IACP1hG,EAAE0hG,WAAatH,KACVuH,OACF/xF,MAENsyF,qBACAlK,eAAe,YAAakK,GACnB,kBAAVniG,EAAEhC,MAA4BiC,EAAEwwC,SAC3BqvD,UAAUmC,SAAShiG,EAAEwwC,UAGvBgnD,EAAUN,UAAYM,EAAUN,UAAY,MAC5CM,EAAUP,UAAYO,EAAUP,UAAY,YASnDkL,EAAkBpE,EAAKN,YAAY+D,EAAqB,8BA0D3CD,KACE96F,YAAW,WAClBo4F,MACKr9F,MAAMC,QAAUo9F,IACT,IAE2B,MAAvCR,EAAK+D,SAASC,0BACTD,SAASC,uBAAwB,IACjCD,SAASE,2BAEnB,KAlED3K,YAAY/lE,EAAM,oBAjFC,SAAS7xB,GAC1B6+F,IAAkBP,EAAKkE,oBAAsBlE,EAAKoD,eAEtC,IACFG,QAAUvD,EAAKyD,QAAQU,eAChCD,gCACMf,EAAqB,KAC3BiB,GAAG,YAAaP,GACjBtD,EAAcgD,UAAYvD,EAAKwB,UAAUL,cACpCtuC,OAAO,MACP4wC,QAAQC,kBACRlC,UAAUoC,oBAEdH,QAAQC,oBAqEbvK,EAAUf,UACJkB,YAAY/lE,EAAM,QAAQ,aAA2B2rE,iBAErD5F,YAAY/lE,EAAM,SAAS,aAA2B2rE,gBACtD5F,YAAY/lE,EAAM,WAAW,aAA2B2rE,iBAE5D5F,YAAY/lE,EAAM,iBAAkBswE,QAErCQ,WAAa,kBACP9wE,QAGN+wE,YAAc,SAASC,KACpBA,SAAWA,QAGdC,cAAgB,SAAS9iG,MACP,IACJs+F,EAAKwB,UAAUL,aACzBsD,MAAM,oBAAqB,CAACr5F,OAAQ40F,EAAM0E,SAAUhjG,SACpDijG,YAAYjjG,GAAG,SAGnBijG,YAAc,SAASjjG,EAAGkjG,GACtBpE,MACWjtE,EAAKpwB,MAAMC,WACtBD,MAAMC,WAA0B,kBAAoB,IACnD,UAAYmwB,EAAKpwB,MAAM41B,OAAS,OACrBk/D,KAAO,eAAiB,QAErC4M,EAAO7E,EAAK8E,UAAUC,wBACtB5hG,EAAQs8F,EAAIhS,cAAcuS,EAAK8E,WAC/BE,EAAMH,EAAKG,cAAgB7hG,EAAM8hG,iBAAmB,GACpDppC,EAAOgpC,EAAKhpC,eAAiBgpC,EAAKK,kBAAoB,GACtDC,EAASN,EAAKO,OAASJ,EAAMzxE,EAAKq6D,aAAc,EAChDyX,EAAO,SAASjgC,KACXjiE,MAAM04D,KAAOuJ,EAAEs1B,QAAU7+B,EAAO,EAAI,OACpC14D,MAAM6hG,IAAM77F,KAAKkN,IAAI+uD,EAAEu1B,QAAUqK,EAAM,EAAGG,GAAU,QAExDzjG,GAES,aAAVA,EAAEhC,OAGFsgG,EAAK+D,SAASC,0BACTD,SAASC,sBAAwB,mBAE7Bd,GACT/J,EAAUnB,SACJiC,QAAQ+F,EAAK8E,UAAWO,EAAMC,UAGvCA,mBAAqBA,MAgBtBd,EAAgB,SAAS9iG,KACpB6jG,UAAUf,cAAc9iG,aAG3B43F,YAAY/lE,EAAM,UAAWixE,KAC7BlL,YAAY/lE,EAAM,aAAa,SAAS7xB,KACxCqK,0BAGAutF,YAAY0G,EAAK+D,SAASyB,SAAU,cAAehB,KACnDlL,YAAY/lE,EAAM,cAAeixE,GAEnCrL,EAAUF,MAAO,KACbwM,EAAqB,KACrBC,GAAS,IAEFhiG,iBAAiB,WAAW,SAAUhC,GACzC+jG,gBAAiCA,MAC5B,OAGF/hG,iBAAiB,SAAS,SAAUhC,KACtB0G,YAAW,cACnB,IACV,YAEHu9F,EAAkB,SAASjkG,MACvBkE,SAAS+6F,gBAAkBptE,IAC3BmyE,MAEArF,SACOj4F,YAAW,cACR,IACP,SAEHi5F,EAAiB9tE,EAAK8tE,eACtBC,EAAe/tE,EAAK+tE,kBACnBC,kBAAkB,EAAG,GACtBF,GAAkBC,SACVD,QACC,IAAQ0B,aAAa,KAAM,EAAGpD,EAAKpzB,eACnC,IAAQw2B,aAAa,KAAM,EAAGpD,EAAKiG,iBACnC,IAAQ7C,aAAa,KAAMnD,EAAKnP,OAAQkP,EAAK9jC,iBAC7C,IAAQknC,aAAa,KAAM,EAAGpD,EAAK9jC,iBACnC,IAAQknC,aAAa,KAAM,EAAGpD,EAAKkG,kBACnC,IAAQ9C,aAAa,KAAMnD,EAAKnP,OAAQkP,EAAKkG,kBAC7C,IAAQ9C,aAAa,KAAM,EAAGpD,EAAKjwF,gBACnC,IAAQqzF,aAAa,KAAM,EAAGpD,EAAKnzB,UAEzC,QACK80B,QACC,IAAQyB,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAKkG,kBAC5C,IAAQ9C,aAAa,KAAMnD,EAAK/uF,MAAQ+uF,EAAKnP,OAAQkP,EAAKkG,kBAC1D,IAAQ9C,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAKjwF,gBAC5C,IAAQqzF,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAKnzB,aAE7C60B,QACC,IAAQ0B,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAKpzB,eAC5C,IAAQw2B,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAKiG,iBAC5C,IAAQ7C,aAAa,KAAMnD,EAAK/uF,MAAQ+uF,EAAKnP,OAAQkP,EAAK9jC,iBAC1D,IAAQknC,aAAa,KAAMnD,EAAK/uF,MAAO8uF,EAAK9jC,mBAIpDn4D,iBAAiB,kBAAmBiiG,KACxCvB,GAAG,WAAW,oBACNvgG,oBAAoB,kBAAmB8hG,WAQ5Drf,IAAID,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,gBAAgB,oBAAoB,cAAc,eAAe,+BAA+B,SAASP,EAAU/wE,EAAS+f,OAG1L9wB,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,oBACrB2Z,EAAM3Z,EAAS,cACf4Z,EAAO5Z,EAAS,eAChB+Z,EAAiB1G,EAAUN,SAAW,GACtCiH,EAAoB3G,EAAUlB,KAE9B6N,EAAehgB,EAAS,mBAAmBia,YA2ZvCA,UA1ZQ,SAASjhG,EAAYkhG,MAC7B7G,EAAUF,aACH6M,EAAa5/F,KAAK1F,KAAM1B,EAAYkhG,OAE3CzsE,EAAOksE,EAAI15F,cAAc,cACxBymF,UAAY,mBAEZ1oF,aAAa,OAAQ,SACrBA,aAAa,cAAe,SAC5BA,aAAa,iBAAkB,SAC/BA,aAAa,cAAc,KAE3BX,MAAM+8F,QAAU,MACVl9F,aAAauwB,EAAMz0B,EAAW6H,gBAErCw5F,EAAc,eAEdC,GAAS,EACTE,GAAS,EACTC,GAAgB,EAChBC,EAAY,GACZC,GAAmB,UACbC,EAAY96F,SAAS+6F,gBAAkBptE,QAAc7xB,MAEzD43F,YAAY/lE,EAAM,QAAQ,SAAS7xB,KAChCk/F,OAAOl/F,MACA,OAEV43F,YAAY/lE,EAAM,SAAS,SAAS7xB,MAC1B,IACPm/F,QAAQn/F,eAGZo/F,MAAQ,cACLN,SAAkBjtE,EAAKutE,YACvBkE,EAAMzxE,EAAKpwB,MAAM6hG,MAChB7hG,MAAMqf,SAAW,UACjBrf,MAAM6hG,IAAM,QACZlE,oBACM,aACF39F,MAAMqf,SAAW,GACA,OAAlB+Q,EAAKpwB,MAAM6hG,QACN7hG,MAAM6hG,IAAMA,KACtB,SAEFjE,KAAO,aACHA,aAEJL,UAAY,kBACNA,OAEPM,EAAgBtB,EAAKN,aAAY,cACpB6B,EAAeR,MAE5BS,EAAYxB,EAAKN,aAAY,WACvBmB,MACG39F,MAAQu9F,KACAc,mBAIGE,OAChBZ,SAEY,EAEZa,MACIC,EAAiB,EACjBC,EAAeH,EAAU,EAAI5tE,EAAK3wB,MAAMvD,OAAS,OAEjDgiG,EAAiBF,EAAU,EAAI,EAC/BG,EAAe,QAGdC,kBAAkBF,EAAgBC,SACnC5/F,OAEQ,gBAIZ6+F,MAEC39F,MAAQu9F,EACThH,EAAUP,YACAsG,cAGRtG,UAAYoH,EAAKt8F,iBAAiB,mBAAmB,WACvDs8F,EAAKwB,UAAUL,WAAaV,OACRA,IACNvB,mBAKlBwB,KACKG,cAkBLO,EAAe,UACdK,gBAAkB,SAASC,KAAoBA,QAC/CC,gBAAkB,kBAAmBP,OACtCQ,GAAmB,EAEnBC,EAAW,SAAS57F,GAChBm7F,MACOA,EAAan7F,KACL,MAEfq6F,OAEIr6F,KACK67F,QAAQ77F,MACR,GACFA,GAAQk6F,EAAY92F,OAAO,GAC9Bu4F,IACKG,YAAY,MAAO,CAACpyE,OAAQ,UAE5BoyE,YAAY,YAAa,CAACpyE,OAAQ,SAEvC1pB,EAAK+7F,UAAU,EAAG,IAAM7B,IACjBl6F,EAAK4L,OAAO,GACd5L,EAAKoD,OAAO,IAAM82F,EAAY92F,OAAO,KACnCpD,EAAK4L,OAAO,GACd5L,EAAKoD,OAAOpD,EAAK5G,OAAS,IAAM8gG,EAAY92F,OAAO,OACjDpD,EAAKzC,MAAM,OAClByC,EAAKoD,OAAOpD,EAAK5G,OAAS,IAAM8gG,EAAY92F,OAAO,OAC5CpD,EAAKzC,MAAM,OAElByC,KACKg8F,YAAYh8F,IAErB27F,OACmB,IAEvBM,EAAU,SAASxgG,OACf6+F,OAEAt6F,EAAOstB,EAAK3wB,QACPqD,SAITk8F,EAAsB,SAASzgG,EAAGuE,EAAMm8F,OACpCC,EAAgB3gG,EAAE2gG,eAAiBt4C,OAAOs4C,iBACzCA,IAAiBxC,OAElByC,EAAOxC,GAAoBsC,EAAc,OAAS,wBAE9Cn8F,GAC6C,IAAtCo8F,EAAcE,QAAQD,EAAMr8F,GAE5Bo8F,EAAcG,QAAQF,SAE7Bl9B,OACCg9B,SACMD,EAAoB/8B,EAAGn/D,GAAM,MAI5Cw8F,EAAS,SAAS/gG,EAAGghG,OACjBz8F,EAAO+5F,EAAK2C,kBACX18F,SACMjC,EAAM+H,eAAerK,GAE5BygG,EAAoBzgG,EAAGuE,MACf+5F,EAAK4C,QAAU5C,EAAK6C,WACtB92F,eAAerK,QAEZ,IACJkB,MAAQqD,IACR68F,qBACM,cACE,YAGD9C,EAAK4C,QAAU5C,EAAK6C,cAKpCD,EAAQ,SAASlhG,KACVA,GAAG,IAGVmhG,EAAS,SAASnhG,KACXA,GAAG,IAGVogG,EAAU,SAASpgG,OACfuE,EAAOk8F,EAAoBzgG,GACZ,iBAARuE,GACHA,KACK67F,QAAQ77F,EAAMvE,GACnBy3F,EAAUlB,iBACCgJ,KACTl1F,eAAerK,OAGhBkB,MAAQ,MACJ,MAIXm6F,sBAAsBxpE,EAAMysE,EAAK+C,aAAa76F,KAAK83F,MAEnD1G,YAAY/lE,EAAM,UAtHT,SAAS7xB,GAJJ,IAASshG,EAKrB5C,KACS,EALkB,KADN4C,EAOAzvE,GANb8tE,gBAAwB2B,EAAK1B,eAAiB0B,EAAKpgG,MAAMvD,UAO5D4jG,iBAEE7B,KACQpB,EAAKwB,UAAUL,gBAiHhC7H,YAAY/lE,EAAM,QAAS2uE,KAE3B5I,YAAY/lE,EAAM,MAAOqvE,KACzBtJ,YAAY/lE,EAAM,OAAQsvE,KAC1BvJ,YAAY/lE,EAAM,QAASuuE,aAChBvuE,cAAuBA,eAAwBA,KACtD+lE,YAAYx6F,EAAY,WAAW,SAAS4C,QACzCy3F,EAAUzB,OAAUh2F,EAAE6J,UAAa7J,EAAE4J,eAGlC5J,EAAEy1F,cACD,KACMz1F,cAEN,KACOA,cAEP,KACKA,WA4IlBwhG,EAvHAC,EAAsB,cACjB5C,GAAkBP,EAAKmD,sBAAuBnD,EAAKoD,eAEpD15F,EAAM6pB,EAAK3wB,MAAMU,QAAQ,UAAW,OACpCi9F,EAAc8C,YAAc35F,MAE3By5F,oBAAoBz5F,GACrB62F,EAAc8C,aACTC,OACL/C,EAAcgD,YACAF,UAAY35F,GAC1B62F,EAAc8C,WAAW,KACrBnkG,EAAI8gG,EAAKwB,UAAUgC,aAClB3wC,OAAO0tC,EAAc8C,aACrBI,QAAQC,kBACCvxD,MAAQ6tD,EAAKwB,UAAUgC,aAChChC,UAAUmC,SAASzkG,KACnBsiG,UAAUoC,oBAInBC,EAAmB,SAASniG,MACvBs+F,EAAK6D,mBAAoB7D,EAAKoD,eAC/BzhG,EAAI4+F,KACQ,MACZxE,EAAQ3zF,YAAW,aACX,SACJmJ,EAAMgiB,EAAK3wB,MAAMU,QAAQ,UAAW,IACpCi9F,IAEKhvF,GAAO5P,EAAE0hG,eAER1hG,EAAE0hG,WAAa9xF,UAEZA,UAGF,SAAiCA,UACxCwqF,gBACaA,MACXxqF,EAAIjO,QAAQ,UAAW,MAClB3B,EAAE0hG,UACF,IACP1hG,EAAE0hG,WAAatH,KACVuH,OACF/xF,MAENsyF,qBACAlK,eAAe,YAAakK,GACnB,kBAAVniG,EAAEhC,MAA4BiC,EAAEwwC,SAC3BqvD,UAAUmC,SAAShiG,EAAEwwC,UAGvBgnD,EAAUN,UAAYM,EAAUN,UAAY,MAC5CM,EAAUP,UAAYO,EAAUP,UAAY,YASnDkL,EAAkBpE,EAAKN,YAAY+D,EAAqB,8BA0D3CD,KACE96F,YAAW,WAClBo4F,MACKr9F,MAAMC,QAAUo9F,IACT,IAE2B,MAAvCR,EAAK+D,SAASC,0BACTD,SAASC,uBAAwB,IACjCD,SAASE,2BAEnB,KAlED3K,YAAY/lE,EAAM,oBAjFC,SAAS7xB,GAC1B6+F,IAAkBP,EAAKkE,oBAAsBlE,EAAKoD,eAEtC,IACFG,QAAUvD,EAAKyD,QAAQU,eAChCD,gCACMf,EAAqB,KAC3BiB,GAAG,YAAaP,GACjBtD,EAAcgD,UAAYvD,EAAKwB,UAAUL,cACpCtuC,OAAO,MACP4wC,QAAQC,kBACRlC,UAAUoC,oBAEdH,QAAQC,oBAqEbvK,EAAUf,UACJkB,YAAY/lE,EAAM,QAAQ,aAA2B2rE,iBAErD5F,YAAY/lE,EAAM,SAAS,aAA2B2rE,gBACtD5F,YAAY/lE,EAAM,WAAW,aAA2B2rE,iBAE5D5F,YAAY/lE,EAAM,iBAAkBswE,QAErCQ,WAAa,kBACP9wE,QAGN+wE,YAAc,SAASC,KACpBA,SAAWA,QAGdC,cAAgB,SAAS9iG,MACP,IACJs+F,EAAKwB,UAAUL,aACzBsD,MAAM,oBAAqB,CAACr5F,OAAQ40F,EAAM0E,SAAUhjG,SACpDijG,YAAYjjG,GAAG,SAGnBijG,YAAc,SAASjjG,EAAGkjG,GACtBpE,MACWjtE,EAAKpwB,MAAMC,WACtBD,MAAMC,WAA0B,kBAAoB,IACnD,UAAYmwB,EAAKpwB,MAAM41B,OAAS,OACrBk/D,KAAO,eAAiB,QAErC4M,EAAO7E,EAAK8E,UAAUC,wBACtB5hG,EAAQs8F,EAAIhS,cAAcuS,EAAK8E,WAC/BE,EAAMH,EAAKG,cAAgB7hG,EAAM8hG,iBAAmB,GACpDppC,EAAOgpC,EAAKhpC,eAAiBgpC,EAAKK,kBAAoB,GACtDC,EAASN,EAAKO,OAASJ,EAAMzxE,EAAKq6D,aAAc,EAChDyX,EAAO,SAASjgC,KACXjiE,MAAM04D,KAAOuJ,EAAEs1B,QAAU7+B,EAAO,EAAI,OACpC14D,MAAM6hG,IAAM77F,KAAKkN,IAAI+uD,EAAEu1B,QAAUqK,EAAM,EAAGG,GAAU,QAExDzjG,GAES,aAAVA,EAAEhC,OAGFsgG,EAAK+D,SAASC,0BACTD,SAASC,sBAAwB,mBAE7Bd,GACT/J,EAAUnB,SACJiC,QAAQ+F,EAAK8E,UAAWO,EAAMC,UAGvCA,mBAAqBA,MAgBtBd,EAAgB,SAAS9iG,KACpB6jG,UAAUf,cAAc9iG,UAG3B43F,YAAY/lE,EAAM,UAAWixE,KAC7BlL,YAAY/lE,EAAM,aAAa,SAAS7xB,KACxCqK,0BAGAutF,YAAY0G,EAAK+D,SAASyB,SAAU,cAAehB,KACnDlL,YAAY/lE,EAAM,cAAeixE,OAM3Cle,IAAID,OAAO,6BAA6B,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,sBAAsB,SAASP,EAAU/wE,EAAS+f,KAGnI,gBACE,oBACjBqkE,EAAYrT,EAAS,+BAKAigB,KACRC,gBAAkB,SAE3BC,EAASF,EAAaE,SACnBC,kBAAkB,YAAa1lG,KAAK2lG,YAAYj+F,KAAK69F,MACrDG,kBAAkB,WAAY1lG,KAAK4lG,cAAcl+F,KAAK69F,MACtDG,kBAAkB,cAAe1lG,KAAK6lG,cAAcn+F,KAAK69F,MACzDG,kBAAkB,YAAa1lG,KAAK8lG,YAAYp+F,KAAK69F,MACrDG,kBAAkB,aAAc1lG,KAAK+lG,aAAar+F,KAAK69F,MACvDG,kBAAkB,YAAa1lG,KAAKgmG,YAAYt+F,KAAK69F,IAE9C,CAAC,SAAU,cAAe,YAAa,eAAgB,mBACjE,mBAAoB,WAAY,cAAe,aAE3C5gG,SAAQ,SAASf,KACRA,GAAK5D,KAAK4D,KACxB5D,QAEUimG,cAAgBjmG,KAAKkmG,kBAAkBx+F,KAAK69F,EAAc,kBAC1DY,cAAgBnmG,KAAKkmG,kBAAkBx+F,KAAK69F,EAAc,2BAoP7C5zD,EAAOy0D,MAC7Bz0D,EAAMhjC,MAAM03F,KAAO10D,EAAMziC,IAAIm3F,QACzBC,EAAM,EAAIF,EAAOG,OAAS50D,EAAMhjC,MAAM43F,OAAS50D,EAAMziC,IAAIq3F,eACxD50D,EAAMhjC,MAAM03F,KAAO10D,EAAMziC,IAAIm3F,IAAM,GAAM10D,EAAMhjC,MAAM43F,QAAW50D,EAAMziC,IAAIq3F,OAG3ED,EAAM,EAAIF,EAAOC,IAAM10D,EAAMhjC,MAAM03F,IAAM10D,EAAMziC,IAAIm3F,aAFnDC,EAAMF,EAAOG,OAAS,SAI1BD,EAAM,EACC,CAACF,OAAQz0D,EAAMhjC,MAAOu0C,OAAQvR,EAAMziC,KAEpC,CAACk3F,OAAQz0D,EAAMziC,IAAKg0C,OAAQvR,EAAMhjC,QA5PhD,gBAEQg3F,YAAc,SAASa,OACpBC,EAAcD,EAAGC,cACjBj7C,EAAMg7C,EAAGE,2BACRC,eAAiBH,MAClBf,EAASzlG,KAAKylG,OAEdv6F,EAASs7F,EAAGjN,eACD,IAAXruF,EAAc,KAEV07F,EADiBnB,EAAOoB,oBACQlG,mBAC7BmG,mBACHF,GAA4B,GAAV17F,MACX81F,UAAU+F,eAAev7C,KAC7Bs7C,uBACO,GAAV57F,MACO65F,UAAUf,cAAcwC,EAAGtC,UAC7BvL,EAAUd,aACRtsF,+BAKVo7F,eAAevxC,KAAO93C,KAAK8tE,OAC5Bqb,GAAgBhB,EAAOvF,gBAChBI,SACHtgG,KAAKgnG,cAAiBhnG,KAAKwlG,iBAAoBC,EAAOwB,yBAOzDC,aAAaV,QACbW,YAAY37C,EAAKg7C,EAAGtC,SAAStI,QAAU,GACrC4K,EAAGj7F,wBARGlE,SAAS,uBACT6/F,aAAaV,UAUzBW,YAAc,SAAS37C,EAAK47C,KACvB57C,GAAOxrD,KAAKylG,OAAOlC,SAAS8D,wBAAwBrnG,KAAKmC,EAAGnC,KAAKiC,OACnEwjG,EAASzlG,KAAKylG,SACXqB,kBACH9mG,KAAK2mG,eAAeW,gBACbtG,UAAUuG,iBAAiB/7C,GAC5B47C,KACCpG,UAAU+F,eAAev7C,GAC/B47C,QACI9E,SACLmD,EAAOlC,SAASyB,SAASwC,cAClBjE,SAASyB,SAASwC,eAEtBC,SAAS,sBACXpgG,SAAS,YACPy/F,wBAGNxE,OAAS,eACNp/C,EAAQuiD,EAASzlG,KAAKylG,OACtBW,EAASX,EAAOlC,SAAS8D,wBAAwBrnG,KAAKmC,EAAGnC,KAAKiC,QAC3D6kG,kBACH9mG,KAAKwlG,gBAAiB,KAClBc,EAAMtmG,KAAKwlG,gBAAgBkC,aAAatB,UAExCE,IACStmG,KAAKwlG,gBAAgBt2F,YAChB,GAAPo3F,IACEtmG,KAAKwlG,gBAAgB72F,UAC3B,KACCg5F,EAAgBC,EAAqB5nG,KAAKwlG,gBAAiBY,KACtDuB,EAAcvB,SACduB,EAAczkD,SAEpB89C,UAAU6G,mBAAmB3kD,EAAOmjD,IAAKnjD,EAAOqjD,UAEpDvF,UAAUuG,iBAAiBnB,KAC3BU,oBACAvD,SAASuE,6BAGf5B,kBAAoB,SAAS6B,OAC1B7kD,EAAQuiD,EAASzlG,KAAKylG,OACtBW,EAASX,EAAOlC,SAAS8D,wBAAwBrnG,KAAKmC,EAAGnC,KAAKiC,GAC9D0vC,EAAQ8zD,EAAOzE,UAAU+G,GAAU3B,EAAOC,IAAKD,EAAOG,aACnDO,kBACH9mG,KAAKwlG,gBAAiB,KAClBwC,EAAWhoG,KAAKwlG,gBAAgBkC,aAAa/1D,EAAMhjC,OACnDs5F,EAASjoG,KAAKwlG,gBAAgBkC,aAAa/1D,EAAMziC,YAEjD84F,GAAkBC,GAAU,IACnBjoG,KAAKwlG,gBAAgBt2F,IAC1ByiC,EAAMziC,IAAIm3F,KAAOD,EAAOC,KAAO10D,EAAMziC,IAAIq3F,QAAUH,EAAOG,WACjD50D,EAAMhjC,eACF,GAAVs5F,GAAeD,GAAY,IACzBhoG,KAAKwlG,gBAAgB72F,MAC1BgjC,EAAMhjC,MAAM03F,KAAOD,EAAOC,KAAO10D,EAAMhjC,MAAM43F,QAAUH,EAAOG,WACrD50D,EAAMziC,iBACZ84F,GAA4B,GAAVC,IAChBt2D,EAAMziC,MACNyiC,EAAMhjC,UACZ,KACCg5F,EAAgBC,EAAqB5nG,KAAKwlG,gBAAiBY,KACtDuB,EAAcvB,SACduB,EAAczkD,SAEpB89C,UAAU6G,mBAAmB3kD,EAAOmjD,IAAKnjD,EAAOqjD,UAEpDvF,UAAUuG,iBAAiBnB,KAC3BU,oBACAvD,SAASuE,6BAGfI,UACLloG,KAAKmoG,aACLnoG,KAAKooG,iBACLpoG,KAAKqoG,iBAAmB,gBACf7C,gBAAkB,UAClBC,OAAO6C,WAAW,iBACnBtoG,KAAKylG,OAAOlC,SAASyB,SAASuD,qBACzB9C,OAAOlC,SAASyB,SAASuD,uBAIjCC,UAAY,eAkHCC,EAAIC,EAAIC,EAAIC,EAjHtBjlF,GAiHU8kF,EAjHczoG,KAAK2mG,eAAexkG,EAiH9BumG,EAjHiC1oG,KAAK2mG,eAAe1kG,EAiHjD0mG,EAjHoD3oG,KAAKmC,EAiHrDymG,EAjHwD5oG,KAAKiC,EAkHpF0G,KAAKygE,KAAKzgE,KAAK83D,IAAIkoC,EAAKF,EAAI,GAAK9/F,KAAK83D,IAAImoC,EAAKF,EAAI,KAjHlDtzC,EAAO93C,KAAK8tE,OAEZznE,EAxJM,GAwJoByxC,EAAOp1D,KAAK2mG,eAAevxC,KAAOp1D,KAAKgnG,oBAC5DG,YAAYnnG,KAAK2mG,eAAeD,6BAGxCd,cAAgB,SAASY,OACtBh7C,EAAMg7C,EAAGE,sBACTjB,EAASzlG,KAAKylG,OAGd9zD,EAFU8zD,EAAOxC,QAED4F,gBAAgBr9C,GAChC7Z,GACIA,EAAMgvD,cACAhyF,MAAM43F,WACNr3F,IAAIq3F,eAETl/F,SAAS,cAENo+F,EAAOzE,UAAU8H,aAAat9C,EAAI66C,IAAK76C,EAAI+6C,aAC9Cl/F,SAAS,uBAEbm+F,gBAAkB7zD,OAClB2wD,eAGJuD,cAAgB,SAASW,OACtBh7C,EAAMg7C,EAAGE,sBACTjB,EAASzlG,KAAKylG,YAEbp+F,SAAS,qBACVsqC,EAAQ8zD,EAAOoB,oBACfl1D,EAAMo3D,eAAiBp3D,EAAMq3D,SAASx9C,EAAI66C,IAAK76C,EAAI+6C,cAC9Cf,gBAAkBC,EAAOzE,UAAUiI,aAAat3D,EAAMhjC,MAAM03F,UAC5Db,gBAAgBt2F,IAAMu2F,EAAOzE,UAAUiI,aAAat3D,EAAMziC,IAAIm3F,KAAKn3F,UAEnEs2F,gBAAkBC,EAAOzE,UAAUiI,aAAaz9C,EAAI66C,UAExD/D,eAGJwD,YAAc,SAASU,OACpBf,EAASzlG,KAAKylG,SAEXhD,iBACF+C,gBAAkBC,EAAOoB,yBACzBx/F,SAAS,mBAGb0+F,aAAe,SAASS,OACrBA,EAAG0C,eAEH1C,EAAGc,eAAiBd,EAAGnM,SAAWmM,EAAGpM,WAClCA,OAASoM,EAAGnM,SACZA,OAAS,OAGZoL,EAASzlG,KAAKylG,OAEbzlG,KAAKmpG,mBACDA,YAAc,CAAErrG,EAAG,EAAGsrG,GAAI,EAAGC,GAAI,EAAGC,QAAS,QAElDC,EAAavpG,KAAKmpG,YAClB3qG,EAAIgoG,EAAGtC,SAAS9H,UAChBoN,EAAKhrG,EAAI+qG,EAAWzrG,EACpBsrG,EAAK5C,EAAGpM,OAASoP,EACjBH,EAAK7C,EAAGnM,OAASmP,EACjBA,EAxNY,WAyNDD,EAAWH,IAAM,OACjBG,EAAWF,IAAM,OAG5B3wD,EAAY/vC,KAAKwkE,IAAIi8B,EAAKC,GAE1BI,GAAY,KACZ/wD,GAAa,GAAK+sD,EAAOlC,SAASmG,eAAelD,EAAGpM,OAASoM,EAAGmD,MAAO,QAC3D,GACZjxD,GAAa,GAAK+sD,EAAOlC,SAASmG,eAAe,EAAGlD,EAAGnM,OAASmM,EAAGmD,YACvD,GAEZF,IACWH,QAAU9qG,UACdA,EAAI+qG,EAAWD,QAvOV,IAuOuC,CACpC3gG,KAAKwkE,IAAIi8B,IAAO,IAAMzgG,KAAKwkE,IAAIo8B,EAAWH,KAClDzgG,KAAKwkE,IAAIk8B,IAAO,IAAM1gG,KAAKwkE,IAAIo8B,EAAWF,QAEjC,IACDC,QAAU9qG,KAGV8qG,QAAU,WAIlBxrG,EAAIU,IACJ4qG,GAAKA,IACLC,GAAKA,EAEZI,KACOlG,SAASqG,SAASpD,EAAGpM,OAASoM,EAAGmD,MAAOnD,EAAGnM,OAASmM,EAAGmD,OACvDnD,EAAGqD,sBAIb7D,YAAc,SAASQ,QACnBf,OAAOxB,MAAM,aAAcuC,MAGrC9gG,KAAKokG,EAAgB/lG,aAEhB+lG,gBAAkBA,KAsB1BhkB,IAAID,OAAO,cAAc,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,SAASP,EAAU/wE,EAAS+f,KAG9F,iBACf2qE,EAAM3Z,EAAS,wBACDhnF,QACTyrG,QAAS,OACTC,SAAW,UACXC,YAAc3rG,GAGtB,gBACQ4rG,MAAQ,uBACJF,SAAW/K,EAAI15F,cAAc,YAC7BykG,SAAShe,UAAY,mBACrBge,SAASrnG,MAAM0iB,QAAU,YACzB4kF,YAAY3nG,YAAYtC,KAAKgqG,UAC3BhqG,KAAKgqG,eAEXnG,WAAa,kBACP7jG,KAAKgqG,UAAYhqG,KAAKkqG,cAE5BC,QAAU,SAASp3E,KAChB07D,aAAazuF,KAAK6jG,aAAc9wE,SAEnCq3E,QAAU,SAASC,QACfxG,aAAa79F,UAAYqkG,QAE7BC,YAAc,SAAS1mG,EAAGqB,QACtB4+F,aAAalhG,MAAM04D,KAAOz3D,EAAI,UAC9BigG,aAAalhG,MAAM6hG,IAAMv/F,EAAI,WAEjCslG,aAAe,SAASve,KACrBC,YAAYjsF,KAAK6jG,aAAc7X,SAElCwe,KAAO,SAASz3E,EAAMnvB,EAAGqB,GACd,MAAR8tB,QACKo3E,QAAQp3E,GACR,MAALnvB,GAAkB,MAALqB,QACRqlG,YAAY1mG,EAAGqB,GACnBjF,KAAK+pG,cACDlG,aAAalhG,MAAM0iB,QAAU,aAC7B0kF,QAAS,SAIjBU,KAAO,WACJzqG,KAAK+pG,cACAlG,aAAalhG,MAAM0iB,QAAU,YAC7B0kF,QAAS,SAGjBW,UAAY,kBACN1qG,KAAK6jG,aAAa8G,mBAExBC,SAAW,kBACL5qG,KAAK6jG,aAAalW,kBAGxBkd,QAAU,gBACNd,QAAS,EACV/pG,KAAKgqG,UAAYhqG,KAAKgqG,SAAS1rG,iBAC1B0rG,SAAS1rG,WAAWC,YAAYyB,KAAKgqG,aAInDtkG,KAAKolG,EAAQ/mG,aAER+mG,QAAUA,KAGlBhlB,IAAID,OAAO,mCAAmC,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,gBAAgB,gBAAgB,SAASP,EAAU/wE,EAAS+f,OAEhK2qE,EAAM3Z,EAAS,cACfiK,EAAMjK,EAAS,cACf9hF,EAAQ8hF,EAAS,gBACjBwlB,EAAUxlB,EAAS,cAAcwlB,mBAsHdxsG,KACXoH,KAAK1F,KAAM1B,KAGnB0wF,SAAS+b,EAAeD,GAE3B,gBACQR,YAAc,SAAS1mG,EAAGqB,OACvB+lG,EAAczhD,OAAO0hD,YAAc7lG,SAASymF,gBAAgBqB,YAC5Dge,EAAe3hD,OAAO4hD,aAAe/lG,SAASymF,gBAAgBuB,aAC9DG,EAAQvtF,KAAK4qG,WACbryE,EAASv4B,KAAK0qG,gBACb,IAEGnd,EAAQyd,OACNpnG,EAAI2pF,EAASyd,OAFlB,IAIGzyE,EAAS2yE,OACR,GAAK3yE,KAENx0B,UAAUumG,YAAY5kG,KAAK1F,KAAM4D,EAAGqB,KAGjDS,KAAKqlG,EAAchnG,aAIdqnG,uBA/Ie7F,OA+Bf8F,EAAgBC,EAAYC,EA9B5B9F,EAASF,EAAaE,OACtB+F,EAAS/F,EAAOlC,SAASkI,aACzBC,EAAU,IAAIX,EAActF,EAAOnB,wBAiE/B+G,MACiBrM,aAAaqM,IAC9BE,MACQd,SACY,OACbkB,QAAQ,oBAAqBD,KAC7BroG,oBAAoB,aAAcuoG,eAI5B1qG,KACTopG,YAAYppG,EAAEiB,EAAGjB,EAAEe,KA1ElBwjG,OAAOC,kBAAkB,mBAAmB,SAASxkG,MACzDukG,EAAOvF,aAAgC,GAAjBh/F,EAAEq4F,aAIT,eAFDiS,EAAOK,UAAU3qG,QAKhCmlG,EAAMnlG,EAAEwlG,sBAAsBL,IAC9BrF,EAAYyE,EAAOxC,QAAQjC,aAE3B9/F,EAAEomG,gBACQwE,SAASzF,EAAK,OACvB,IACwB,GAArBnlG,EAAEgjG,SAASjJ,gBACJwH,YACAvhG,EAAEqK,mBAEAi6F,gBAAkBC,EAAOzE,UAAUiI,aAAa5C,YAEpDh/F,SAAS,mBACT6/F,aAAahmG,GACnBA,EAAEqK,uBAuDAk6F,OAAOC,kBAAkB,mBAAmB,SAASxkG,OAC1D0J,EAAS1J,EAAEgjG,SAASt5F,QAAU1J,EAAEgjG,SAAS6H,cACzC9M,EAAInT,YAAYlhF,EAAQ,0BACjBghG,IAEPL,GAAqBhG,EAAayG,wBACtB9qG,KAEHA,EACTmqG,MAEazjG,YAAW,aACP,KACb0jG,IAAe/F,EAAa0G,8BA7DhC5F,EAAMiF,EAAW5E,sBAAsBL,IACvC6F,EAAaV,EAAOW,aAAa9F,OAChC6F,SACMN,OAGPvF,GADSZ,EAAOxC,QAAQmJ,YACT,KACXC,EAAY5G,EAAOlC,SAAS+I,yBAAyB,EAAGhB,EAAWrpG,GAAGokG,IACtE76C,EAAM8/C,EAAWiB,QACjBF,EAAY5G,EAAOxC,QAAQuJ,oBAAoBhhD,EAAI66C,IAAK76C,EAAI+6C,eACrDqF,OAGXL,GAAqBW,OAELA,EAAWn5E,KAAKvqB,KAAK,WAEjC4hG,QAAQmB,KACRf,SACDmB,QAAQ,oBAAqBD,KAC7B9H,GAAG,aAAcgI,GAEpBrG,EAAayG,uBACDV,OACT,KAECjH,EADgBiH,EAAWpH,SAASt5F,OACf25F,wBACrB5hG,EAAQ+oG,EAAQ7H,aAAalhG,QAC3B04D,KAAOgpC,EAAKgB,MAAQ,OACpBb,IAAMH,EAAKO,OAAS,eAoC3B,UAGD9L,YAAY2M,EAAOlC,SAASkJ,QAAS,YAAY,SAASvrG,KAC/C,KACRqqG,IAAqBF,MAGTzjG,YAAW,aACP,WAElB,UAGAg8F,GAAG,gBAAiBgI,OAkC/B9lB,IAAID,OAAO,wBAAwB,CAAC,UAAU,UAAU,SAAS,gBAAgB,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAG/H9wB,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,oBACrBonB,EAAan4F,EAAQm4F,WAAa,SAASxI,EAAUuB,QAChDvB,SAAWA,OACXuB,OAASA,OAETtjG,EAAInC,KAAKk6F,QAAUgK,EAAShK,aAC5Bj4F,EAAIjC,KAAKm6F,QAAU+J,EAAS/J,aAE5BoS,KAAO,UACPI,aAAe,UAEfC,oBAAqB,OACrBvQ,kBAAmB,IAG3B,gBAEQ/wF,gBAAkB,aACbA,gBAAgBtL,KAAKkkG,eACtB0I,oBAAqB,QAGzBrhG,eAAiB,aACZA,eAAevL,KAAKkkG,eACrB7H,kBAAmB,QAGvBwN,KAAO,gBACHv+F,uBACAC,uBAEJm7F,oBAAsB,kBACnB1mG,KAAKusG,YAGJA,KAAOvsG,KAAKylG,OAAOlC,SAAS8D,wBAAwBrnG,KAAKk6F,QAASl6F,KAAKm6F,UAFjEn6F,KAAKusG,WAKf9F,YAAc,cACW,OAAtBzmG,KAAK2sG,oBACE3sG,KAAK2sG,iBAKZE,EAHS7sG,KAAKylG,OAGUoB,uBACxBgG,EAAelM,eACVgM,cAAe,MACnB,KACGnhD,EAAMxrD,KAAK0mG,2BACViG,aAAeE,EAAe7D,SAASx9C,EAAI66C,IAAK76C,EAAI+6C,eAGtDvmG,KAAK2sG,mBAEXpT,UAAY,kBACN/1F,EAAM+1F,UAAUv5F,KAAKkkG,gBAE3BoD,YAAc,kBACRtnG,KAAKkkG,SAASj5F,eAGpBi+F,YAAcvQ,EAAUzB,MACvB,kBAAoBl3F,KAAKkkG,SAASn5F,SAClC,kBAAoB/K,KAAKkkG,SAASp5F,WAEzCpF,KAAKgnG,EAAW3oG,cAInB+hF,IAAID,OAAO,6BAA6B,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAGlJ2qE,EAAM3Z,EAAS,cACf9hF,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,+BAMAigB,OAEjBE,EAASF,EAAaE,OAEtBqH,EAAa7N,EAAI15F,cAAc,SACxBwnG,IAAM,6EACbpU,EAAUT,YACCv1F,MAAMC,QAAU,kFAEjB,CAAC,WAAY,cAAe,YAAa,eAAgB,eAE9D+B,SAAQ,SAASqoG,KACRA,GAAKhtG,KAAKgtG,KACzBhtG,QACIkD,iBAAiB,YAAalD,KAAK2lG,YAAYj+F,KAAK69F,QAIvD0H,EAAqBrpG,EAAGqB,EACxBioG,EAASv7D,EACTw7D,EACAC,EACAC,EACAC,EACAC,EACAC,EARAC,EAAchI,EAAOnB,UAGToJ,EAAU,mBAyLlBC,EAAaR,YA3DS/G,EAAQuH,OAC9BviB,EAAM9tE,KAAK8tE,MACXwiB,GAAaD,GAAcvH,EAAOC,KAAOsH,EAAWtH,IACpDwH,GAAaF,GAAcvH,EAAOG,QAAUoH,EAAWpH,QACtDgH,GAAmBK,GAAaC,KAC1B/G,iBAAmB,IACnBgH,qBAAqB1H,KACrBU,iBAAmB,IACR1b,IACQ,CAACjpF,EAAGyB,EAAG3B,EAAGgD,IAErB8oG,EAAaP,EAAwBrrG,EAAGqrG,EAAwBvrG,EAAG2B,EAAGqB,GA/JlE,IAiKG,KACXmmF,EAAMmiB,GAnKH,QAoKHhK,SAASuE,yBACE,UA4CbrC,EAAOlC,SAAS8D,wBAAwBzjG,EAAGqB,GACvB0oG,YAxCjBvH,EAAQuH,OACpBviB,EAAM9tE,KAAK8tE,MACX4iB,EAAavI,EAAOlC,SAAS0K,YAAYD,WACzCE,EAAiBzI,EAAOlC,SAAS0K,YAAYC,eAC7CC,EAAa1I,EAAOlC,SAASyB,SAAST,wBACtC6J,EAAU,CACXjsG,EAAG,CACCk5D,KAAMz3D,EAAIuqG,EAAW9yC,KACrBgqC,MAAO8I,EAAW9I,MAAQzhG,GAE9B3B,EAAG,CACCuiG,IAAKv/F,EAAIkpG,EAAW3J,IACpBI,OAAQuJ,EAAWvJ,OAAS3/F,IAG/BopG,EAAiB1lG,KAAKkN,IAAIu4F,EAAQjsG,EAAEk5D,KAAM+yC,EAAQjsG,EAAEkjG,OACpDiJ,EAAiB3lG,KAAKkN,IAAIu4F,EAAQnsG,EAAEuiG,IAAK4J,EAAQnsG,EAAE2iG,QACnD2J,EAAe,CAAClI,IAAKD,EAAOC,IAAKE,OAAQH,EAAOG,QAChD8H,EAAiBH,GAAkB,MACtB3H,QAAW6H,EAAQjsG,EAAEk5D,KAAO+yC,EAAQjsG,EAAEkjG,SAAa,GAEhEiJ,EAAiBN,GAAc,MAClB3H,KAAQ+H,EAAQnsG,EAAEuiG,IAAM4J,EAAQnsG,EAAE2iG,UAAc,OAE7D4J,EAAUpI,EAAOC,KAAOkI,EAAalI,IACrCoI,EAAUrI,EAAOG,QAAUgI,EAAahI,OACxCqH,GAAaD,GAAcvH,EAAOC,KAAOsH,EAAWtH,IACpDmI,GAAYC,IAAYb,EACnBN,EAEIliB,EAAMkiB,GAzMJ,OA0MA/J,SAASuE,qBAAqByG,KAFfnjB,IAIJ,MAQf+hB,EAAYQ,kBAIflI,EAAOzE,UAAU0N,oBACHjJ,EAAOxC,QAAQ0L,UAAUh9D,EAAO,gBAAiB8zD,EAAOmJ,uBACvExL,iBACHqC,EAAOvF,eACAqD,SAASsL,aAAaC,aAAY,iBAC/B5B,SAEJ6B,YAAYC,EAAgB,MAC5B,IACJlW,YAAY1zF,SAAU,YAAa6pG,8BAI3B/B,KACPjK,QAAQiM,aAAajC,KACN,OACfnG,iBAAmB,IACnB9F,UAAUmO,kBAAkBx9D,KAC5Bm1D,iBAAmB,EACtBrB,EAAOvF,cAAgBmN,KAChB9J,SAASsL,aAAaC,aAAarJ,EAAO2J,iBAC7C,OACK,OACH,IACY,OACJ,OACZjW,eAAe/zF,SAAU,YAAa6pG,QAnN3CI,YAAc,SAASnuG,MACpBlB,KAAKsvG,aAAe7B,EAAY8B,UAAW,KACvCvmB,EAAOhpF,wBACA,aACFmnG,gBACAD,aAAahmG,KACnB,GACIA,EAAEqK,mBAELk6F,EAAOoB,wBAEX2I,EAAetuG,EAAEsuG,eACRC,cAAgBhK,EAAO2J,cAAgB,OAAS,WACzDzW,EAAUT,YACHoM,UAAUhiG,YAAYwqG,KAClB7e,UAAY,KAEdyhB,cAAgBF,EAAaE,aAAa5C,EAAY,EAAG,GAClEnU,EAAUT,WACHoM,UAAU/lG,YAAYuuG,KAEpB6C,cACA5N,QAAQ,OAAQ0D,EAAOxC,QAAQ2M,mBAE/B,OACRvoG,SAAS,cAGbwoG,UAAY,SAAS3uG,QACVquG,WAAY,KACX,OACRloG,SAAS,OACTo+F,EAAO2J,cAAe,KACnBU,EAAa5uG,EAAEsuG,aAAaM,WAC3B1C,GAA+B,QAAd0C,KACX7M,QAAQ5a,OAAOod,EAAOoB,uBAC1BtD,SAASsL,aAAaC,aAAY,QAExCrJ,OAAO6C,WAAW,qBAClB7C,OAAOlC,SAASwM,eAAe,UAGnCC,YAAc,SAAS9uG,OACpBukG,EAAO2J,eAAkBa,EAAU/uG,EAAEsuG,uBAErCtuG,EAAEg5F,UACFh5F,EAAEi5F,QACD8S,aAGHuC,aAAaM,WAAa1C,EAAgB8C,EAAchvG,GACnDsC,EAAM+H,eAAerK,SAG3BivG,WAAa,SAASjvG,OACnBukG,EAAO2J,eAAkBa,EAAU/uG,EAAEsuG,uBAErCtuG,EAAEg5F,UACFh5F,EAAEi5F,QACD8S,aAIoB,OAArBmD,MACmB,QAErBZ,aAAaM,WAAa1C,EAAgB8C,EAAchvG,GACnDsC,EAAM+H,eAAerK,SAG3BmvG,YAAc,SAASnvG,WAET,GAAK+rG,eAEA,KACTzpG,EAAM+H,eAAerK,SAI/BovG,OAAS,SAASpvG,MACdisG,OAEDqC,EAAetuG,EAAEsuG,gBACjBnC,SACQD,OACC,SACGz7D,EAAMq3D,SAASmE,EAAW9G,IAAK8G,EAAW5G,QAClC,CACJ53F,MAAOw+F,EACPj+F,IAAKi+F,GAGD1H,EAAO8K,SAAS5+D,EAAOw7D,aAGlC,SACO1H,EAAO8K,SAAS5+D,EAAOw7D,GAAY,OAGhD,KACCqD,EAAWhB,EAAaxN,QAAQ,UAC5B,CACJrzF,MAAOw+F,EACPj+F,IAAKu2F,EAAOxC,QAAQ5wC,OAAO86C,EAAYqD,MAEpClQ,UACS,gBAGb98F,EAAM+H,eAAerK,OAG1B43F,YAAY2U,EAAa,YAAaztG,KAAKqvG,YAAY3nG,KAAK69F,MAC5DzM,YAAY2U,EAAa,UAAWztG,KAAK6vG,UAAUnoG,KAAK69F,MACxDzM,YAAY2U,EAAa,YAAaztG,KAAKgwG,YAAYtoG,KAAK69F,MAC5DzM,YAAY2U,EAAa,WAAYztG,KAAKmwG,WAAWzoG,KAAK69F,MAC1DzM,YAAY2U,EAAa,YAAaztG,KAAKqwG,YAAY3oG,KAAK69F,MAC5DzM,YAAY2U,EAAa,OAAQztG,KAAKswG,OAAO5oG,KAAK69F,QAgGpD6K,EAAmB,kBAEK,MAApBA,MACmBxoG,YAAW,WACF,MAApBwoG,GAA4BnD,SAEjC,gBAIQuC,OACXiB,EAAQjB,EAAaiB,aACjBA,GAAS1uG,MAAMgC,UAAUpD,KAAK+E,KAAK+qG,GAAO,SAASpmG,SACxC,cAARA,GAAgC,QAARA,gBAIhBnJ,OACfwvG,EAAc,CAAC,OAAQ,WAAY,MAAO,iBAG1CC,EAAoBhY,EAAUzB,MAAQh2F,EAAE8J,OAAS9J,EAAE4J,QACnD2kG,EAAgB,sBAEAvuG,EAAEsuG,aAAaC,cAAc1sG,oBACxC6hE,QACLkrC,EAAa,cAEba,GAAqBD,EAAYvwG,QAAQsvG,IAAkB,IAC9C,OAVC,CAAC,OAAQ,WAAY,WAAY,MAAO,iBAWrCtvG,QAAQsvG,IAAkB,IAC9B,OACRiB,EAAYvwG,QAAQsvG,IAAkB,MAC9B,QAEVK,cAwFOrH,EAAIC,EAAIC,EAAIC,UACvBjgG,KAAKygE,KAAKzgE,KAAK83D,IAAIkoC,EAAKF,EAAI,GAAK9/F,KAAK83D,IAAImoC,EAAKF,EAAI,KArF7D,gBAEQkI,SAAW,WACGtzF,KAAK8tE,MAAQprF,KAAK2mG,eAAevxC,KACjCp1D,KAAKylG,OAAOoL,qBAClBC,kBAGRC,YAAc,WACF/wG,KAAKylG,OAAOnB,UAClBiL,WAAY,OACdpI,YAAYnnG,KAAK2mG,eAAeD,4BAChCwB,kBAGJ8I,aAAe,SAAS9vG,QACpBukG,OAAOlC,SAASsL,aAAaC,aAAa9uG,KAAKylG,OAAO2J,oBACtD3J,OAAO6C,WAAW,qBAClB7C,OAAOlC,SAASwM,eAAe,SAC/BgB,oBAGJD,UAAY,gBACRxB,YAAa,MACd7J,EAASzlG,KAAKylG,OACLA,EAAOnB,UACbiL,WAAY,IACZhM,SAASsL,aAAaC,aAAY,KAClCrH,SAAS,oBACZwJ,EAActY,EAAUnB,MAAQ,UAAY,SACzC+L,SAASwM,eAAekB,QAC1B5pG,SAAS,mBAGb6pG,YAAc,SAAShwG,OACpB0J,EAAS5K,KAAKylG,OAAOnB,UACrB3L,EAAUlB,MAAsB,aAAdz3F,KAAKoE,QACR2pG,EAAa/tG,KAAK2mG,eAAexkG,EAAGnC,KAAK2mG,eAAe1kG,EAAGjC,KAAKmC,EAAGnC,KAAKiC,GACxE,KACJkvG,YAEI,aAAfnxG,KAAKoE,QACU2pG,EAAa/tG,KAAK2mG,eAAexkG,EAAGnC,KAAK2mG,eAAe1kG,EAAGjC,KAAKmC,EAAGnC,KAAKiC,GACxE,MACJstG,WAAY,OACdpI,YAAYnnG,KAAK2mG,eAAeD,+BAK5Cf,YAAc,SAASzkG,MACnBlB,KAAKoxG,mBAELzK,eAAiBzlG,MAClBukG,EAASzlG,KAAKylG,OAEdgB,EAAcvlG,EAAEulG,cAChBv7F,EAAShK,EAAEq4F,eAEI,KADFr4F,EAAEgjG,SAASjJ,QAAU,IACH,IAAX/vF,GAAgBu7F,EAAa,IAC7CvlG,EAAEukG,OAAOwB,sBAAwBiC,eAAiBhoG,EAAEomG,2BAEnDX,eAAevxC,KAAO93C,KAAK8tE,UAC5BimB,EAAcnwG,EAAEgjG,SAASt5F,QAAU1J,EAAEgjG,SAAS6H,cAC9C,iBAAkBsF,MACNC,aAAe,MAC3B7L,EAAOoL,eAAgB,IACnBlY,EAAUP,cACLkX,YAAa,EACA7J,EAAOnB,UACbiL,WAAY,OAEvBloG,SAAS,sBAETypG,iBAEJ5J,aAAahmG,EAAGlB,KAAKkxG,YAAYxpG,KAAK1H,SACzCq8F,kBAAmB,OAI9B32F,KAAK6rG,EAAgBxtG,aAOhBwtG,gBAAkBA,KAI1BzrB,IAAID,OAAO,cAAc,CAAC,UAAU,UAAU,SAAS,gBAAgB,SAASP,EAAU/wE,EAAS+f,OAE/F2qE,EAAM3Z,EAAS,WAEXp1E,IAAM,SAAUnI,EAAKo9E,OACrBqsB,EAAM,IAAIC,iBACVC,KAAK,MAAO3pG,GAAK,KACjB4pG,mBAAqB,WACE,IAAnBH,EAAII,cACKJ,EAAIK,iBAGjBC,KAAK,SAGLC,WAAa,SAASvoG,EAAM27E,OAC5B/yB,EAAO6sC,EAAIvT,kBACXtqF,EAAIgE,SAASG,cAAc,YAE7BwnG,IAAMvjG,IACHlH,YAAYlB,KAEf4wG,OAAS5wG,EAAEuwG,mBAAqB,SAASnwG,EAAGywG,IACtCA,GAAY7wG,EAAEwwG,YAA8B,UAAhBxwG,EAAEwwG,YAA0C,YAAhBxwG,EAAEwwG,eACtDxwG,EAAE4wG,OAAS5wG,EAAEuwG,mBAAqB,KACjCM,YAKTC,WAAa,SAASnqG,OACtB1G,EAAI+D,SAASG,cAAc,cAC7BoF,KAAO5C,EACF1G,EAAEsJ,SAKbm7E,IAAID,OAAO,wBAAwB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAG3F69E,EAAe,GACf7mG,EAAkB,gBAAkBshG,oBAAqB,GACzDrhG,EAAiB,gBAAkB8wF,kBAAmB,KAE7C4H,MACbkO,EAAaC,eAAiB,SAASC,EAAWnxG,QACzCoxG,sBAAwBA,eAAiB,SACzCC,wBAA0BA,iBAAmB,QAE9C5/F,EAAY3S,KAAKsyG,eAAeD,IAAc,GAC9CG,EAAiBxyG,KAAKuyG,iBAAiBF,MACtC1/F,EAAU9T,QAAW2zG,GAGV,iBAALtxG,GAAkBA,MACrB,IAEHA,EAAEhC,SACDA,KAAOmzG,GACRnxG,EAAEoK,oBACDA,gBAAkBA,GACnBpK,EAAEqK,mBACDA,eAAiBA,KAEXoH,EAAU3P,gBACbnF,EAAE,EAAGA,EAAE8U,EAAU9T,WACZhB,GAAGqD,EAAGlB,OACZkB,EAAE0rG,oBAFwB/uG,YAM9B20G,IAAmBtxG,EAAEm7F,iBACdmW,EAAetxG,EAAGlB,iBAIpB2rG,QAAU,SAAS0G,EAAWnxG,OACnCyR,QAAkB2/F,gBAAkB,IAAID,MACvC1/F,KAEOA,EAAU3P,gBACbnF,EAAE,EAAGA,EAAE8U,EAAU9T,OAAQhB,MACpBA,GAAGqD,EAAGlB,UAGXyyG,KAAO,SAASJ,EAAWltB,OAChC2Z,EAAQ9+F,QACAA,KAAKkD,iBAAiBmvG,GAAW,eACnChvG,oBAAoBgvG,EAAWK,KAC5BhnF,MAAM,KAAM/sB,iBAKhB+mG,kBAAoB,SAAS2M,EAAWltB,OAC7CwtB,EAAW3yG,KAAKuyG,oBACfI,MACU3yG,KAAKuyG,iBAAmB,CAACK,WAAY,KAEhDD,EAASN,GAAY,KACjBQ,EAAMF,EAASN,GACfS,EAAWH,EAASC,WAAWP,GAC9BS,MACQF,WAAWP,GAAaS,EAAW,MACvCh0G,KAAK+zG,OACVh1G,EAAIi1G,EAAS3yG,QAAQglF,OACrBtnF,KACSsJ,OAAOtJ,EAAG,KAElBw0G,GAAaltB,KAEb4tB,qBAAuB,SAASV,EAAWltB,OAChDwtB,EAAW3yG,KAAKuyG,oBACfI,OAEDG,EAAWH,EAASC,WAAWP,MAE/BM,EAASN,IAAcltB,IACJktB,GACfS,QACKpN,kBAAkB2M,EAAWS,EAAShkG,eACxCgkG,EAAU,KACbj1G,EAAIi1G,EAAS3yG,QAAQglF,OACrBtnF,KACSsJ,OAAOtJ,EAAG,QAIlB+lG,GACbuO,EAAajvG,iBAAmB,SAASmvG,EAAWltB,EAAU6tB,QACrDV,eAAiBtyG,KAAKsyG,gBAAkB,OAEzC3/F,EAAY3S,KAAKsyG,eAAeD,UAC/B1/F,MACW3S,KAAKsyG,eAAeD,GAAa,QAE7C1/F,EAAUxS,QAAQglF,MACR6tB,EAAY,UAAY,QAAQ7tB,GACvCA,KAGE8tB,IACbd,EAAahZ,eACbgZ,EAAa9uG,oBAAsB,SAASgvG,EAAWltB,QAC9CmtB,eAAiBtyG,KAAKsyG,gBAAkB,OAEzC3/F,EAAY3S,KAAKsyG,eAAeD,MAC/B1/F,OAGDpJ,EAAQoJ,EAAUxS,QAAQglF,QAC1B57E,KACUpC,OAAOoC,EAAO,OAGnB2pG,mBAAqB,SAASb,GACnCryG,KAAKsyG,sBAAqBA,eAAeD,GAAa,OAGtDF,aAAeA,KAIvBrsB,IAAID,OAAO,qBAAqB,CAAC,UAAU,UAAU,SAAS,cAAc,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAG9Hi7D,EAAMjK,EAAS,SACf6sB,EAAe7sB,EAAS,mBAAmB6sB,aAE3CgB,EAAkB,CAClBC,WAAY,SAASC,UACVz7F,KAAKy7F,GAAS1uG,SAAQ,SAASvF,QAC7Bk0G,UAAUl0G,EAAKi0G,EAAQj0G,MAC7BY,OAEPuzG,WAAY,SAASC,OACb1hF,EAAS,UACR0hF,EAEOzxG,MAAMC,QAAQwxG,OACbA,IACKrnG,OAAOyL,KAAKka,MAHZ3lB,OAAOyL,KAAK5X,KAAKyzG,YAKvB9uG,SAAQ,SAASvF,KAClBA,GAAOY,KAAK0zG,UAAUt0G,KAC9BY,MACI8xB,GAEXwhF,UAAW,SAASxtG,EAAM1D,MAClBpC,KAAK,IAAM8F,KAAU1D,OAErB81D,EAAMl4D,KAAKyzG,SAAS3tG,OACnBoyD,SACMr8C,EAAK,sBAAwB/V,EAAO,QAE3CoyD,EAAIy7C,iBACG3zG,KAAKk4D,EAAIy7C,YAAc3zG,KAAKk4D,EAAIy7C,WAAWL,UAAUxtG,EAAM1D,GAEjE81D,EAAI07C,kBACA,IAAM9tG,GAAQ1D,GACnB81D,GAAOA,EAAI/nD,OACPA,IAAIzK,KAAK1F,KAAMoC,KAE3BsxG,UAAW,SAAS5tG,OACZoyD,EAAMl4D,KAAKyzG,SAAS3tG,UACnBoyD,EAGDA,EAAIy7C,UACG3zG,KAAKk4D,EAAIy7C,YAAc3zG,KAAKk4D,EAAIy7C,WAAWD,UAAU5tG,GACzDoyD,GAAOA,EAAIhoD,IAAMgoD,EAAIhoD,IAAIxK,KAAK1F,MAAQA,KAAK,IAAM8F,GAJ7C+V,EAAK,sBAAwB/V,EAAO,kBAQzC47D,GACY,oBAAXmyC,SAA0BA,QAAQh4F,cACjCA,KAAK6P,MAAMmoF,QAASl1G,sBAGf0wD,EAAK5pD,OAClBvE,EAAI,IAAIo3D,MAAMjJ,KAChB5pD,KAAOA,EACa,iBAAXouG,SAAuBA,QAAQrjG,eAC9BA,MAAMtP,eACP,iBAAmBA,SAG9B4yG,EAAY,gBACPC,gBAAkB,KAG1B,aACOzkB,UAAUtvF,KAAMmyG,QACf6B,cAAgB,SAASlsG,EAAK0B,EAAMyI,UAChCnK,EAAI2rG,gBACAM,gBAAgBvqG,GAAQ1B,EAAI2rG,SAAW,WAEzC77F,KAAK3F,GAAStN,SAAQ,SAASvF,OAC9B84D,EAAMjmD,EAAQ7S,GACA,iBAAP84D,MACD,CAACy7C,UAAWz7C,MAElBpyD,SAAaA,KAAO1G,KACpBq0G,SAASv7C,EAAIpyD,MAAQoyD,EACrB,iBAAkBA,MACd,IAAMA,EAAIpyD,MAAQoyD,EAAI+7C,mBAE9B3kB,UAAUxnF,EAAKqrG,GAEZnzG,WAGNk0G,aAAe,SAASpsG,UAClB8P,KAAK9P,EAAI2rG,UAAU9uG,SAAQ,SAASvF,OACnC84D,EAAMpwD,EAAI2rG,SAASr0G,GACnB,UAAW84D,KACPo7C,UAAUl0G,EAAK84D,EAAI91D,gBAI9B+xG,gBAAkB,SAAS3qG,EAAM1D,EAAM1D,OACpC6F,EAAOjI,KAAK+zG,gBAAgBvqG,UAAeuqG,gBAAgBvqG,GAAQ,IACnEvB,EAAKnC,KACDmC,EAAK0rG,eACAQ,gBAAgBlsG,EAAK0rG,UAAW7tG,EAAM1D,KAEtC0D,GAAM1D,MAAQA,SAI1BgyG,iBAAmB,SAAS5qG,EAAM6qG,UAC5Bz8F,KAAKy8F,GAAY1vG,SAAQ,SAASvF,QAChC+0G,gBAAgB3qG,EAAMpK,EAAKi1G,EAAWj1G,MAC5CY,YAGF6b,KAAOA,OACPy4F,YAAcA,IAEpB5uG,KAAKouG,EAAU/vG,aAEV+vG,UAAYA,KAIpBhuB,IAAID,OAAO,aAAa,CAAC,UAAU,UAAU,SAAS,eAAe,cAAc,cAAc,uBAAuB,SAASP,EAAU/wE,EAAS+f,OAGhJ4qE,EAAO5Z,EAAS,gBACD,iBACfivB,EAAMjvB,EAAS,aACfwuB,EAAYxuB,EAAS,oBAAoBwuB,YAEtCv/F,QAAUA,EAAU,IAAIu/F,MAE3BtvB,EAAU,kBACHxkF,MAAyB,oBAAVupD,QAAyBA,OADrC,GAIVt3C,EAAU,CACV0zE,UAAU,EACV6uB,WAAY,KACZC,SAAU,KACVC,UAAW,KACXC,SAAU,GACVC,OAAQ,MACRC,YAAa,eAuFQlvB,MAEhBnB,GAAWA,EAAOp/E,YAGfugF,SAAWA,GAAYL,EAASK,UAAYrxD,EAAOqxD,UAAanB,EAAOqB,cAAUA,GAAOF,iBA8C/E50E,EA5Cb+jG,EAAgB,GAChBC,EAAY,GACZC,EAAiB5vG,SAAS4vG,eAAiB5vG,SAAS6vG,eAGpDC,GAFkBF,GAAiBA,EAAcG,eAAiB/vG,UAExCwmF,qBAAqB,UAC1C/tF,EAAE,EAAGA,EAAEq3G,EAAQr2G,OAAQhB,IAAK,KAC7Bu3G,EAASF,EAAQr3G,GAEjBkgE,EAAMq3C,EAAOrI,KAAOqI,EAAO1qG,aAAa,UACvCqzD,WAGDl4D,EAAauvG,EAAOvvG,WACf4hD,EAAE,EAAGrpD,EAAEyH,EAAWhH,OAAQ4oD,EAAIrpD,EAAGqpD,IAAK,KACvC4tD,EAAOxvG,EAAW4hD,GACiB,IAAnC4tD,EAAKvvG,KAAK3F,QAAQ,kBA4Bb4Q,EA3BqBskG,EAAKvvG,KAAKhD,QAAQ,aAAc,IA4B/DiO,EAAIjO,QAAQ,SAAS,SAASnB,EAAG2zG,UAAaA,EAAG5pG,mBA5BsB2pG,EAAKjzG,WAI3ET,EAAIo8D,EAAI31D,MAAM,gCACdzG,MACYA,EAAE,aAcbvC,KAXL21G,MACc30G,KAAO00G,EAAc10G,MAAQ20G,IAC7BpvB,UAAW,KAGfgvB,SAAWG,EAAc10G,OACzBo0G,WAAaM,EAAcN,YAAcM,EAAc10G,OACvDq0G,SAAWK,EAAcL,UAAYK,EAAc10G,OACnDs0G,UAAYI,EAAcJ,WAAaI,EAAc10G,YAC5D00G,EAAc10G,KAEL00G,OACsB,IAAvBA,EAAc11G,MACb+Q,IAAI/Q,EAAK01G,EAAc11G,OAlInC8Q,IAAM,SAAS9Q,OACd6S,EAAQoK,eAAejd,SAClB,IAAIk5D,MAAM,uBAAyBl5D,UAEtC6S,EAAQ7S,MAGX+Q,IAAM,SAAS/Q,EAAKgD,OACnB6P,EAAQoK,eAAejd,SAClB,IAAIk5D,MAAM,uBAAyBl5D,KAErCA,GAAOgD,KAGXmzG,IAAM,kBACHrW,EAAKxB,WAAWzrF,MAEnBujG,UAAY,SAAS1vG,EAAMqI,MAC3B8D,EAAQ4iG,YAAY/uG,UACbmM,EAAQ4iG,YAAY/uG,OAE3B2vG,EAAQ3vG,EAAKwC,MAAM,KAEnBotG,EAAmB,eADXvnG,GAAasnG,EAAMA,EAAM52G,OAAS,IAAM,IAChB,IAAM,IACtCuB,EAAOq1G,EAAMA,EAAM52G,OAAS,MACf,UAAbsP,GAAgC,KAAPunG,EAAY,KACjCC,EAAK,IAAI3vB,OAAO,IAAM73E,EAAY,gBAAkBA,EAAY,IAAK,OAClE/N,EAAK0C,QAAQ6yG,EAAI,MAGtBv1G,GAAQA,GAAQ+N,IAAcsnG,EAAM52G,OAAS,MACxC42G,EAAMA,EAAM52G,OAAS,QAC5B2K,EAAOyI,EAAQ9D,EAAY,eACnB,MAAR3E,IACOyI,EAAQ0iG,SACD,KAAPe,MACKA,EAAM,IAElBlsG,GAA0B,KAAlBA,EAAKxG,eACL,KACLwG,EAAO2E,EAAYunG,EAAMt1G,EAAOJ,KAAKkQ,IAAI,aAG5C0lG,aAAe,SAAS9vG,EAAM+vG,UAC3B5jG,EAAQ4iG,YAAY/uG,GAAQ+vG,KAG/BC,SAAW,KACXC,WAAa,SAAStwB,EAAYuwB,OAClCpwB,EAAQqwB,EACRl0G,MAAMC,QAAQyjF,OACDA,EAAW,KACXA,EAAW,UAIfH,EAASG,SACbvkF,OACL0kF,IAAWrxE,EAAQuhG,SAASrwB,UACrBuwB,GAAUA,EAAOpwB,MAEvBrxE,EAAQuhG,SAASrwB,OACVqwB,SAASrwB,GAAc,MAE3BqwB,SAASrwB,GAAY3mF,KAAKk3G,KAE9BzhG,EAAQuhG,SAASrwB,GAAY5mF,OAAS,QAGtCq3G,EAAY,aACH,CAACzwB,IAAa,SAAS0wB,KACpBlS,MAAM,cAAe,CAACn+F,KAAM2/E,EAAYnxD,OAAQ6hF,QACpDxjG,EAAY4B,EAAQuhG,SAASrwB,KACzBqwB,SAASrwB,GAAc,OACrB9gF,SAAQ,SAASyxG,MACbA,EAAOD,cAKxB5hG,EAAQrE,IAAI,mBACNgmG,MACPnE,WAAWx9F,EAAQihG,UAAU/vB,EAAYwwB,GAAaC,QAEzD,KAiDGG,KAAOC,KAQfxwB,IAAID,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,gBAAgB,oBAAoB,6BAA6B,mCAAmC,wBAAwB,6BAA6B,eAAe,SAASP,EAAU/wE,EAAS+f,OAGnQ9wB,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,oBACrBwkB,EAAkBxkB,EAAS,sBAAsBwkB,gBACjDyM,EAAuBjxB,EAAS,4BAA4B8lB,cAC5DsB,EAAapnB,EAAS,iBAAiBonB,WACvC6E,EAAkBjsB,EAAS,sBAAsBisB,gBACjD37F,EAAS0vE,EAAS,aAElBkxB,EAAe,SAAS/Q,OACpB3G,EAAQ9+F,UACPylG,OAASA,MAEVqE,EAAgB9pG,UAChBu2G,EAAqBv2G,UACrBuxG,EAAgBvxG,UAEhBy2G,EAAc,SAASv1G,KACFkE,SAASsxG,WAAatxG,SAASsxG,aAC5CjR,EAAOvF,aAAe96F,SAAS+6F,kBAAyB4E,WAAaU,EAAOV,UAAUlB,uBAEnFvD,UACJA,SAGPmN,EAAchI,EAAOlC,SAASoT,wBAC5B7d,YAAY2U,EAAa,QAASztG,KAAK42G,aAAalvG,KAAK1H,KAAM,YAC/D84F,YAAY2U,EAAa,YAAaztG,KAAKivG,YAAYvnG,KAAK1H,KAAM,gBAClEk7F,0BAA0B,CAC5BuS,EACAhI,EAAOlC,SAASsT,YAAcpR,EAAOlC,SAASsT,WAAWx1E,MACzDokE,EAAOlC,SAASuT,YAAcrR,EAAOlC,SAASuT,WAAWz1E,MACzDokE,EAAOV,WAAaU,EAAOV,UAAUlB,cACvC72F,OAAOM,SAAU,CAAC,IAAK,IAAK,KAAMtN,KAAM,kBACpCs6F,sBAAsBmL,EAAOnB,UAAWtkG,KAAK+lG,aAAar+F,KAAK1H,KAAM,iBACrE65F,qBAAqB4L,EAAOnB,UAAWtkG,KAAKgmG,YAAYt+F,KAAK1H,KAAM,kBAErE+2G,EAAWtR,EAAOlC,SAASkJ,UACzB3T,YAAYie,EAAU,YAAa/2G,KAAK42G,aAAalvG,KAAK1H,KAAM,sBAChE84F,YAAYie,EAAU,QAAS/2G,KAAK42G,aAAalvG,KAAK1H,KAAM,kBAC5D84F,YAAYie,EAAU,WAAY/2G,KAAK42G,aAAalvG,KAAK1H,KAAM,qBAC/D84F,YAAYie,EAAU,YAAa/2G,KAAK42G,aAAalvG,KAAK1H,KAAM,sBAEhE84F,YAAY2U,EAAa,YAAagJ,KACtC3d,YAAYie,EAAU,YAAaN,GACrC9d,EAAUlB,MAAQgO,EAAOlC,SAASsT,eAC5B/d,YAAY2M,EAAOlC,SAASsT,WAAWznG,QAAS,YAAaqnG,KAC7D3d,YAAY2M,EAAOlC,SAASuT,WAAW1nG,QAAS,YAAaqnG,MAGhE7S,GAAG,aAAa,SAAS1iG,OACxB49F,EAAM16F,QAAS06F,EAAMkY,YAAelY,EAAMsS,kBAG1C6F,EAAYxR,EAAOlC,SAAS8D,wBAAwBnmG,EAAEiB,EAAGjB,EAAEe,GAC3D0vC,EAAQ8zD,EAAOxC,QAAQjC,UAAUgC,WACjCO,EAAWkC,EAAOlC,UAEjB5xD,EAAMgvD,WAAahvD,EAAMulE,YAAYD,EAAU5Q,IAAK4Q,EAAU1Q,UACtDwJ,eAAe,aAEfA,eAAe,UAKnC,gBACQ6G,aAAe,SAAS9wG,EAAM5E,QAC1BukG,OAAOxB,MAAMn+F,EAAM,IAAI4mG,EAAWxrG,EAAGlB,KAAKylG,eAG9CwJ,YAAc,SAASnpG,EAAM5E,OAC1ByR,EAAY3S,KAAKylG,OAAO6M,gBAAkBtyG,KAAKylG,OAAO6M,eAAe6E,UACpExkG,GAAcA,EAAU9T,aAGxB4mG,OAAOxB,MAAMn+F,EAAM,IAAI4mG,EAAWxrG,EAAGlB,KAAKylG,eAG9CM,aAAe,SAASjgG,EAAM5E,OAC3BoqG,EAAa,IAAIoB,EAAWxrG,EAAGlB,KAAKylG,UAC7BkE,MAA4B,EAApB3pG,KAAKo3G,eACbhd,OAASl5F,EAAEk5F,SACXC,OAASn5F,EAAEm5F,YAEjBoL,OAAOxB,MAAMn+F,EAAMwlG,SAGvBtF,YAAc,SAAUlgG,EAAM5E,OAC3BoqG,EAAa,IAAIoB,EAAWxrG,EAAGlB,KAAKylG,UAC7BkE,MAAQ,IACRvP,OAASl5F,EAAEk5F,SACXC,OAASn5F,EAAEm5F,YACjBoL,OAAOxB,MAAMn+F,EAAMwlG,SAGvBjkG,SAAW,SAASjD,QAChBA,MAAQA,QAGZ8iG,aAAe,SAASV,EAAI6Q,QACxBl1G,EAAIqkG,EAAGrkG,OACPF,EAAIukG,EAAGvkG,OAEPgqG,gBAAiB,MAClB1I,EAAWvjG,KAAKylG,OAAOlC,SACvBA,EAASC,0BACAA,sBAAwB,UAEjCxa,EAAOhpF,KACPivG,EAAc,SAAS/tG,MAClBA,MACDy3F,EAAUP,WAAal3F,EAAEo2G,OAAStuB,EAAKuuB,oBAChCvuB,EAAKuuB,iBAEXp1G,EAAIjB,EAAEg5F,UACNj4F,EAAIf,EAAEi5F,WACSkd,EAAiBn2G,KAChCoqG,WAAa,IAAIoB,EAAWxrG,EAAG8nF,EAAKyc,UACpC+R,aAAc,IAGnBC,EAAe,SAASv2G,iBACVgsG,SAETlkB,EAAK5kF,MAAQ,QAAU4kF,EAAKA,EAAK5kF,MAAQ,OAAOlD,KAChDkD,MAAQ,GACyB,MAAlCm/F,EAASC,0BACAA,uBAAwB,IACxBC,2BAERwI,gBAAiB,IACjByL,oBAAsB1uB,EAAKuuB,aAAe,QAC1CvuB,EAAK4tB,aAAa,UAAW11G,IAGlCy2G,EAAoB,aACf3uB,EAAK5kF,QAAU4kF,EAAKA,EAAK5kF,WACzBozG,aAAc,MAGnB7e,EAAUhB,SAA+B,YAApB6O,EAAGtC,SAAShlG,YAC1B0I,YAAW,aAAyB4+F,QAG1CkR,oBAAsBzI,IACtBsI,aAAe/zG,EAAMi2F,QAAQz5F,KAAKylG,OAAOnB,UAAW2K,EAAawI,OAClEvK,EAAU6B,YAAY4I,EAAmB,UAE5CJ,aAAe,UACfK,kBAAoB,eACjB/N,EAAO,SAAS3oG,GACZA,GAAKA,EAAEgjG,UAA+B,eAAnBhjG,EAAEgjG,SAAShlG,YAE7BumG,OAAOwN,IAAI,oBAAqBpJ,GACjC3oG,GAAKA,EAAEgjG,YACD7K,UAAUn4F,EAAEgjG,YACxBx8F,KAAK1H,iBACI6pG,EAAM,SACZpE,OAAO7B,GAAG,oBAAqBiG,MAEzCnkG,KAAK8wG,EAAazyG,aAEdiwG,cAAcwC,EAAazyG,UAAW,eAAgB,CACzD8zG,YAAa,CAAC5D,aAAc,GAC5B6D,UAAW,CAAC7D,aAAetb,EAAUzB,MAAQ,IAAM,GACnD6gB,YAAa,CAAC9D,cAAc,GAC5B+D,YAAa,CAAC/D,aAAc,GAC5BgE,oBAAqB,CAAChE,cAAc,OAIhCuC,aAAeA,KAGvB1wB,IAAID,OAAO,yBAAyB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KA0DxF4jF,qBAvDazS,KAEV7B,GAAG,SAAS,SAAS1iG,OACpB8gB,EAAW9gB,EAAEwlG,sBACbzD,EAAUwC,EAAOxC,QACjBkV,EAAOlV,EAAQmV,UAAUp2F,EAASqkF,IAAKrkF,EAASukF,OAAQ,GACxD4R,IACIj3G,EAAEgoG,gBACMmP,WAAWF,KAEXG,WAAWH,KAErBtO,aAIHjG,GAAG,eAAe,SAAS1iG,MAGV,eAFDukG,EAAOlC,SAASkI,aAAaI,UAAU3qG,GAEvB,KAC3BmlG,EAAMnlG,EAAEwlG,sBAAsBL,IAC9BpD,EAAUwC,EAAOxC,QACjBA,EAAQsV,aAAetV,EAAQsV,YAAYlS,MACpCpD,QAAQuV,kBAAkBnS,EAAKnlG,GACrCukG,EAAOvF,eACDI,UACTuJ,aAIHjG,GAAG,kBAAkB,SAAS1iG,MAGb,eAFDukG,EAAOlC,SAASkI,aAAaI,UAAU3qG,GAEvB,KAC3BmlG,EAAMnlG,EAAEwlG,sBAAsBL,IAC9BpD,EAAUwC,EAAOxC,QACjBx9F,EAAOw9F,EAAQwV,uBAAuBpS,GAAK,GAC3C10D,EAAQlsC,EAAKksC,OAASlsC,EAAKizG,cAE3B/mE,EAAO,GACDA,EAAMhjC,MAAM03F,QACd8R,EAAOlV,EAAQmV,UAAU/R,EAAKpD,EAAQ0V,QAAQtS,GAAKxnG,OAAQ,GAE3Ds5G,IACQE,WAAWF,MAEXS,QAAQ,MAAOjnE,KAChB4xD,SAASuE,qBAAqB,CAACzB,IAAK10D,EAAMhjC,MAAM03F,IAAKE,OAAQ,OAG1EsD,eASd/jB,IAAID,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,eAAe,kBAAkB,SAASP,EAAU/wE,EAAS+f,OAG5HukF,EAAWvzB,EAAS,eACpB9hF,EAAQ8hF,EAAS,gBAEjBwzB,EAAa,SAASrT,QACjBsT,QAAUtT,OACVuT,MAAQ,CAACvT,OAAAA,QACTwT,UAAY,QACZvT,kBAAkBD,EAAOyT,YAGjC,gBACQxT,kBAAoB,SAASyT,QACzBC,sBAAsBp5G,KAAKq5G,sBAC3BA,gBAAkBF,OAClBG,mBAAmBH,EAAI,SAG3BI,mBAAqB,SAASJ,OAC3B73G,EAAItB,KAAKi5G,aACT33G,EAAEA,EAAEzC,OAAS,IAAMs6G,QAGhB73G,EAAEA,EAAEzC,OAAS,IAAMyC,EAAEA,EAAEzC,OAAS,IAAMmB,KAAKq5G,sBACzCD,sBAAsB93G,EAAEA,EAAEzC,OAAS,SAEvCy6G,mBAAmBH,EAAI,UAG3BG,mBAAqB,SAASH,EAAI3tD,MAC9B2tD,GAEY,mBAANA,GAAqBA,EAAGK,mBAC5BA,eAAiBL,OACpBt7G,EAAImC,KAAKi5G,UAAU94G,QAAQg5G,OAC3Bt7G,QACKo7G,UAAU9xG,OAAOtJ,EAAG,GAElB,MAAP2tD,OACKytD,UAAUn6G,KAAKq6G,QAEfF,UAAU9xG,OAAOqkD,EAAK,EAAG2tD,OAE9Bt7G,GAAWs7G,EAAGM,UACXA,OAAOz5G,KAAK+4G,gBAGlBK,sBAAwB,SAASD,OAC9Bt7G,EAAImC,KAAKi5G,UAAU94G,QAAQg5G,aAC3Bt7G,SAECo7G,UAAU9xG,OAAOtJ,EAAG,KACtB67G,QAAUP,EAAGO,OAAO15G,KAAK+4G,UACrB,SAGNY,mBAAqB,kBACf35G,KAAKi5G,UAAUj5G,KAAKi5G,UAAUp6G,OAAS,SAG7C+6G,cAAgB,eACbn0G,EAAOzF,KAAKg5G,MACZvT,EAAShgG,EAAKggG,cACXzlG,KAAKi5G,UAAU9vG,KAAI,SAAS7H,UACxBA,EAAEs4G,eAAiBt4G,EAAEs4G,cAAcnU,EAAQhgG,IAAS,MAC5DuH,OAAOM,SAAS9E,KAAK,WAGvBqxG,sBAAwB,SAAS7d,EAAQpF,EAAWD,EAASz1F,WAC1D44G,EACAC,GAAU,EACVb,EAAWl5G,KAAK+4G,QAAQG,SAEnBr7G,EAAImC,KAAKi5G,UAAUp6G,OAAQhB,UACpBmC,KAAKi5G,UAAUp7G,GAAG27G,eAC1Bx5G,KAAKg5G,MAAOhd,EAAQpF,EAAWD,EAASz1F,KAEzB44G,EAAU3pB,aAEJ,QAArB2pB,EAAU3pB,SAGA+oB,EAAS/rG,KAAK2sG,EAAU3pB,QAASnwF,KAAK+4G,QAASe,EAAU9kG,KAAM9T,KAE9DA,OAAK86F,GACO,GAAvB8d,EAAUE,WAAoD,GAA/BF,EAAU3pB,QAAQ6pB,aAE3C3gB,UAAUn4F,GAEhB64G,aAIHA,OAAW/d,MACA,CAAC7L,QAAS,kBACZ+oB,EAAS/rG,KAAK,eAAgBnN,KAAK+4G,QAASniB,IAGtDmjB,GAAW/5G,KAAK+4G,QAAQpN,cACnBoN,QAAQpN,QAAQ,mBAAoBmO,GAEtCC,QAGNxX,aAAe,SAASrhG,EAAG86F,EAAQrF,OAChCC,EAAYiiB,EAAQniB,gBAAgBC,QACnCkjB,sBAAsB7d,EAAQpF,EAAWD,EAASz1F,SAGtDugG,YAAc,SAAS1uE,QACnB8mF,yBAA0B9mF,MAGpCrtB,KAAKozG,EAAW/0G,aAEX+0G,WAAaA,KAGrBhzB,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAKtF2lF,EAAM,EAAGC,EAAU,EACnBC,GAAa,EAA4BC,GAAY,EAAQC,GAAY,EAEzEC,EAAa,CAAE,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,GAAO,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,GAAO,GAAO,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,IAG7MC,EAAa,CAAE,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,GAAK,CAAE,EAAI,EAAI,EAAI,GAAO,EAAI,EAAI,IAgBzIC,EAAK,GAOLC,EAAK,GAELC,EAAe,CACnBD,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAfhB,EADA,EACA,EAEC,EAHD,EAgB8BA,EAAGA,EACzCA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAjBzB,EAAA,EAAA,EACA,EAEC,EAJA,EAAA,EAmBAD,EAAGA,EAAGA,EAnBN,EAAA,EAAA,EAAA,EAAA,EAMA,GADA,EACA,GADA,EAAA,EAPA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAOA,EALA,EAAA,EAAA,EAAA,EAAA,EAAA,EAJD,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAIC,EAAA,EAAA,EAAA,EAAA,EAAA,EAJD,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAIC,EAAA,EAAA,EAAA,EAwByBC,EAClCA,EAAGA,EAAGA,EAAGA,EAAGA,EAxBJ,EAwBSA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAC5CA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EAAGA,EArBpC,EALA,EA2BHD,EAAGA,EAAGA,EAAGA,EA3BN,EAAA,EAAA,EAAA,EAJD,EAIC,EAAA,EA2B6BC,EA3B7B,EAAA,EA4BTD,EAAGA,EA9BM,EAAA,EAEA,EAJD,EAIC,EAAA,EAAA,EAFA,EAFD,EAIC,EAAA,EAAA,EAAA,EAAA,GA+BLG,EAAe,CA3BV,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EA4BwBF,EAAGA,EAAGA,EApC/B,EACA,EAGC,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAIA,EAHD,EAQE,GACA,GACA,GACA,GACA,GARD,EA8BTD,EAAGA,EAAGA,EAAGA,EAAGA,EAnCH,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAKA,EALA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAIA,cAsGaI,EAAK94F,EAAQ+4F,QAC9BX,EAAUU,MAGH,GAAPA,GApHc,GAoHFX,GAAeG,UAIKlrG,EAAK4rG,EAAIC,EAAIC,EAA7Cj3D,EAAM82D,EAAOh8G,OAAQ8P,EAAQ,EAC3BA,EAAQo1C,GAAI,IACbjiC,EAAOnT,IAAUisG,EAAI,OAClBjsG,EAAQ,EACTO,EAAM60C,GAAOjiC,EAAO5S,IAAQ0rG,WAG9BE,EAAKnsG,EAAOosG,EAAK7rG,EAAM,EAAI4rG,EAAKC,EAAID,IAAMC,MACvCF,EAAOC,KACNA,GAAMD,EAAOE,KACbA,GAAMC,IAEN9rG,aAfDouF,qBAqBc2d,EAAOxK,EAAOtkB,EAAS+uB,OACtBC,EAAOC,EAAOr3D,EAAKlmD,EAAtCw9G,EAAQ5K,EAAMyK,UACXG,QA1IA,OACA,KA4IQ,OAzIP,OADA,SA6ICA,OA9ID,SAgJClB,EA/ID,EADA,OAKA,YA6IO,EAnJR,OAOC,SAJA,OAKA,SAiJFe,EAAK,GAAMA,EAAK,GAAMzK,EAAM5xG,QAxJ1B,MAyJKstF,EAAQ+uB,EAAK,KAxJlB,GAwJ+BC,GAzJ/B,MA0JK1K,EAAMyK,EAAK,KAzJhB,GAyJ6BE,EAxJ7B,GA2JFjB,MA5JE,GA6JCiB,GAASD,EAAQC,EA5JlB,QAMA,UARA,MAgKEF,EAAK,EAAI/uB,EAAQ+uB,EAAK,GA7JzB,IA8JeA,EAAK,EAAKzK,EAAM5xG,QAjK9B,GAiKwC4xG,EAAMyK,EAAK,GAjKnD,EAEA,OAmKFV,KACAU,EAAK,GAtKH,GAsKQ/uB,EAAQ+uB,EAAK,UAtKrB,KAyKFf,SAvKE,QA0KFe,EAAK,IACHzK,EAAM5xG,OACLhB,EAAIkmD,GAAO0sD,EAAM5yG,IAAM28G,cAG1B38G,EAAIkmD,GAjLF,GAiLS0sD,EAAM5yG,GAjLf,EAEA,OAQC,SA4KD4yG,EAAM5xG,SACRq8G,EAAK,EACFr9G,EAAIkmD,GA9KJ,IA8KW0sD,EAAM5yG,WAGpBA,EAAIkmD,EAAI,KACP5iD,EAAI85G,EAAMC,GAAKI,EAAgBn6G,GAAK,MAAUA,GAAK,MAAgB,OAALA,OAE1DsvG,EAAM5yG,GACVy9G,IAhMA,MAMC,GA0L8BH,UAhM/B,SAqMDD,EAAK,GAjMJ,MAiMkBzK,EAAMyK,EAAK,IAlM5B,EAqMC/uB,EAAQ+uB,EAAK,QApMf,YAsMQ,KACD,EACLjB,OAvMF,YAyMO,EA3MN,OASC,QACA,QAEA,QACA,QAFA,MAuMM,OACTQ,SAnNE,cAwNmBc,OACvBC,EAAKD,EAAGhmD,WAAW,GAAIwlD,EAAKS,GAAM,SAE5B,GAANT,EACMS,EAAK,IAhOR,EAgOsBd,EAAac,GACzB,GAANT,EACF,kBAAkBr4G,KAAK64G,GAjOzB,EADA,EAmOU,GAANR,EACN,yDAAyDr4G,KAAK64G,GAxN1D,GA0NC,+BAA+B74G,KAAK64G,GAnOtC,EAqOQ,MAANC,EACDhB,EACC,kBAAkB93G,KAAK64G,GAxOzB,EAKA,EAuOS,IAANR,GAAcS,GAAM,KACvBb,EAAkB,IAALa,GACJ,KAANT,GACFS,GAAM,MA1OP,EAHA,IAqPDn5G,EAzPA,IA0PA8gE,EAzPA,IA0PAs4C,GAzPC,IA0PDC,KAAO,IACPC,GAAK,IACLC,IAAM,IACNx4C,EAAI,IAEJy4C,IAAM,MACNC,cAAgB,SAAS/oF,EAAMgpF,EAAeC,MACjDjpF,EAAKl0B,OAAS,QACV,OAEJo8G,EAAQloF,EAAKzqB,MAAM,IAAK2zG,EAAoB,IAAIl6G,MAAMk5G,EAAMp8G,QAC/Dq9G,EAAa,IAAIn6G,MAAMk5G,EAAMp8G,QAASijB,EAAS,KAE1Ck6F,EA3QY,EAAT,WA8Ccf,EAAOn5F,EAAQiiC,EAAKo4D,OACvCC,EAASnC,EAAMM,EAAaD,EAC7B+B,EAAY,KAAMC,EAAW,KAAMC,EAAW,KAAMC,EAAW,EAC/D9oF,EAAS,KAAmB+oF,KAAc5+G,EAAI,KAAMq9G,EAAK,KAAM/uB,EAAU,OAEvEgwB,MACCt+G,EAAI,EAAGs+G,EAAY,GAAIt+G,EAAIkmD,EAAKlmD,MAC1BA,GAAK6+G,EAAkBzB,EAAMp9G,UAG/Bo8G,KACG,KAED,KACA,EACPiB,EAAK,EAAGA,EAAKn3D,EAAKm3D,IAAK,MACfsB,IACJtB,GAAMoB,EAAWK,EAAc1B,EAAOkB,EAAWhwB,EAAS+uB,KAE9C,OADTkB,EAAOC,GAAWC,OAEjB,KACLpB,GAAMqB,EAAWH,EAAOI,GAAU,GACrC9oF,EAAS,KACE,IAAVA,EAAe,KACd71B,EAAI4+G,EAAS5+G,EAAIq9G,EAAIr9G,MACjBA,GAAK,oBAORu+G,EAAOI,GAAU,OAEpBC,MACQvB,WAGPuB,KAAa,KACZ5+G,EAAI4+G,EAAS5+G,EAAIq9G,EAAIr9G,MACjBA,GAAK0+G,OA/ET,GAoFFJ,EAAUjB,OACNA,GAAM,MAEHqB,KAERlC,MACCx8G,EAAI,EAAGA,EAAIkmD,EAAKlmD,OAzFd,GA0FFs+G,EAAUt+G,GAAQ,GACbA,GAAKo8G,UACJxyD,EAAI5pD,EAAI,EAAG4pD,GAAK,GA1FnB,GA2FD00D,EAAU10D,GADaA,MAElBA,GAAKwyD,IAuKFgB,EAAOn5F,EAAQm5F,EAAMp8G,OAAQk9G,WAEnCl+G,EAAI,EAAGA,EAAIo+G,EAAkBp9G,OAAQo9G,EAAkBp+G,GAAKA,EAAGA,OAE3D,EAAGikB,EAAQm6F,KACX,EAAGn6F,EAAQm6F,OAEfp+G,EAAI,EAAGA,EAAIo+G,EAAkBp9G,OAAS,EAAGhB,IA/Q1C,IAgRHk+G,EAAcl+G,KACVA,GAAK0W,EAAQonG,GAnRf,IAoRK75F,EAAOjkB,OAA4BA,GA9QvC,GA8QkDk+G,EAAcl+G,GAxQ/D,IATD,IAkRHk+G,EAAcl+G,IAAak+G,EAAcl+G,KAAO48G,KAC5C58G,GAAK0W,EAAQmnG,KACT79G,EAAI,GAAsB,MAAjBo9G,EAAMp9G,EAAI,IAAoB,8BAA8B6E,KAAKu4G,EAAMp9G,QACpFA,EAAI,GAAKikB,EAAOjkB,GAAK0W,EAAQqnG,SAIlCX,EAAMA,EAAMp8G,OAAS,KAAO0V,EAAQsnG,QAChCZ,EAAMp8G,OAAS,GAAK0V,EAAQ6uD,OAE3BvlE,EAAI,EAAGA,EAAIo+G,EAAkBp9G,OAAQhB,MAClCA,GAAKikB,EAAOm6F,EAAkBp+G,UAGnC,CAACo+G,kBAAqBA,EAAmBC,WAAcA,MAEvDU,kBAAoB,SAAS7pF,EAAMgpF,WACtC7zG,GAAM,EACDrK,EAAI,EAAGA,EAAIk1B,EAAKl0B,OAAQhB,MAClBA,GAAK6+G,EAAkB3pF,EAAKlqB,OAAOhL,IAC5CqK,GAzSC,KAySqBrK,IAnSpB,GAmS+Bk+G,EAAcl+G,QAC7C,UAEDqK,KAEA20G,wBAA0B,SAASC,EAAQC,WACzCl/G,EAAI,EAAGA,EAAIk/G,EAAOd,kBAAkBp9G,OAAQhB,OAChDk/G,EAAOd,kBAAkBp+G,IAAMi/G,SAC3Bj/G,SAEF,MAKRioF,IAAID,OAAO,kBAAkB,CAAC,UAAU,UAAU,SAAS,mBAAmB,eAAe,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAG3I0oF,EAAW13B,EAAS,kBACpB4Z,EAAO5Z,EAAS,cAChBqT,EAAYrT,EAAS,mBACrB23B,EAAS,4CACTC,EAAc,SAASja,QAClBA,QAAUA,OACVka,QAAU,QACVC,WAAa,UACbJ,SAAWA,OACXK,WAAa,QACbC,IAAM,SACNC,gBAAiB,OACjBC,UAAW,OACXC,KAAO,QACPC,WAAa,OACbC,WAAY,OACZC,IAAM,SACNC,UAAW,IAGnB,gBACQC,UAAY,SAASzR,EAAW0R,EAAQC,WACpCh+G,KAAK69G,WAENxR,IAAcrsG,KAAKo9G,kBACdA,WAAa/Q,OACb4R,cAAcF,EAAQC,QACtBE,iBAEFl+G,KAAKm9G,QAAQjB,kBAGnB3vG,SAAW,SAASic,GAChBxoB,KAAK69G,cAODT,WAAa,KANE,UAAhB50F,EAAMkL,QAAsBupF,EAAOv6G,KAAK8lB,EAAM21F,MAAM31G,KAAK,cACpDq1G,UAAW,OACXT,WAAa,YAQzBgB,eAAiB,eACdL,EAAS,EACTM,EAAWr+G,KAAKijG,QAAQqb,mBACxBD,EAASx/G,OAAQ,KACb0K,EAAQvJ,KAAKijG,QAAQsb,kBAAkBF,EAAUr+G,KAAKo9G,YACtD7zG,GAAS,MACAvJ,KAAKijG,QAAQub,aAAaj1G,WAGpCw0G,QAGNU,cAAgB,eACbT,EAAa,EACbK,EAAWr+G,KAAKijG,QAAQqb,mBACxBD,EAASx/G,eACL6/G,EAAcC,EAAY3+G,KAAKijG,QAAQsb,kBAAkBF,EAAUr+G,KAAKo9G,YACrEp9G,KAAKo9G,WAAaY,EAAa,MACnBh+G,KAAKijG,QAAQsb,kBAAkBF,EAAUr+G,KAAKo9G,WAAaY,EAAa,MAClEW,KAGTD,aAKbV,QAGNC,cAAgB,SAASF,EAAQC,WACnB,IAAXD,MACS/9G,KAAKo+G,uBAEbV,WAAa,OACbC,UAAaI,IAAW/9G,KAAKijG,QAAQmJ,YAAc,OACnDqR,KAAOz9G,KAAKijG,QAAQ0V,QAAQoF,GAC7B/9G,KAAKijG,QAAQ2b,aAAc,KACvBC,EAAS7+G,KAAKijG,QAAQ6b,UAAUf,GAChCc,SACmB,IAAfb,MACah+G,KAAKy+G,iBAEnBT,EAAa,GAAKa,EAAOhgH,aACnB6+G,WAAamB,EAAOE,YACpBtB,KAAQO,EAAaa,EAAOhgH,OAC7BmB,KAAKy9G,KAAKjc,UAAUqd,EAAOb,EAAa,GAAIa,EAAOA,EAAOhgH,OAAS,IAC/DmB,KAAKy9G,KAAKjc,UAAUqd,EAAOA,EAAOhgH,OAAS,UAE9C4+G,KAAOz9G,KAAKy9G,KAAKjc,UAAU,EAAGqd,EAAOb,SAIfllF,EAAnCmqE,EAAUjjG,KAAKijG,QAAS5yF,EAAQ,OAC/BotG,KAAOz9G,KAAKy9G,KAAK36G,QAAQ,sCAAsC,SAASy4G,EAAI19G,SAClE,OAAP09G,GAAetY,EAAQ+b,YAAYzD,EAAGhmD,WAAW,OAClC,OAAPgmD,EAAetY,EAAQgc,iBAAiBphH,EAAIwS,GAAS,KACpDyoB,EAAO,EACTomE,EAAK3B,aAAayf,EAASnB,IAAK/iF,IAEpCyiF,WAIV2C,cAAgB,eACbnC,EAAgB,GAAImD,EAAYl/G,KAAK29G,UAAY39G,KAAK49G,IAAM59G,KAAKs9G,IACjEG,EAAOz9G,KAAKy9G,WAAaF,eAAiB2B,EAAYlC,EAASnB,KAC/DmB,EAASJ,kBAAkBa,EAAM1B,QAC5BoB,QAAUH,EAASlB,cAAc2B,EAAM1B,EAAe/7G,KAAKw9G,eAE3DL,QAAU,SAGlBgC,YAAc,gBACV/B,WAAa,WAEjBgC,sBAAwB,SAASC,MAC7Br/G,KAAK69G,UAEN79G,KAAKkuG,iBAAmBmR,EAAYC,eAAe/xB,WAGnD2gB,EAAiBluG,KAAKkuG,eAAiBmR,EAAYC,eAAe/xB,MAClEgyB,EAAgBF,EAAYG,kBAAkB,UAE7CnC,WAAWL,EAAS36G,GAAKrC,KAAKq9G,WAAWL,EAASvB,IAAMz7G,KAAKq9G,WAAWL,EAAStB,MAAQxN,OACzFmP,WAAWL,EAAS75C,GAAKnjE,KAAKq9G,WAAWL,EAASrB,IAAM4D,OACxDlC,WAAWL,EAASpB,KAAOjjB,EAAUN,SAAWknB,EAAgC,IAAhBA,OAChElC,WAAWL,EAAS55C,GAAK,OAEzBg6C,WAAa,YAGjBqC,kBAAoB,kBACdz/G,KAAKu9G,qBAGXmC,kBAAoB,SAASnC,QACzBA,eAAiBA,OACjBH,WAAa,WAGjBuC,WAAa,SAASC,QAClBtC,IAAMsC,QAGVC,WAAa,SAASrC,QAClBA,SAAWA,QAEfsC,WAAa,SAASC,MAChB//G,KAAK09G,eACRsC,EAAYhD,EAASH,wBAAwBkD,EAAM,EAAIA,EAAM,EAAI,EAAG//G,KAAKm9G,SACzEr7F,EAAS9hB,KAAKm9G,QAAQjB,WAAY7gD,EAAO,EAEjC,IAAR0kD,GAAaj+F,EAAOk+F,GAAa,GAAM,eAGlCniH,EAAI,EAAGA,EAAImiH,EAAWniH,OACnBmC,KAAKq9G,WAAWv7F,EAAOjkB,WAGvB,IAARkiH,GAAaj+F,EAAOk+F,GAAa,GAAM,OAC/BhgH,KAAKq9G,WAAWv7F,EAAOk+F,KAE/BhgH,KAAK09G,gBACG19G,KAAK09G,WAAa19G,KAAKq9G,WAAWL,EAAS36G,IAEhDg5D,QAEN4kD,cAAgB,SAASC,EAAUC,WACarhG,EAIxCg+F,EAJLhf,EAAM99F,KAAKm9G,QAASr7F,EAASg8E,EAAIoe,WAAmBpsG,EAAS9P,KAAK09G,WAAa19G,KAAKq9G,WAAWL,EAAS36G,GAAI+9G,EAAa,GACzHC,EAAY13G,KAAKkN,IAAIqqG,EAAUC,GAAUngH,KAAK09G,WAAY4C,EAAY33G,KAAKD,IAAIw3G,EAAUC,GAAUngH,KAAK09G,WACpG6C,GAAa,EAAOC,GAAiB,EAAO3f,EAAiB,EAEpD4f,EAAS,EAAGA,EAAS3+F,EAAOjjB,OAAQ4hH,MACxC3iB,EAAIme,kBAAkBwE,KACvB3+F,EAAO2+F,MACD3D,GAAUuD,GAAevD,EAASwD,KAC7BE,IACE1wG,GACTywG,GAAcC,KACX1hH,KAAK,CAACu8D,KAAMwlC,EAAgBtT,MAAOz9E,EAAS+wF,OAEjD7gG,KAAKq9G,WAAWv+F,KACTyhG,SAGjBA,GAAeE,IAAW3+F,EAAOjjB,UACtBC,KAAK,CAACu8D,KAAMwlC,EAAgBtT,MAAOz9E,EAAS+wF,IAGpDuf,QAENM,YAAc,SAASC,OACpBC,EAAa,EACb9wG,GADgB6wG,EAAOh4G,KAAKD,IAAIi4G,EAAM,GAC7B,GAAGX,EAAY,EAAGl+F,EAAS9hB,KAAKm9G,QAAQjB,WAC7C2E,EAAY7gH,KAAKq9G,WAAWv7F,EAAOk+F,QAEvChgH,KAAK09G,gBACG19G,KAAK09G,WAAa19G,KAAKq9G,WAAWL,EAAS36G,IAGjDs+G,EAAO7wG,EAAS+wG,EAAU,GAAG,OACrBA,EACPb,IAAcl+F,EAAOjjB,OAAS,EAAG,GACpB,UAGJmB,KAAKq9G,WAAWv7F,IAASk+F,WAGrCA,EAAY,GAAMl+F,EAAOk+F,EAAY,GAAK,GAAM,GAAOl+F,EAAOk+F,GAAa,GAAM,GAC9EW,EAAO7wG,SAEG9P,KAAKm9G,QAAQlB,kBAAkB+D,IAErCA,EAAY,GAAMl+F,EAAOk+F,EAAY,GAAK,GAAM,GAAOl+F,EAAOk+F,GAAa,GAAM,IAC3E,KAAalwG,EAAU9P,KAAKm9G,QAAQlB,kBAAkB+D,GACzDhgH,KAAKm9G,QAAQlB,kBAAkB+D,EAAY,IAE7ChgH,KAAKw9G,UAAYwC,IAAcl+F,EAAOjjB,OAAS,GAAmB,IAAdgiH,GAAoB/+F,EAAOk+F,EAAY,GAAK,GAAM,IACrGhgH,KAAKw9G,UAA0B,IAAdwC,GAAoBl+F,EAAOk+F,GAAa,GAAM,IAC3D,EAAIhgH,KAAKm9G,QAAQlB,kBAAkB+D,IAE5CA,EAAY,GAAMl+F,EAAOk+F,EAAY,GAAK,GAAM,GAAoB,IAAda,SAE7C7gH,KAAKm9G,QAAQlB,kBAAkB+D,IAGxCY,EAAa5gH,KAAK09G,cAG/Bh4G,KAAKw3G,EAAYn5G,aAEZm5G,YAAcA,KAGtBp3B,IAAID,OAAO,YAAY,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAK/ExU,EAAQ,SAASghG,EAAUC,EAAaC,EAAQC,QAC3CtyG,MAAQ,CACT03F,IAAKya,EACLva,OAAQwa,QAGP7xG,IAAM,CACPm3F,IAAK2a,EACLza,OAAQ0a,KAIf,gBACQC,QAAU,SAASvvE,UACb3xC,KAAK2O,MAAM03F,MAAQ10D,EAAMhjC,MAAM03F,KAClCrmG,KAAKkP,IAAIm3F,MAAQ10D,EAAMziC,IAAIm3F,KAC3BrmG,KAAK2O,MAAM43F,SAAW50D,EAAMhjC,MAAM43F,QAClCvmG,KAAKkP,IAAIq3F,SAAW50D,EAAMziC,IAAIq3F,aAEjCn1F,SAAW,iBACJ,WAAapR,KAAK2O,MAAM03F,IAAM,IAAMrmG,KAAK2O,MAAM43F,OACnD,SAAWvmG,KAAKkP,IAAIm3F,IAAM,IAAMrmG,KAAKkP,IAAIq3F,OAAS,UAGrDyC,SAAW,SAAS3C,EAAKE,UACU,GAA7BvmG,KAAKmhH,QAAQ9a,EAAKE,SAExB6a,aAAe,SAASzvE,OACrB20D,EACAp3F,EAAMyiC,EAAMziC,IACZP,EAAQgjC,EAAMhjC,aAGP,MADL3O,KAAKmhH,QAAQjyG,EAAIm3F,IAAKn3F,EAAIq3F,SAGjB,MADLvmG,KAAKmhH,QAAQxyG,EAAM03F,IAAK13F,EAAM43F,SAEzB,EACO,GAAPD,EACA,EAEA,MAEJA,YAGDtmG,KAAKmhH,QAAQxyG,EAAM03F,IAAK13F,EAAM43F,YAGlB,GAAPD,EACA,GAEA,QAIdoB,aAAe,SAASnmG,UAClBvB,KAAKmhH,QAAQ5/G,EAAE8kG,IAAK9kG,EAAEglG,cAE5B8a,cAAgB,SAAS1vE,UACe,GAAlC3xC,KAAK0nG,aAAa/1D,EAAMhjC,QAA+C,GAAhC3O,KAAK0nG,aAAa/1D,EAAMziC,WAErEoyG,WAAa,SAAS3vE,OACnB20D,EAAMtmG,KAAKohH,aAAazvE,aACpB20D,GAAoB,GAAPA,GAAmB,GAAPA,QAEhCib,MAAQ,SAASlb,EAAKE,UAChBvmG,KAAKkP,IAAIm3F,KAAOA,GAAOrmG,KAAKkP,IAAIq3F,QAAUA,QAEhDib,QAAU,SAASnb,EAAKE,UAClBvmG,KAAK2O,MAAM03F,KAAOA,GAAOrmG,KAAK2O,MAAM43F,QAAUA,QAEpDkb,SAAW,SAASpb,EAAKE,GACR,iBAAPF,QACF13F,MAAM43F,OAASF,EAAIE,YACnB53F,MAAM03F,IAAMA,EAAIA,WAEhB13F,MAAM03F,IAAMA,OACZ13F,MAAM43F,OAASA,SAGvBmb,OAAS,SAASrb,EAAKE,GACN,iBAAPF,QACFn3F,IAAIq3F,OAASF,EAAIE,YACjBr3F,IAAIm3F,IAAMA,EAAIA,WAEdn3F,IAAIm3F,IAAMA,OACVn3F,IAAIq3F,OAASA,SAGrBob,OAAS,SAAStb,EAAKE,UACS,GAA7BvmG,KAAKmhH,QAAQ9a,EAAKE,MACdvmG,KAAKuhH,MAAMlb,EAAKE,KAAWvmG,KAAKwhH,QAAQnb,EAAKE,UAQpD2Q,YAAc,SAAS7Q,EAAKE,UACI,GAA7BvmG,KAAKmhH,QAAQ9a,EAAKE,KACdvmG,KAAKuhH,MAAMlb,EAAKE,SAQvBqb,UAAY,SAASvb,EAAKE,UACM,GAA7BvmG,KAAKmhH,QAAQ9a,EAAKE,KACdvmG,KAAKwhH,QAAQnb,EAAKE,SAQzB4a,QAAU,SAAS9a,EAAKE,UACpBvmG,KAAK+oG,eACF1C,IAAQrmG,KAAK2O,MAAM03F,IAKvBA,EAAMrmG,KAAK2O,MAAM03F,OAGjBA,EAAMrmG,KAAKkP,IAAIm3F,IACR,EAEPrmG,KAAK2O,MAAM03F,MAAQA,EACZE,GAAUvmG,KAAK2O,MAAM43F,OAAS,KAErCvmG,KAAKkP,IAAIm3F,MAAQA,EACVE,GAAUvmG,KAAKkP,IAAIq3F,OAAS,EAAI,EAEpC,EAhBQA,EAASvmG,KAAK2O,MAAM43F,UAAeA,EAASvmG,KAAKkP,IAAIq3F,OAAS,EAAI,QAkBhFsb,aAAe,SAASxb,EAAKE,UAC1BvmG,KAAK2O,MAAM03F,KAAOA,GAAOrmG,KAAK2O,MAAM43F,QAAUA,KAGvCvmG,KAAKmhH,QAAQ9a,EAAKE,SAG5Bub,WAAa,SAASzb,EAAKE,UACxBvmG,KAAKkP,IAAIm3F,KAAOA,GAAOrmG,KAAKkP,IAAIq3F,QAAUA,EACnC,EAEAvmG,KAAKmhH,QAAQ9a,EAAKE,SAG5Bwb,cAAgB,SAAS1b,EAAKE,UAC3BvmG,KAAKkP,IAAIm3F,KAAOA,GAAOrmG,KAAKkP,IAAIq3F,QAAUA,EACnC,EACAvmG,KAAK2O,MAAM03F,KAAOA,GAAOrmG,KAAK2O,MAAM43F,QAAUA,KAG9CvmG,KAAKmhH,QAAQ9a,EAAKE,SAG5Byb,SAAW,SAASC,EAAUC,MAC3BliH,KAAKkP,IAAIm3F,IAAM6b,MACXhzG,EAAM,CAACm3F,IAAK6b,EAAU,EAAG3b,OAAQ,WAChCvmG,KAAKkP,IAAIm3F,IAAM4b,EAChB/yG,EAAM,CAACm3F,IAAK4b,EAAU1b,OAAQ,MAElCvmG,KAAK2O,MAAM03F,IAAM6b,MACbvzG,EAAQ,CAAC03F,IAAK6b,EAAU,EAAG3b,OAAQ,WAClCvmG,KAAK2O,MAAM03F,IAAM4b,EAClBtzG,EAAQ,CAAC03F,IAAK4b,EAAU1b,OAAQ,UAEjCzmF,EAAMqiG,WAAWxzG,GAAS3O,KAAK2O,MAAOO,GAAOlP,KAAKkP,WAExDkzG,OAAS,SAAS/b,EAAKE,OACpBD,EAAMtmG,KAAKmhH,QAAQ9a,EAAKE,MAEjB,GAAPD,SACOtmG,YACFsmG,MACD33F,EAAQ,CAAC03F,IAAAA,EAAUE,OAAAA,YAEnBr3F,EAAM,CAACm3F,IAAAA,EAAUE,OAAAA,UAElBzmF,EAAMqiG,WAAWxzG,GAAS3O,KAAK2O,MAAOO,GAAOlP,KAAKkP,WAGxDyxF,QAAU,kBACH3gG,KAAK2O,MAAM03F,MAAQrmG,KAAKkP,IAAIm3F,KAAOrmG,KAAK2O,MAAM43F,SAAWvmG,KAAKkP,IAAIq3F,aAEzEwC,YAAc,kBACP/oG,KAAK2O,MAAM03F,MAAQrmG,KAAKkP,IAAIm3F,UAEnCtoF,MAAQ,kBACF+B,EAAMqiG,WAAWniH,KAAK2O,MAAO3O,KAAKkP,WAExCmzG,aAAe,kBACO,GAAnBriH,KAAKkP,IAAIq3F,OACF,IAAIzmF,EAAM9f,KAAK2O,MAAM03F,IAAK,EAAG19F,KAAKD,IAAI1I,KAAK2O,MAAM03F,IAAKrmG,KAAKkP,IAAIm3F,IAAI,GAAI,GAEvE,IAAIvmF,EAAM9f,KAAK2O,MAAM03F,IAAK,EAAGrmG,KAAKkP,IAAIm3F,IAAK,SAErDic,cAAgB,SAASrf,OACtBsf,EAAiBtf,EAAQuf,yBAAyBxiH,KAAK2O,OACvD8zG,EAAexf,EAAQuf,yBAAyBxiH,KAAKkP,YAElD,IAAI4Q,EACPyiG,EAAelc,IAAKkc,EAAehc,OACnCkc,EAAapc,IAAKoc,EAAalc,cAGlCmc,OAAS,SAASrc,EAAKE,QACnB53F,MAAM03F,KAAOA,OACb13F,MAAM43F,QAAUA,OAChBr3F,IAAIm3F,KAAOA,OACXn3F,IAAIq3F,QAAUA,KAGxB7gG,KAAKoa,EAAM/b,aACRo+G,WAAa,SAASxzG,EAAOO,UACxB,IAAI4Q,EAAMnR,EAAM03F,IAAK13F,EAAM43F,OAAQr3F,EAAIm3F,IAAKn3F,EAAIq3F,WAErDoc,cAnOc,SAASC,EAAIrhH,UACtBqhH,EAAGvc,IAAM9kG,EAAG8kG,KAAOuc,EAAGrc,OAAShlG,EAAGglG,UAoOvCoc,cAAgB,SAASC,EAAIrhH,UACxBqhH,EAAGvc,IAAM9kG,EAAG8kG,KAAOuc,EAAGrc,OAAShlG,EAAGglG,UAIrCzmF,MAAQA,KAGhBgmE,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,wBAAwB,cAAc,SAASP,EAAU/wE,EAAS+f,OAGpJi7D,EAAMjK,EAAS,aACf4Z,EAAO5Z,EAAS,cAChB6sB,EAAe7sB,EAAS,uBAAuB6sB,aAC/CryF,EAAQwlE,EAAS,WAAWxlE,MAC5B+iG,EAAY,SAAS5f,QAChBA,QAAUA,OACVtX,IAAMsX,EAAQ6f,mBAEd1f,sBACA2f,KAAO/iH,KAAKgjH,cAAgBhjH,KAAK2rF,IAAIs3B,aAAa,EAAG,QACrD//D,OAASljD,KAAKkjH,gBAAkBljH,KAAK2rF,IAAIs3B,aAAa,EAAG,OAE1Dj6B,EAAOhpF,UACN+iH,KAAKnf,GAAG,UAAU,SAAS1iG,KACvB+iG,MAAM,gBACNjb,EAAKm6B,YACDlf,MAAM,mBACVjb,EAAKo6B,4BAA8BliH,EAAE2xG,IAAItM,QAAUrlG,EAAEkB,MAAMmkG,WACvD8c,eAAiB,cAGzBH,gBAAgBtf,GAAG,UAAU,WACzB5a,EAAKm6B,YACDlf,MAAM,wBAItB,aAEO3U,UAAUtvF,KAAMmyG,QACfxR,QAAU,kBACH3gG,KAAKmjH,UACTnjH,KAAKkjD,OAAOmjD,KAAOrmG,KAAK+iH,KAAK1c,KAC7BrmG,KAAKkjD,OAAOqjD,QAAUvmG,KAAK+iH,KAAKxc,aAGnCwC,YAAc,kBACX/oG,KAAK2gG,WAIF3gG,KAAKgjG,WAAW+F,oBAEtBua,UAAY,kBACNtjH,KAAK+iH,KAAKQ,oBAEhB1b,mBAAqB,SAASxB,EAAKE,QAC/BrjD,OAAOonD,YAAYjE,EAAKE,GAEzBvmG,KAAKmjH,gBACAA,UAAW,OACXlf,MAAM,0BAGduf,mBAAqB,kBAClBxjH,KAAKmjH,SACEnjH,KAAKyjH,mBAELzjH,KAAKkjD,OAAOqgE,oBAEtBE,iBAAmB,kBACbzjH,KAAK+iH,KAAKQ,oBAEhBG,eAAiB,SAASC,MACvB3jH,KAAKmjH,cACAS,aAAa5jH,KAAK+iH,KAAK1c,IAAKrmG,KAAK+iH,KAAKxc,OAASod,YAIpDzgE,EAASljD,KAAKwjH,qBACdT,EAAO/iH,KAAKyjH,mBAEZI,EAAc7jH,KAAK6jH,cAElBA,GAAiC,IAAlB3gE,EAAOqjD,aAClBsB,mBAAmB3kD,EAAOmjD,IAAKnjD,EAAOqjD,OAASod,IAEpDE,GAA+B,IAAhBd,EAAKxc,cACfud,gBAAe,gBACXF,aAAab,EAAK1c,IAAK0c,EAAKxc,OAASod,aAIjDE,YAAc,eACX3gE,EAASljD,KAAKkjD,OACd6/D,EAAO/iH,KAAK+iH,YACR7/D,EAAOmjD,IAAM0c,EAAK1c,KAAQnjD,EAAOmjD,KAAO0c,EAAK1c,KAAOnjD,EAAOqjD,OAASwc,EAAKxc,aAEhFvD,SAAW,eACR9/C,EAASljD,KAAKkjD,OACd6/D,EAAO/iH,KAAK+iH,YAEZ/iH,KAAK2gG,UACE7gF,EAAMqiG,WAAWY,EAAMA,GAE9B/iH,KAAK6jH,cACE/jG,EAAMqiG,WAAWY,EAAM7/D,GAGvBpjC,EAAMqiG,WAAWj/D,EAAQ6/D,SAGnC3f,eAAiB,WACbpjG,KAAKmjH,gBACDA,UAAW,OACXlf,MAAM,0BAGdxB,UAAY,eACTyf,EAAUliH,KAAK2rF,IAAIygB,YAAc,OAChCvE,mBAAmB,EAAG,QACtB+b,aAAa1B,EAASliH,KAAK2rF,IAAIgtB,QAAQuJ,GAASrjH,cAEpDskG,SACLnjG,KAAK+gG,kBAAoB,SAASpvD,EAAO2rD,GACjCA,QACKuK,mBAAmBl2D,EAAMziC,IAAIm3F,IAAK10D,EAAMziC,IAAIq3F,aAC5CuF,SAASn6D,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,eAEtCsB,mBAAmBl2D,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,aAChDuF,SAASn6D,EAAMziC,IAAIm3F,IAAK10D,EAAMziC,IAAIq3F,SAEvCvmG,KAAKgjG,WAAWrC,iBACXwiB,UAAW,QACfE,eAAiB,WAGrBS,eAAiB,SAASC,OACvBhB,EAAO/iH,KAAK+iH,KACZ/iH,KAAKmjH,eACAtb,mBAAmBkb,EAAK1c,IAAK0c,EAAKxc,UAErC7gG,KAAK1F,YAEV8rG,SAAW,SAASzF,EAAKE,QACrBud,gBAAe,gBACXF,aAAavd,EAAKE,YAG1BgB,iBAAmB,SAAS/7C,QACxBs4D,gBAAe,gBACXhW,qBAAqBtiD,YAG7Bw4D,OAAS,SAAS3d,EAAKE,QACnBnD,sBACAwgB,aAAavd,EAAKE,SAEtBQ,eAAiB,SAASv7C,QACtB43C,sBACA0K,qBAAqBtiD,SAEzBy4D,SAAW,gBACPH,eAAe9jH,KAAKkkH,oBAExBC,WAAa,gBACTL,eAAe9jH,KAAKokH,sBAExBC,YAAc,gBACVP,eAAe9jH,KAAKskH,uBAExBC,WAAa,gBACTT,eAAe9jH,KAAKwkH,sBAExBC,gBAAkB,gBACdX,eAAe9jH,KAAK0kH,2BAExBC,cAAgB,gBACZb,eAAe9jH,KAAK4kH,yBAExBC,cAAgB,gBACZf,eAAe9jH,KAAK8kH,yBAExBC,gBAAkB,gBACdjB,eAAe9jH,KAAKglH,2BAExBC,gBAAkB,gBACdnB,eAAe9jH,KAAKklH,2BAExBC,eAAiB,gBACbrB,eAAe9jH,KAAKolH,0BAExBtc,aAAe,SAASzC,EAAKE,WACT,IAAVA,EAAuB,KAC1BH,EAASC,GAAOrmG,KAAK+iH,OACnB3c,EAAOC,MACJD,EAAOG,cAEbvmG,KAAKijG,QAAQ6F,aAAazC,EAAKE,SAErC8e,WAAa,gBACTtkB,kBAAkB/gG,KAAK8oG,sBAE3Bwc,YAAc,eACXlf,EAASpmG,KAAKsjH,YACd3xE,EAAQ3xC,KAAKijG,QAAQsiB,cAAcnf,EAAOC,IAAKD,EAAOG,aACrDxF,kBAAkBpvD,SAGtBs3D,aAAe,SAAS5C,EAAKmf,OAE1BC,EADAC,EAAyB,iBAAPrf,EAAkBA,EAAMrmG,KAAK+iH,KAAK1c,IAGpDsf,EAAW3lH,KAAKijG,QAAQ2iB,YAAYF,UACpCC,KACWA,EAASh3G,MAAM03F,MACjBsf,EAASz2G,IAAIm3F,OAEbqf,GAEW,IAApBF,EACO,IAAI1lG,EAAM4lG,EAAU,EAAGD,EAAQzlH,KAAKijG,QAAQ0V,QAAQ8M,GAAQ5mH,QAE5D,IAAIihB,EAAM4lG,EAAU,EAAGD,EAAS,EAAG,SAE7CI,WAAa,gBACT9kB,kBAAkB/gG,KAAKipG,sBAE3Bib,aAAe,gBACX4B,gBAAiB,SAErB1B,eAAiB,gBACb0B,aAAa,EAAG,SAEpBC,qBAAuB,SAAS3f,EAAQ4f,EAASttE,OAC9C/pC,EAAQy3F,EAAOG,OACfr3F,EAAMk3F,EAAOG,OAASyf,SAEtBttE,EAAY,MACJ0tD,EAAOG,OAASyf,IAClB5f,EAAOG,QAEVvmG,KAAKijG,QAAQgjB,UAAU7f,IAAWpmG,KAAK2rF,IAAIgtB,QAAQvS,EAAOC,KAAKrjG,MAAM2L,EAAOO,GAAK5G,MAAM,KAAKzJ,OAAO,GAAKmnH,QAE9GxB,eAAiB,eAEdrM,EADA/R,EAASpmG,KAAK+iH,KAAKQ,iBAGnBpL,EAAOn4G,KAAKijG,QAAQmV,UAAUhS,EAAOC,IAAKD,EAAOG,gBAC5Cqd,aAAazL,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,gBACpB,IAAlBH,EAAOG,OACVH,EAAOC,IAAM,QACRud,aAAaxd,EAAOC,IAAM,EAAGrmG,KAAK2rF,IAAIgtB,QAAQvS,EAAOC,IAAM,GAAGxnG,YAGtE,KACGmnH,EAAUhmH,KAAKijG,QAAQijB,aACvBlmH,KAAK+lH,qBAAqB3f,EAAQ4f,QAAiBhmH,KAAKijG,QAAQkjB,iCAC3DL,aAAa,GAAIE,QAEjBF,aAAa,aAIzBxB,gBAAkB,eAEfnM,EADA/R,EAASpmG,KAAK+iH,KAAKQ,iBAEnBpL,EAAOn4G,KAAKijG,QAAQmV,UAAUhS,EAAOC,IAAKD,EAAOG,OAAQ,QACpDqd,aAAazL,EAAKjpG,IAAIm3F,IAAK8R,EAAKjpG,IAAIq3F,gBAEpCvmG,KAAK+iH,KAAKxc,QAAUvmG,KAAK2rF,IAAIgtB,QAAQ34G,KAAK+iH,KAAK1c,KAAKxnG,OACrDmB,KAAK+iH,KAAK1c,IAAMrmG,KAAK2rF,IAAIygB,YAAc,QAClCwX,aAAa5jH,KAAK+iH,KAAK1c,IAAM,EAAG,OAGxC,KACG2f,EAAUhmH,KAAKijG,QAAQijB,aACvB9f,EAASpmG,KAAK+iH,KACd/iH,KAAK+lH,qBAAqB3f,EAAQ4f,EAAS,KAAOhmH,KAAKijG,QAAQkjB,iCAC1DL,aAAa,EAAGE,QAEhBF,aAAa,EAAG,UAI5BpB,oBAAsB,eACnBre,EAAMrmG,KAAK+iH,KAAK1c,IAChBE,EAASvmG,KAAK+iH,KAAKxc,OACnB8F,EAAYrsG,KAAKijG,QAAQuJ,oBAAoBnG,EAAKE,GAClD6f,EAAsBpmH,KAAKijG,QAAQojB,yBAAyBha,EAAW,GAMvEia,EALetmH,KAAKijG,QAAQsjB,eAC5BlgB,EAAK,KAAM+f,EAAoB/f,IAC/B+f,EAAoB7f,QAGQn+F,MAAM,QAClCk+G,EAAa,GAAGznH,QAAU0nG,GAAWvmG,KAAKijG,QAAQujB,4BAC9BjgB,QAAU+f,EAAa,GAAGznH,aAC7CivG,qBAAqBsY,SAEzBxB,kBAAoB,eACjB7B,EAAO/iH,KAAK+iH,KACZ0D,EAAUzmH,KAAKijG,QAAQyjB,iCAAiC3D,EAAK1c,IAAK0c,EAAKxc,WACvEvmG,KAAK+iH,KAAKxc,QAAUkgB,EAAQlgB,OAAQ,KAChCkX,EAAOz9G,KAAKijG,QAAQ0V,QAAQ8N,EAAQpgB,QACpCogB,EAAQlgB,QAAUkX,EAAK5+G,OAAQ,KAC3B8nH,EAAUlJ,EAAKtzG,OAAO,QACtBw8G,EAAU,MACFpgB,OAASogB,SAIxB/C,aAAa6C,EAAQpgB,IAAKogB,EAAQlgB,cAEtCue,kBAAoB,eACjBze,EAAMrmG,KAAK2rF,IAAIygB,YAAc,EAC7B7F,EAASvmG,KAAK2rF,IAAIgtB,QAAQtS,GAAKxnG,YAC9B+kH,aAAavd,EAAKE,SAEtBye,oBAAsB,gBAClBpB,aAAa,EAAG,SAEpBgD,wBAA0B,eACvBvgB,EAAMrmG,KAAK+iH,KAAK1c,IAChBE,EAASvmG,KAAK+iH,KAAKxc,OACnBkX,EAAOz9G,KAAK2rF,IAAIgtB,QAAQtS,GACxBwgB,EAAgBpJ,EAAKjc,UAAU+E,QAG9BtD,QAAQ6jB,WAAW3gC,UAAY,OAC/B8c,QAAQ8jB,QAAQ5gC,UAAY,MAC7BgyB,EAAOn4G,KAAKijG,QAAQmV,UAAU/R,EAAKE,EAAQ,MAC3C4R,OACKyL,aAAazL,EAAKjpG,IAAIm3F,IAAK8R,EAAKjpG,IAAIq3F,gBAGjCvmG,KAAKijG,QAAQ6jB,WAAW35G,KAAK05G,QAC3B7mH,KAAKijG,QAAQ6jB,WAAW3gC,eAC7B8c,QAAQ6jB,WAAW3gC,UAAY,IACpBs3B,EAAKjc,UAAU+E,IAE/BA,GAAUkX,EAAK5+G,mBACV+kH,aAAavd,EAAKoX,EAAK5+G,aACvBylH,uBACDje,EAAMrmG,KAAK2rF,IAAIygB,YAAc,QACxB8Y,uBAGDllH,KAAKijG,QAAQ8jB,QAAQ55G,KAAK05G,QACxB7mH,KAAKijG,QAAQ8jB,QAAQ5gC,eAC1B8c,QAAQ8jB,QAAQ5gC,UAAY,QAGhCy9B,aAAavd,EAAKE,UAEtBygB,uBAAyB,eAGtB7O,EAFA9R,EAAMrmG,KAAK+iH,KAAK1c,IAChBE,EAASvmG,KAAK+iH,KAAKxc,UAEnB4R,EAAOn4G,KAAKijG,QAAQmV,UAAU/R,EAAKE,WAC9Bqd,aAAazL,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,iBAI7Cx1F,EAAM/Q,KAAKijG,QAAQgkB,gBAAgB5gB,EAAKE,MACjC,MAAPx1F,MACM/Q,KAAK2rF,IAAIgtB,QAAQtS,GAAK7E,UAAU,EAAG+E,QAGzC2gB,EAAehoB,EAAK7B,cAActsF,WAEjCkyF,QAAQ6jB,WAAW3gC,UAAY,OAC/B8c,QAAQ8jB,QAAQ5gC,UAAY,EACrBnmF,KAAKijG,QAAQ6jB,WAAW35G,KAAK+5G,QAC3BlnH,KAAKijG,QAAQ6jB,WAAW3gC,YACnB+gC,EAAalkH,MAAMhD,KAAKijG,QAAQ6jB,WAAW3gC,gBACrD8c,QAAQ6jB,WAAW3gC,UAAY,GAEpCogB,GAAU,cACLqd,aAAavd,EAAK,QAClBme,sBACDne,EAAM,QACD+e,sBAGDplH,KAAKijG,QAAQ8jB,QAAQ55G,KAAK+5G,QACxBlnH,KAAKijG,QAAQ8jB,QAAQ5gC,eAC1B8c,QAAQ8jB,QAAQ5gC,UAAY,QAGhCy9B,aAAavd,EAAKE,UAGtB4gB,mBAAqB,SAASN,OACTtL,EAAXhyG,EAAQ,EACf69G,EAAe,KACfL,EAAU/mH,KAAKijG,QAAQ8jB,aAEnB5gC,UAAY,EACRnmF,KAAKijG,QAAQ8jB,QAAQ55G,KAAK05G,KAC1B7mH,KAAKijG,QAAQ8jB,QAAQ5gC,cAC1B,SACU0gC,EAAct9G,KAAW69G,EAAa1kH,KAAK64G,WAGpDhyG,EAAQ,QACA48E,UAAY,KACN0gC,EAAct9G,MAAYw9G,EAAQrkH,KAAK64G,SACzCp1B,UAAY,MAEhBihC,EAAa1kH,KAAK64G,GAAK,IACnBhyG,EAAQ,EAAG,mBAIEs9G,EAAct9G,KAAW69G,EAAa1kH,KAAK64G,WAEpDhyG,EAAQ,kBAOxB48E,UAAY,EAEb58E,QAGN89G,yBAA2B,eACxBhhB,EAAMrmG,KAAK+iH,KAAK1c,IAChBE,EAASvmG,KAAK+iH,KAAKxc,OACnBkX,EAAOz9G,KAAK2rF,IAAIgtB,QAAQtS,GACxBwgB,EAAgBpJ,EAAKjc,UAAU+E,GAE/B4R,EAAOn4G,KAAKijG,QAAQmV,UAAU/R,EAAKE,EAAQ,MAC3C4R,SACOn4G,KAAK4jH,aAAazL,EAAKjpG,IAAIm3F,IAAK8R,EAAKjpG,IAAIq3F,WAEhDA,GAAUkX,EAAK5+G,OAAQ,KACnBT,EAAI4B,KAAK2rF,IAAIygB,qBAGGpsG,KAAK2rF,IAAIgtB,QAAQtS,SAC5BA,EAAMjoG,GAAK,QAAQsE,KAAKmkH,IAE5B,OAAOnkH,KAAKmkH,OACG,MACX,MAGTt9G,EAAQvJ,KAAKmnH,mBAAmBN,QAE/BjD,aAAavd,EAAKE,EAASh9F,SAG/B+9G,wBAA0B,eAIvBnP,EAHA9R,EAAMrmG,KAAK+iH,KAAK1c,IAChBE,EAASvmG,KAAK+iH,KAAKxc,UAGnB4R,EAAOn4G,KAAKijG,QAAQmV,UAAU/R,EAAKE,aAC5BvmG,KAAK4jH,aAAazL,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,YAEpDkX,EAAOz9G,KAAKijG,QAAQ0V,QAAQtS,GAAK7E,UAAU,EAAG+E,MACnC,IAAXA,EAAc,UAGHvmG,KAAK2rF,IAAIgtB,QAAQtS,SACnBA,EAAM,GAAK,QAAQ3jG,KAAK+6G,MAExBA,EAAK5+G,OACT,OAAO6D,KAAK+6G,OACN,QAGXyJ,EAAehoB,EAAK7B,cAAcogB,GAClCl0G,EAAQvJ,KAAKmnH,mBAAmBD,UAE7BlnH,KAAK4jH,aAAavd,EAAKE,EAASh9F,SAGtC27G,oBAAsB,WACnBllH,KAAKijG,QAAQskB,sBACRX,+BAEAS,iCAGRjC,mBAAqB,WAClBplH,KAAKijG,QAAQskB,sBACRP,8BAEAM,gCAERxB,aAAe,SAAS0B,EAAMvM,OAM3B76F,EALAqnG,EAAYznH,KAAKijG,QAAQuf,yBACzBxiH,KAAK+iH,KAAK1c,IACVrmG,KAAK+iH,KAAKxc,QAKA,IAAV0U,IACa,IAATuM,IACIxnH,KAAKijG,QAAQykB,aAAa5J,UAAU2J,EAAUphB,IAAKrmG,KAAK+iH,KAAK1c,QACnDrmG,KAAKijG,QAAQykB,aAAa5H,WAAW2H,EAAUlhB,UAC/CA,OAAS59F,KAAKg/G,MAAMvnG,EAAUpgB,KAAKijG,QAAQykB,aAAarK,WAAW,OAEnEoK,EAAUlhB,OAASvmG,KAAKijG,QAAQykB,aAAarK,WAAW,IAItEr9G,KAAKqjH,iBACK9c,OAASvmG,KAAKqjH,oBAEnBA,eAAiBoE,EAAUlhB,YAGpCqhB,EAAS5nH,KAAKijG,QAAQojB,yBAAyBoB,EAAUphB,IAAMmhB,EAAMC,EAAUlhB,OAAQnmF,GAE9E,IAATonG,GAAwB,IAAVvM,GAAe2M,EAAOvhB,MAAQrmG,KAAK+iH,KAAK1c,KAAOuhB,EAAOrhB,SAAWvmG,KAAK+iH,KAAKxc,QACrFvmG,KAAKijG,QAAQ4kB,aAAe7nH,KAAKijG,QAAQ4kB,YAAYD,EAAOvhB,OACxDuhB,EAAOvhB,IAAM,GAAKmhB,EAAO,MAClBnhB,WAGdud,aAAagE,EAAOvhB,IAAKuhB,EAAOrhB,OAAS0U,EAAiB,IAAVA,SAEpDnN,qBAAuB,SAAS9rF,QAC5B4hG,aAAa5hG,EAASqkF,IAAKrkF,EAASukF,cAExCqd,aAAe,SAASvd,EAAKE,EAAQuhB,OAClC3P,EAAOn4G,KAAKijG,QAAQmV,UAAU/R,EAAKE,EAAQ,GAC3C4R,MACMA,EAAKxpG,MAAM03F,MACR8R,EAAKxpG,MAAM43F,aAGnB6c,4BAA6B,MAC9B3F,EAAOz9G,KAAKijG,QAAQ0V,QAAQtS,GAC5B,kBAAkB3jG,KAAK+6G,EAAK50G,OAAO09F,KAAYkX,EAAK50G,OAAO09F,EAAS,KAChEvmG,KAAK+iH,KAAK1c,KAAOA,GAAOrmG,KAAK+iH,KAAKxc,QAAUA,EAAS,KACnC,KAEA,QAErBwc,KAAKzY,YAAYjE,EAAKE,QACtB6c,4BAA6B,EAE7B0E,SACIzE,eAAiB,YAEzB0E,mBAAqB,SAAS1hB,EAAKE,EAAQuhB,OACxCt8D,EAAMxrD,KAAKijG,QAAQojB,yBAAyBhgB,EAAKE,QAChDqd,aAAap4D,EAAI66C,IAAK76C,EAAI+6C,OAAQuhB,SAEtCpO,OAAS,gBACLqJ,KAAKrJ,cACLx2D,OAAOw2D,cACPzW,QAAUjjG,KAAK2rF,IAAM,WAGzBwjB,kBAAoB,SAASx9D,QACzBovD,kBAAkBpvD,EAAOA,EAAMy0D,QAAUz0D,EAAMhjC,YAC/C00G,eAAiB1xE,EAAMq2E,eAAiBhoH,KAAKqjH,qBAGjD3U,gBAAkB,SAAS/8D,OACxBjzC,EAAIsB,KAAKgjG,kBACTrxD,KACMhjC,MAAM43F,OAAS7nG,EAAEiQ,MAAM43F,SACvB53F,MAAM03F,IAAM3nG,EAAEiQ,MAAM03F,MACpBn3F,IAAIq3F,OAAS7nG,EAAEwQ,IAAIq3F,SACnBr3F,IAAIm3F,IAAM3nG,EAAEwQ,IAAIm3F,OAEd3nG,IAGN0nG,OAASpmG,KAAK6jH,cAAgBlyE,EAAMhjC,MAAQgjC,EAAMziC,MAClD84G,cAAgBhoH,KAAKqjH,eACpB1xE,QAENs2E,oBAAsB,SAAS30D,OAC5B3kD,EAAQ3O,KAAKsjH,kBAERtjH,UACDkP,EAAMlP,KAAKsjH,mBACRxjG,EAAMqiG,WAAWxzG,EAAMO,SAC1BhO,UACG4e,EAAMqiG,WAAWxzG,EAAMA,gBAEzBm/F,qBAAqBn/F,UAI7Bu5G,OAAS,cACNloH,KAAKmoH,eACD1iH,EAAOzF,KAAKooH,OAAOj/G,KAAI,SAASzK,OAC5BikF,EAAKjkF,EAAEqf,iBACR8lG,YAAcnlH,EAAE0nG,QAAU1nG,EAAEiQ,MACxBg0E,UAGPl9E,EAAOzF,KAAKgjG,YACX6gB,YAAc7jH,KAAK6jH,qBAErBp+G,QAGN4iH,SAAW,SAAS5iH,MACH,MAAdA,EAAKkJ,MAAoB,IACrB3O,KAAKsoH,UAAW,MACXC,cAAc9iH,EAAK,YACf5H,EAAI4H,EAAK5G,OAAQhB,KAAO,KACzBa,EAAIohB,EAAMqiG,WAAW18G,EAAK5H,GAAG8Q,MAAOlJ,EAAK5H,GAAGqR,KAC5CzJ,EAAK5H,GAAGgmH,gBACNzd,OAAS1nG,EAAEiQ,YACZ65G,SAAS9pH,GAAG,YAId+G,EAAK,GAEhBzF,KAAKsoH,gBACAC,cAAc9iH,QAClBs7F,kBAAkBt7F,EAAMA,EAAKo+G,mBAGjC3C,QAAU,SAASz7G,SACV5G,QAAUmB,KAAKmoH,aAAe1iH,EAAK5G,QAAUmB,KAAKmoH,kBACjD,MACN1iH,EAAK5G,SAAWmB,KAAKooH,cACfpoH,KAAKgjG,WAAWke,QAAQz7G,WAE1B5H,EAAImC,KAAKooH,OAAOvpH,OAAQhB,SACxBmC,KAAKooH,OAAOvqH,GAAGqjH,QAAQz7G,EAAK5H,WACtB,SAER,KAGZ6H,KAAKm9G,EAAU9+G,aAEV8+G,UAAYA,KAGpB/8B,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,eAAe,SAASP,EAAU/wE,EAAS+f,OAGhG1e,EAAS0vE,EAAS,YAClBmjC,EAAkB,IAClBC,EAAY,SAASxmF,WAKZ9iC,UAJJ8gD,OAAShe,OAETymF,QAAU,QACVC,cAAgB,GACL5oH,KAAKkgD,OAAQ,SACrB97C,EAAQpE,KAAKkgD,OAAO9gD,GACpBypH,EAAc,GACdC,EAAa,EACbC,EAAU/oH,KAAK4oH,cAAcxpH,GAAO,CAAC4pH,aAAc,QACnDC,EAAO,IAEPC,EAAiB,GACZrrH,EAAI,EAAGA,EAAIuG,EAAMvF,OAAQhB,IAAK,KAC/B+6E,EAAOx0E,EAAMvG,MACb+6E,EAAKowC,iBACGA,aAAepwC,EAAKowC,cAC5BpwC,EAAKuwC,oBACE,MACO,MAAdvwC,EAAKwN,OAGLxN,EAAKwN,iBAAiBJ,WACjBI,MAAQxN,EAAKwN,MAAMh1E,WAAWpO,MAAM,WACzComH,EAAgBxwC,EAAKwN,MACrBijC,EAAa,IAAIrjC,OAAO,OAASojC,EAAgB,UAAUj8G,KAAK,KAAKtO,OAAS,EAC9EkD,MAAMC,QAAQ42E,EAAK0wC,OACM,GAArB1wC,EAAK0wC,MAAMzqH,QAA6B,GAAdwqH,IACrBC,MAAQ1wC,EAAK0wC,MAAM,GACjBD,EAAa,GAAKzwC,EAAK0wC,MAAMzqH,aAC/By1G,YAAY,oDAAqD,CAClE17B,KAAAA,EACA2wC,WAAYF,EAAa,MAExBC,MAAQ1wC,EAAK0wC,MAAM,OAEnBE,WAAa5wC,EAAK0wC,QAClBA,MAAQ,OACRG,QAAUzpH,KAAK0pH,cAEI,mBAAd9wC,EAAK0wC,OAAwB1wC,EAAK6wC,YAEvCA,QADLJ,EAAa,EACErpH,KAAK2pH,YAEL/wC,EAAK0wC,OAGxBD,EAAa,IACT,OAAO3mH,KAAKk2E,EAAKwN,SACDxN,EAAKwN,MAAMtjF,QAAQ,eAAe,SAASsF,EAAOwhH,SACvD,eAAiBA,EAAO,IAAMd,EAAa,SAGzC,IACG9oH,KAAK6pH,sBAAsBjxC,EAAKwN,QAE/CxN,EAAKkxC,YAAmC,iBAAdlxC,EAAK0wC,SACjBxqH,KAAK85E,MAGpBkwC,GAAcjrH,KACRwrH,IAEFvqH,KAAKsqH,GACZxwC,EAAK6wC,YACDA,QAAU,OAGlBZ,EAAYhqH,WACL,GAAK,IACDC,KAAK,QAGN6F,SAAQ,SAASolH,KACvBD,WAAa9pH,KAAKgqH,qBAAqBD,EAAK3jC,MAAO6iC,KACzDjpH,WAEE2oH,QAAQvpH,GAAO,IAAI4mF,OAAO,IAAM6iC,EAAYrgH,KAAK,OAAS,QAASygH,MAI/E,gBACQgB,kBAAoB,SAAStoH,KACR,EAAJA,QAGjBgoH,YAAc,SAAS54G,OACpBwH,EAASvY,KAAK8pH,WAAW38G,KAAK4D,GAAK/N,MAAM,GACzCytG,EAAQzwG,KAAKspH,MAAM59F,MAAM1rB,KAAMuY,MACd,iBAAVk4F,QACA,CAAC,CAACvxG,KAAMuxG,EAAOruG,MAAO2O,YAE7Bm5G,EAAS,GACJrsH,EAAI,EAAGO,EAAIqyG,EAAM5xG,OAAQhB,EAAIO,EAAGP,IACjC0a,EAAO1a,OACAqsH,EAAOrrH,QAAU,CACpBK,KAAMuxG,EAAM5yG,GACZuE,MAAOmW,EAAO1a,YAGnBqsH,QAGNR,aAAe,SAAS34G,OACpBA,QACM,OACPwH,EAASvY,KAAK8pH,WAAW38G,KAAK4D,OAC7BwH,QACM,eACP2xG,EAAS,GACTzZ,EAAQzwG,KAAKwpH,WACR3rH,EAAI,EAAGO,EAAIqyG,EAAM5xG,OAAQhB,EAAIO,EAAGP,IACjC0a,EAAO1a,EAAI,OACJqsH,EAAOrrH,QAAU,CACpBK,KAAMuxG,EAAM5yG,GACZuE,MAAOmW,EAAO1a,EAAI,YAGvBqsH,QAGNL,sBAAwB,SAAS9rD,UAC1BA,EAAIj7D,QACR,2CACA,SAASc,EAAGqB,UAAWA,EAAI,MAAQrB,WAKtComH,qBAAuB,SAASjsD,EAAKkrD,UAClClrD,EAAI59D,QAAQ,OAAc,KACtBgqH,EAAQ,EACRC,GAAY,EACZC,EAAc,KACdvnH,QAAQ,wCAAwC,SAChDnB,EAAG60F,EAAK8zB,EAAWC,EAAYC,EAAQjhH,UAEnC6gH,IACsB,KAAVI,EACLA,KACK,EACLD,GACHJ,GAASE,EAAYF,UACTj7G,IAAM3F,EAAM,IACZ4gH,eAGTG,QAEiB,GAApBA,EAAUzrH,WACEsrH,MAAQA,IACRx7G,MAAQpF,IAGrB5H,KAGY,MAAnB0oH,EAAYn7G,KAAe,QAAQxM,KAAKq7D,EAAI1sD,OAAOg5G,EAAYn7G,UACzD6uD,EAAIyjC,UAAU,EAAG6oB,EAAY17G,OAASovD,EAAI1sD,OAAOg5G,EAAYn7G,YAEtD,KAAjB6uD,EAAIl1D,OAAO,OAAiB,IAAMk1D,GACJ,KAA9BA,EAAIl1D,OAAOk1D,EAAIl/D,OAAS,QAAkB,KAEvC,IAAImnF,OAAOjoB,MAAY,IAAIj7D,QAAQ,IAAK,WAE9C2nH,cAAgB,SAAShN,EAAMiN,MAC5BA,GAAmC,iBAAdA,EAAwB,KACzCP,EAAQO,EAAW1nH,MAAM,GAEV,YADNmnH,EAAM,QAET95G,UACO85G,EAAM95G,cAGnB85G,EAAQ,OAEZQ,EAAeD,GAAc,QAC7BtmH,EAAQpE,KAAKkgD,OAAOyqE,GACnBvmH,MACc,UACPpE,KAAKkgD,OAAOyqE,QAEpB5B,EAAU/oH,KAAK4oH,cAAc+B,GAC7BhV,EAAK31G,KAAK2oH,QAAQgC,KACnBxkC,UAAY,UAEX/9E,EAAO8hH,EAAS,GAChB/jC,EAAY,EACZykC,EAAgB,EAEhBtB,EAAQ,CAACpqH,KAAM,KAAMkD,MAAO,IAEzBgG,EAAQutG,EAAGxoG,KAAKswG,IAAO,KACtBpzG,EAAO0+G,EAAQC,aACfpwC,EAAO,KACPx2E,EAAQgG,EAAM,GACdmB,EAAQosG,EAAGxvB,aAEX58E,EAAQnH,EAAMvD,OAASsnF,EAAW,KAC9B0kC,EAAUpN,EAAKjc,UAAUrb,EAAW58E,EAAQnH,EAAMvD,QAClDyqH,EAAMpqH,MAAQmL,IACRjI,OAASyoH,GAEXvB,EAAMpqH,QACCJ,KAAKwqH,KACR,CAACpqH,KAAMmL,EAAMjI,MAAOyoH,YAI3BhtH,EAAI,EAAGA,EAAIuK,EAAMvJ,OAAO,EAAGhB,YACX,IAAjBuK,EAAMvK,EAAI,SAGPuG,EAAM2kH,EAAQlrH,KAEZ4rH,QACE7wC,EAAK6wC,QAAQrnH,EAAOuoH,EAAcR,EAAO1M,GAEzC7kC,EAAK0wC,MAEZ1wC,EAAK7b,SACmB,iBAAb6b,EAAK7b,KACG6b,EAAK7b,KAEL6b,EAAK7b,KAAK4tD,EAAcR,MAGnCnqH,KAAKkgD,OAAOyqE,WAEXrW,YAAY,sBAAuBqW,KACzB,UACP3qH,KAAKkgD,OAAOyqE,MAEd3qH,KAAK4oH,cAAc+B,KACjBphH,KACPvJ,KAAK2oH,QAAQgC,IACfxkC,UAAY58E,GAEfqvE,EAAKkyC,mBACOvhH,YAIhBnH,KACoB,iBAATiI,EACDuuE,IAAuB,IAAfA,EAAKmyC,OAAoBzB,EAAMpqH,OAASmL,GAG9Ci/G,EAAMpqH,QACCJ,KAAKwqH,KACR,CAACpqH,KAAMmL,EAAMjI,MAAAA,MAJfA,OAASA,UAMZiI,EAAM,CACTi/G,EAAMpqH,QACCJ,KAAKwqH,KACR,CAACpqH,KAAM,KAAMkD,MAAO,QACnBvE,EAAI,EAAGA,EAAIwM,EAAKxL,OAAQhB,MACtBiB,KAAKuL,EAAKxM,OAIzBsoF,GAAas3B,EAAK5+G,kBAGV0K,EAERqhH,IAAkBnC,EAAiB,KAC/BmC,EAAgB,EAAInN,EAAK5+G,aACpBy1G,YAAY,sCAAuC,CACpDoW,WAAAA,EACAjN,KAAAA,IAGDt3B,EAAYs3B,EAAK5+G,QAChByqH,EAAMpqH,QACCJ,KAAKwqH,KACR,CACJlnH,MAAOq7G,EAAKjc,UAAUrb,EAAWA,GAAa,KAC9CjnF,KAAM,cAGC,UACP,iBAKZoqH,EAAMpqH,QACCJ,KAAKwqH,GAEZa,EAAMtrH,OAAS,GACXsrH,EAAM,KAAOQ,KACPK,QAAQ,OAAQL,GAEvB,CACHM,OAASf,EACT9lH,MAAQ+lH,EAAMtrH,OAASsrH,EAAQQ,SAIlCrW,YAAc1+F,EAAO0+F,cAE3B5uG,KAAKgjH,EAAU3kH,aAEVmnH,UAAYxC,KAGpB5iC,IAAID,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,iBAAiB,SAASP,EAAU/wE,EAAS+f,OAGlH4qE,EAAO5Z,EAAS,eAEhB6lC,EAAqB,gBAEhBC,OAAS,CACVz8G,MAAU,CAAC,CACP26G,MAAQ,aACRljC,MAAQ,MACT,CACC4iC,aAAe,YAK1B,gBAEQqC,SAAW,SAASnpF,EAAOopF,MACvBA,UAKIlsH,KAAO8iC,EAAO,SACf99B,EAAQ89B,EAAM9iC,GACTvB,EAAI,EAAGA,EAAIuG,EAAMvF,OAAQhB,IAAK,KAC/B+6E,EAAOx0E,EAAMvG,IACb+6E,EAAK7b,MAAQ6b,EAAK6wC,WACM,iBAAb7wC,EAAK7b,MACsB,IAA9B6b,EAAK7b,KAAK58D,QAAQmrH,OACbvuD,KAAOuuD,EAAS1yC,EAAK7b,MAE9B6b,EAAK2yC,WAAgD,IAAnC3yC,EAAK2yC,UAAUprH,QAAQmrH,OACpCC,UAAYD,EAAS1yC,EAAK2yC,iBAGtCH,OAAOE,EAASlsH,GAAOgF,eAjBnBhF,KAAO8iC,OACPkpF,OAAOhsH,GAAO8iC,EAAM9iC,SAoBhCosH,SAAW,kBACLxrH,KAAKorH,aAGXK,WAAa,SAAUC,EAAgBJ,EAAQK,EAAazrE,EAAQnO,OACjE05E,EAAsC,mBAAlBC,GAClB,IAAIA,GAAiBF,WACrBE,KACFxrE,UACSriD,EAAI,EAAGA,EAAIqiD,EAAOrhD,OAAQhB,MACxBA,GAAKytH,EAASprE,EAAOriD,gBAGvBuB,OADA,GACOqsH,IACL3sH,KAAKwsH,EAASlsH,WAGxBisH,SAASI,EAAYH,GAEtBK,OACIN,EAAWtpH,MAAMgC,UAAUguC,EAAS,OAAS,eACxCl0C,EAAI,EAAGA,EAAIqiD,EAAOrhD,OAAQhB,MACtB6tB,MAAM1rB,KAAKorH,OAAOlrE,EAAOriD,IAAKqhG,EAAKtB,SAAS+tB,IAGxD3rH,KAAK4rH,eACDA,QAAU,SACdA,QAAQ9sH,KAAKwsH,SAGjBO,UAAY,kBACN7rH,KAAK4rH,aAGZE,EAAY,SAASnB,EAAcR,UACf,SAAhBQ,GAA2BR,EAAMtrH,WAC3BmsH,QAAQhrH,KAAKurH,UAAWZ,GAC3B3qH,KAAKurH,WAEZQ,EAAW,SAASpB,EAAcR,YAC5B95G,QACC85G,EAAM95G,SAAW,cAGvB27G,eAAiB,eACdv4G,EAAK,EACLyuB,EAAQliC,KAAKorH,cAkFVxzG,KAAKsqB,GAAOv9B,oBAjFGvF,OACdgF,EAAQ89B,EAAM9iC,KACZ6sH,WAAY,UACTpuH,EAAI,EAAGA,EAAIuG,EAAMvF,OAAQhB,IAAK,KAC/B+6E,EAAOx0E,EAAMvG,GACbquH,EAAW,KACXnqH,MAAMC,QAAQ42E,OACHA,IACJ,KAENA,EAAKwN,OAASxN,EAAKjqE,UACfy3E,MAAQxN,EAAKjqE,MACbiqE,EAAK7b,SACDA,KAAO,MACXA,KAAKj+D,KAAK,CACXkqH,aAAcpwC,EAAK0wC,OACpB,CACCA,MAAO1wC,EAAK0wC,MAAQ,OACpBljC,MAAOxN,EAAK1pE,KAAO0pE,EAAKjqE,MACxBouD,KAAM,UAELusD,MAAQ1wC,EAAK0wC,MAAQ,WACrBxqH,MAAO,OAEZm3D,EAAO2iB,EAAK7b,MAAQ6b,EAAK95E,QACzBm3D,GAAQl0D,MAAMC,QAAQi0D,GAAO,KACzBk2D,EAAYvzC,EAAKuzC,UAChBA,IAEuB,mBADZvzC,EAAK0wC,WAED6C,EAAU,IAAM,IAC5BjqF,EAAMiqF,QACO14G,QAEf04G,GAAal2D,IACd8G,KAAOovD,IACCA,OACE,OAARl2D,MACF8G,KAAOgvD,MAGZnzC,EAAK95E,SACAysH,UAAY3yC,EAAK7b,MAAQ6b,EAAK95E,OAC9Bi+D,KAAO+uD,SACLlzC,EAAK95E,MAGZ85E,EAAK12C,cACIxjC,KAAKk6E,EAAK12C,MACXA,EAAMxjC,GACFwjC,EAAMxjC,GAAGI,QACHJ,GAAGI,KAAK4sB,MAAMwW,EAAMxjC,GAAIk6E,EAAK12C,MAAMxjC,MAEvCA,GAAKk6E,EAAK12C,MAAMxjC,OAI9B0tH,EAA6B,iBAARxzC,EAAmBA,EAAOA,EAAK0T,WACpD8/B,MACIrqH,MAAMC,QAAQoqH,GACHA,EAAYjjH,KAAI,SAASvF,UAAYs+B,EAAMt+B,MAE3Cs+B,EAAMkqF,IAGrBF,EAAU,KACNl3G,EAAO,CAACnX,EAAG,GAAG8Y,OAAOu1G,GACrBtzC,EAAKyzC,aACEr3G,EAAKhI,QAAO,SAASpJ,UAAYA,EAAEm5D,WACxC51D,OAAOukB,MAAMtnB,EAAO4Q,OAI1B4jE,EAAK0zC,eACAhD,MAAQtpH,KAAKusH,oBACd3zC,EAAK0zC,WAAY1zC,EAAKowC,cAAgB,OAAQpwC,EAAKuwC,wBAEhDvwC,EAAKowC,iBAIiBhpH,YAGxCusH,oBAAsB,SAASzuB,EAAKkrB,EAAc1iC,EAAYkmC,OAC3DC,EAAWtgH,OAAOC,OAAO,oBACtBwL,KAAKkmF,GAAKn5F,SAAQ,SAASqnF,OAC1B3qF,EAAIy8F,EAAI9R,GACR1F,MACIjlF,EAAE0B,uBACNwT,EAAOlV,EAAEiH,MAAMkkH,GAAa,KACvB3uH,EAAI0Y,EAAK1X,OAAQhB,OACb0Y,EAAK1Y,IAAMmuF,KAExB7/E,OAAOm9E,eAAemjC,OACbvgH,UAAY,WAEpBwgH,aAAevgH,OAAOyL,KAAK60G,KAC1B,KACCnmC,EACD,SAASlkF,UAAeqqH,EAASrqH,EAAMW,gBAAkBimH,GACzD,SAAS5mH,UAAeqqH,EAASrqH,IAAU4mH,SAGhD2D,YAAc,kBACR3sH,KAAK4sH,aAGjBlnH,KAAKylH,EAAmBpnH,aAEnBonH,mBAAqBA,KAG7BrlC,IAAID,OAAO,qBAAqB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAGxFu4F,EAAY,gBACRC,YAAc,KAGrB,gBAEQ54G,IAAM,SAAUpO,EAAM4tB,EAAQyxD,eACvB,QACDnlF,KAAK8sH,iBACDA,YAAc,QAClB9sH,KAAK8sH,YAAYhnH,QACbgnH,YAAYhnH,GAAQ,QAE1BgnH,YAAYhnH,GAAM4tB,GAAUyxD,QAGhC4nC,cAAgB,SAAUC,WAClB5tH,KAAO4tH,UACHt5F,KAAUs5F,EAAW5tH,QACrB8U,IAAI9U,EAAKs0B,EAAQs5F,EAAW5tH,GAAKs0B,UAK7C20D,OAAS,SAAUviF,GAChB9F,KAAK8sH,aAAe9sH,KAAK8sH,YAAYhnH,WAC9B9F,KAAK8sH,YAAYhnH,SAI3BmnH,QAAU,SAAUhzD,EAAMjtD,MACP,mBAATitD,MACH+yD,GAAa,IAAI/yD,GAAOizD,cAAclgH,QAEtCggH,EAAa/yD,EAAKizD,cAAclgH,QAEnC+/G,cAAcC,SAGlBE,cAAgB,SAAUlgH,MACtBA,EAEE,SACC9E,EAAM,GACDrK,EAAI,EAAGA,EAAImP,EAAOnO,OAAQhB,IAC3BmC,KAAK8sH,YAAY9/G,EAAOnP,QACpBmP,EAAOnP,IAAMmC,KAAK8sH,YAAY9/G,EAAOnP,YAG1CqK,SARAlI,KAAK8sH,eAYrBpnH,KAAKmnH,EAAU9oH,aAEV8oH,UAAYA,KAGpB/mC,IAAID,OAAO,qBAAqB,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAGpGxU,EAAQwlE,EAAS,WAAWxlE,MAC5BqtG,EAAgB,SAASlqB,EAASmqB,EAAYC,QACzCC,SAAWrqB,OACXsqB,KAAOH,OACPI,WAAavqB,EAAQwqB,UAAUL,OAEhC9D,EAAQrmB,EAAQyqB,WAAWN,EAAYC,QACtCM,YAAcrE,EAAQA,EAAMhgH,WAGpC,gBACQskH,aAAe,oBACXD,aAAe,EAEb3tH,KAAK2tH,YAAc,GAAG,SACpBJ,MAAQ,EACTvtH,KAAKutH,KAAO,cACPA,KAAO,EACL,UAGNC,WAAaxtH,KAAKstH,SAASG,UAAUztH,KAAKutH,WAC1CI,YAAc3tH,KAAKwtH,WAAW3uH,OAAS,SAGzCmB,KAAKwtH,WAAWxtH,KAAK2tH,mBAE3BE,YAAc,eAEXC,WADCH,aAAe,EAEb3tH,KAAK2tH,aAAe3tH,KAAKwtH,WAAW3uH,QAAQ,SAC1C0uH,MAAQ,EACRO,MACU9tH,KAAKstH,SAASlhB,aACzBpsG,KAAKutH,MAAQO,cACRP,KAAOO,EAAW,EAChB,UAGNN,WAAaxtH,KAAKstH,SAASG,UAAUztH,KAAKutH,WAC1CI,YAAc,SAGhB3tH,KAAKwtH,WAAWxtH,KAAK2tH,mBAE3BI,gBAAkB,kBACZ/tH,KAAKwtH,WAAWxtH,KAAK2tH,mBAE3BK,mBAAqB,kBACfhuH,KAAKutH,WAEXU,sBAAwB,eACrBC,EAAYluH,KAAKwtH,WACjBW,EAAanuH,KAAK2tH,YAClBpnB,EAAS2nB,EAAUC,GAAYx/G,cACpB,IAAX43F,SACOA,QAEF,EACF4nB,EAAa,MAEND,KADI,GACkB9rH,MAAMvD,cAGnC0nG,QAEN6nB,wBAA0B,iBACpB,CAAC/nB,IAAKrmG,KAAKutH,KAAMhnB,OAAQvmG,KAAKiuH,+BAEpCI,qBAAuB,eACpB/E,EAAQtpH,KAAKwtH,WAAWxtH,KAAK2tH,aAC7BpnB,EAASvmG,KAAKiuH,+BACX,IAAInuG,EAAM9f,KAAKutH,KAAMhnB,EAAQvmG,KAAKutH,KAAMhnB,EAAS+iB,EAAMlnH,MAAMvD,WAGzE6G,KAAKynH,EAAcppH,aAEdopH,cAAgBA,KAGxBrnC,IAAID,OAAO,4BAA4B,CAAC,UAAU,UAAU,SAAS,cAAc,qBAAqB,qBAAqB,iBAAiB,SAASP,EAAU/wE,EAAS+f,OAatKr0B,EAVAsvF,EAAMjK,EAAS,iBACfunC,EAAYvnC,EAAS,gBAAgBunC,UACrCM,EAAgB7nC,EAAS,wBAAwB6nC,cACjDjuB,EAAO5Z,EAAS,kBAEhBgpC,EACA,CAAC,OAAQ,eAAgB,wBACzBC,EACA,CAAC,OAAQ,eAAgB,uBAAwB,WAGjDC,EAAe,GACfC,EAAgB,CAACC,IAAM,IAAKC,IAAM,KAElCC,EAAc,SAASnpB,OACnBhyF,QACAgyF,EAAOopB,gBACFppB,EAAOzE,UAAU13F,MAClBklH,EAAarG,YAAc1iB,EAAOopB,YAAY1G,eAC/B,CAACA,WAAY1iB,EAAOopB,YAAY1G,cAEnDqG,EAAa/6G,UACNxT,EAAUuuH,EAAa/6G,KACxB+6G,EAAa/6G,GAAM,CACzBq7G,qBAAsB,EACtBC,mBACAC,oBAAqB,GACrBC,sBAAuB,EACvBC,oBACAC,uBAAwB,GACxBC,qBAAsB,KAI1BC,EAAa,SAASruB,EAAWsuB,EAAUC,EAASC,OAChDC,EAAUzuB,EAAU9xF,IAAIm3F,IAAMrF,EAAUryF,MAAM03F,UAC3C,CACHtzE,KAAMw8F,EAAUD,EAAWE,EAC3BxuB,UAAW,CACH,EACAA,EAAUryF,MAAM43F,OAAS,EACzBkpB,EACAzuB,EAAU9xF,IAAIq3F,UAAoB,EAAI,MAKlDmpB,EAAkB,SAASz9G,QACtBiC,IAAI,SAAU,aAAa,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAASlwE,OACjEqzE,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,QAC1B,KAARtzE,EAAa,GACD0yE,OACRzE,EAAYyE,EAAOoB,oBACnByoB,EAAWrsB,EAAQtX,IAAIikB,aAAa5O,MACvB,KAAbsuB,GAAgC,MAAbA,GAAoB7pB,EAAOmqB,kCACvCP,EAAWruB,EAAWsuB,EAAU,IAAK,QACrCI,EAAgBG,gBAAgBpqB,EAAQxC,SAC3C,WAAWvgG,KAAK+6G,EAAKrX,EAAOG,UAAYd,EAAOwB,mBAAqBh1F,GAAWA,EAAQ69G,UACvEC,iBAAiBtqB,EAAQxC,EAAS,KAC3C,CACHlwE,KAAM,KACNiuE,UAAW,CAAC,EAAG,QAGHgvB,kBAAkBvqB,EAAQxC,EAAS,KAC5C,CACHlwE,KAAM,IACNiuE,UAAW,CAAC,EAAG,aAIZ,KAARjuE,EAAa,MACR0yE,GAEK,KADDgY,EAAKjc,UAAU4E,EAAOG,OAAQH,EAAOG,OAAS,MAGzC,OADFtD,EAAQgtB,oBAAoB,IAAK,CAAC1pB,OAAQH,EAAOG,OAAS,EAAGF,IAAKD,EAAOC,OAC/DqpB,EAAgBQ,sBAAsB9pB,EAAQqX,EAAM1qF,YACzDo9F,yBACT,CACHp9F,KAAM,GACNiuE,UAAW,CAAC,EAAG,YAIZ,MAARjuE,GAAwB,QAARA,EAAgB,GAC3B0yE,OACR+pB,EAAU,MACVE,EAAgBU,uBAAuBhqB,EAAQqX,OACrCve,EAAK3B,aAAa,IAAKt9F,EAAQgvH,yBACzBoB,6BAGF,MADF5S,EAAKjc,UAAU4E,EAAOG,OAAQH,EAAOG,OAAS,GACvC,KACf+pB,EAAertB,EAAQstB,oBAAoB,CAAClqB,IAAKD,EAAOC,IAAKE,OAAQH,EAAOG,OAAO,GAAI,SACtF+pB,SACO,SACRE,EAAcxwH,KAAKywH,WAAWxtB,EAAQ0V,QAAQ2X,EAAajqB,eACxDmpB,gBAGSa,4BAFZG,EAAcxwH,KAAKywH,WAAWhT,OAKlCiT,EAASF,EAAcvtB,EAAQ0tB,qBAE5B,CACH59F,KAAM,KAAO29F,EAAS,KAAOF,EAAchB,EAC3CxuB,UAAW,CAAC,EAAG0vB,EAAO7xH,OAAQ,EAAG6xH,EAAO7xH,WAG5BwxH,qCAInBn8G,IAAI,SAAU,YAAY,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAAStxD,OAChE29E,EAAWrsB,EAAQtX,IAAIikB,aAAaj+D,OACnCA,EAAMo3D,eAA6B,KAAZumB,EAAiB,MAC7B7pB,GAGK,KAFNxC,EAAQtX,IAAIgtB,QAAQhnE,EAAMhjC,MAAM03F,KACtB7E,UAAU7vD,EAAMziC,IAAIq3F,OAAQ50D,EAAMziC,IAAIq3F,OAAS,YAE1Dr3F,IAAIq3F,SACH50D,IAECs9E,iCAKf/6G,IAAI,SAAU,aAAa,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAASlwE,MACzD,KAARA,EAAa,GACD0yE,OACRzE,EAAYyE,EAAOoB,oBACnByoB,EAAWrsB,EAAQtX,IAAIikB,aAAa5O,MACvB,KAAbsuB,GAAmB7pB,EAAOmqB,kCACnBP,EAAWruB,EAAWsuB,EAAU,IAAK,QACrCI,EAAgBG,gBAAgBpqB,EAAQxC,YAC/B8sB,iBAAiBtqB,EAAQxC,EAAS,KAC3C,CACHlwE,KAAM,KACNiuE,UAAW,CAAC,EAAG,YAGR,KAARjuE,EAAa,GACR0yE,OACRW,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,QAErB,KADDoX,EAAKjc,UAAU4E,EAAOG,OAAQH,EAAOG,OAAS,MAGzC,OADFtD,EAAQgtB,oBAAoB,IAAK,CAAC1pB,OAAQH,EAAOG,OAAS,EAAGF,IAAKD,EAAOC,OAC/DqpB,EAAgBQ,sBAAsB9pB,EAAQqX,EAAM1qF,YACzDo9F,yBACT,CACHp9F,KAAM,GACNiuE,UAAW,CAAC,EAAG,aAO9B9sF,IAAI,SAAU,YAAY,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAAStxD,OAChE29E,EAAWrsB,EAAQtX,IAAIikB,aAAaj+D,OACnCA,EAAMo3D,eAA6B,KAAZumB,MACZ7pB,GAGK,KAFNxC,EAAQtX,IAAIgtB,QAAQhnE,EAAMhjC,MAAM03F,KACtB7E,UAAU7vD,EAAMhjC,MAAM43F,OAAS,EAAG50D,EAAMhjC,MAAM43F,OAAS,aAElEr3F,IAAIq3F,SACH50D,UAKdz9B,IAAI,WAAY,aAAa,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAASlwE,MAC3D,KAARA,EAAa,GACD0yE,OACRzE,EAAYyE,EAAOoB,oBACnByoB,EAAWrsB,EAAQtX,IAAIikB,aAAa5O,MACvB,KAAbsuB,GAAmB7pB,EAAOmqB,kCACnBP,EAAWruB,EAAWsuB,EAAU,IAAK,QACrCI,EAAgBG,gBAAgBpqB,EAAQxC,YAC/B8sB,iBAAiBtqB,EAAQxC,EAAS,KAC3C,CACHlwE,KAAM,KACNiuE,UAAW,CAAC,EAAG,YAGR,KAARjuE,EAAa,GACR0yE,OACRW,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,QAErB,KADDoX,EAAKjc,UAAU4E,EAAOG,OAAQH,EAAOG,OAAS,MAGzC,OADFtD,EAAQgtB,oBAAoB,IAAK,CAAC1pB,OAAQH,EAAOG,OAAS,EAAGF,IAAKD,EAAOC,OAC/DqpB,EAAgBQ,sBAAsB9pB,EAAQqX,EAAM1qF,YACzDo9F,yBACT,CACHp9F,KAAM,GACNiuE,UAAW,CAAC,EAAG,aAO9B9sF,IAAI,WAAY,YAAY,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAAStxD,OAClE29E,EAAWrsB,EAAQtX,IAAIikB,aAAaj+D,OACnCA,EAAMo3D,eAA6B,KAAZumB,MACZ7pB,GAGK,KAFNxC,EAAQtX,IAAIgtB,QAAQhnE,EAAMhjC,MAAM03F,KACtB7E,UAAU7vD,EAAMhjC,MAAM43F,OAAS,EAAG50D,EAAMhjC,MAAM43F,OAAS,aAElEr3F,IAAIq3F,SACH50D,UAKdz9B,IAAI,iBAAkB,aAAa,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAASlwE,OACzE69F,EAAS3tB,EAAQ4tB,MAAMC,SAAWrC,KACnB,GAAf17F,EAAKl0B,QAAe+xH,EAAO79F,GAAO,IAC9B/yB,KAAK+wH,sBAAoB/wH,KAAK+wH,iBAAiB5wH,QAAQ4yB,YAE/C0yE,OACRurB,EAAQj+F,EACRiuE,EAAYyE,EAAOoB,oBACnByoB,EAAWrsB,EAAQtX,IAAIikB,aAAa5O,QACvB,KAAbsuB,GAAuC,KAAVzwH,QAAgB+xH,EAAOtB,KAAc7pB,EAAOmqB,kCAClEP,EAAWruB,EAAWsuB,EAAU0B,EAAOA,OACtC1B,EAAU,KACdlpB,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,KAClC4qB,EAAWxT,EAAKjc,UAAU4E,EAAOG,OAAO,EAAGH,EAAOG,QAClD2qB,EAAYzT,EAAKjc,UAAU4E,EAAOG,OAAQH,EAAOG,OAAS,GAE1D+iB,EAAQrmB,EAAQyqB,WAAWtnB,EAAOC,IAAKD,EAAOG,QAC9C4qB,EAAaluB,EAAQyqB,WAAWtnB,EAAOC,IAAKD,EAAOG,OAAS,MAChD,MAAZ0qB,GAAoB3H,GAAS,SAAS5mH,KAAK4mH,EAAMpqH,aAC1C,SAKPkyH,EAHAC,EAAe/H,GAAS,gBAAgB5mH,KAAK4mH,EAAMpqH,MACnDoyH,GAAeH,GAAc,gBAAgBzuH,KAAKyuH,EAAWjyH,SAG7DgyH,GAAaF,KACNK,IAAiBC,IACZ,cAAc5uH,KAAKyuH,EAAWjyH,WAC/B,OACR,IACCmyH,IAAiBC,SACV,QACPD,GAAgBC,SACT,SACPC,EAAStuB,EAAQ4tB,MAAM9J,UACpB5gC,UAAY,MACfqrC,EAAeD,EAAO7uH,KAAKuuH,KACxB9qC,UAAY,MACfsrC,EAAcF,EAAO7uH,KAAKuuH,MAC1BO,GAAgBC,SACT,QACPP,IAAc,gBAAgBxuH,KAAKwuH,UAC5B,QACJ,QAEJ,CACHn+F,KAAMq+F,EAAOJ,EAAQA,EAAQ,GAC7BhwB,UAAW,CAAC,EAAE,cAMzB9sF,IAAI,iBAAkB,YAAY,SAAS9P,EAAOsvB,EAAQ+xE,EAAQxC,EAAStxD,OACxE29E,EAAWrsB,EAAQtX,IAAIikB,aAAaj+D,OACnCA,EAAMo3D,gBAA8B,QAAmB,KAAZumB,OAChC7pB,GACDxC,EAAQtX,IAAIgtB,QAAQhnE,EAAMhjC,MAAM03F,KACtB7E,UAAU7vD,EAAMhjC,MAAM43F,OAAS,EAAG50D,EAAMhjC,MAAM43F,OAAS,IAC3D+oB,YACPpgH,IAAIq3F,SACH50D,QAQPk+E,gBAAkB,SAASpqB,EAAQxC,OAC3CmD,EAASX,EAAOkqB,oBAChB9+G,EAAW,IAAIs8G,EAAclqB,EAASmD,EAAOC,IAAKD,EAAOG,YACxDvmG,KAAK0xH,gBAAgB7gH,EAASk9G,mBAAqB,OAAQO,GAAwB,KAChFqD,EAAY,IAAIxE,EAAclqB,EAASmD,EAAOC,IAAKD,EAAOG,OAAS,OAClEvmG,KAAK0xH,gBAAgBC,EAAU5D,mBAAqB,OAAQO,UACtD,WAENT,cACFh9G,EAASm9G,uBAAyB5nB,EAAOC,KAC5CrmG,KAAK0xH,gBAAgB7gH,EAASk9G,mBAAqB,OAAQQ,MAGnDmD,gBAAkB,SAASpI,EAAO7Y,UACvCA,EAAMtwG,QAAQmpH,EAAMpqH,MAAQoqH,SAGvByG,iBAAmB,SAAStqB,EAAQxC,EAAS2uB,OACrDxrB,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,KACjCrmG,KAAKkwH,sBAAsB9pB,EAAQqX,EAAMx9G,EAAQ+uH,oBAAoB,QAC9DF,qBAAuB,KAC3BC,gBAAkB3oB,EAAOC,MACzB2oB,oBAAsB4C,EAAUnU,EAAKpsG,OAAO+0F,EAAOG,UACnDuoB,0BAGIkB,kBAAoB,SAASvqB,EAAQxC,EAAS2uB,OACtDxrB,EAASX,EAAOkqB,oBAChBlS,EAAOxa,EAAQtX,IAAIgtB,QAAQvS,EAAOC,KACjCrmG,KAAKowH,uBAAuBhqB,EAAQqX,OAC7BwR,sBAAwB,KAC5BC,iBAAmB9oB,EAAOC,MAC1B8oB,uBAAyB1R,EAAKpsG,OAAO,EAAG+0F,EAAOG,QAAUqrB,IACzDxC,qBAAuB3R,EAAKpsG,OAAO+0F,EAAOG,UAC1C0oB,2BAGIiB,sBAAwB,SAAS9pB,EAAQqX,EAAMmU,UACpD3xH,EAAQ6uH,qBAAuB,GAClC1oB,EAAOC,MAAQpmG,EAAQ8uH,iBACvB6C,IAAY3xH,EAAQ+uH,oBAAoB,IACxCvR,EAAKpsG,OAAO+0F,EAAOG,UAAYtmG,EAAQ+uH,uBAG/BoB,uBAAyB,SAAShqB,EAAQqX,UAC/Cx9G,EAAQgvH,sBAAwB,GACnC7oB,EAAOC,MAAQpmG,EAAQivH,kBACvBzR,EAAKpsG,OAAO+0F,EAAOG,UAAYtmG,EAAQmvH,sBACvC3R,EAAKpsG,OAAO,EAAG+0F,EAAOG,SAAWtmG,EAAQkvH,0BAGjCgB,uBAAyB,aAC7BnB,oBAAsB/uH,EAAQ+uH,oBAAoB39G,OAAO,KACzDy9G,0BAGIuB,0BAA4B,WACpCpwH,MACQgvH,sBAAwB,IACxBC,wBAMZlgC,SAAS0gC,EAAiB7C,KAEtB6C,gBAAkBA,KAG1B5pC,IAAID,OAAO,cAAc,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KAE7Eu9F,SAAW,YA0CSrgG,OACpBsgG,EAAY,iBACPhsH,KAAQ0rB,IACLqgG,SAAS/rH,GAAQ0rB,EAAK1rB,GAAMhD,QAAQgvH,EAAW,UA3C7C,CACdzvH,EAAI,4sFACJ0vH,GAAI,uhFACJC,GAAI,o8EACJvuD,GAAI,0DACJwuD,GAAI,8QACJC,GAAI,knEACJhuH,EAAI,izCACJiuH,GAAI,4tCACJC,GAAI,qsBACJC,GAAI,0CACJC,EAAI,4hBACJC,GAAI,8TACJC,GAAI,6DACJC,GAAI,+MACJ5vH,EAAI,40BACJ6vH,GAAI,wEACJC,GAAI,mSACJC,GAAI,+RACJC,GAAI,mDACJC,GAAI,2CACJC,GAAI,wCACJC,GAAI,+xBACJC,EAAI,0kCACJC,GAAI,mWACJC,GAAI,yFACJC,GAAI,4KACJC,GAAI,43BACJ/rD,EAAI,gDACJgsD,GAAI,wCACJC,GAAI,OACJC,GAAI,OACJvtH,EAAI,0mFACJwtH,GAAI,qBACJC,GAAI,iFACJC,GAAI,YACJC,GAAI,YACJC,GAAI,kkFAWR/tC,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,gBAAgB,gCAAgC,4BAA4B,cAAc,eAAe,qBAAqB,cAAc,SAASP,EAAU/wE,EAAS+f,OAG7No0F,EAAYpjC,EAAS,gBAAgB4lC,UACrCC,EAAqB7lC,EAAS,0BAA0B6lC,mBACxDuE,EAAkBpqC,EAAS,sBAAsBoqC,gBACjDoE,EAAUxuC,EAAS,cACnB4Z,EAAO5Z,EAAS,eAChB6nC,EAAgB7nC,EAAS,qBAAqB6nC,cAC9CrtG,EAAQwlE,EAAS,YAAYxlE,MAE7Bi0G,EAAO,gBACFrI,eAAiBP,IAGzB,gBACQ6I,kBAAoB,IAAItE,OAExB3I,QAAU,IAAI/gC,OAAO,KACpB8tC,EAAQjC,SAASxvH,EACjByxH,EAAQjC,SAASM,GAAK2B,EAAQjC,SAASO,GACvC0B,EAAQjC,SAASU,GACjBuB,EAAQjC,SAASkB,GAAK,SAAU,UAGjCjM,WAAa,IAAI9gC,OAAO,SACvB8tC,EAAQjC,SAASxvH,EACjByxH,EAAQjC,SAASM,GAAK2B,EAAQjC,SAASO,GACvC0B,EAAQjC,SAASU,GACjBuB,EAAQjC,SAASkB,GAAK,eAAgB,UAGvCkB,aAAe,kBACXj0H,KAAKk0H,kBACDC,gBAAkBn0H,KAAKm0H,iBAAmB,IAAIn0H,KAAK0rH,eAAe1rH,KAAKo0H,2BACvEF,WAAa,IAAIxL,EAAU1oH,KAAKm0H,gBAAgB3I,aAElDxrH,KAAKk0H,iBAGXnD,iBAAmB,QACnBsD,aAAe,QAEfC,mBAAqB,SAASlwH,EAAO6+F,EAAS6d,EAAUE,OACrDr1B,EAAMsX,EAAQtX,IAEd4oC,GAAmB,EACnBC,GAAe,EACfC,EAAYz+G,EAAAA,EACZgwG,EAAU/iB,EAAQijB,aAClBwO,GAAkB,KAEjB10H,KAAK+wH,iBAkCH,IACChvH,MAAMC,QAAQhC,KAAK+wH,kBACf4D,EAAc30H,KAAK+wH,iBAAiB5nH,IAAI+1F,EAAKjB,cAAcz1F,KAAK,KAChEuoH,EAAmB/wH,KAAK+wH,iBAAiB,QAEzC4D,EAAcz1B,EAAKjB,aAAaj+F,KAAK+wH,kBACrCA,EAAmB/wH,KAAK+wH,mBAElB,IAAI/qC,OAAO,aAAe2uC,EAAc,SAEpC1xB,EAAQ2xB,iBAEtBC,EAAY,SAASpX,EAAM5/G,OACvB8D,EAAI87G,EAAKr1G,MAAMusH,MACdhzH,OACDgN,EAAQhN,EAAE,GAAG9C,OAAQqQ,EAAMvN,EAAE,GAAG9C,OAC/Bi2H,EAAkBrX,EAAM9uG,EAAOO,IAAyB,KAAjBvN,EAAE,GAAGuN,EAAM,UAEnD6lH,aAAal3H,EAAG8Q,EAAOO,SAE3B8lH,EAAmBjE,EAAmB,IAatC+D,GAZA3/D,EAAU,SAASsoD,EAAM5/G,GACpB02H,IAAoB,KAAK7xH,KAAK+6G,KAC3BqX,EAAkBrX,EAAMgX,EAAWA,KAC/BQ,aAAa,CAAC5uB,IAAKxoG,EAAG0oG,OAAQkuB,GAAYO,KAE1CC,aAAa,CAAC5uB,IAAKxoG,EAAG0oG,OAAQkuB,GAAY1D,KAGtDmE,EAAa,SAASzX,EAAM5/G,UACrB82H,EAAYjyH,KAAK+6G,IAGJ,SAASA,EAAM0X,EAAQC,WACvCC,EAAS,EACNF,KAAmC,KAAvB1X,EAAK50G,OAAOssH,WAE3BE,EAASrP,GAAW,SACb,MACPqP,EAAS,EACkB,KAAxB5X,EAAK50G,OAAOusH,iBAEfpP,EAAU,EACHqP,EAASrP,GAAWA,EAAU,EAE9BqP,EAASrP,GAAW,QA/EX,KACnBhmH,KAAKq0H,oBACC,MACPtD,EAAmB/wH,KAAKq0H,aAAa1lH,MACrC2mH,EAAiBt1H,KAAKq0H,aAAanlH,IACnCylH,EAAc,IAAI3uC,OAAO,aAAekZ,EAAKjB,aAAa8yB,GAAoB,KAC9EwE,EAAY,IAAIvvC,OAAO,MAAQkZ,EAAKjB,aAAaq3B,GAAkB,UAEnEngE,EAAU,SAASsoD,EAAM5/G,GACrBq3H,EAAWzX,EAAM5/G,IAEhB02H,IAAoB,KAAK7xH,KAAK+6G,OAC3BwX,aAAa,CAAC5uB,IAAKxoG,EAAG0oG,OAAQkX,EAAK5+G,QAASy2H,KAC5CL,aAAa,CAAC5uB,IAAKxoG,EAAG0oG,OAAQkuB,GAAY1D,KAIlD8D,EAAY,SAASpX,EAAM5/G,OACvB8D,GACAA,EAAI87G,EAAKr1G,MAAMmtH,OACXR,aAAal3H,EAAG4/G,EAAK5+G,OAAS8C,EAAE,GAAG9C,OAAQ4+G,EAAK5+G,SACpD8C,EAAI87G,EAAKr1G,MAAMusH,OACXI,aAAal3H,EAAG8D,EAAE,GAAG9C,OAAQ8C,EAAE,GAAG9C,SAG1Cq2H,EAAa,SAASzX,EAAMpX,MACxBsuB,EAAYjyH,KAAK+6G,UACV,UACPyM,EAASjnB,EAAQwqB,UAAUpnB,GACtBxoG,EAAI,EAAGA,EAAIqsH,EAAOrrH,OAAQhB,OACR,YAAnBqsH,EAAOrsH,GAAGqB,YACH,cAqDT4pF,WACDjrF,EAAIijH,EAAUjjH,GAAKmjH,EAAQnjH,MAC5B8tF,EAAIgtB,QAAQ96G,GAAIA,OAIxB23H,EAAiBx/G,EAAAA,KAChB,SAASynG,EAAM5/G,OACZ6yH,EAASjT,EAAKtzG,OAAO,WACrBumH,GACIA,EAAS+D,MACG/D,GACZ8D,IAAiBU,EAAWzX,EAAM5/G,QACnB,IACZ23H,EAAiB/X,EAAK5+G,WACZ4+G,EAAK5+G,WAI1B41H,GAAaz+G,EAAAA,MACDw/G,KACO,KACJ,GAGfd,GAAmBD,EAAYzO,GAAW,MAC9Br9G,KAAK2zB,MAAMm4F,EAAYzO,GAAWA,KAE7CwO,EAAeK,EAAY1/D,SAG/BsgE,mBAAqB,SAASrxH,EAAO6+F,EAAStxD,EAAOy0D,OAClDjxC,EAAUn1D,KAAKq0H,gBACdl/D,IAEAA,EAAQxmD,OAASwmD,EAAQ,OAChBA,EAAQ,QAGlBm0D,GADAz4G,EAAW,IAAIs8G,EAAclqB,EAASmD,EAAOC,IAAKD,EAAOG,SACxCwnB,oBAEH/sB,cAEd8f,EAAU4U,EADVC,EAAe1yB,EAAQjC,UAAU0N,qBAGjC4a,GAAS,UAAU5mH,KAAK4mH,EAAMpqH,MAAO,SACjC02H,EAAYC,EACTvM,GAAS,UAAU5mH,KAAK4mH,EAAMpqH,OAAO,SACpCrB,EAAIyrH,EAAMlnH,MAAMjC,QAAQg1D,EAAQxmD,QACvB,KACL03F,EAAMx1F,EAASm9G,qBACfznB,EAAS11F,EAASo9G,wBAA0BpwH,IACnC,IAAIiiB,EAAMumF,EAAKE,EAAQF,EAAKE,EAASpxC,EAAQxmD,MAAM9P,gBAG5DgS,EAAS+8G,mBAGjB/8G,MACAy4G,GADAz4G,EAAW,IAAIs8G,EAAclqB,EAASmD,EAAOC,IAAKD,EAAOG,SACxCwnB,kBACdzE,GAAS,UAAU5mH,KAAK4mH,EAAMpqH,OAAO,KACpCrB,UAAAA,EAAIyrH,EAAMlnH,MAAMjC,QAAQg1D,EAAQjmD,MACvB,CACLm3F,EAAMx1F,EAASm9G,qBACfznB,EAAS11F,EAASo9G,wBAA0BpwH,IACrC,IAAIiiB,EAAMumF,EAAKE,EAAQF,EAAKE,EAASpxC,EAAQjmD,IAAIrQ,gBAGxDgS,EAASg9G,cAEjBgI,KACQxtC,OAAOwtC,GACfD,MACQvtC,OAAOutC,KACJA,EAAWjnH,MAAM03F,OACjBlxC,EAAQxmD,MAAM9P,eAGnBs2D,EAAQxmD,MAAM9P,SACb8yC,EAAMhjC,MAAM03F,MACfh0C,OAAO1gB,EAAMziC,IAAKimD,EAAQjmD,OAC1BmjD,OAAO1gB,EAAMhjC,MAAOwmD,EAAQxmD,OAEpCgnH,EAAahnH,MAAM03F,KAAOya,MACbnyG,MAAM43F,QAAUmvB,GAC7BC,EAAazmH,IAAIm3F,KAAOya,MACX5xG,IAAIq3F,QAAUmvB,KACvB10B,UAAUmO,kBAAkBwmB,UAGnCG,kBAAoB,SAAS1xH,EAAOq5G,EAAMsY,UACpC/1H,KAAKywH,WAAWhT,SAGtBuY,aAAe,SAAS5xH,EAAOq5G,EAAMjtD,UAC/B,QAGNylE,YAAc,SAAS7xH,EAAOunF,EAAK0a,UAGnCoqB,WAAa,SAAShT,UAChBA,EAAKr1G,MAAM,QAAQ,SAGzB8tH,aAAe,SAASjzB,UAClB,WAGNkzB,oBAAsB,SAAUpN,WAGxBlrH,UAFJ+tH,QAAU,QACVwK,OAAS,GACArN,EACNA,EAAQlrH,UACH+tH,QAAQ9sH,KAAKjB,QACbu4H,OAAOv4H,GAAK,IAAIkrH,EAAQlrH,QAIjCw4H,EAAc,CAAC,qBAAsB,qBAAsB,oBAC3D,eAAgB,cAAe,kBAAmB,sBAE7Cx4H,EAAI,EAAGA,EAAIw4H,EAAYx3H,OAAQhB,KACnC,SAASy4H,OACJC,EAAeF,EAAYx4H,GAC3B20G,EAAiB8jB,EAAMC,KACrBF,EAAYx4H,IAAM,kBACbmC,KAAKw2H,WAAWD,EAAc53H,UAAW6zG,IAJrD,CAMCxyG,YAILw2H,WAAa,SAASziE,EAAQ/+C,EAAMw9F,OACjCpuG,EAAQ4Q,EAAK,GACG,iBAAT5Q,MACCA,EAAM,YACTvG,EAAI,EAAGA,EAAImC,KAAK4rH,QAAQ/sH,OAAQhB,OAChCmC,KAAKo2H,OAAOp2H,KAAK4rH,QAAQ/tH,SAE1ByK,EAAQlE,EAAMkE,MAAMtI,KAAK4rH,QAAQ/tH,QAChCyK,EAAM,IAAMA,EAAM,GAAI,GAClB,GAAKA,EAAM,OACZ2xD,EAAOj6D,KAAKo2H,OAAOp2H,KAAK4rH,QAAQ/tH,WAC7Bo8D,EAAKlG,GAAQroC,MAAMuuC,EAAMjlD,QAGpC9M,EAAMsqG,EAAe9mF,MAAM1rB,KAAMgV,UAC9Bw9F,EAAiBtqG,OAAM,QAG7BuuH,gBAAkB,SAASryH,EAAOsvB,EAAQ+xE,EAAQxC,EAASn6F,MACxD9I,KAAK02H,WAAY,KACb1J,EAAahtH,KAAK02H,WAAWxJ,wBACxB9tH,KAAO4tH,KACRA,EAAW5tH,GAAKs0B,GAAS,KACrBxrB,EAAM8kH,EAAW5tH,GAAKs0B,GAAQhI,MAAM1rB,KAAMrB,cAC1CuJ,SACOA,UAOtBykH,YAAc,SAAS56E,OACnB/xC,KAAK22H,mBAAoB,KACtBz0F,EAAQliC,KAAKk0H,WAAWhyF,MACxBy0F,EAAqB,WAChB/9C,KAAQ12C,UACT00F,EAAU10F,EAAM02C,GACXl6E,EAAI,EAAGN,EAAIw4H,EAAQ/3H,OAAQH,EAAIN,EAAGM,OACP,iBAArBk4H,EAAQl4H,GAAG4qH,MACd,0BAA0B5mH,KAAKk0H,EAAQl4H,GAAG4qH,UACvBxqH,KAAK83H,EAAQl4H,GAAG0nF,eAEN,iBAArBwwC,EAAQl4H,GAAG4qH,cACdjoH,EAAI,EAAGw1H,EAAUD,EAAQl4H,GAAG4qH,MAAMzqH,OAAQwC,EAAIw1H,EAASx1H,OACxD,0BAA0BqB,KAAKk0H,EAAQl4H,GAAG4qH,MAAMjoH,IAAK,CACjDu3E,EAAOg+C,EAAQl4H,GAAG0nF,MAAMh+E,MAAM,YAAY/G,KAC3BvC,KAAK85E,EAAKvnE,OAAO,EAAGunE,EAAK/5E,OAAS,SAMpE83H,mBAAqBA,SAEzB5kF,EAEE4kF,EAAmBhgH,OAAO3W,KAAK0sH,cAAgB,IAD3C1sH,KAAK0sH,mBAIfoK,mBAAqB,kBACjB92H,KAAKm0H,sBACDF,eACFj0H,KAAK0sH,aAAe1sH,KAAKm0H,gBAAgBzH,cAAgB,SAG/DqK,eAAiB,SAAS3yH,EAAO6+F,EAASz3C,EAAK8/D,UACjCtrH,KAAK0sH,cAAgB1sH,KAAK82H,sBACzB3tH,KAAI,SAAS6tH,SAClB,CACHlxH,KAAMkxH,EACN50H,MAAO40H,EACPtiG,MAAO,EACPw7D,KAAM,oBAKb+mC,IAAM,kBACZvxH,KAAKquH,EAAKhwH,aAELgwH,KAAOA,KAGfjuC,IAAID,OAAO,kBAAkB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,KAgCjF4iG,WAAa,SAASC,EAAU3uG,EAAO4uG,OAEvC/wB,EAAM79E,EAAM7Z,MAAM03F,IAClB0a,EAAcv4F,EAAM7Z,MAAM43F,OAC1BkX,EAAO0Z,EAAS9wB,IAAQ,UACpB79E,EAAMkL,YACL,YAEoB,IADTlL,EAAM21F,MACRt/G,SACGwnG,GAAOoX,EAAKjc,UAAU,EAAGuf,GAAev4F,EAAM21F,MAAM,GAAKV,EAAKjc,UAAUuf,OAC9E,KACC/rG,EAAO,CAACqxF,EAAK,GAAG1vF,OAAO6R,EAAM21F,SACxBh3G,OAAOukB,MAAMyrG,EAAUniH,KACvBqxF,GAAOoX,EAAKjc,UAAU,EAAGuf,GAAeoW,EAAS9wB,KACjDA,EAAM79E,EAAM21F,MAAMt/G,OAAS,IAAM4+G,EAAKjc,UAAUuf,aAG5D,aACGE,EAAYz4F,EAAMtZ,IAAIq3F,OACtBya,EAASx4F,EAAMtZ,IAAIm3F,IACnBA,IAAQ2a,IACC3a,GAAOoX,EAAKjc,UAAU,EAAGuf,GAAetD,EAAKjc,UAAUyf,KAEvD95G,OACLk/F,EAAK2a,EAAS3a,EAAM,EACpBoX,EAAKjc,UAAU,EAAGuf,GAAeoW,EAASnW,GAAQxf,UAAUyf,SAQhFn7B,IAAID,OAAO,aAAa,CAAC,UAAU,UAAU,SAAS,cAAc,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGtHi7D,EAAMjK,EAAS,aACf6sB,EAAe7sB,EAAS,uBAAuB6sB,aAE/CklB,EAAS9iH,EAAQ8iH,OAAS,SAAS1rC,EAAK0a,EAAKE,QACxC+wB,UAAYt3H,KAAKuM,SAAS7E,KAAK1H,WAC/By5G,OAAO9tB,QAES,IAAV4a,OACF+D,YAAYjE,EAAIA,IAAKA,EAAIE,aAEzB+D,YAAYjE,EAAKE,KAG7B,sBAqB2BgxB,EAAQC,EAAQC,OAChCC,EAAcD,EAAqBF,EAAOhxB,QAAUixB,EAAOjxB,OAASgxB,EAAOhxB,OAASixB,EAAOjxB,cACvFgxB,EAAOlxB,IAAMmxB,EAAOnxB,KAASkxB,EAAOlxB,KAAOmxB,EAAOnxB,KAAOqxB,IArBjEpoC,UAAUtvF,KAAMmyG,QACfoR,YAAc,kBACRvjH,KAAK23H,wBAAwB33H,KAAKqmG,IAAKrmG,KAAKumG,cAElDuc,YAAc,kBACR9iH,KAAKoF,eAEXwyH,cAAe,OACfrrH,SAAW,SAASic,QACjBA,EAAM7Z,MAAM03F,KAAO79E,EAAMtZ,IAAIm3F,KAAO79E,EAAM7Z,MAAM03F,KAAOrmG,KAAKqmG,KAG5D79E,EAAM7Z,MAAM03F,IAAMrmG,KAAKqmG,UAGvB5uB,WASsBjvD,EAAOivD,EAAOogD,OACpCC,EAAgC,UAAhBtvG,EAAMkL,OACtBqkG,KAAiC,SAAiB7oH,IAAIm3F,IAAS79E,EAAM7Z,MAAM03F,KAC3E2xB,KAAiC,SAAiB9oH,IAAIq3F,OAAS/9E,EAAM7Z,MAAM43F,QAC3E0xB,EAAazvG,EAAM7Z,MACnBupH,EAAWJ,EAAgBG,EAAazvG,EAAMtZ,OAC9CipH,EAAe1gD,EAAOwgD,EAAYJ,SAC3B,CACHxxB,IAAK5uB,EAAM4uB,IACXE,OAAQ9uB,EAAM8uB,WAGlB4xB,EAAeD,EAAUzgD,GAAQogD,SAC1B,CACHxxB,IAAK5uB,EAAM4uB,IAAM0xB,EACjBxxB,OAAQ9uB,EAAM8uB,UAAgBF,KAAO6xB,EAAS7xB,IAAM2xB,EAAgB,UAIrE,CACH3xB,IAAK4xB,EAAW5xB,IAChBE,OAAQ0xB,EAAW1xB,QA9BX6xB,CAAqB5vG,EAAO,CAAC69E,IAAKrmG,KAAKqmG,IAAKE,OAAQvmG,KAAKumG,QAASvmG,KAAK43H,mBAC9EttB,YAAY7yB,EAAM4uB,IAAK5uB,EAAM8uB,QAAQ,UAgCzC+D,YAAc,SAASjE,EAAKE,EAAQ8xB,OACjC7sE,OACA6sE,EACM,CACFhyB,IAAAA,EACAE,OAAAA,GAGEvmG,KAAK23H,wBAAwBtxB,EAAKE,GAGxCvmG,KAAKqmG,KAAO76C,EAAI66C,KAAOrmG,KAAKumG,QAAU/6C,EAAI+6C,YAG1CsM,EAAM,CACNxM,IAAKrmG,KAAKqmG,IACVE,OAAQvmG,KAAKumG,aAGZF,IAAM76C,EAAI66C,SACVE,OAAS/6C,EAAI+6C,YACboF,QAAQ,SAAU,CACnBkH,IAAAA,EACAzwG,MAAOopD,WAGVkuD,OAAS,gBACLt0G,SAAS/B,oBAAoB,SAAUrD,KAAKs3H,iBAEhD7d,OAAS,SAAS9tB,QACdvmF,SAAWumF,GAAO3rF,KAAKoF,cACvBA,SAASw+F,GAAG,SAAU5jG,KAAKs3H,iBAE/BK,wBAA0B,SAAStxB,EAAKE,OACrC/6C,EAAM,UAEN66C,GAAOrmG,KAAKoF,SAASgnG,eACjB/F,IAAM19F,KAAKD,IAAI,EAAG1I,KAAKoF,SAASgnG,YAAc,KAC9C7F,OAASvmG,KAAKoF,SAASuzG,QAAQntD,EAAI66C,KAAKxnG,QAEvCwnG,EAAM,KACPA,IAAM,IACNE,OAAS,MAGTF,IAAMA,IACNE,OAAS59F,KAAKkN,IAAI7V,KAAKoF,SAASuzG,QAAQntD,EAAI66C,KAAKxnG,OAAQ8J,KAAKD,IAAI,EAAG69F,KAGzEA,EAAS,MACLA,OAAS,GAEV/6C,KAGZ9lD,KAAK2xH,EAAOtzH,cAIf+hF,IAAID,OAAO,eAAe,CAAC,UAAU,UAAU,SAAS,cAAc,kBAAkB,wBAAwB,YAAY,eAAe,SAASP,EAAU/wE,EAAS+f,OAGnKi7D,EAAMjK,EAAS,aACf4xC,EAAa5xC,EAAS,iBAAiB4xC,WACvC/kB,EAAe7sB,EAAS,uBAAuB6sB,aAC/CryF,EAAQwlE,EAAS,WAAWxlE,MAC5Bu3G,EAAS/xC,EAAS,YAAY+xC,OAE9BiB,EAAW,SAASC,QACfC,OAAS,CAAC,IACY,IAAvBD,EAAY15H,YACP25H,OAAS,CAAC,IACRz2H,MAAMC,QAAQu2H,QAChBE,kBAAkB,CAACpyB,IAAK,EAAGE,OAAQ,GAAIgyB,QAEvClmE,OAAO,CAACg0C,IAAK,EAAGE,OAAO,GAAIgyB,KAIvC,aAEOjpC,UAAUtvF,KAAMmyG,QACfumB,SAAW,SAAS3lG,OACjBgxB,EAAM/jD,KAAKosG,YAAc,OACxB/jB,OAAO,IAAIvoE,EAAM,EAAG,EAAGikC,EAAK/jD,KAAK24G,QAAQ50D,GAAKllD,cAC9CwzD,OAAO,CAACg0C,IAAK,EAAGE,OAAQ,GAAIxzE,SAEhC4lG,SAAW,kBACL34H,KAAK44H,cAAcpwH,KAAKxI,KAAK64H,6BAEnC5V,aAAe,SAAS5c,EAAKE,UACvB,IAAI8wB,EAAOr3H,KAAMqmG,EAAKE,IAED,IAA5B,MAAMj+F,MAAM,KAAKzJ,YACZi6H,OAAS,SAAS/lG,UACZA,EAAKjwB,QAAQ,WAAY,MAAMwF,MAAM,YAG3CwwH,OAAS,SAAS/lG,UACZA,EAAKzqB,MAAM,oBAKrBywH,eAAiB,SAAShmG,OACvB3qB,EAAQ2qB,EAAK3qB,MAAM,0BAClB4wH,aAAe5wH,EAAQA,EAAM,GAAK,UAClCujG,QAAQ,2BAEZktB,oBAAsB,kBACf74H,KAAKi5H,kBACN,gBACI,WACJ,aACI,oBAEAj5H,KAAKg5H,cAAgB,YAI/BA,aAAe,QACfC,aAAe,YACfC,eAAiB,SAASC,GACvBn5H,KAAKi5H,eAAiBE,SAGrBF,aAAeE,OACfxtB,QAAQ,4BAEZytB,eAAiB,kBACXp5H,KAAKi5H,mBAEXI,UAAY,SAAStmG,SACN,QAARA,GAA0B,MAARA,GAAwB,MAARA,QAEzC4lF,QAAU,SAAStS,UACbrmG,KAAKw4H,OAAOnyB,IAAQ,SAE1BizB,SAAW,SAASrX,EAAUC,UACxBliH,KAAKw4H,OAAOx1H,MAAMi/G,EAAUC,EAAU,SAE5C0W,YAAc,kBACR54H,KAAKs5H,SAAS,EAAGt5H,KAAKosG,mBAE5BA,UAAY,kBACNpsG,KAAKw4H,OAAO35H,aAElB+wG,aAAe,SAASj+D,UAClB3xC,KAAKu5H,iBAAiB5nF,GAAOnpC,KAAKxI,KAAK64H,6BAE7CU,iBAAmB,SAAS5nF,OACzBwsE,KACAxsE,EAAMhjC,MAAM03F,MAAQ10D,EAAMziC,IAAIm3F,MACtB,CAACrmG,KAAK24G,QAAQhnE,EAAMhjC,MAAM03F,KAAK7E,UAAU7vD,EAAMhjC,MAAM43F,OAAQ50D,EAAMziC,IAAIq3F,aAC5E,IACKvmG,KAAKs5H,SAAS3nF,EAAMhjC,MAAM03F,IAAK10D,EAAMziC,IAAIm3F,MAC3C,MAAY,IAAM,IAAI7E,UAAU7vD,EAAMhjC,MAAM43F,YAC9CnoG,EAAI+/G,EAAMt/G,OAAS,EACnB8yC,EAAMziC,IAAIm3F,IAAM10D,EAAMhjC,MAAM03F,KAAOjoG,MAC7BA,GAAK+/G,EAAM//G,GAAGojG,UAAU,EAAG7vD,EAAMziC,IAAIq3F,gBAE5C4X,QAENqb,YAAc,SAASnzB,EAAK8X,kBACrBtiG,KAAK,sFACN7b,KAAKy5H,gBAAgBpzB,EAAK8X,SAEhCub,YAAc,SAASzX,EAAUC,kBAC1BrmG,KAAK,sFACN7b,KAAK25H,gBAAgB1X,EAAUC,SAErC0X,cAAgB,SAAS53G,kBAClBnG,KAAK,mGACN7b,KAAKy4H,kBAAkBz2G,EAAU,CAAC,GAAI,WAE5CqwC,OAAS,SAASrwC,EAAU+Q,UACzB/yB,KAAKosG,aAAe,QACf2sB,eAAehmG,GAEjB/yB,KAAKy4H,kBAAkBz2G,EAAUhiB,KAAK84H,OAAO/lG,UAEnDkiG,aAAe,SAASjzG,EAAU+Q,OAC/BpkB,EAAQ3O,KAAK65H,WAAW73G,EAASqkF,IAAKrkF,EAASukF,QAC/Cr3F,EAAMlP,KAAKwrD,IAAIxpC,EAASqkF,IAAKrkF,EAASukF,OAASxzE,EAAKl0B,oBAEnDq4H,WAAW,CACZvoH,MAAAA,EACAO,IAAAA,EACAwkB,OAAQ,SACRyqF,MAAO,CAACprF,KACT,GAEI/yB,KAAK85H,SAAS5qH,SAGpB2qH,WAAa,SAASxzB,EAAKE,OACxB1nG,EAASmB,KAAKosG,iBACN,IAAR/F,IACMxnG,EACCwnG,EAAM,IACP,EACCA,GAAOxnG,MACRA,EAAS,SACN,OAET4+G,EAAOz9G,KAAK24G,QAAQtS,UACV,MAAVE,MACSkX,EAAK5+G,QAEX,CAACwnG,IAAAA,EAAUE,SADT59F,KAAKkN,IAAIlN,KAAKD,IAAI69F,EAAQ,GAAIkX,EAAK5+G,eAI3Ci7H,SAAW,SAAStuE,SACd,CAAC66C,IAAK76C,EAAI66C,IAAKE,OAAQ/6C,EAAI+6C,cAGjC/6C,IAAM,SAAS66C,EAAKE,SACd,CAACF,IAAAA,EAAUE,OAAAA,SAGjBwzB,cAAgB,SAAS/3G,OACtBnjB,EAASmB,KAAKosG,mBACdpqF,EAASqkF,KAAOxnG,KACPwnG,IAAM19F,KAAKD,IAAI,EAAG7J,EAAS,KAC3B0nG,OAASvmG,KAAK24G,QAAQ95G,EAAS,GAAGA,WAElCwnG,IAAM19F,KAAKD,IAAI,EAAGsZ,EAASqkF,OAC3BE,OAAS59F,KAAKkN,IAAIlN,KAAKD,IAAIsZ,EAASukF,OAAQ,GAAIvmG,KAAK24G,QAAQ32F,EAASqkF,KAAKxnG,SAEjFmjB,QAENy3G,gBAAkB,SAASpzB,EAAK8X,OAE7B5X,EAAS,KADP59F,KAAKkN,IAAIlN,KAAKD,IAAI29F,EAAK,GAAIrmG,KAAKosG,cAE5BpsG,KAAKosG,eACH+R,EAAMxnG,OAAO,CAAC,OACb,MAED,CAAC,IAAIA,OAAOwnG,SAEXn+G,KAAKw4H,OAAOnyB,GAAKxnG,aAEzB45H,kBAAkB,CAACpyB,IAAAA,EAAUE,OAAAA,GAAiB4X,SAElDsa,kBAAoB,SAASz2G,EAAUm8F,OACpCxvG,EAAQ3O,KAAK65H,WAAW73G,EAASqkF,IAAKrkF,EAASukF,QAC/Cr3F,EAAM,CACNm3F,IAAK13F,EAAM03F,IAAM8X,EAAMt/G,OAAS,EAChC0nG,QAAyB,KAAV1nG,OAAc8P,EAAM43F,OAAS,GAAK4X,EAAMA,EAAMt/G,OAAS,GAAGA,oBAGxEq4H,WAAW,CACZvoH,MAAAA,EACAO,IAAAA,EACAwkB,OAAQ,SACRyqF,MAAAA,IAGGn+G,KAAK85H,SAAS5qH,SAEpBm5E,OAAS,SAAS12C,OACfhjC,EAAQ3O,KAAK65H,WAAWloF,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,QACrDr3F,EAAMlP,KAAK65H,WAAWloF,EAAMziC,IAAIm3F,IAAK10D,EAAMziC,IAAIq3F,oBAC9C2wB,WAAW,CACZvoH,MAAAA,EACAO,IAAAA,EACAwkB,OAAQ,SACRyqF,MAAOn+G,KAAKu5H,iBAAiB,CAAC5qH,MAAAA,EAAcO,IAAAA,MAEzClP,KAAK85H,SAASnrH,SAEpBomH,aAAe,SAAS1uB,EAAK0a,EAAaE,OACvCtyG,EAAQ3O,KAAK65H,WAAWxzB,EAAK0a,GAC7B7xG,EAAMlP,KAAK65H,WAAWxzB,EAAK4a,eAE1BiW,WAAW,CACZvoH,MAAAA,EACAO,IAAAA,EACAwkB,OAAQ,SACRyqF,MAAOn+G,KAAKu5H,iBAAiB,CAAC5qH,MAAAA,EAAcO,IAAAA,MAC7C,GAEIlP,KAAK85H,SAASnrH,SAEpBgrH,gBAAkB,SAAS1X,EAAUC,KAC3Bv5G,KAAKkN,IAAIlN,KAAKD,IAAI,EAAGu5G,GAAWjiH,KAAKosG,YAAc,OAE1D4tB,KADOrxH,KAAKkN,IAAIlN,KAAKD,IAAI,EAAGw5G,GAAWliH,KAAKosG,YAAc,KAC1BpsG,KAAKosG,YAAc,GAAK6V,EAAW,EACnEgY,EAAqB/X,EAAWliH,KAAKosG,YAAc,EACnD0U,EAAakZ,EAAqB/X,EAAW,EAAqBA,EAClE/B,EAAa8Z,EAAqBh6H,KAAK24G,QAAQmI,GAAUjiH,OAAS,EAClEmiH,EAAaiZ,EAAqB/X,EAAU,EAAsBA,EAClE/B,EAAa8Z,EAAqB,EAAgCj6H,KAAK24G,QAAQqI,GAAQniH,OACvF8yC,EAAQ,IAAI7xB,EAAMghG,EAAUZ,EAAUc,EAAQb,GAC9C+Z,EAAel6H,KAAKw4H,OAAOx1H,MAAMi/G,EAAUC,EAAU,eAEpDgV,WAAW,CACZvoH,MAAOgjC,EAAMhjC,MACbO,IAAKyiC,EAAMziC,IACXwkB,OAAQ,SACRyqF,MAAOn+G,KAAKu5H,iBAAiB5nF,KAE1BuoF,QAENC,cAAgB,SAAS9zB,GACtBA,EAAMrmG,KAAKosG,YAAc,GAAK/F,GAAO,QAChC6wB,WAAW,CACZvoH,MAAO3O,KAAKwrD,IAAI66C,EAAKrmG,KAAK24G,QAAQtS,GAAKxnG,QACvCqQ,IAAKlP,KAAKwrD,IAAI66C,EAAM,EAAG,GACvB3yE,OAAQ,SACRyqF,MAAO,CAAC,GAAI,YAInBr7G,QAAU,SAAS6uC,EAAO5e,uBACJjT,MACXA,EAAMqiG,WAAWxwE,EAAMhjC,MAAOgjC,EAAMziC,MAC5B,IAAhB6jB,EAAKl0B,QAAgB8yC,EAAMgvD,UACpBhvD,EAAMhjC,MACbokB,GAAQ/yB,KAAK4vG,aAAaj+D,GACnBA,EAAMziC,UAEZm5E,OAAO12C,GAER5e,EACM/yB,KAAKqyD,OAAO1gB,EAAMhjC,MAAOokB,GAGzB4e,EAAMhjC,aAKfyrH,YAAc,SAASC,WACfx8H,EAAE,EAAGA,EAAEw8H,EAAOx7H,OAAQhB,SACtBq5H,WAAWmD,EAAOx8H,UAG1By8H,aAAe,SAASD,WAChBx8H,EAAEw8H,EAAOx7H,OAAO,EAAGhB,GAAG,EAAGA,SACzB08H,YAAYF,EAAOx8H,UAG3Bq5H,WAAa,SAAS1uG,EAAO4uG,OAC1BoD,EAA2B,UAAhBhyG,EAAMkL,QACjB8mG,EAAWhyG,EAAM21F,MAAMt/G,QAAU,IAAM2pB,EAAM21F,MAAM,IAChDr+F,EAAM6iG,cAAcn6F,EAAM7Z,MAAO6Z,EAAMtZ,QAI1CsrH,GAAYhyG,EAAM21F,MAAMt/G,OAAS,UAC5B47H,yBAAyBjyG,EAAO,OAC9BxoB,KAAKw4H,OAAQhwG,EAAO4uG,QAC1BzrB,QAAQ,SAAUnjF,UAGtBiyG,yBAA2B,SAASjyG,EAAOkyG,WACxCvc,EAAQ31F,EAAM21F,MACd//G,EAAI+/G,EAAMt/G,OACVwnG,EAAM79E,EAAM7Z,MAAM03F,IAClBE,EAAS/9E,EAAM7Z,MAAM43F,OACrB70F,EAAO,EAAGqV,EAAK,IAChB,GACQA,KACD2zG,EAAM,MACRlkE,EAAQ2nD,EAAMn7G,MAAM0O,EAAMqV,MAC1BA,EAAK3oB,EAAG,GACF+/G,MAAQ3nD,IACR7nD,MAAM03F,IAAMA,EAAM30F,IAClB/C,MAAM43F,OAASA,UAGnBznG,KAAK,SACNo4H,WAAW,CACZvoH,MAAO3O,KAAKwrD,IAAI66C,EAAM30F,EAAM60F,GAC5Br3F,IAAKlP,KAAKwrD,IAAI66C,EAAMt/E,EAAIw/E,EAAS,GACjC7yE,OAAQlL,EAAMkL,OACdyqF,MAAO3nD,IACR,UAGN+jE,YAAc,SAAS/xG,QACnB0uG,WAAW,CACZvoH,MAAO3O,KAAK85H,SAAStxG,EAAM7Z,OAC3BO,IAAKlP,KAAK85H,SAAStxG,EAAMtZ,KACzBwkB,OAAyB,UAAhBlL,EAAMkL,OAAqB,SAAW,SAC/CyqF,MAAO31F,EAAM21F,MAAMn7G,gBAGtB23H,gBAAkB,SAASpxH,EAAOu3G,WAC/B3C,EAAQn+G,KAAKw4H,QAAUx4H,KAAK44H,cAC5BgC,EAAgB56H,KAAK64H,sBAAsBh6H,OACtChB,EAAIijH,GAAY,EAAG1iH,EAAI+/G,EAAMt/G,OAAQhB,EAAIO,EAAGP,WACxCsgH,EAAMtgH,GAAGgB,OAAS+7H,GACf,QACD,CAACv0B,IAAKxoG,EAAG0oG,OAAQh9F,EAAQ40G,EAAMtgH,GAAGgB,OAAS+7H,SAEnD,CAACv0B,IAAKjoG,EAAE,EAAGmoG,OAAQ4X,EAAM//G,EAAE,GAAGS,cAEpCg8H,gBAAkB,SAASrvE,EAAKs1D,WAC7B3C,EAAQn+G,KAAKw4H,QAAUx4H,KAAK44H,cAC5BgC,EAAgB56H,KAAK64H,sBAAsBh6H,OAC3C0K,EAAQ,EACR88F,EAAM19F,KAAKkN,IAAI21C,EAAI66C,IAAK8X,EAAMt/G,QACzBhB,EAAIijH,GAAY,EAAGjjH,EAAIwoG,IAAOxoG,KAC1BsgH,EAAMtgH,GAAGgB,OAAS+7H,SAExBrxH,EAAQiiD,EAAI+6C,UAGxB7gG,KAAK4yH,EAASv0H,aAETu0H,SAAWA,KAGnBxyC,IAAID,OAAO,2BAA2B,CAAC,UAAU,UAAU,SAAS,cAAc,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGpIi7D,EAAMjK,EAAS,aACf6sB,EAAe7sB,EAAS,uBAAuB6sB,aAE/C2oB,EAAsB,SAASC,EAAWt1B,QACrCu1B,SAAU,OACV7c,MAAQ,QACRj+D,OAAS,QACT+6E,YAAc,OACdF,UAAYA,MAEb/xC,EAAOhpF,UAENk7H,QAAU,cACNlyC,EAAKgyC,iBAENG,EAAc,IAAI79G,KAClB29G,EAAcjyC,EAAKiyC,YACnBG,KACAzvC,EAAM3C,EAAK2C,IAEX0vC,EAAYJ,EACTjyC,EAAKm1B,MAAM8c,YAGdl3E,EAAM4nC,EAAIygB,YACVkvB,EAAiB,QAChBN,SAAU,EACRC,EAAcl3E,GAAK,GACjBw3E,aAAaN,KACRA,eAGDjyC,EAAKm1B,MAAM8c,WAEE,GAAM,GAAO,IAAI39G,KAAS69G,EAAe,GAAI,GAC1DH,QAAUpzH,WAAWohF,EAAKkyC,QAAS,aAI3CD,YAAcA,MAEfG,MACUH,GAEVI,GAAaD,KACRI,gBAAgBH,EAAWD,OAI3C,aAEO9rC,UAAUtvF,KAAMmyG,QACfspB,aAAe,SAASV,QACpBA,UAAYA,OACZ5c,MAAQ,QACRj+D,OAAS,QAETvxC,MAAM,SAEV+sH,YAAc,SAAS/vC,QACnBA,IAAMA,OACNwyB,MAAQ,QACRj+D,OAAS,QAET2pD,aAEJ2xB,gBAAkB,SAASvZ,EAAUC,OAClCz8G,EAAO,CACPwlE,MAAOg3C,EACPruG,KAAMsuG,QAELvW,QAAQ,SAAU,CAAClmG,KAAAA,UAEvBkJ,MAAQ,SAASmyG,QACbma,YAActyH,KAAKkN,IAAIirG,GAAY,EAAG9gH,KAAKi7H,YAAaj7H,KAAK2rF,IAAIygB,kBACjE+R,MAAMh3G,OAAOnH,KAAKi7H,YAAaj7H,KAAKm+G,MAAMt/G,aAC1CqhD,OAAO/4C,OAAOnH,KAAKi7H,YAAaj7H,KAAKkgD,OAAOrhD,aAE5CgrG,YACAmxB,QAAUpzH,WAAW5H,KAAKk7H,QAAS,WAGvCS,cAAgB,WACZ37H,KAAKg7H,eACDA,QAAUpzH,WAAW5H,KAAKk7H,QAAS,YAG3CU,gBAAkB,SAASpzG,OACxBs4F,EAAWt4F,EAAM7Z,MAAM03F,IACvBtiD,EAAMv7B,EAAMtZ,IAAIm3F,IAAMya,KAEd,IAAR/8D,OACKo6D,MAAM2C,GAAY,aACA,UAAhBt4F,EAAMkL,YACRyqF,MAAMh3G,OAAO25G,EAAU/8D,EAAM,EAAG,WAChC7D,OAAO/4C,OAAO25G,EAAU/8D,EAAM,EAAG,UACnC,KACC/uC,EAAOjT,MAAMgiD,EAAM,KAClBinE,QAAQlK,EAAU,QAClB3C,MAAMh3G,OAAOukB,MAAM1rB,KAAKm+G,MAAOnpG,QAC/BkrC,OAAO/4C,OAAOukB,MAAM1rB,KAAKkgD,OAAQlrC,QAGrCimH,YAActyH,KAAKkN,IAAIirG,EAAU9gH,KAAKi7H,YAAaj7H,KAAK2rF,IAAIygB,kBAE5DvC,aAEJA,KAAO,WACJ7pG,KAAKg7H,sBACQh7H,KAAKg7H,cACjBA,SAAU,QAEdvN,UAAY,SAASpnB,UACfrmG,KAAKm+G,MAAM9X,IAAQrmG,KAAKu7H,aAAal1B,SAE3Cw1B,SAAW,SAASx1B,UACjBrmG,KAAKi7H,aAAe50B,QACfk1B,aAAal1B,GACfrmG,KAAKkgD,OAAOmmD,IAAQ,cAG1Bk1B,aAAe,SAASl1B,OACrBoX,EAAOz9G,KAAK2rF,IAAIgtB,QAAQtS,GACxBjiG,EAAQpE,KAAKkgD,OAAOmmD,EAAM,GAE1B5gG,EAAOzF,KAAK+6H,UAAUtQ,cAAchN,EAAMr5G,EAAOiiG,UAEjDrmG,KAAKkgD,OAAOmmD,GAAO,IAAO5gG,EAAKrB,MAAQ,SAClC87C,OAAOmmD,GAAO5gG,EAAKrB,WACnB+5G,MAAM9X,EAAM,GAAK,KAClBrmG,KAAKi7H,YAAc50B,EAAM,SACpB40B,YAAc50B,EAAM,IACtBrmG,KAAKi7H,aAAe50B,SACtB40B,YAAc50B,EAAM,GAGtBrmG,KAAKm+G,MAAM9X,GAAO5gG,EAAKwlH,UAGnCvlH,KAAKo1H,EAAoB/2H,aAEpB+2H,oBAAsBA,KAG9Bh1C,IAAID,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,eAAe,cAAc,cAAc,SAASP,EAAU/wE,EAAS+f,OAGnI4qE,EAAO5Z,EAAS,gBACD,iBACfxlE,EAAQwlE,EAAS,WAAWxlE,MAE5Bg8G,EAAkB,SAAS19B,EAAQ29B,EAAO1xH,QACrC2xH,UAAU59B,QACV29B,MAAQA,OACR78H,KAAOmL,GAAQ,SAGvB,gBACQ4xH,WAAa,SAEbD,UAAY,SAAS59B,GAClBp+F,KAAKo+F,OAAO,IAAMA,EAAO,UAExBA,OAASA,OACT89B,MAAQ,UAGZhnH,OAAS,SAASm1F,EAAM8xB,EAAal5B,EAASrtF,MAC1C5V,KAAKo+F,eAENzvF,EAAQiH,EAAOqsG,SAAU/yG,EAAM0G,EAAOssG,QAEjCrkH,EAAI8Q,EAAO9Q,GAAKqR,EAAKrR,IAAK,KAC3BuqH,EAASpoH,KAAKk8H,MAAMr+H,GACV,MAAVuqH,OACSlpB,EAAKf,gBAAgB8E,EAAQ0V,QAAQ96G,GAAImC,KAAKo+F,SAC5Cv/F,OAASmB,KAAKi8H,eACZ7T,EAAOplH,MAAM,EAAGhD,KAAKi8H,eACzB7T,EAAOj/G,KAAI,SAASf,UAClB,IAAI0X,EAAMjiB,EAAGuK,EAAM0H,OAAQjS,EAAGuK,EAAM0H,OAAS1H,EAAMvJ,gBAEzDq9H,MAAMr+H,GAAKuqH,EAAOvpH,OAASupH,EAAS,YAGpC3gE,EAAI2gE,EAAOvpH,OAAQ4oD,OACZ20E,qBACR/xB,EAAM+d,EAAO3gE,GAAG66D,cAAcrf,GAAUjjG,KAAK+7H,MAAOnmH,OAKrElQ,KAAKo2H,EAAgB/3H,aAEhB+3H,gBAAkBA,KAG1Bh2C,IAAID,OAAO,6BAA6B,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAG5GxU,EAAQwlE,EAAS,YAAYxlE,iBACfu8G,EAAUC,QACnBD,SAAWA,EACZt6H,MAAMC,QAAQs6H,QACTA,MAAQA,IAELt8H,KAAKs8H,MAAQ,CAAEA,OAGvBjzE,EAAOizE,EAAMA,EAAMz9H,OAAS,QAC3B8yC,MAAQ,IAAI7xB,EAAMw8G,EAAM,GAAG3tH,MAAM03F,IAAKi2B,EAAM,GAAG3tH,MAAM43F,OACnCl9C,EAAKn6C,IAAIm3F,IAAKh9C,EAAKn6C,IAAIq3F,aACzC53F,MAAQ3O,KAAK2xC,MAAMhjC,WACnBO,IAAQlP,KAAK2xC,MAAMziC,SAEnBotH,MAAM33H,SAAQ,SAASwzG,KACnBokB,YAAYv8H,QAClBA,OAGN,gBACQw8H,SAAW,SAASnsH,QAChB1B,MAAM03F,KAAOh2F,OACbnB,IAAIm3F,KAAOh2F,OACXisH,MAAM33H,SAAQ,SAASwzG,KACnBxpG,MAAM03F,KAAOh2F,IACbnB,IAAIm3F,KAAOh2F,WAInBuoG,QAAU,SAAST,MAChBA,EAAKskB,QAAS,IACVtkB,EAAKxpG,MAAM03F,IAAMrmG,KAAK8gH,UAAY3I,EAAK6I,OAAShhH,KAAKghH,aAC/C,IAAI1oD,MAAM,kEAEfgkE,MAAMx9H,KAAKq5G,QACXmkB,MAAM77H,MAAK,SAASY,EAAGK,UAChBL,EAAEswC,MAAMmwE,WAAWpgH,EAAEiN,MAAM03F,IAAK3kG,EAAEiN,MAAM43F,WAEhDvmG,KAAK2xC,MAAMmwE,WAAW3J,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,QAAU,QACtDr3F,IAAIm3F,IAAM8R,EAAKjpG,IAAIm3F,SACnBn3F,IAAIq3F,OAAU4R,EAAKjpG,IAAIq3F,QACrBvmG,KAAK2xC,MAAMkwE,aAAa1J,EAAKjpG,IAAIm3F,IAAK8R,EAAKjpG,IAAIq3F,QAAU,SAC3D53F,MAAM03F,IAAM8R,EAAKxpG,MAAM03F,SACvB13F,MAAM43F,OAAS4R,EAAKxpG,MAAM43F,gBAE5B4R,EAAKxpG,MAAM03F,KAAOrmG,KAAKkP,IAAIm3F,SAC7Bi2B,MAAMx9H,KAAKq5G,QACXjpG,IAAIm3F,IAAM8R,EAAKjpG,IAAIm3F,SACnBn3F,IAAIq3F,OAAS4R,EAAKjpG,IAAIq3F,eACpB4R,EAAKjpG,IAAIm3F,KAAOrmG,KAAK2O,MAAM03F,UAK5B,IAAI/tC,MAAM,uEAJXgkE,MAAMtR,QAAQ7S,QACdxpG,MAAM03F,IAAM8R,EAAKxpG,MAAM03F,SACvB13F,MAAM43F,OAAS4R,EAAKxpG,MAAM43F,SAI9Bm2B,SAAW18H,WAGf28H,YAAc,SAASt2B,UACjBA,GAAOrmG,KAAK2O,MAAM03F,KAAOA,GAAOrmG,KAAKkP,IAAIm3F,UAG/Cu2B,KAAO,SAASz3C,EAAU67B,EAAQC,OAG/B9I,EACA7R,EAHAu2B,EAAU,EACVP,EAAQt8H,KAAKs8H,MAEFQ,GAAW,EAEZ,MAAV9b,MACShhH,KAAKkP,IAAIm3F,MACNrmG,KAAKkP,IAAIq3F,gBAGhB1oG,EAAI,EAAGA,EAAIy+H,EAAMz9H,OAAQhB,IAAK,cAC5By+H,EAAMz+H,IAEF8zC,MAAMkwE,aAAab,EAAQC,kBAEzB,KAAMD,EAAQC,EAAW4b,EAASC,OAIxC33C,EAAS,KAAMgzB,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,OAAQs2B,EAASC,IAClD33C,EAASgzB,EAAK4kB,YAAa5kB,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,OAAQs2B,IAC1D,IAARv2B,YAGA6R,EAAKskB,UACPtkB,EAAKjpG,IAAIq3F,SAEd,KAAMya,EAAQC,EAAW4b,EAASC,SAG1CE,cAAgB,SAAS32B,EAAKE,WAC3B4R,EAAM7R,EACDzoG,EAAI,EAAGA,EAAImC,KAAKs8H,MAAMz9H,OAAQhB,IAAK,cACjCmC,KAAKs8H,MAAMz+H,IACP8zC,MAAMmwE,WAAWzb,EAAKE,UAEtB,CACH4R,KAAAA,EACA8kB,KAAM,YAEK,IAAR32B,QACA,CACH6R,KAAAA,EACA8kB,KAAM,iBAIX,WAGNC,eAAiB,SAAS72B,EAAKE,EAAQxiD,OAEpCo0D,EAAMmkB,EADNp0H,EAAMlI,KAAKg9H,cAAc32B,EAAKE,MAE9Br+F,OACOA,EAAIiwG,KACK,UAAZjwG,EAAI+0H,MACD9kB,EAAKxpG,MAAM43F,QAAUA,GACrB4R,EAAKxpG,MAAM03F,KAAOA,SAEdwN,SAAWtqD,OAAOsqD,QAAQhgG,IAAIwyF,EAAKE,EAAQ4R,WAC3CA,EAAKxpG,MAAM03F,KAAOA,EAAK,KAE1BxoG,KADImC,KAAKs8H,OACCn8H,QAAQg4G,OACZ,IAANt6G,SACK8Q,MAAM43F,QAAUxiD,GAEjBlmD,EAAIy+H,EAAMz9H,OAAQhB,IAAK,OACpBy+H,EAAMz+H,IACR8Q,MAAM43F,QAAUxiD,GAChBo0D,EAAKskB,iBAGLvtH,IAAIq3F,QAAUxiD,OAElB70C,IAAIq3F,QAAUxiD,SAK1Bz7C,MAAQ,SAAS+9F,EAAKE,OACnB/6C,EAAMxrD,KAAKg9H,cAAc32B,EAAKE,OAE7B/6C,GAAmB,UAAZA,EAAIyxE,YACL,SAEP9kB,EAAO3sD,EAAI2sD,KACXmkB,EAAQt8H,KAAKs8H,MACbD,EAAWr8H,KAAKq8H,SAEhBx+H,EAAIy+H,EAAMn8H,QAAQg4G,GAClBglB,EAAab,EAAMz+H,EAAI,QACtBqR,IAAIm3F,IAAM82B,EAAWjuH,IAAIm3F,SACzBn3F,IAAIq3F,OAAS42B,EAAWjuH,IAAIq3F,WAG7B62B,EAAc,IAAIC,EAAShB,IAFvBC,EAAMn1H,OAAOtJ,EAAGy+H,EAAMz9H,OAAShB,aAG9BsJ,OAAOk1H,EAASl8H,QAAQH,MAAQ,EAAG,EAAGo9H,GACxCA,QAGNrS,MAAQ,SAASuS,WACdhB,EAAQgB,EAAahB,MAChBz+H,EAAI,EAAGA,EAAIy+H,EAAMz9H,OAAQhB,SACzB+6G,QAAQ0jB,EAAMz+H,QAEnBw+H,EAAWr8H,KAAKq8H,WACXl1H,OAAOk1H,EAASl8H,QAAQm9H,GAAe,SAG/ClsH,SAAW,eACRlJ,EAAM,CAAClI,KAAK2xC,MAAMvgC,WAAa,mBAE9BkrH,MAAM33H,SAAQ,SAASwzG,KACpBr5G,KAAK,KAAOq5G,EAAK/mG,iBAErBtS,KAAK,KACFoJ,EAAIM,KAAK,YAGf+0H,cAAgB,SAASC,WACtBC,EAAoB,EAEf5/H,EAAI,EAAGA,EAAImC,KAAKs8H,MAAMz9H,OAAQhB,IAAK,KACpCs6G,EAAOn4G,KAAKs8H,MAAMz+H,UAEfs6G,EAAKxpG,MAAM43F,OAASk3B,GACjB,QACC,CACHp3B,IAAK8R,EAAKxpG,MAAM03F,IAChBE,OAAQ4R,EAAKxpG,MAAM43F,OAASi3B,UAI7BrlB,EAAK4kB,YAAYl+H,QACd,SACCs5G,EAAKxpG,QAGIwpG,EAAKjpG,IAAIq3F,aAG1B,CACHF,IAAKrmG,KAAKkP,IAAIm3F,IACdE,OAAQvmG,KAAKkP,IAAIq3F,OAASi3B,MAGnC93H,KAAK23H,EAASt5H,aAETs5H,SAAWA,KAGnBv3C,IAAID,OAAO,iBAAiB,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAGhGquF,EADQr9B,EAAS,WAAWxlE,MACN6iG,cAEtB+a,EAAY,gBACPtV,OAAS,KAGjB,gBACQzF,cAAgBA,OAEhBgb,WAAa,SAASnyE,EAAKoyE,EAAcC,WACtCtnH,EAAOvW,KAAKooH,OAEPvqH,EAAIggI,GAAc,EAAGhgI,EAAI0Y,EAAK1X,OAAQhB,IAAK,KAC5C8zC,EAAQp7B,EAAK1Y,GACboqG,EAAS0a,EAAcn3D,EAAK7Z,EAAMziC,UAClC+4F,EAAS,QAETD,EAAW2a,EAAcn3D,EAAK7Z,EAAMhjC,cACzB,IAAXs5F,EACO21B,GAA6B,IAAb51B,GAAkBnqG,EAAE,EAAIA,EAC/CmqG,EAAW,GAAmB,IAAbA,IAAmB41B,EAC7B//H,GAEHA,EAAE,UAENA,EAAI,QAGXqW,IAAM,SAASy9B,OACZisF,GAAgBjsF,EAAMgvD,UACtBk9B,EAAa79H,KAAK29H,WAAWhsF,EAAMhjC,MAAOivH,GAC1CC,EAAa,OACCA,EAAa,OAE3BC,EAAW99H,KAAK29H,WAAWhsF,EAAMziC,IAAK0uH,EAAcC,UAEpDC,EAAW,KACCA,EAAW,MAGpB99H,KAAKooH,OAAOjhH,OAAO02H,EAAYC,EAAWD,EAAYlsF,SAG5DosF,QAAU,SAASxnH,WAChB6xE,EAAU,GACLvqF,EAAI0Y,EAAK1X,OAAQhB,OACdiB,KAAK4sB,MAAM08D,EAASpoF,KAAKkU,IAAIqC,EAAK1Y,YAEvCuqF,QAGN41C,eAAiB,SAASxyE,OACvB3tD,EAAImC,KAAK29H,WAAWnyE,MAEpB3tD,GAAK,SACEmC,KAAKooH,OAAOjhH,OAAOtJ,EAAG,SAEhCktH,MAAQ,mBAQWp5E,EAPhBy2C,EAAU,GACV7xE,EAAOvW,KAAKooH,OAMZnyD,KAJG1/C,EAAK9V,MAAK,SAASY,EAAGK,UAClBihH,EAActhH,EAAEsN,MAAOjN,EAAEiN,WAGpB,GACP9Q,EAAI,EAAGA,EAAI0Y,EAAK1X,OAAQhB,IAAK,GAC1Bo4D,IACD1/C,EAAK1Y,OACRyoG,EAAMqc,EAAchxE,EAAMziC,IAAK+mD,EAAKtnD,OACpC23F,EAAM,IAGC,GAAPA,GAAa30D,EAAMgvD,WAAc1qC,EAAK0qC,aAGtCgiB,EAAchxE,EAAMziC,IAAK+mD,EAAK/mD,KAAO,MAC/BA,IAAIm3F,IAAMpwC,EAAK/mD,IAAIm3F,MACnBn3F,IAAIq3F,OAAStwC,EAAK/mD,IAAIq3F,UAG3Bp/F,OAAOtJ,EAAG,KACPiB,KAAKm3D,KACNtkB,mBAINy2E,OAAS7xG,EAEP6xE,QAGN4gB,SAAW,SAAS3C,EAAKE,UACnBvmG,KAAK29H,WAAW,CAACt3B,IAAAA,EAAUE,OAAAA,KAAoB,QAGrD03B,cAAgB,SAASzyE,UACnBxrD,KAAK29H,WAAWnyE,IAAQ,QAG9B0yE,aAAe,SAAS1yE,OACrB3tD,EAAImC,KAAK29H,WAAWnyE,MACpB3tD,GAAK,SACEmC,KAAKooH,OAAOvqH,SAItBmkH,SAAW,SAASlB,EAAUE,OAC3BzqG,EAAOvW,KAAKooH,UACZ7xG,EAAK,GAAG5H,MAAM03F,IAAM2a,GAAUzqG,EAAKA,EAAK1X,OAAS,GAAG8P,MAAM03F,IAAMya,QACzD,OAEP+c,EAAa79H,KAAK29H,WAAW,CAACt3B,IAAKya,EAAUva,OAAQ,IACrDs3B,EAAa,OACCA,EAAa,OAC3BC,EAAW99H,KAAK29H,WAAW,CAACt3B,IAAK2a,EAAQza,OAAQ,GAAIs3B,GACrDC,EAAW,OACCA,EAAW,WAEvBK,EAAU,GACLtgI,EAAIggI,EAAYhgI,EAAIigI,EAAUjgI,MAC3BiB,KAAKyX,EAAK1Y,WAEfsgI,QAGNC,UAAY,kBACNp+H,KAAKooH,OAAOjhH,OAAO,EAAGnH,KAAKooH,OAAOvpH,cAGxC46G,OAAS,SAASxW,GACfjjG,KAAKijG,cACAyW,cAEJzW,QAAUA,OACV12F,SAAWvM,KAAKs3H,UAAU5vH,KAAK1H,WAE/BijG,QAAQW,GAAG,SAAU5jG,KAAKuM,gBAG9BmtG,OAAS,WACL15G,KAAKijG,eAELA,QAAQ9J,eAAe,SAAUn5F,KAAKuM,eACtC02F,QAAU,YAGdq0B,UAAY,SAAS9uG,MACF,UAAhBA,EAAMkL,WACF/kB,EAAQ6Z,EAAM7Z,MACdO,EAAMsZ,EAAMtZ,SAEZA,EAAMsZ,EAAM7Z,MACZA,EAAQ6Z,EAAMtZ,YAElB4xG,EAAWnyG,EAAM03F,IAEjBg4B,EADSnvH,EAAIm3F,IACMya,EAEnB4U,GAAW/mH,EAAM43F,OAASr3F,EAAIq3F,OAC9B6hB,EAASpoH,KAAKooH,OAETvqH,EAAI,EAAGM,EAAIiqH,EAAOvpH,OAAQhB,EAAIM,EAAGN,IAAK,OACvCa,EAAI0pH,EAAOvqH,IACTqR,IAAIm3F,IAAMya,OAEZpiH,EAAEiQ,MAAM03F,IAAMya,WAGdpiH,EAAEiQ,MAAM03F,KAAOya,GAAYpiH,EAAEiQ,MAAM43F,QAAU53F,EAAM43F,SAC/C7nG,EAAEiQ,MAAM43F,QAAU53F,EAAM43F,QAAUvmG,KAAK43H,iBAErCjpH,MAAM43F,QAAUmvB,IAChB/mH,MAAM03F,KAAOg4B,IAGnB3/H,EAAEwQ,IAAIm3F,KAAOya,GAAYpiH,EAAEwQ,IAAIq3F,QAAU53F,EAAM43F,OAAQ,IACnD7nG,EAAEwQ,IAAIq3F,QAAU53F,EAAM43F,QAAUvmG,KAAK43H,sBAGrCl5H,EAAEwQ,IAAIq3F,QAAU53F,EAAM43F,QAAUmvB,EAAU,GAAK73H,EAAIM,EAAI,GACnDO,EAAEwQ,IAAIq3F,OAAS7nG,EAAEiQ,MAAM43F,QAAU7nG,EAAEwQ,IAAIq3F,QAAU6hB,EAAOvqH,EAAE,GAAG8Q,MAAM43F,WACjEr3F,IAAIq3F,QAAUmvB,KAEtBxmH,IAAIq3F,QAAUmvB,IACdxmH,IAAIm3F,KAAOg4B,OAIN,GAAXA,GAAgBxgI,EAAIM,OACbN,EAAIM,EAAGN,IAAK,KACXa,GAAAA,EAAI0pH,EAAOvqH,IACb8Q,MAAM03F,KAAOg4B,IACbnvH,IAAIm3F,KAAOg4B,MAK1B34H,KAAKg4H,EAAU35H,aAEV25H,UAAYA,KAGpB53C,IAAID,OAAO,wBAAwB,CAAC,UAAU,UAAU,SAAS,YAAY,iBAAiB,gBAAgB,SAASP,EAAU/wE,EAAS+f,KAGrH,YAAYxU,UAC7B49G,EAAYp4C,EAAS,iBAAiBo4C,UACtCnuC,EAAMjK,EAAS,cACfg5C,EAAO/pH,EAAQ+pH,KAAO,SAAS3sF,EAAOorF,QACjCL,SAAW,UACXK,YAAcA,OACdprF,MAAQA,OACRhjC,MAAQgjC,EAAMhjC,WACdO,IAAMyiC,EAAMziC,SAEZutH,QAAU9qF,EAAMhjC,MAAM03F,KAAO10D,EAAMziC,IAAIm3F,SACvCk4B,SAAWv+H,KAAKooH,OAAS,eAqEZ3wC,EAAOv0B,KACnBmjD,KAAOnjD,EAAOmjD,IACH,GAAb5uB,EAAM4uB,QACAE,QAAUrjD,EAAOqjD,mBAMT9uB,EAAOv0B,GACR,GAAbu0B,EAAM4uB,QACAE,QAAUrjD,EAAOqjD,UACrBF,KAAOnjD,EAAOmjD,MA9EpBrX,SAASsvC,EAAMZ,GAElB,gBAEQtsH,SAAW,iBACL,IAAMpR,KAAK+8H,YAAc,KAAO/8H,KAAK2xC,MAAMvgC,iBAGjDmrH,YAAc,SAAS5W,QACnB+W,SAAW/W,OACX4Y,SAAS55H,SAAQ,SAASwzG,KACtBokB,YAAY5W,YAIpB5nG,MAAQ,eACL4zB,EAAQ3xC,KAAK2xC,MAAM5zB,QACnBo6F,EAAO,IAAImmB,EAAK3sF,EAAO3xC,KAAK+8H,yBAC3BwB,SAAS55H,SAAQ,SAAS65H,KACtBD,SAASz/H,KAAK0/H,EAAQzgH,cAE1B0gH,iBAAmBz+H,KAAKy+H,iBACtBtmB,QAGNumB,WAAa,SAASvmB,OACnBn4G,KAAK2xC,MAAMuvE,QAAQ/I,QAGlBn4G,KAAK2xC,MAAM0vE,cAAclJ,SACpB,IAAI7/C,MAAM,+CAAiD6/C,EAAKxmE,MAAQ3xC,KAAK2xC,WAyCzEA,EAAOuR,EAAPvR,EAxCDwmE,EAwCQj1D,EAxCFljD,KAAK2O,QAyCfgjC,EAAMhjC,MAAOu0C,KACbvR,EAAMziC,IAAKg0C,WAxChBmjD,EAAM8R,EAAKxpG,MAAM03F,IAAKE,EAAS4R,EAAKxpG,MAAM43F,OACrC1oG,EAAI,EAAGyoG,KAAUzoG,EAAImC,KAAKu+H,SAAS1/H,QAE7B,MADLmB,KAAKu+H,SAAS1gI,GAAG8zC,MAAMwvE,QAAQ9a,EAAKE,IADM1oG,SAKhD8gI,EAAa3+H,KAAKu+H,SAAS1gI,MAEpB,GAAPyoG,SACOq4B,EAAWD,WAAWvmB,GAC7B9R,EAAM8R,EAAKxmE,MAAMziC,IAAIm3F,IAAKE,EAAS4R,EAAKxmE,MAAMziC,IAAIq3F,WAC7C9+C,EAAI5pD,MAAGyoG,KAAU7+C,EAAIznD,KAAKu+H,SAAS1/H,QAE7B,MADLmB,KAAKu+H,SAAS92E,GAAG9V,MAAMwvE,QAAQ9a,EAAKE,IADM9+C,aAKhC82E,SAAS92E,GAElB,GAAP6+C,QACM,IAAIhuC,MAAM,+CAAiD6/C,EAAKxmE,MAAQ3xC,KAAK2xC,mBAE9D4sF,SAASp3H,OAAOtJ,EAAG4pD,EAAI5pD,EAAGs6G,KAC9CokB,YAAYv8H,KAAK08H,UAEfvkB,SAGNymB,aAAe,SAASjtF,mBAoBXA,EAAOuR,KACZvR,EAAMhjC,MAAOu0C,KACbvR,EAAMziC,IAAKg0C,GArBb07E,CAAajtF,EAAO3xC,KAAK2O,SAGrCjJ,KAAK44H,EAAKv6H,cAuBb+hF,IAAID,OAAO,2BAA2B,CAAC,UAAU,UAAU,SAAS,YAAY,6BAA6B,wBAAwB,uBAAuB,SAASP,EAAU/wE,EAAS+f,OAGpLxU,EAAQwlE,EAAS,YAAYxlE,MAC7Bu9G,EAAW/3C,EAAS,eAAe+3C,SACnCiB,EAAOh5C,EAAS,UAAUg5C,KAC1BnR,EAAgB7nC,EAAS,qBAAqB6nC,gBAkuB1C0R,wBA/tBCzmB,UAAY,SAAS/R,EAAKE,EAAQu4B,OAC/BnZ,EAAW3lH,KAAK4lH,YAAYvf,OAC3Bsf,SACM,aAEP2W,EAAQ3W,EAAS2W,MACZz+H,EAAI,EAAGA,EAAIy+H,EAAMz9H,OAAQhB,IAAK,KAC/Bs6G,EAAOmkB,EAAMz+H,MACbs6G,EAAKxmE,MAAMq3D,SAAS3C,EAAKE,GAAS,IACtB,GAARu4B,GAAa3mB,EAAKxmE,MAAM4vE,MAAMlb,EAAKE,mBAE5Bu4B,GAAc3mB,EAAKxmE,MAAM6vE,QAAQnb,EAAKE,mBAG1C4R,UAId4mB,gBAAkB,SAASptF,OACxBhjC,EAAQgjC,EAAMhjC,MACdO,EAAMyiC,EAAMziC,IACZ8vH,EAAYh/H,KAAKi/H,UACjBC,EAAa,KAEX34B,QAAU,IACZA,QAAU,UAEL1oG,EAAI,EAAGA,EAAImhI,EAAUngI,OAAQhB,IAAK,KACnCyoG,EAAM04B,EAAUnhI,GAAG8zC,MAAMyvE,aAAazvE,MAC/B,GAAP20D,UAGKA,gBAILg2B,EAAQ0C,EAAUnhI,GAAGy+H,MAChB70E,EAAI,EAAGA,EAAI60E,EAAMz9H,OAAQ4oD,IAAK,KAC/B0wD,EAAOmkB,EAAM70E,aACX0wD,EAAKxmE,MAAMyvE,aAAazvE,aAGZ,GAAP20D,MAGA,IAAPA,UAGOxnG,KAAKq5G,eAGlB5R,QAAU,IACZA,QAAU,EAEP24B,QAGNC,oBAAsB,SAAS/W,MAC5BrmH,MAAMC,QAAQomH,GAAS,KACnBkU,EAAQ,KACL33H,SAAQ,SAASgtC,KACZ2qF,EAAM3lH,OAAO3W,KAAK++H,gBAAgBptF,MAC3C3xC,WAECs8H,EAAQt8H,KAAK++H,gBAAgB3W,UAE9BkU,QAEN8C,YAAc,mBACX9C,EAAQ,GACR0C,EAAYh/H,KAAKi/H,UAEZphI,EAAI,EAAGA,EAAImhI,EAAUngI,OAAQhB,YACzB4pD,EAAI,EAAGA,EAAIu3E,EAAUnhI,GAAGy+H,MAAMz9H,OAAQ4oD,MACrC3oD,KAAKkgI,EAAUnhI,GAAGy+H,MAAM70E,WAE/B60E,QAENrV,gBAAkB,SAAS5gB,EAAKE,EAAQhb,EAAMo6B,UACpCA,GAAY3lH,KAAK4lH,YAAYvf,WAE7B,aAKPt1F,EAAKonG,EAHLknB,EAAW,CACXnwH,IAAK,CAAEq3F,OAAQ,IAGV1oG,EAAI,EAAGA,EAAI8nH,EAAS2W,MAAMz9H,OAAQhB,IAAK,KAExCyoG,KADGqf,EAAS2W,MAAMz+H,IACP8zC,MAAMmwE,WAAWzb,EAAKE,UACjCD,EAAW,GACLtmG,KACD24G,QAAQR,EAAKxpG,MAAM03F,KACnB7E,UAAU69B,EAASnwH,IAAIq3F,OAAQ4R,EAAKxpG,MAAM43F,iBAGlC,IAARD,SACE,OAEA6R,SAEVpnG,MACK/Q,KAAK24G,QAAQR,EAAKxpG,MAAM03F,KAAK7E,UAAU69B,EAASnwH,IAAIq3F,aAE1Dhb,EACOx6E,EAAIywF,UAAU,EAAG+E,EAAS84B,EAASnwH,IAAIq3F,QACjC,GAARhb,EACEx6E,EAAIywF,UAAU+E,EAAS84B,EAASnwH,IAAIq3F,QAEpCx1F,QAGV60G,YAAc,SAAS7H,EAAQuhB,OAC5BjD,EAAWr8H,KAAKi/H,UAChBphI,EAAI,MACJyhI,MACIjD,EAASl8H,QAAQm/H,QACrBzhI,MACI,GACAA,EAAIw+H,EAASx9H,OAAQhB,IAAK,KAC1B8nH,EAAW0W,EAASx+H,MACpB8nH,EAASh3G,MAAM03F,KAAO0X,GAAU4H,EAASz2G,IAAIm3F,KAAO0X,SAC7C4H,KACAA,EAASz2G,IAAIm3F,IAAM0X,SACnB,YAGR,WAENwhB,gBAAkB,SAASxhB,EAAQuhB,OAChCjD,EAAWr8H,KAAKi/H,UAChBphI,EAAI,MACJyhI,MACIjD,EAASl8H,QAAQm/H,QACrBzhI,MACI,GACAA,EAAIw+H,EAASx9H,OAAQhB,IAAK,KAC1B8nH,EAAW0W,EAASx+H,MACpB8nH,EAASz2G,IAAIm3F,KAAO0X,SACb4H,SAGR,WAGN6Z,kBAAoB,SAASv0D,EAAO5hB,WACjCgzE,EAAWr8H,KAAKi/H,UAAWnR,EAAWzkE,EAAK4hB,EAAM,EAC5CptE,EAAI,EAAGA,EAAIw+H,EAASx9H,OAAQhB,IAAK,KAClC8nH,EAAW0W,EAASx+H,GACpBqR,EAAMy2G,EAASz2G,IAAIm3F,IACnB13F,EAAQg3G,EAASh3G,MAAM03F,OACvBn3F,GAAOm6C,EAAM,CACT16C,EAAQ06C,IACJ16C,GAASs8D,KACG5hB,EAAK16C,IAEN,SAGZO,GAAO+7D,OACVt8D,GAASs8D,EACI/7D,EAAIP,EAEJO,EAAI+7D,EAAM,UAG5B6iD,QAGN2R,aAAe,SAAS9Z,eACpBsZ,UAAUngI,KAAK6mH,QACfsZ,UAAUx+H,MAAK,SAASY,EAAGK,UACrBL,EAAEsN,MAAM03F,IAAM3kG,EAAEiN,MAAM03F,OAE1Bsf,QAEN/M,QAAU,SAASmkB,EAAaprF,OAG7BwmE,EAFAkkB,EAAWr8H,KAAKi/H,UAChBS,GAAQ,EAGR3C,aAAuBuB,IAChBvB,KAEA,IAAIuB,EAAK3sF,EAAOorF,IAClB0B,iBAAmB9sF,EAAM8sF,sBAE7BkB,qBAAqBxnB,EAAKxmE,WAE3BmvE,EAAW3I,EAAKxpG,MAAM03F,IACtB0a,EAAc5I,EAAKxpG,MAAM43F,OACzBya,EAAS7I,EAAKjpG,IAAIm3F,IAClB4a,EAAY9I,EAAKjpG,IAAIq3F,cACRya,GACbF,GAAYE,GAAUD,GAAeE,EAAY,SAC3C,IAAI3oD,MAAM,uDAEhBsnE,EAAY5/H,KAAKo4G,UAAU0I,EAAUC,EAAa,GAClD8e,EAAU7/H,KAAKo4G,UAAU4I,EAAQC,SACjC2e,GAAaC,GAAWD,SACjBA,EAAUlB,WAAWvmB,GAE5BynB,IAAcA,EAAUjuF,MAAM6vE,QAAQV,EAAUC,SAC3C1I,WAAWunB,GAEhBC,IAAYA,EAAQluF,MAAM4vE,MAAMP,EAAQC,SACnC5I,WAAWwnB,OAChBvD,EAAQt8H,KAAK++H,gBAAgB5mB,EAAKxmE,OAClC2qF,EAAMz9H,OAAS,SACVihI,YAAYxD,KACX33H,SAAQ,SAAS65H,KACdE,WAAWF,eAIf3gI,EAAI,EAAGA,EAAIw+H,EAASx9H,OAAQhB,IAAK,KAClC8nH,EAAW0W,EAASx+H,MACpBmjH,GAAU2E,EAASh3G,MAAM03F,IAAK,GACrBuS,QAAQT,MACT,WAED2I,GAAY6E,EAASz2G,IAAIm3F,IAAK,MAC5BuS,QAAQT,MACT,GACHA,EAAKskB,QAAS,KACXa,EAAejB,EAASx+H,EAAI,MAC5By/H,GAAgBA,EAAa3uH,MAAM03F,KAAO2a,EAAQ,GACzC+J,MAAMuS,mBAKhBtc,GAAU2E,EAASh3G,MAAM03F,iBAKnCq5B,MACU1/H,KAAKy/H,aAAa,IAAIpC,EAASr9H,KAAKi/H,UAAW9mB,KAE1Dn4G,KAAK4+G,kBACAmhB,gBAAgBpa,EAASh3G,MAAM03F,IAAKsf,EAASh3G,MAAM03F,UAEnD25B,sBAAsBra,EAASh3G,MAAM03F,IAAKsf,EAASh3G,MAAM03F,UAC7D45B,WAAY,OACZt0B,QAAQ,aAAc,CAAElmG,KAAM0yG,EAAMzkF,OAAQ,QAE1CykF,QAGN+nB,SAAW,SAAS5D,KACf33H,SAAQ,SAASwzG,QACdS,QAAQT,KACdn4G,YAGFq4G,WAAa,SAASF,OACnBwN,EAAWxN,EAAKukB,SAChB5b,EAAW6E,EAASh3G,MAAM03F,IAC1B2a,EAAS2E,EAASz2G,IAAIm3F,IAEtB24B,EAAYh/H,KAAKi/H,UACjB3C,EAAQ3W,EAAS2W,SACD,GAAhBA,EAAMz9H,SACIsI,OAAO63H,EAAU7+H,QAAQwlH,GAAW,WAE9CA,EAASh0E,MAAM4vE,MAAMpJ,EAAKjpG,IAAIm3F,IAAK8R,EAAKjpG,IAAIq3F,UACtCz3F,QACGI,IAAIm3F,IAAMi2B,EAAMA,EAAMz9H,OAAS,GAAGqQ,IAAIm3F,MACtCn3F,IAAIq3F,OAAS+1B,EAAMA,EAAMz9H,OAAS,GAAGqQ,IAAIq3F,eAElDof,EAASh0E,MAAM6vE,QAAQrJ,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,UAC5Cl2F,UACG1B,MAAM03F,IAAMi2B,EAAM,GAAG3tH,MAAM03F,MAC3B13F,MAAM43F,OAAS+1B,EAAM,GAAG3tH,MAAM43F,eAEvC4R,EAAKskB,UACCt1H,OAAOm1H,EAAMn8H,QAAQg4G,GAAO,OAEtC,KACQilB,EAAczX,EAASr9G,MAAM6vG,EAAKxpG,MAAM03F,IAAK8R,EAAKxpG,MAAM43F,WACpD62B,EAAYd,OACdjsH,UACM1B,MAAM03F,IAAMi2B,EAAM,GAAG3tH,MAAM03F,MAC3B13F,MAAM43F,OAAS+1B,EAAM,GAAG3tH,MAAM43F,OAGzCvmG,KAAKmgI,YACFngI,KAAK4+G,kBACAmhB,gBAAgBjf,EAAUE,QAE1Bgf,sBAAsBlf,EAAUE,SAExCif,WAAY,OACZt0B,QAAQ,aAAc,CAAElmG,KAAM0yG,EAAMzkF,OAAQ,iBAGhDosG,YAAc,SAASxD,WACpB8D,EAAa,GACRviI,EAAI,EAAGA,EAAIy+H,EAAMz9H,OAAQhB,MACnBiB,KAAKw9H,EAAMz+H,MAGf8G,SAAQ,SAASwzG,QACnBE,WAAWF,KACjBn4G,WACEigI,WAAY,QAGhB3nB,WAAa,SAASH,QAClBE,WAAWF,KACXomB,SAAS55H,SAAQ,SAAS65H,KACtBI,aAAaJ,QACb5lB,QAAQ4lB,KACdx+H,MACCm4G,EAAKsmB,iBAAmB,QACnB4B,QAAQloB,EAAKxpG,MAAM03F,IAAI,EAAG8R,EAAKjpG,IAAIm3F,IAAK8R,EAAKsmB,iBAAiB,KAElEF,SAAW,SAGf+B,YAAc,SAAShE,KAClB33H,SAAQ,SAASwzG,QACdG,WAAWH,KACjBn4G,YAGFugI,OAAS,SAASzzH,EAAU0zH,OACzB7uF,EAAO2qF,KACK,MAAZxvH,KACQ,IAAIgT,EAAM,EAAG,EAAG9f,KAAKosG,YAAa,MAC5B,KACY,iBAAZt/F,EACN,IAAIgT,EAAMhT,EAAU,EAAGA,EAAU9M,KAAK24G,QAAQ7rG,GAAUjO,QAC3D,QAASiO,EACNgT,EAAMqiG,WAAWr1G,EAAUA,GAE3BA,IAEJ9M,KAAKm/H,oBAAoBxtF,GAC7B6uF,OACKV,YAAYxD,gBAEbiC,EAAWjC,EACRiC,EAAS1/H,aACPyhI,YAAY/B,KACNv+H,KAAKm/H,oBAAoBxtF,MAGxC2qF,EAAMz9H,cACCy9H,QAEVmE,YAAc,SAAS1iB,EAAQ2iB,WACvB1gI,KAAK4lH,YAAY7H,EAAQ2iB,SAGjCC,cAAgB,SAAS5iB,EAAQ2iB,OAC9B/a,EAAW3lH,KAAK4lH,YAAY7H,EAAQ2iB,UACjC/a,EAAWA,EAASz2G,IAAIm3F,IAAM0X,QAGpC6iB,gBAAkB,SAAS7iB,EAAQ2iB,OAChC/a,EAAW3lH,KAAK4lH,YAAY7H,EAAQ2iB,UACjC/a,EAAWA,EAASh3G,MAAM03F,IAAM0X,QAGtC8iB,mBAAqB,SAASlb,EAAU3E,EAAQC,EAAWH,EAAUC,GACtD,MAAZD,MACW6E,EAASh3G,MAAM03F,KACX,MAAf0a,MACc,GACJ,MAAVC,MACS2E,EAASz2G,IAAIm3F,KACT,MAAb4a,MACYjhH,KAAK24G,QAAQqI,GAAQniH,YACjC8sF,EAAM3rF,KAAK2rF,IACXm1C,EAAW,YAENlE,MAAK,SAASG,EAAa12B,EAAKE,EAAQw6B,QACzC16B,EAAMya,OAENza,GAAOya,EAAU,IACbva,EAASwa,WAEAp4G,KAAKD,IAAIq4G,EAAaggB,MAGpB,MAAfhE,EACYA,EAEApxC,EAAIgtB,QAAQtS,GAAK7E,UAAUu/B,EAAYx6B,MAExDya,EAAQC,GACJ6f,QAGNva,eAAiB,SAASlgB,EAAK4a,EAAWH,EAAUC,OAI7CtD,EAHJkI,EAAW3lH,KAAK4lH,YAAYvf,UAE3Bsf,EAKM3lH,KAAK6gI,mBACRlb,EAAUtf,EAAK4a,EAAWH,EAAUC,MAJjC/gH,KAAK2rF,IAAIgtB,QAAQtS,IACZ7E,UAAUuf,GAAe,EAAGE,GAAaxD,EAAK5+G,cAO7DmiI,eAAiB,eACdC,EAAK,YACJjhI,KAAKi/H,UAAU91H,KAAI,SAASw8G,OACzB2W,EAAQ3W,EAAS2W,MAAMnzH,KAAI,SAASgvG,UAC7BA,EAAKp6F,kBAET,IAAIs/G,EAAS4D,EAAI3E,YAM3B4E,WAAa,SAASC,OAGnBhpB,EACAipB,EAFAzvF,EADY3xC,KAAKghG,UACCgC,cAIlBrxD,EAAMgvD,UAAW,KACbyF,EAASz0D,EAAMhjC,WACZ3O,KAAKo4G,UAAUhS,EAAOC,IAAKD,EAAOG,yBAGhC+R,WAAWH,IAETipB,EAAaphI,KAAKuwH,oBAAoBnqB,IACP,GAAlCz0D,EAAM+1D,aAAa05B,KACblyH,IAAMkyH,KAENzyH,MAAQyyH,IACRzyH,MAAM43F,WACNr3F,IAAIq3F,WAEP66B,EAAaphI,KAAKuwH,oBAAoB,CAAClqB,IAAKD,EAAOC,IAAKE,OAAQH,EAAOG,OAAS,MACjD,GAAlC50D,EAAM+1D,aAAa05B,KACblyH,IAAMkyH,IAENzyH,MAAQyyH,IAEZzyH,MAAM43F,YAEJvmG,KAAKqhI,oBAAoBj7B,EAAOC,IAAKD,EAAOG,SAAW50D,MAEhE,KACC2qF,EAAQt8H,KAAK++H,gBAAgBptF,MAC7BwvF,GAAe7E,EAAMz9H,wBAChByhI,YAAYhE,GAEM,GAAhBA,EAAMz9H,WACNy9H,EAAM,OAIhBnkB,MACMn4G,KAAKo4G,UAAUzmE,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,SAEnD4R,GAAQA,EAAKxmE,MAAMvgC,YAAcugC,EAAMvgC,gBAClCknG,WAAWH,YAIhB4kB,EAAc,UACbprF,EAAMo3D,cAAe,OACR/oG,KAAK4vG,aAAaj+D,IAChB9yC,OAAS,WAEXk+H,EAAYxxC,OAAOiW,UAAU,EAAG,GAAK,UAGlDoX,QAAQmkB,EAAaprF,UAGzB0vF,oBAAsB,SAASh7B,EAAKE,EAAQ0T,OACzCppG,EAAW,IAAIs8G,EAAcntH,KAAMqmG,EAAKE,GACxC+iB,EAAQz4G,EAASk9G,kBACjB1jH,EAAOi/G,EAAMpqH,QACboqH,GAAS,kBAAkB5mH,KAAK2H,GAAO,CAE3B,cADLA,EAAKjC,MAAM,kBAAkB,SAExB,kBACRutG,EAAK,IAAI3vB,OAAO37E,GAChBsnC,EAAQ,IAAI7xB,KACL,GAAPm6F,EAAU,MAEEppG,EAAS+8G,qBACZtE,GAAS3T,EAAGjzG,KAAK4mH,EAAMpqH,SACvB2uH,mBAGPl/G,MAAM03F,IAAMx1F,EAASm9G,uBACrBr/G,MAAM43F,OAAS11F,EAASo9G,wBAA0B,IAE7C,IAAId,EAAcntH,KAAMqmG,EAAKE,OAEpC0T,EAAW,KACPiI,aAEQrxG,EAASg9G,kBACb3L,EAAe,KACX99G,EAAQpE,KAAK67H,SAAShrH,EAAS08G,MAC9B5X,EAAGjzG,KAAK0B,OACCyM,EAAS08G,cAChB18G,EAAS08G,KAAOrL,cAGtBoH,GAAS3T,EAAGjzG,KAAK4mH,EAAMpqH,SACxB2R,EAAS+8G,sBAET/8G,EAASk9G,2BAEf7+G,IAAIm3F,IAAMx1F,EAASm9G,uBACnB9+G,IAAIq3F,OAAS11F,EAASo9G,wBAA0B3E,EAAMlnH,MAAMvD,OAAS,EACpE8yC,SAIV0uF,QAAU,SAASvf,EAAUE,EAAQvjF,GACzB,MAATA,MACQ,SACR86E,EAAcv4G,KAAKu4G,eAClBA,KAEIyI,GAAUhhH,KAAKosG,oBAEf/F,IADEya,GAAY,EACEza,EAAM2a,EAAQ3a,OACX,MAApBkS,EAAYlS,OACAA,GAAOrmG,KAAKshI,cAAcj7B,IAClB,SAApBkS,EAAYlS,QAGZ10D,EAAQ3xC,KAAKuhI,mBAAmBl7B,MAChC10D,GAASA,EAAMo3D,eACZp3D,EAAMziC,IAAIm3F,KAAO2a,GACjBrvE,EAAMhjC,MAAM03F,KAAOya,EACxB,GACQnvE,EAAMziC,IAAIm3F,YAER8R,EAAOn4G,KAAK44G,QAAQ,MAAOjnE,GAC3BwmE,MACKsmB,iBAAmBhhG,SACxBv8B,cAIfsgI,YAAc,CACfC,OAAU,EACVC,UAAa,EACbC,aAAgB,QAEfC,WAAa,iBACbC,aAAe,SAASl/H,OACpB3C,KAAKwhI,YAAY7+H,SACZ,IAAI21D,MAAM,uBAAyB31D,EAAQ,IAAMwJ,OAAOyL,KAAK5X,KAAKwhI,aAAah5H,KAAK,MAAQ,QAElGxI,KAAK4hI,YAAcj/H,QAGlBi/H,WAAaj/H,EAEL,UAATA,QACK49H,aACLtmE,EAAOj6D,KAAK8hI,eACXC,YAAY,WACZA,YAAY9nE,UAGhB8nE,YAAc,SAASC,GACpBhiI,KAAK8hI,WAAaE,SAGjBF,UAAYE,OAEZ/uB,IAAI,SAAUjzG,KAAKiiI,yBACnBhvB,IAAI,kBAAmBjzG,KAAKkiI,kCAC5Bv2B,QAAQ,oBAERq2B,GAA+B,UAAnBhiI,KAAK4hI,iBAKjBrpB,YAAc,QACd+oB,cAAgBU,EAASV,cAAc55H,KAAKs6H,EAAUhiI,KAAMA,KAAK4hI,iBACjEL,mBAAqBS,EAAST,mBAAmB75H,KAAKs6H,EAAUhiI,KAAMA,KAAK4hI,iBAE3EK,mBAAqBjiI,KAAKmiI,kBAAkBz6H,KAAK1H,WACjDkiI,4BAA8BliI,KAAKoiI,2BAA2B16H,KAAK1H,WACnE4jG,GAAG,SAAU5jG,KAAKiiI,yBAClBr+B,GAAG,kBAAmB5jG,KAAKkiI,mCAXvB3pB,YAAc,YActBE,uBAAyB,SAAUpS,EAAKg8B,OACrCC,EAAKtiI,KAAKu4G,gBACT+pB,GAAOD,GAAiBC,EAAGj8B,SACrB,WAEMqS,EAAb76G,EAAIwoG,EAAM,EACPxoG,GAAK,GAAG,KACPsD,EAAImhI,EAAGzkI,MACF,MAALsD,MACImhI,EAAGzkI,GAAKmC,KAAKshI,cAAczjI,IAE1B,SAALsD,EAAc,KACVwwC,EAAQ3xC,KAAKuhI,mBAAmB1jI,MAC/B66G,MACY/mE,GACbA,GAASA,EAAMziC,IAAIm3F,KAAOA,kBAM/B,CACH10D,WAAO9zC,GAAY8zC,EACnB+mE,WAAAA,SAIHF,kBAAoB,SAASnS,EAAKnlG,OAE/B+Q,EAAU,CACVlT,YAFAmC,EAAEgjG,UAEUj5F,SACZsqG,IAAKr0G,EAAE4J,SAAW5J,EAAE6J,QACpBw3H,SAAUrhI,EAAE8J,YAGJhL,KAAKwiI,kBAAkBn8B,EAAKp0F,GAC5B,KACJ85E,EAAM7qF,EAAE0J,QAAU1J,EAAE6qG,WACpBhgB,GAAM,kBAAkBrpF,KAAKqpF,EAAGC,eAC7BA,WAAa,uBAIvBw2C,kBAAoB,SAASn8B,EAAKp0F,MAC9BjS,KAAKshI,mBAENj3H,EAAOrK,KAAKshI,cAAcj7B,GAC1BoX,EAAOz9G,KAAK24G,QAAQtS,GAEpB4T,EAAe,QAAT5vG,KAAsB,EAC5B8tG,EAAOn4G,KAAKo4G,UAAU/R,OAAK4T,EAAa,EAAIwD,EAAK5+G,OAAQo7G,MAEzD9B,SACIlmG,EAAQlT,UAAYkT,EAAQsjG,SACvB8C,WAAWF,QAEXG,WAAWH,GACbA,MAGPxmE,EAAQ3xC,KAAKuhI,mBAAmBl7B,GAAK,MACrC10D,IAAUA,EAAMo3D,kBACT/oG,KAAKo4G,UAAUzmE,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,OAAQ,KAC/C50D,EAAMuvE,QAAQ/I,EAAKxmE,mBACtB0mE,WAAWF,GACTA,KAIXlmG,EAAQswH,SAAU,KACd98H,EAAOzF,KAAKy4G,uBAAuBpS,MACnC5gG,EAAKksC,UACDmvE,EAAWr7G,EAAKksC,MAAMhjC,MAAM03F,IAAM,EAClC2a,EAASv7G,EAAKksC,MAAMziC,IAAIm3F,SAE3Bg6B,QAAQvf,EAAUE,EAAQ/uG,EAAQsjG,IAAM,IAAQ,QAC9CtjG,EAAQlT,YACN4yC,EAAQA,EAAMziC,IAAIm3F,IAAMrmG,KAAKosG,iBACjCi0B,QAAQh6B,EAAM,EAAG2a,EAAQ/uG,EAAQsjG,IAAM,IAAQ,IAC7C5jE,IACH1/B,EAAQsjG,QACFkpB,iBAAmB,UACxB7lB,QAAQ,MAAOjnE,WAGjBA,SAKN8wF,iBAAmB,SAASC,OACzBr8B,EAAMrmG,KAAKghG,UAAUsiB,YAAYjd,MAC/BrmG,KAAK4gI,gBAAgBv6B,OACvB10D,EAAQ3xC,KAAKwiI,kBAAkBn8B,EAAK,QAEpC10D,OAEAlsC,EAAOzF,KAAKy4G,uBAAuBpS,GAAK,QACpC5gG,EAAKksC,OAASlsC,EAAKizG,WAEhB,GACD/mE,EAAMhjC,MAAM03F,QACd8R,EAAOn4G,KAAKo4G,UAAU/R,EAAKrmG,KAAK24G,QAAQtS,GAAKxnG,OAAQ,GAErDs5G,OACKE,WAAWF,QAEXS,QAAQ,MAAOjnE,WAK3BwwF,kBAAoB,SAAS35G,OAC1By5F,EAAWz5F,EAAM7Z,MAAM03F,IACvBtiD,EAAMv7B,EAAMtZ,IAAIm3F,IAAM4b,KAEd,IAARl+D,OACKw0D,YAAY0J,GAAY,aACN,UAAhBz5F,EAAMkL,YACR6kF,YAAYpxG,OAAO86G,EAAUl+D,EAAM,EAAG,UACxC,KACC/uC,EAAOjT,MAAMgiD,EAAM,KAClBinE,QAAQ/I,EAAU,QAClB1J,YAAYpxG,OAAOukB,MAAM1rB,KAAKu4G,YAAavjG,UAGnDotH,2BAA6B,SAASlhI,OACnCsmH,EAAOtmH,EAAEuE,KACT+hH,EAAKv8C,OAASu8C,EAAK5zG,MACf5T,KAAKu4G,YAAY15G,OAAS2oH,EAAKv8C,YAC1BstC,YAAYpxG,OAAOqgH,EAAKv8C,MAAOjrE,KAAKu4G,YAAY15G,aASrEinF,IAAID,OAAO,iCAAiC,CAAC,UAAU,UAAU,SAAS,qBAAqB,cAAc,SAASP,EAAU/wE,EAAS+f,OAGrI64F,EAAgB7nC,EAAS,qBAAqB6nC,cAC9CrtG,EAAQwlE,EAAS,YAAYxlE,QA8KzB6iH,6BAzKCpS,oBAAsB,SAASvuG,EAAU4gH,MACnB,GAAnB5gH,EAASukF,cAAoB,SAE7Bs8B,EAAmBD,GAAO5iI,KAAK24G,QAAQ32F,EAASqkF,KAAKx9F,OAAOmZ,EAASukF,OAAO,MACxD,IAApBs8B,SAA+B,SAE/Bz6H,EAAQy6H,EAAiBz6H,MAAM,gCAC9BA,EAGDA,EAAM,GACCpI,KAAK8iI,oBAAoB16H,EAAM,GAAI4Z,GAEnChiB,KAAKiwH,oBAAoB7nH,EAAM,GAAI4Z,GALnC,WAQV6mF,gBAAkB,SAASr9C,OAET7Z,EADf8rE,EAAOz9G,KAAK24G,QAAQntD,EAAI66C,KACxB8uB,GAAS,EAETyN,EAAMnlB,EAAK50G,OAAO2iD,EAAI+6C,OAAO,GAC7Bn+F,EAAQw6H,GAAOA,EAAIx6H,MAAM,4BACxBA,MACKq1G,EAAK50G,OAAO2iD,EAAI+6C,UAChB,CAACF,IAAK76C,EAAI66C,IAAKE,OAAQ/6C,EAAI+6C,OAAS,KAClCq8B,GAAOA,EAAIx6H,MAAM,4BAChB,IAERA,SACM,QAEPA,EAAM,GAAI,MACNg5H,EAAaphI,KAAK8iI,oBAAoB16H,EAAM,GAAIojD,WAEzC,OACH1rC,EAAMqiG,WAAW32D,EAAK41E,GACzBjM,MACKjmH,IAAIq3F,WACJ53F,MAAM43F,YAEVH,OAASz0D,EAAMziC,QAClB,KACCkyH,OAAAA,EAAaphI,KAAKiwH,oBAAoB7nH,EAAM,GAAIojD,WAEzC,OACH1rC,EAAMqiG,WAAWif,EAAY51E,GAChC2pE,MACKxmH,MAAM43F,WACNr3F,IAAIq3F,YAERH,OAASz0D,EAAMhjC,aAGlBgjC,QAGNoxF,UAAY,CACbC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,UAGJpT,oBAAsB,SAAS2B,EAAS5vG,EAAUshH,OAC/CC,EAAcvjI,KAAK+iI,UAAUnR,GAC7Bn0F,EAAQ,EAER5sB,EAAW,IAAIs8G,EAAcntH,KAAMgiB,EAASqkF,IAAKrkF,EAASukF,QAC1D+iB,EAAQz4G,EAASk9G,qBAChBzE,MACOz4G,EAASg9G,eAChBvE,GAGCga,MACO,IAAIt9C,OACT,QACAsjC,EAAMpqH,KAAK4D,QAAQ,IAAK,OAAOA,QAAQ,SAAU,UAC5CA,QAAQ,cAAe,uBAC1B,eAGN0gI,EAAaxhH,EAASukF,OAAS11F,EAASo9G,wBAA0B,EAClE7rH,EAAQknH,EAAMlnH,QAEL,MAEFohI,GAAc,GAAG,KAChBZ,EAAMxgI,EAAMyG,OAAO26H,MACnBZ,GAAOW,MAEM,OADJ,SAEE,CAACl9B,IAAKx1F,EAASm9G,qBAClBznB,OAAQi9B,EAAa3yH,EAASo9G,8BAGjC2U,GAAOhR,OACH,MAEC,OAGN/gH,EAAS+8G,qBACZtE,IAAUga,EAAO5gI,KAAK4mH,EAAMpqH,UAExB,MAAToqH,aAGIA,EAAMlnH,OACKvD,OAAS,SAGzB,YAGNikI,oBAAsB,SAASlR,EAAS5vG,EAAUshH,OAC/CG,EAAiBzjI,KAAK+iI,UAAUnR,GAChCn0F,EAAQ,EAER5sB,EAAW,IAAIs8G,EAAcntH,KAAMgiB,EAASqkF,IAAKrkF,EAASukF,QAC1D+iB,EAAQz4G,EAASk9G,qBAChBzE,MACOz4G,EAASg9G,eAChBvE,GAGAga,MACQ,IAAIt9C,OACT,QACAsjC,EAAMpqH,KAAK4D,QAAQ,IAAK,OAAOA,QAAQ,SAAU,UAC5CA,QAAQ,sBAAuB,uBAClC,eAGN0gI,EAAaxhH,EAASukF,OAAS11F,EAASo9G,0BAE/B,SAEL7rH,EAAQknH,EAAMlnH,MACdshI,EAActhI,EAAMvD,OACjB2kI,EAAaE,GAAa,KACzBd,EAAMxgI,EAAMyG,OAAO26H,MACnBZ,GAAOa,MAEM,OADJ,SAEE,CAACp9B,IAAKx1F,EAASm9G,qBAClBznB,OAAQi9B,EAAa3yH,EAASo9G,8BAGjC2U,GAAOhR,OACH,MAEC,OAGN/gH,EAASg9G,oBACZvE,IAAUga,EAAO5gI,KAAK4mH,EAAMpqH,UAExB,MAAToqH,UAGS,SAGV,WAOfxjC,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,cAAc,eAAe,kBAAkB,aAAa,wBAAwB,gBAAgB,gBAAgB,YAAY,eAAe,2BAA2B,uBAAuB,2BAA2B,mCAAmC,SAASP,EAAU/wE,EAAS+f,OAGnVi7D,EAAMjK,EAAS,aACf4Z,EAAO5Z,EAAS,cAChB43B,EAAc53B,EAAS,iBAAiB43B,YACxCtnG,EAAS0vE,EAAS,YAClB6sB,EAAe7sB,EAAS,uBAAuB6sB,aAC/C0Q,EAAYv9B,EAAS,eAAeu9B,UACpC8gB,EAAWr+C,EAAS,eAAeyuC,KACnCj0G,EAAQwlE,EAAS,WAAWxlE,MAC5Bw4G,EAAWhzC,EAAS,cAAcgzC,SAClCwC,EAAsBx1C,EAAS,0BAA0Bw1C,oBACzDgB,EAAkBx2C,EAAS,sBAAsBw2C,gBAEjD8H,EAAc,SAAS7wG,EAAMknC,QACxB4pE,aAAe,QACfC,aAAe,QACfC,cAAgB,QAChBC,aAAe,QACfC,UAAY,OACZC,aAAc,OAEdjF,UAAY,QACZxrH,GAAK,aAAemwH,EAAYO,UAChClF,UAAU7tH,SAAW,kBACfpR,KAAKwI,KAAK,YAEhBo7F,GAAG,aAAc5jG,KAAKokI,aAAa18H,KAAK1H,YACxCs3H,UAAYt3H,KAAKuM,SAAS7E,KAAK1H,MAEjB,iBAAR+yB,GAAqBA,EAAK4lF,YAC1B,IAAI2f,EAASvlG,SAEnB20F,aAAe,IAAIxK,EAAYl9G,WAC/B07H,YAAY3oG,QACZiuE,UAAY,IAAI6hB,EAAU7iH,QAExBk0G,aAAal0G,WACfqkI,QAAQpqE,KACN0xC,QAAQ,UAAW3rG,SAIlBmkI,KAAO,EAElB,aAEO70C,UAAUtvF,KAAMmyG,QACfupB,YAAc,SAAS/vC,GACpB3rF,KAAK2rF,UACAA,IAAIwN,eAAe,SAAUn5F,KAAKs3H,gBAEtC3rC,IAAMA,IACPiY,GAAG,SAAU5jG,KAAKs3H,WAElBt3H,KAAKskI,kBACAA,YAAY5I,YAAY17H,KAAK8iH,oBAEjCyhB,oBAEJzhB,YAAc,kBACR9iH,KAAK2rF,UAEX64C,eAAiB,SAASzmB,OACtBA,cACIS,aAAe,aACfF,gBAAkB,QAGvBlgH,EAAI4B,KAAKw+G,aAAa3/G,OACtBhB,EAAImC,KAAKu+G,kBAAkBv+G,KAAKw+G,aAAcT,GAAU,EACxD3/G,EAAIP,SACC2gH,aAAar3G,OAAOtJ,EAAGO,QACvBkgH,gBAAgBn3G,OAAOtJ,EAAGO,UAIlCmgH,kBAAoB,SAASkmB,EAAYv7H,WACtC6xD,EAAM,EACNggD,EAAK0pB,EAAW5lI,OAAS,EAEtBk8D,GAAOggD,GAAI,KACV2pB,EAAO3pE,EAAMggD,GAAO,EACpB55G,EAAIsjI,EAAWC,MAEfx7H,EAAM/H,IACAujI,EAAM,YACPx7H,EAAM/H,UAGJujI,IAFFA,EAAM,UAKZ3pE,EAAK,QAGXwpE,YAAc,gBACVtE,WAAY,OACZnhB,UAAY,QACZ6lB,gBAAkB,QAClBH,eAAe,GAChBxkI,KAAKskI,kBACAA,YAAY31H,MAAM,SAG1By1H,aAAe,SAASljI,OACrBi3G,EAAOj3G,EAAEuE,UACR++H,eAAersB,EAAKxpG,MAAM03F,WAG9B95F,SAAW,SAASic,QAChBy3G,WAAY,OACZvY,aAAan7G,SAASic,QACtBg8G,eAAeh8G,EAAM7Z,MAAM03F,SAE5Bu+B,EAAe5kI,KAAK6kI,4BAA4Br8G,GAC/CxoB,KAAK8kI,YAAa9kI,KAAK2jG,cAAiBn7E,EAAMu8G,cAC1CC,WAAWlmI,KAAK0pB,GACjBo8G,GAAuC,GAAvBA,EAAa/lI,aACxBomI,YAAYnmI,KAAK,CAClB40B,OAAQ,cACR4oG,MAAQsI,SAIXM,mBAAmBxmC,iBAGvB4lC,aAAetkI,KAAKskI,YAAY1I,gBAAgBpzG,QAChDmjF,QAAQ,SAAUnjF,SAEtBkwG,SAAW,SAAS3lG,QAChB44D,IAAI+sC,SAAS3lG,QACbiuE,UAAUgjB,OAAO,EAAG,QAEpBwgB,eAAe,QACfW,QAAU,QACVH,WAAa,QACbC,YAAc,QACdG,eAAeplI,KAAK2jG,mBACpB0hC,iBAAiB7xH,cAErBmlH,SACL34H,KAAKoR,SAAW,kBACLpR,KAAK2rF,IAAIgtC,iBAEf2M,aAAe,kBACTtlI,KAAKghG,gBAEX66B,SAAW,SAASx1B,UACdrmG,KAAKskI,YAAYzI,SAASx1B,SAEhConB,UAAY,SAASpnB,UACfrmG,KAAKskI,YAAY7W,UAAUpnB,SAEjCqnB,WAAa,SAASrnB,EAAKE,OAExB+iB,EADAY,EAASlqH,KAAKskI,YAAY7W,UAAUpnB,GAC7BllG,EAAI,KACD,MAAVolG,EAAgB,KACZ1oG,EAAIqsH,EAAOrrH,OAAS,IACpBmB,KAAK24G,QAAQtS,GAAKxnG,gBAEbhB,EAAI,EAAGA,EAAIqsH,EAAOrrH,cAClBqrH,EAAOrsH,GAAGuE,MAAMvD,SACZ0nG,GAFsB1oG,cAM/BqsH,EAAOrsH,OAGTyL,MAAQzL,IACR8Q,MAAQxN,EAAImoH,EAAMlnH,MAAMvD,OACvByqH,GAHI,WAKV8b,eAAiB,SAASG,WACtB5hC,aAAe4hC,OACfJ,QAAU,QACVH,WAAa,QACbC,YAAc,GAEfjlI,KAAKklI,yBACAA,mBAAmBzmC,SAExB8mC,EAAa,KACTv8C,EAAOhpF,UAENwlI,uBAAyB,aACrBN,mBAAmBzmC,SAEpBzV,EAAKi8C,YAAYpmI,WACZsmI,QAAQrmI,KAAK,CACd8yB,MAAO,OACPyoG,OAAQrxC,EAAKi8C,gBAEZA,YAAc,IAGnBj8C,EAAKg8C,WAAWnmI,WACXsmI,QAAQrmI,KAAK,CACd8yB,MAAO,MACPyoG,OAAQrxC,EAAKg8C,eAEZA,WAAa,IAGlBh8C,EAAKm8C,QAAQtmI,OAAS,KACV4mI,QAAQ,CAChB/xG,OAAQ,YACR1e,KAAM,CAACg0E,EAAKm8C,QAASn8C,GACrB+hC,MAAO/hC,EAAK08C,oBAGfA,iBAAkB,IAClBP,QAAU,SAEdD,mBAAqBhmC,EAAKN,YAAY5+F,KAAKwlI,+BAGnDtiC,cAAgB,WACbljG,KAAKwlI,6BACAA,+BAGRG,oBAAsB,CACvB7iC,KAAM,aACN8iC,KAAM,aACNpyH,MAAO,mBAEN6xH,eAAiB,kBACXrlI,KAAK2jG,cAAgB3jG,KAAK2lI,0BAEhChV,aAAe,kBACZ3wH,KAAK40H,iBACE11B,EAAK3B,aAAa,IAAKv9F,KAAKkmH,cAE5B,WAGV2f,eAAiB,SAAS38H,QACtBoqG,UAAU,cAAepqG,SAE7B0rH,eAAiB,kBACX50H,KAAK8lI,eAAiB9lI,KAAK6wH,MAAMkV,sBAEvCC,WAAa,SAAShgB,QAClB1S,UAAU,UAAW0S,SAEzBE,WAAa,kBACPlmH,KAAKimI,eAEXhgB,UAAY,SAASjkG,UACfhiB,KAAK8lI,cAAiB9jH,EAASukF,OAASvmG,KAAKimI,UAAa,QAEhEC,0BAA4B,SAAUC,QAClC7yB,UAAU,yBAA0B6yB,SAExChgB,0BAA4B,kBACtBnmH,KAAKomI,8BAGXC,YAAa,OACbC,aAAe,SAASC,QACpBjzB,UAAU,YAAaizB,SAE3BC,aAAe,kBACTxmI,KAAKqmI,iBAEXI,gBAAkB,gBACdH,cAActmI,KAAKqmI,kBAEvBK,oBAAsB,SAASrgC,EAAKra,GAChChsF,KAAK8jI,aAAaz9B,UACdy9B,aAAaz9B,GAAO,SACxBy9B,aAAaz9B,IAAQ,IAAMra,OAC3B2f,QAAQ,mBAAoB,UAEhCg7B,uBAAyB,SAAStgC,EAAKra,QACnC83C,aAAaz9B,SAAay9B,aAAaz9B,IAAQ,IAAIvjG,QAAQ,IAAMkpF,EAAW,SAC5E2f,QAAQ,mBAAoB,UAEhCi7B,eAAiB,kBACX5mI,KAAK6jI,mBAEXgD,eAAiB,SAASrf,QACtBqc,aAAe,WACXhmI,EAAE,EAAGA,EAAE2pH,EAAK3oH,OAAQhB,SACpBgmI,aAAarc,EAAK3pH,IAAM,sBAE5B8tG,QAAQ,mBAAoB,UAEhCm7B,iBAAmB,gBACfjD,aAAe,QACfl4B,QAAQ,mBAAoB,UAEhCo7B,cAAgB,SAAS1gC,EAAKra,QACb,IAAdA,MACY,kBACZA,OACK63C,aAAax9B,GAAOra,SAElBhsF,KAAK6jI,aAAax9B,QACxBsF,QAAQ,mBAAoB,UAEhCq7B,gBAAkB,SAAS3gC,UACrBrmG,KAAK6jI,aAAax9B,QACpBsF,QAAQ,mBAAoB,UAEhCgD,UAAY,SAASh9D,EAAOoqF,EAAO1xH,EAAM48H,OACtCxzH,EAAKzT,KAAKikI,YAEViD,EAAS,CACTv1F,MAAAA,EACAzyC,KAAOmL,GAAQ,OACfk5F,SAAyB,mBAARl5F,EAAqBA,EAAO,KAC7C0xH,MAAAA,EACAkL,UAAWA,EACXxzH,GAAAA,UAGAwzH,QACKlD,cAActwH,GAAMyzH,OACpBv7B,QAAQ,4BAERq4B,aAAavwH,GAAMyzH,OACnBv7B,QAAQ,qBAGVl4F,QAEN0zH,iBAAmB,SAASD,EAAQD,MAChCC,EAAOhyH,YAERzB,EAAKzT,KAAKikI,qBACPxwH,GAAKA,IACLwzH,UAAYA,EAEfA,QACKlD,cAActwH,GAAMyzH,OACpBv7B,QAAQ,4BAERq4B,aAAavwH,GAAMyzH,OACnBv7B,QAAQ,qBAGVu7B,SAENh4B,aAAe,SAASk4B,OACrBF,EAASlnI,KAAK+jI,cAAcqD,IAAapnI,KAAKgkI,aAAaoD,MAC1DF,OAGDG,EAAUH,EAAOD,QAAUjnI,KAAK+jI,cAAgB/jI,KAAKgkI,aACrDkD,WACQG,EAAQD,QACXz7B,QAAQu7B,EAAOD,QAAU,oBAAsB,4BAGvDK,WAAa,SAASL,UAChBA,EAAUjnI,KAAK+jI,cAAgB/jI,KAAKgkI,mBAG1CuD,UAAY,SAAS5xB,OACjB31G,KAAKwnI,iBAAkB,KACpBD,EAAY,IAAIzL,EAAgB,KAAM,oBAAqB,aAC1D0L,iBAAmBxnI,KAAKmnI,iBAAiBI,QAE7CC,iBAAiBxL,UAAUrmB,SAE/B8xB,eAAiB,SAAS3mB,EAAUE,EAAQ+a,EAAOkL,GAC/B,iBAAVjmB,MACCA,IACCF,GAERib,MACO,gBAERpqF,EAAQ,IAAI7xB,EAAMghG,EAAU,EAAGE,EAAQhrG,EAAAA,YACrCvC,GAAKzT,KAAK2uG,UAAUh9D,EAAOoqF,EAAO,WAAYkL,GAC7Ct1F,QAEN+1F,eAAiB,SAASC,QACtBx7B,aAAew7B,OACfh8B,QAAQ,mBAAoB,UAEhCi8B,eAAiB,kBACX5nI,KAAKmsG,cAAgB,SAE3B07B,iBAAmB,gBACfH,eAAe,UAEnB3O,eAAiB,SAAShmG,OACvB3qB,EAAQ2qB,EAAK3qB,MAAM,qBAEd4wH,aADL5wH,EACoBA,EAAM,GAEN,WAGvB0gG,aAAe,SAASzC,EAAKE,OAC1BkX,EAAOz9G,KAAK24G,QAAQtS,GAEpByhC,GAAU,KACVvhC,EAAS,QACGkX,EAAK50G,OAAO09F,EAAS,GAAGn+F,MAAMpI,KAAK+mH,UAE9C+gB,QACWrqB,EAAK50G,OAAO09F,GAAQn+F,MAAMpI,KAAK+mH,UAE3C+gB,MACInyB,EAAK31G,KAAK+mH,gBACT,QAAQrkH,KAAK+6G,EAAKz6G,MAAMujG,EAAO,EAAGA,EAAO,IAC1CoP,EAAK,UAELA,EAAK31G,KAAK8mH,eAEdn4G,EAAQ43F,KACR53F,EAAQ,EAAG,cAIJA,GAAS,GAAK8uG,EAAK50G,OAAO8F,GAAOvG,MAAMutG,gBAI9CzmG,EAAMq3F,EACHr3F,EAAMuuG,EAAK5+G,QAAU4+G,EAAK50G,OAAOqG,GAAK9G,MAAMutG,eAI5C,IAAI71F,EAAMumF,EAAK13F,EAAO03F,EAAKn3F,SAEjCq2G,cAAgB,SAASlf,EAAKE,WAC3BwhC,EAAY/nI,KAAK8oG,aAAazC,EAAKE,GACnCkX,EAAOz9G,KAAK24G,QAAQovB,EAAU74H,IAAIm3F,KAE/BoX,EAAK50G,OAAOk/H,EAAU74H,IAAIq3F,QAAQn+F,MAAM,YACjC8G,IAAIq3F,QAAU,SAErBwhC,QAEN7O,eAAiB,SAASC,QACtBxtC,IAAIutC,eAAeC,SAEvBC,eAAiB,kBACXp5H,KAAK2rF,IAAIytC,uBAEf4O,aAAe,SAASC,QAAkB30B,UAAU,YAAa20B,SACjEC,aAAe,kBAAoBloI,KAAKmoI,iBACxCC,kBAAoB,SAASlnI,OAC1BsmH,EAAOtmH,EAAEuE,UACR6+H,YAAY31H,MAAM64G,EAAKv8C,YACvB0gC,QAAQ,kBAAmBzqG,SAG/Bk1H,OAAS,QACTvF,MAAQ,UACRwX,QAAU,UACVhE,QAAU,SAASpqE,EAAMinC,MACtBjnC,GAAwB,iBAATA,EAAmB,IAC9BA,EAAKg6D,oBACEj0H,KAAKsoI,cAAcruE,OAC1BhoD,EAAUgoD,EACVzwD,EAAOyI,EAAQzI,YAEZywD,GAAQ,mBAEdj6D,KAAKo2H,OAAO,wBACRA,OAAO,iBAAmB,IAAIuN,GAEnC3jI,KAAKo2H,OAAO5sH,KAAUyI,cACjBq2H,cAActoI,KAAKo2H,OAAO5sH,YACzB03F,UAGLmnC,QAAU7+H,IACRusG,WAAW,CAAC,OAAQvsG,GAAO,SAAS7H,MACnC3B,KAAKqoI,UAAY7+H,SACV03F,GAAMA,IACblhG,KAAKo2H,OAAO5sH,KAAUyI,OACjBq2H,cAActoI,KAAKo2H,OAAO5sH,IACxB7H,GAAKA,EAAEoyH,SACV,IAAIpyH,EAAEoyH,KAAK9hH,GACVA,SACImkH,OAAO5sH,GAAQ7H,IAClBs1H,IAAMztH,QAEP8+H,cAAc3mI,OAEjBu/F,KACRx5F,KAAK1H,OACFA,KAAK6wH,YACDyX,cAActoI,KAAKo2H,OAAO,kBAAkB,SAGpDkS,cAAgB,SAASruE,EAAMsuE,MAC3BA,SACIF,QAAUpuE,EAAKg9D,KACpBj3H,KAAK6wH,QAAU52D,QAGd42D,MAAQ52D,OAERuuE,cAEDxoI,KAAKmoI,iBACAM,mBAEL1N,EAAY9gE,EAAKg6D,uBAEa,IAA/B8G,EAAU73H,iBAAgC,KACrCklI,EAAoBpoI,KAAKooI,kBAAkB1gI,KAAK1H,QAC1CkD,iBAAiB,SAAUklI,MAGpCpoI,KAAKskI,iBAODA,YAAY7I,aAAaV,OAPX,MACduJ,YAAc,IAAIxJ,EAAoBC,OACvCj8B,EAAQ9+F,UACPskI,YAAYphI,iBAAiB,UAAU,SAAShC,KAC3CyqG,QAAQ,kBAAmBzqG,WAMpCojI,YAAY5I,YAAY17H,KAAK8iH,oBAE7BiE,QAAU9sD,EAAK8sD,aACfD,WAAa7sD,EAAK6sD,WAGlByhB,IACGtuE,EAAKyuE,mBACAA,gBAAgB1oI,WACpByzG,SAASk1B,WAAWx4H,IAAIzK,KAAK1F,KAAMA,KAAK4oI,kBACxC7G,YAAY9nE,EAAK4uE,mBACjBvE,YAAY31H,MAAM,QAClBs1F,MAAM,sBAIdukC,YAAc,WACXxoI,KAAKk7H,eACAA,QAAQ4N,iBACR5N,QAAU,YAIlBuN,aAAe,oBAEPvN,QAAUl7H,KAAK6wH,MAAMqF,aAAal2H,YAClCkB,KACE2a,KAAK,wBAAyB3a,QAChCg6H,QAAU,YAGlB6N,QAAU,kBACJ/oI,KAAK6wH,YAGXmY,WAAa,OACbC,aAAe,SAASh7C,GACrBjuF,KAAKgpI,aAAe/6C,GAAat6E,MAAMs6E,UAGtC+6C,WAAa/6C,OACb0d,QAAQ,kBAAmB1d,UAE/Bi7C,aAAe,kBACTlpI,KAAKgpI,iBAGXG,YAAc,OACdC,cAAgB,SAASl7C,GACtBluF,KAAKmpI,cAAgBj7C,GAAcv6E,MAAMu6E,UAGxCi7C,YAAcj7C,OACdyd,QAAQ,mBAAoBzd,UAEhCm7C,cAAgB,kBACVrpI,KAAKmpI,kBAEXG,eAAiB,uBACbC,gBACDvpI,KAAK6nH,YACEl/G,KAAKD,IAAI1I,KAAKwpI,wBAAyBxpI,KAAKypI,aAChDzpI,KAAKypI,kBAGXD,sBAAwB,cACI,MAAzBxpI,KAAK0pI,wBAAiC1pI,KAAK0pI,qBAC3Cn8C,EAAQ,cACPs6B,YAAYljH,SAAQ,SAAS/C,GAC1BA,GAAKA,EAAE6nI,YAAcl8C,MACb3rF,EAAE6nI,gBAEXzpI,KAAK2pI,gBAAkBp8C,QAG7Bg8C,cAAgB,SAASK,MACtB5pI,KAAKigI,WAAa2J,EAAO,SACpB3J,WAAY,EAEbjgI,KAAK4+G,oBACE5+G,KAAKypI,YAAczpI,KAAK6pI,mBAE/B1rB,EAAQn+G,KAAK2rF,IAAIitC,cACjBkR,EAAQ9pI,KAAK2kI,gBACboF,EAAoB,EACpBC,EAAY,EACZrkB,EAAW3lH,KAAKi/H,UAAU+K,GAC1BC,EAAYtkB,EAAWA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAC5C+tC,EAAMo6D,EAAMt/G,OAEPhB,EAAI,EAAGA,EAAIkmD,EAAKlmD,IAAK,IACtBA,EAAIosI,EAAW,OACXtkB,EAASz2G,IAAIm3F,IAAM,IACdtiD,aAEE/jD,KAAKi/H,UAAU+K,MACHrkB,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAGhC,MAAZ8zH,EAAMjsI,OACAA,GAAKmC,KAAKkqI,sBAAsB/rB,EAAMtgH,IAAI,IAEhDisI,EAAMjsI,GAAKksI,MACSD,EAAMjsI,SAE7B4rI,YAAcM,SAGtBpxB,QAAU,SAAStS,UACbrmG,KAAK2rF,IAAIgtB,QAAQtS,SAEvBizB,SAAW,SAASrX,EAAUC,UACxBliH,KAAK2rF,IAAI2tC,SAASrX,EAAUC,SAElC9V,UAAY,kBACNpsG,KAAK2rF,IAAIygB,kBAEfwD,aAAe,SAASj+D,UAClB3xC,KAAK2rF,IAAIikB,aAAaj+D,GAAS3xC,KAAKghG,UAAUgC,kBAEpD3wC,OAAS,SAASrwC,EAAU+Q,UACtB/yB,KAAK2rF,IAAIt5B,OAAOrwC,EAAU+Q,SAEhCs1D,OAAS,SAAS12C,UACZ3xC,KAAK2rF,IAAItD,OAAO12C,SAEtBgoF,gBAAkB,SAAS1X,EAAUC,UAC/BliH,KAAK2rF,IAAIguC,gBAAgB1X,EAAUC,SAEzCioB,YAAc,SAAS9P,EAAQ+P,MAC3B/P,EAAOx7H,aAGPimI,WAAY,UACbuF,EAAgB,KACXxsI,EAAIw8H,EAAOx7H,OAAS,MAAGhB,EAASA,IAAK,KACtC2qB,EAAQ6xG,EAAOx8H,GACA,OAAf2qB,EAAMoJ,YACD+5D,IAAI2uC,aAAa9xG,EAAM6xG,UAExBr6H,KAAKsqI,kBAAkB9hH,EAAM6xG,QAAQ,EAAMgQ,MAEzChQ,OAAO11H,SAAQ,SAAS4lI,QACrBrK,SAASqK,EAAUjO,SACzBt8H,kBAGN8kI,WAAY,KAEb9kI,KAAKkkI,cACJkG,GACDpqI,KAAKghG,UAAUD,kBAAkBspC,GAC9BA,SAENG,YAAc,SAASnQ,EAAQ+P,MAC3B/P,EAAOx7H,aAGPimI,WAAY,UACbuF,EAAgB,KACXxsI,EAAI,EAAGA,EAAIw8H,EAAOx7H,OAAQhB,IAAK,KAChC2qB,EAAQ6xG,EAAOx8H,GACA,OAAf2qB,EAAMoJ,aACD+5D,IAAIyuC,YAAY5xG,EAAM6xG,UAEvBr6H,KAAKsqI,kBAAkB9hH,EAAM6xG,QAAQ,EAAOgQ,gBAGnDvF,WAAY,KAEb9kI,KAAKkkI,cACJkG,GACDpqI,KAAKghG,UAAUD,kBAAkBspC,GAC9BA,SAENI,cAAgB,SAASC,QACrBxG,YAAcwG,QAGlBJ,kBAAoB,SAASjQ,EAAQsQ,EAAQN,cAC5BO,UACPD,EAA0B,WAAjBC,EAAMl3G,OAAuC,WAAjBk3G,EAAMl3G,WAIlDie,EAAO8lC,EADPjvD,EAAQ6xG,EAAO,KAGfG,EAAShyG,GACD1I,EAAMqiG,WAAW35F,EAAM7Z,MAAO6Z,EAAMtZ,KAGpC4Q,EAAMqiG,WAAW35F,EAAM7Z,MAAO6Z,EAAM7Z,eAIvC9Q,EAAI,EAAGA,EAAIw8H,EAAOx7H,OAAQhB,IAE3B28H,IADIH,EAAOx8H,OAEH2qB,EAAM7Z,UACVgjC,EAAMwvE,QAAQ1pC,EAAM4uB,IAAK5uB,EAAM8uB,WACzBkb,SAAShqC,KAEXjvD,EAAMtZ,IACgC,GAA1CyiC,EAAMwvE,QAAQ1pC,EAAM4uB,IAAK5uB,EAAM8uB,WACzBmb,OAAOjqC,OAITjvD,EAAM7Z,UACVgjC,EAAMwvE,QAAQ1pC,EAAM4uB,IAAK5uB,EAAM8uB,YACvBzmF,EAAMqiG,WAAW35F,EAAM7Z,MAAO6Z,EAAM7Z,YAKnC,MAAjB07H,EAAuB,CACuC,IAA1DvqH,EAAM6iG,cAAc0nB,EAAc17H,MAAOgjC,EAAMhjC,WACjCA,MAAM43F,QAAU50D,EAAMziC,IAAIq3F,OAAS50D,EAAMhjC,MAAM43F,SAC/Cr3F,IAAIq3F,QAAU50D,EAAMziC,IAAIq3F,OAAS50D,EAAMhjC,MAAM43F,YAG3DD,EAAM+jC,EAAcjpB,aAAazvE,GAC1B,GAAP20D,IACMmb,SAAS4oB,EAAc17H,WACtB23F,KACDob,OAAO2oB,EAAcn7H,YAI5ByiC,QAEN7uC,QAAU,SAAS6uC,EAAO5e,UACpB/yB,KAAK2rF,IAAI7oF,QAAQ6uC,EAAO5e,SAE9Bw9E,SAAW,SAASs6B,EAAWC,EAAYv7H,OACxCwjB,EAAO/yB,KAAK4vG,aAAai7B,GACzBvO,EAAQt8H,KAAK++H,gBAAgB8L,GAE7BE,EAAUjrH,EAAMqiG,WAAW2oB,EAAYA,OACtCv7H,EAAM,MACF84E,OAAOwiD,OACRpb,EAAUob,EAAUl8H,MAAM03F,IAAMwkC,EAAU37H,IAAIm3F,KAC9C2kC,EAAWvb,GAAWob,EAAU37H,IAAIq3F,OAASskC,EAAUl8H,MAAM43F,OAASskC,EAAU37H,IAAIq3F,UAEhFwkC,EAAQp8H,MAAM03F,KAAOwkC,EAAU37H,IAAIm3F,KAAO0kC,EAAQp8H,MAAM43F,OAASskC,EAAU37H,IAAIq3F,WACvE53F,MAAM43F,QAAUykC,GACxBD,EAAQ77H,IAAIm3F,KAAOwkC,EAAU37H,IAAIm3F,KAAO0kC,EAAQ77H,IAAIq3F,OAASskC,EAAU37H,IAAIq3F,WACnEr3F,IAAIq3F,QAAUykC,IAE1Bvb,GAAWsb,EAAQp8H,MAAM03F,KAAOwkC,EAAU37H,IAAIm3F,QACtC13F,MAAM03F,KAAOopB,IACbvgH,IAAIm3F,KAAOopB,QAInBvgH,IAAMlP,KAAKqyD,OAAO04E,EAAQp8H,MAAOokB,GACrCupG,EAAMz9H,OAAQ,KACVosI,EAAWJ,EAAUl8H,MACrBu8H,EAAWH,EAAQp8H,MAEnBq8H,GADAvb,EAAUyb,EAAS7kC,IAAM4kC,EAAS5kC,IACvB6kC,EAAS3kC,OAAS0kC,EAAS1kC,aACrC25B,SAAS5D,EAAMnzH,KAAI,SAASvF,YACzBA,EAAEma,SACApP,MAAM03F,KAAO4kC,EAAS5kC,QACtB13F,MAAM43F,QAAUykC,GAClBpnI,EAAEsL,IAAIm3F,KAAO4kC,EAAS5kC,QACpBn3F,IAAIq3F,QAAUykC,KAClBr8H,MAAM03F,KAAOopB,IACbvgH,IAAIm3F,KAAOopB,EACN7rH,aAIRmnI,QAENI,WAAa,SAASrqB,EAAUE,EAAQoqB,KAC1BA,EAAatoI,QAAQ,MAAO9C,KAAK2wH,wBACvCtqB,EAAIya,EAAUza,GAAK2a,EAAQ3a,SAC3B1a,IAAIspC,aAAa,CAAC5uB,IAAAA,EAAUE,OAAQ,GAAI6kC,SAEhDC,YAAc,SAAU15F,WACrB25F,EAAW35F,EAAM0wE,eACjBkpB,EAAc,IAAIzrH,EAAM,EAAG,EAAG,EAAG,GACjCgZ,EAAO94B,KAAKkmH,aAEProH,EAAIytI,EAAS38H,MAAM03F,IAAKxoG,GAAKytI,EAASp8H,IAAIm3F,MAAOxoG,EAAG,KACrD4/G,EAAOz9G,KAAK24G,QAAQ96G,KAEZ8Q,MAAM03F,IAAMxoG,IACZqR,IAAIm3F,IAAMxoG,UACb4pD,EAAI,EAAGA,EAAI3uB,GACM,KAAlB2kF,EAAK50G,OAAO4+C,KADQA,GAGxBA,EAAI3uB,GAA0B,MAAlB2kF,EAAK50G,OAAO4+C,MACZ94C,MAAM43F,OAAS9+C,IACfv4C,IAAIq3F,OAAS9+C,EAAI,MAEjB94C,MAAM43F,OAAS,IACfr3F,IAAIq3F,OAAS9+C,QAExB4gC,OAAOkjD,UAIfC,WAAa,SAASvpB,EAAUC,EAASjI,QAC/Bj6G,KAAK4gI,gBAAgB3e,KACtBjiH,KAAK2gI,cAAcze,GACzBjI,EAAM,EAAG,KACL5T,EAAMrmG,KAAK4gI,gBAAgB3e,EAAWhI,IAChC,SAAU,MAChBwxB,EAAOplC,EAAI4b,UACRhI,EAAM,EAAG,KACZ5T,MAAAA,EAAMrmG,KAAK2gI,cAAcze,EAAUjI,IAC7Bj6G,KAAK2rF,IAAIygB,YAAY,SAAU,EACrCq/B,EAAOplC,EAAI6b,MACZ,GACQliH,KAAK0rI,mBAAmBzpB,GAE/BwpB,KADMzrI,KAAK0rI,mBAAmBxpB,IACbD,EAAW,MAGhCtwE,EAAQ,IAAI7xB,EAAMmiG,EAAU,EAAGC,EAAS9pG,OAAOuzH,WAC/CrP,EAAQt8H,KAAK++H,gBAAgBptF,GAAOxoC,KAAI,SAASvF,YAC7CA,EAAEma,SACJpP,MAAM03F,KAAOolC,IACbv8H,IAAIm3F,KAAOolC,EACN7nI,KAGPu6G,EAAe,GAAPlE,EACNj6G,KAAK2rF,IAAI2tC,SAASrX,EAAUC,GAC5BliH,KAAK2rF,IAAIguC,gBAAgB1X,EAAUC,eACpCv2B,IAAI8tC,gBAAgBxX,EAASwpB,EAAMttB,KAClCt/G,QAAUmB,KAAKkgI,SAAS5D,GACvBmP,QAENG,YAAc,SAAS3pB,EAAUC,UAC3BliH,KAAKwrI,WAAWvpB,EAAUC,YAEhC2pB,cAAgB,SAAS5pB,EAAUC,UAC7BliH,KAAKwrI,WAAWvpB,EAAUC,EAAS,SAEzC4pB,eAAiB,SAAS7pB,EAAUC,UAC9BliH,KAAKwrI,WAAWvpB,EAAUC,EAAS,SAIzCwpB,mBAAqB,SAASrlC,UACxB19F,KAAKD,IAAI,EAAGC,KAAKkN,IAAIwwF,EAAKrmG,KAAK2rF,IAAIygB,YAAY,UAGrD2/B,iBAAmB,SAAS1lC,EAAKE,UAC9BA,EAAS,EACF,EACJ59F,KAAKkN,IAAI7V,KAAK2rF,IAAIgtB,QAAQtS,GAAKxnG,OAAQ0nG,SAI7CoxB,wBAA0B,SAAStxB,EAAKE,QAChC59F,KAAKD,IAAI,EAAG69F,GAEjBF,EAAM,IACA,IACG,MACN,KACCtiD,EAAM/jD,KAAK2rF,IAAIygB,YACf/F,GAAOtiD,KACDA,EAAM,IACH/jD,KAAK2rF,IAAIgtB,QAAQ50D,EAAI,GAAGllD,UAExB8J,KAAKkN,IAAI7V,KAAK2rF,IAAIgtB,QAAQtS,GAAKxnG,OAAQ0nG,SAIjD,CACHF,IAAAA,EACAE,OAAAA,SAIHo5B,qBAAuB,SAAShuF,GAC7BA,EAAMhjC,MAAM03F,IAAM,KACZ13F,MAAM03F,IAAM,IACZ13F,MAAM43F,OAAS,KAEf53F,MAAM43F,OAASvmG,KAAK+rI,iBACtBp6F,EAAMhjC,MAAM03F,IACZ10D,EAAMhjC,MAAM43F,YAIhBxiD,EAAM/jD,KAAK2rF,IAAIygB,YAAc,SAC7Bz6D,EAAMziC,IAAIm3F,IAAMtiD,KACV70C,IAAIm3F,IAAMtiD,IACV70C,IAAIq3F,OAASvmG,KAAK2rF,IAAIgtB,QAAQ50D,GAAKllD,UAEnCqQ,IAAIq3F,OAASvmG,KAAK+rI,iBACpBp6F,EAAMziC,IAAIm3F,IACV10D,EAAMziC,IAAIq3F,QAGX50D,QAENk4F,WAAa,QACbjrB,cAAe,OACfotB,gBAAkB,CACnBn2H,IAAM,KACNnN,IAAM,WAELujI,eAAiB,SAASC,MACvBA,GAAelsI,KAAK4+G,aAAc,SAC7BA,aAAestB,OACfjM,WAAY,OACZuE,eAAe,GAChB0H,EAAa,KACTnoF,EAAM/jD,KAAKosG,iBACV0S,UAAY/8G,MAAMgiD,QAClBg8E,gBAAgB,EAAGh8E,EAAM,QAG7B4nD,QAAQ,yBAGhBwgC,eAAiB,kBACXnsI,KAAK4+G,mBAEXwtB,kBAAoB,SAASv2H,EAAKnN,GAC/B1I,KAAKgsI,gBAAgBn2H,MAAQA,GAAO7V,KAAKgsI,gBAAgBtjI,MAAQA,SAC5DsjI,gBAAkB,CAAEn2H,IAAAA,EAAUnN,IAAAA,QAC9Bu3H,WAAY,OACZvY,aAAavI,cACdn/G,KAAK4+G,mBACAjT,QAAQ,yBAGpB0gC,gBAAkB,SAASC,EAAcC,OACtCC,EAASxsI,KAAKgsI,gBACdQ,EAAO9jI,IAAM,MACJ,CAACmN,IAAK02H,EAAc7jI,IAAK6jI,QAClCE,EAAYzsI,KAAK0sI,oBAAoBJ,EAAcE,EAAO32H,IAAK22H,EAAO9jI,YACtE+jI,GAAazsI,KAAK6pI,YAAc4C,EAAY,SACvC5C,WAAa4C,OACbxM,WAAY,EACbjgI,KAAK4+G,oBACAmhB,gBAAgB,EAAG//H,KAAKosG,YAAc,QACtCo4B,eAAe,QACf74B,QAAQ,qBAEV,SAKV+gC,oBAAsB,SAASD,EAAW52H,EAAKnN,UAC5CmN,MACYlN,KAAKD,IAAImN,EAAK42H,IAE1B/jI,MACYC,KAAKkN,IAAInN,EAAK+jI,IAEvBA,QAENE,aAAe,kBACT3sI,KAAK6pI,iBAEX+C,aAAe,SAAUx8G,QACrBg8G,kBAAkBh8G,EAAOA,SAE7By8G,kBAAoB,iBACd,CACHh3H,IAAM7V,KAAKgsI,gBAAgBn2H,IAC3BnN,IAAM1I,KAAKgsI,gBAAgBtjI,WAI9Bm8H,4BAA8B,SAASr8G,OACpC0jH,EAAclsI,KAAK4+G,aACnBlrF,EAASlL,EAAMkL,OACf/kB,EAAQ6Z,EAAM7Z,MACdO,EAAMsZ,EAAMtZ,IACZ+yG,EAAWtzG,EAAM03F,IACjB6b,EAAUhzG,EAAIm3F,IACdtiD,EAAMm+D,EAAUD,EAChB2iB,EAAe,aAEdzE,WAAY,EACN,GAAPp8E,KACe,WAAXrwB,EAAqB,MAChBw4G,EAAc,YAAc,mBAAmB/kI,OAAO86G,EAAUl+D,OAEjEi7E,EAAYh/H,KAAKi/H,YACNj/H,KAAK++H,gBAAgBv2G,QAC/Bs3G,YAAY8E,OAGbpH,EAAM,KADN7X,EAAW3lH,KAAK4lH,YAAY12G,EAAIm3F,KAEtB,GACD62B,eAAehuH,EAAIm3F,IAAKn3F,EAAIq3F,OAAQ53F,EAAM43F,OAASr3F,EAAIq3F,UACvDi2B,UAAUz4E,OAEf+oF,EAAiB9sI,KAAK4lH,YAAY3D,GAClC6qB,GAAkBA,IAAmBnnB,MACtBoF,MAAMpF,KACVmnB,KAET9N,EAAU7+H,QAAQwlH,GAAY,OAG9B6X,EAAMwB,EAAUngI,OAAQ2+H,IAAO,EACjC7X,EAAWqZ,EAAUxB,IACZ7uH,MAAM03F,KAAOn3F,EAAIm3F,OACjBm2B,UAAUz4E,KAIjBk+D,MACP,KACCjtG,EAAOjT,MAAMgiD,KACZinE,QAAQ/I,EAAU,OACnB3wG,EAAM46H,EAAclsI,KAAK8+G,UAAY9+G,KAAK2kI,kBAC1Cx9H,OAAOukB,MAAMpa,EAAK0D,GAClBgqH,EAAYh/H,KAAKi/H,UAEjBzB,EAAM,KADN7X,EAAW3lH,KAAK4lH,YAAY3D,GAElB,KACN3b,EAAMqf,EAASh0E,MAAMowE,cAAcpzG,EAAM03F,IAAK13F,EAAM43F,QAC7C,GAAPD,KACWqf,EAASr9G,MAAMqG,EAAM03F,IAAK13F,EAAM43F,aAE9Bi2B,SAASz4E,KACTm5E,eAAehb,EAAS,EAAGhzG,EAAIq3F,OAAS53F,EAAM43F,aAG3DD,MACS42B,eAAejb,EAAU,EAAG/yG,EAAIq3F,OAAS53F,EAAM43F,UAC/Ci2B,SAASz4E,MAEhBi7E,EAAU7+H,QAAQwlH,GAAY,OAG9B6X,EAAMwB,EAAUngI,OAAQ2+H,IAAO,KACjC7X,GAAAA,EAAWqZ,EAAUxB,IACZ7uH,MAAM03F,KAAO4b,KACbua,SAASz4E,WAKxBp7C,KAAKwkE,IAAI3kD,EAAM7Z,MAAM43F,OAAS/9E,EAAMtZ,IAAIq3F,QAC/B,WAAX7yE,MACe1zB,KAAK++H,gBAAgBv2G,QAC/Bs3G,YAAY8E,MAEV7gF,IAEP4hE,EAAW3lH,KAAK4lH,YAAY3D,OAEnBib,eAAejb,EAAUtzG,EAAM43F,OAAQxiD,UAIpDmoF,GAAelsI,KAAK8+G,UAAUjgH,QAAUmB,KAAK2rF,IAAIygB,qBACzC57F,MAAM,kEAEb2vH,WAAY,EAEb+L,OACKnM,gBAAgB9d,EAAUC,QAE1B8d,sBAAsB/d,EAAUC,GAElC0iB,QAGN5E,sBAAwB,SAAS/d,EAAUC,EAASxgH,QAChDijI,gBAAgB1iB,GAAY,UAC5B0iB,gBAAgBziB,GAAW,WAG/B6d,gBAAkB,SAAS9d,EAAUC,OAKlCgI,EACAvE,EALAxH,EAAQn+G,KAAK2rF,IAAIitC,cACjB5S,EAAUhmH,KAAKkmH,aACf6mB,EAAW/sI,KAAK8+G,UAChB2tB,EAAYzsI,KAAK6pI,WAIjBxjC,EAAM4b,QACAt5G,KAAKkN,IAAIqsG,EAAS/D,EAAMt/G,OAAS,GACpCwnG,GAAO6b,MACCliH,KAAK4lH,YAAYvf,EAAKsf,OAMpB,KACAiX,KAAK,SAASG,EAAaiQ,EAAKzmC,EAAQw6B,OACrCkM,KACe,MAAflQ,EAAqB,IACR/8H,KAAKktI,kBACFnQ,EAAa7S,EAAOrrH,SACzB,GAAKsuI,UACPtvI,EAAI,EAAGA,EAAIovI,EAAWpuI,OAAQhB,MACxBA,GAAKuvI,SAGPptI,KAAKktI,kBACd/uB,EAAM6uB,GAAKxrC,UAAUu/B,EAAYx6B,GACjC2jB,EAAOrrH,UAENqrH,EAAOvzG,OAAOs2H,IACzBvlI,KAAK1H,MACP2lH,EAASz2G,IAAIm3F,IACb8X,EAAMwH,EAASz2G,IAAIm3F,KAAKxnG,OAAS,KAG5B8mH,EAASh3G,MAAM03F,KAAOrmG,KAAKqtI,mBAAmBnjB,EAAQuiB,EAAWzmB,KACpEL,EAASz2G,IAAIm3F,IAAM,MA1BhBrmG,KAAKktI,kBAAkB/uB,EAAM9X,MAC7BA,GAAOrmG,KAAKqtI,mBAAmBnjB,EAAQuiB,EAAWzmB,aA+BnEmnB,EAAoB,EACpBC,EAAoB,aAwdHjsI,WACbA,EAAI,QAEDA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,YAnf1BksI,mBAAqB,SAASnjB,EAAQuiB,EAAWzmB,MAC7B,GAAjBkE,EAAOrrH,aACA,OAGPggH,EAAS,GACTyuB,EAAgBpjB,EAAOrrH,OACvB0uI,EAAY,EAAGC,EAAe,EAE9BC,EAASztI,KAAK0tI,YAEdC,EAAmB3tI,KAAK4tI,kBACxBC,EAAYpB,GAAa9jI,KAAKD,IAAI,EAAIs9G,EAAS,KACvB,IAArB2nB,EAA6B,EAAIhlI,KAAK2zB,MAAMmwG,EAAY,cAuB7ChlB,OACVqmB,EAAY5jB,EAAOlnH,MAAMuqI,EAAW9lB,GACpC1jE,EAAM+pF,EAAUjvI,SACV2J,KAAK,IACV1F,QAAQ,OAAO,cACL,KAEVA,QAAQ,MAAM,cACJ,KAGV+7G,EAAOhgH,0BA/BRkvI,EAAc,KACA,IAAdF,SACOE,KACPJ,UACS9vI,EAAI,EAAGA,EAAIqsH,EAAOrrH,OAAQhB,IAAK,KAChCyrH,EAAQY,EAAOrsH,MA1BvB,IA2BQyrH,KACe,UA3BzB,IA4BeA,MA3BT,IA6BSA,oBADUtD,UAOvBynB,IAA+B,IAArBE,OACK3nB,GACZr9G,KAAKkN,IAAIk4H,EAAaF,GAchBG,KACFjvB,OAAS2R,MAEJ3sE,IACTjlD,KAAK0uI,KACA/lB,UAEZiJ,EAAS,EACN4c,EAAgBC,EAAYd,EAAY/b,GAAQ,KAC/CpoH,EAAQilI,EAAYd,EAAY/b,KAChCxG,EAAO5hH,EAAQ,IA/Df,IA+D8B4hH,EAAO5hH,IA/DrC,KAgESA,WAGT4hH,EAAO5hH,IAAU6kI,GAAqBjjB,EAAO5hH,IAAU8kI,WAsBvDa,EAAWtlI,KAAKD,IAAIJ,SAAgC,IAAKilI,EAAY,GAClEjlI,EAAQ2lI,GAAY/jB,EAAO5hH,GAAS6kI,UAGvCM,EAAQ,MACDnlI,EAAQ2lI,GAAY/jB,EAAO5hH,GAAS6kI,YAGpC7kI,EAAQ2lI,GAlGT,GAkGqB/jB,EAAO5hH,kBAI3BA,EAAQ2lI,GAAY/jB,EAAO5hH,GArGlC,QAyGAA,EAAQ2lI,MACG3lI,IA9GR,GAkHH4hH,IADIqjB,EAAYd,UAGXnkI,EAAQooH,cA5CDpoH,GAASilI,EAAY,GACzBrjB,EAAO5hH,IAAU6kI,EADW7kI,QAKhCA,EAAQilI,EAAW,GACVjlI,kBAGLilI,EAAYd,EACRnkI,EAAQ4hH,EAAOrrH,QACnBqrH,EAAO5hH,IAAU8kI,EADU9kI,QAK/BA,GAAS4hH,EAAOrrH,eAGXyJ,WA4BVu2G,QAENquB,kBAAoB,SAASn8H,EAAKjB,OAE/Bk2G,EADA10G,EAAM,KAEDxB,GAAU,UAEVjS,EAAI,EAAGA,EAAIkT,EAAIlS,OAAQhB,IAAK,KAC7BsD,EAAI4P,EAAIwkD,WAAW13D,MACd,GAALsD,EAAQ,GACEnB,KAAKi/G,iBAAiB3tG,EAAIzS,OAASiR,KACzChR,KA5HN,YA6HWX,EAAI,EAAGA,EAAI6nH,EAAS7nH,MACrBW,KA7HJ,SAgIM,IAALqC,IACDrC,KAnIJ,IAoIOqC,EAAI,IAAMA,EAAI,IAAQA,EAAI,IAAMA,EAAI,KACvCrC,KAtIE,GAwIDqC,GAAK,MAAU69G,EAAY79G,KAC5BrC,KA7IL,EACI,KA8ICA,KA/IL,UAkJAwS,QAEN44H,sBAAwB,SAASn5H,EAAKm9H,EAAiBC,MACjC,GAAnBD,QACO,CAAC,EAAG,OAKX/sI,EAAGolG,MAJgB,MAAnB2nC,MACkBl4H,EAAAA,KACPm4H,GAAgB,EAG1B5nC,EAAS,EAAGA,EAASx1F,EAAIlS,SAEjB,MADLkS,EAAIwkD,WAAWgxC,OAECvmG,KAAKi/G,iBAAiBkvB,GAEjChtI,GAAK,MAAU69G,EAAY79G,MAChB,KAEA,IAEhBgtI,EAAeD,IAVe3nC,WAe/B,CAAC4nC,EAAc5nC,SAGrBshB,YAAc,UACdumB,aAAe,SAAS/nC,MACrBrmG,KAAK6nH,gBACDvmH,EAAItB,KAAK6nH,YAAYxhB,IAAQrmG,KAAK6nH,YAAYxhB,GAAKynB,UAAY,SAE/D,SACH9tH,KAAK4+G,cAAiB5+G,KAAK8+G,UAAUzY,GAG/BrmG,KAAK8+G,UAAUzY,GAAKxnG,OAAS,EAAIyC,EAFjC,EAAIA,QAKd+sI,gBAAkB,SAAShoC,UACvBrmG,KAAK4+G,cAAiB5+G,KAAK8+G,UAAUzY,GAG/BrmG,KAAK8+G,UAAUzY,GAAKxnG,OAAS,EAF7B,QAMVyvI,iBAAmB,SAASjiC,MACzBrsG,KAAK4+G,aAAc,KACfpzD,EAAMxrD,KAAKqmH,yBAAyBha,EAAWj0F,OAAOuzH,WACtD9sB,EAAS7+G,KAAK8+G,UAAUtzD,EAAI66C,YACzBwY,EAAOhgH,QAAUggH,EAAO,GAAKrzD,EAAI+6C,OAASsY,EAAOE,OAAS,SAE1D,QAGVwvB,uBAAyB,SAASliC,OAC/B7gD,EAAMxrD,KAAKqmH,yBAAyBha,EAAWj0F,OAAOuzH,kBACnD3rI,KAAKwuI,uBAAuBhjF,EAAI66C,IAAK76C,EAAI+6C,cAE/CkoC,yBAA2B,SAAS1wB,EAAQ2wB,OACzCriC,EAAYrsG,KAAKwsG,oBAAoBuR,EAAQ2wB,UAC1C1uI,KAAKuuI,uBAAuBliC,SAElCqa,iCAAmC,SAAS3I,EAAQ2wB,OACjDriC,EAAYrsG,KAAKwsG,oBAAoBuR,EAAQ2wB,UAC1C1uI,KAAKqmH,yBAAyBha,EAAWj0F,OAAOuzH,UAAY,UAElEgD,gBAAkB,SAAStoC,UACvBrmG,KAAK4+G,aAGC5+G,KAAK8+G,UAAUzY,gBAGzB4Y,iBAAmB,SAASkvB,UACtBnuI,KAAKimI,SAAWkI,EAAenuI,KAAKimI,eAI1C2I,oBAAsB,SAASviC,EAAW8hC,UACpCnuI,KAAKqmH,yBAAyBha,EAAW8hC,GAAc9nC,UAI7DwoC,uBAAyB,SAASxiC,EAAW8hC,UACvCnuI,KAAKqmH,yBAAyBha,EAAW8hC,GAAc5nC,aAE7D8f,yBAA2B,SAASha,EAAW8hC,EAAc/tH,MAC1DisF,EAAY,QACL,CAAChG,IAAK,EAAGE,OAAQ,OAExBkX,EAGAlX,EAFAwX,EAAS,EACT2wB,EAAY,EAEZroC,EAAM,EACNyoC,EAAY,EAEZzwB,EAAWr+G,KAAKs+G,gBAChBzgH,EAAImC,KAAKu+G,kBAAkBF,EAAUhS,GACrCjuG,EAAIigH,EAASx/G,UACbT,GAAKP,GAAK,GACNwoG,EAAMgY,EAASxgH,GACfkgH,EAAS/9G,KAAKw+G,aAAa3gH,OAC3BkxI,EAAU1iC,EAAYgS,EAASjgH,EAAI,QAEnC2wI,GAAW3wI,UAGf4wI,EAAShvI,KAAKosG,YAAc,EAC5BuZ,EAAW3lH,KAAKu/H,gBAAgBxhB,GAChCksB,EAAYtkB,EAAWA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAEzCqwF,GAAOgG,KAENhG,KADQrmG,KAAKouI,aAAarwB,IACR1R,GAAa0R,GAAUixB,OAGlCF,MAEM7E,MACAtkB,EAASz2G,IAAIm3F,IAAI,OACfrmG,KAAKu/H,gBAAgBxhB,EAAQ4H,IACjBA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,GAIhD+4H,SACKvwB,aAAa1/G,KAAKi/G,QAClBO,gBAAgBx/G,KAAKunG,OAI9Bsf,GAAYA,EAASh3G,MAAM03F,KAAO0X,IAC3B/9G,KAAK6gI,mBAAmBlb,KACtBA,EAASh3G,MAAM03F,YACjBA,EAAMyoC,GAAaziC,GAAa0R,EAASixB,QACzC,CACH3oC,IAAK2oC,EACLzoC,OAAQvmG,KAAK24G,QAAQq2B,GAAQnwI,UAG1BmB,KAAK24G,QAAQoF,KACT,SAEXL,EAAa,EAAGM,EAAar1G,KAAK2zB,MAAM+vE,EAAYhG,MACpDrmG,KAAK4+G,aAAc,KACfC,EAAS7+G,KAAK8+G,UAAUf,GACxBc,MACSA,EAAOb,GACbA,EAAa,GAAKa,EAAOhgH,WACXggH,EAAOE,SACRF,EAAOb,EAAa,IAAMa,EAAOA,EAAOhgH,OAAS,KACtD4+G,EAAKjc,UAAUktC,iBAKlB,IAAZtuH,GAAyBpgB,KAAK0nH,aAAa5J,UAAUzX,EAAM2X,EAAYD,EAAQC,OAChEh+G,KAAK0nH,aAAahH,YAAYtgG,OAEpCpgB,KAAKkqI,sBAAsBzsB,EAAM0wB,EAAezwB,GAAY,GACrE19G,KAAK4+G,cAAgB8vB,GAAanoC,MACtBA,EAAS,GAErBof,EACOA,EAAS4X,cAAcmR,GAE3B,CAACroC,IAAK0X,EAAQxX,OAAQmoC,SAE5BlsB,yBAA2B,SAASzE,EAAQ2wB,WACpB,IAAdA,MACHljF,EAAMxrD,KAAK23H,wBAAwB5Z,EAAO1X,IAAK0X,EAAOxX,eAEpDvmG,KAAK23H,wBAAwB5Z,EAAQ2wB,KAEtCljF,EAAI66C,MACD76C,EAAI+6C,WAIZ4R,EAFA9L,EAAY,EACZ4iC,EAAe,QAEZjvI,KAAKo4G,UAAU2F,EAAQ2wB,EAAW,QAE5Bv2B,EAAKxpG,MAAM03F,MACR8R,EAAKxpG,MAAM43F,YAGvBkf,EAAQpf,EAAM,EAGdgY,EAAWr+G,KAAKw+G,aAChB3gH,EAAImC,KAAKu+G,kBAAkBF,EAAUN,GACrC3/G,EAAIigH,EAASx/G,UACbT,GAAKP,GAAK,GACNwoG,EAAMgY,EAASxgH,GACfwuG,EAAYrsG,KAAKs+G,gBAAgBzgH,OACjCkxI,EAAUhxB,EAASM,EAASjgH,EAAI,QAEhC2wI,GAAW3wI,UAGfunH,EAAW3lH,KAAKu/H,gBAAgBl5B,GAChC4jC,EAAYtkB,EAAUA,EAASh3G,MAAM03F,IAAKrwF,EAAAA,EAEvCqwF,EAAM0X,GAAQ,IACb1X,GAAO4jC,EAAW,OACTtkB,EAASz2G,IAAIm3F,IAAM,GACf0X,aAEF/9G,KAAKu/H,gBAAgB9Z,EAAQE,IAClBA,EAASh3G,MAAM03F,IAAKrwF,EAAAA,SAGjCqwF,EAAM,KAGNrmG,KAAKouI,aAAa/nC,KACzBof,EAEFspB,SACKvwB,aAAa1/G,KAAKunG,QAClBiY,gBAAgBx/G,KAAKutG,QAG9By0B,EAAW,GACXnb,GAAYtf,GAAO4jC,KACRjqI,KAAK6gI,mBAAmBlb,EAAU5H,EAAQ2wB,KACtC/oB,EAASh3G,MAAM03F,QAEnBrmG,KAAK24G,QAAQoF,GAAQvc,UAAU,EAAGktC,KAC9B3wB,OAEfL,EAAa,KACb19G,KAAK4+G,aAAc,KACfswB,EAAUlvI,KAAK8+G,UAAUmwB,MACzBC,EAAS,SACLC,EAAkB,EACfrO,EAASjiI,QAAUqwI,EAAQC,cAIvBrO,EAASt/B,UAChB0tC,EAAQC,EAAkB,IAAM,EAAGrO,EAASjiI,UAEnCswI,EAAkB,EAAID,EAAQnwB,OAAS,SAIrD,CACH1Y,IAAKgG,EACL9F,OAAQmX,EAAa19G,KAAKkqI,sBAAsBpJ,GAAU,UAG7D0N,uBAAyB,SAASnoC,EAAKqoC,UACjC1uI,KAAKwiH,yBAAyBnc,EAAKqoC,GAAWnoC,aAEpDiG,oBAAsB,SAASuR,EAAQ2wB,UACjC1uI,KAAKwiH,yBAAyBzE,EAAQ2wB,GAAWroC,UAEvD+oC,gBAAkB,eACfC,EAAa,EACbl3B,EAAO,QACNn4G,KAAK4+G,qBAQFsD,EAAUliH,KAAK8+G,UAAUjgH,OACzBwnG,EAAM,EAEN4jC,GAFSpsI,EAAI,GACbs6G,EAAOn4G,KAAKi/H,UAAUphI,MACHs6G,EAAKxpG,MAAM03F,IAAKrwF,EAAAA,GAEhCqwF,EAAM6b,GAAS,KACdrD,EAAS7+G,KAAK8+G,UAAUzY,MACdwY,EAASA,EAAOhgH,OAAS,EAAI,MAEjCorI,MACA9xB,EAAKjpG,IAAIm3F,IAAI,OACZrmG,KAAKi/H,UAAUphI,MACJs6G,EAAKxpG,MAAM03F,IAAKrwF,EAAAA,OApBtB,GACPhW,KAAKosG,oBACdiwB,EAAWr8H,KAAKi/H,UACXphI,EAAI,EAAGA,EAAIw+H,EAASx9H,OAAQhB,UAC1Bw+H,EAASx+H,IACGqR,IAAIm3F,IAAM8R,EAAKxpG,MAAM03F,WAmB5CrmG,KAAK6nH,iBACS7nH,KAAKsvI,0BAEhBD,QAENE,gBAAkB,SAASC,GACvBxvI,KAAKyvI,sBACLvF,sBAAwB,SAASn5H,EAAKm9H,EAAiBC,MAChC,IAApBD,QACO,CAAC,EAAG,OAKX/sI,EAAGolG,MAJF2nC,MACiBl4H,EAAAA,KACPm4H,GAAgB,EAG1B5nC,EAAS,EAAGA,EAASx1F,EAAIlS,cAEhB,UADNkS,EAAIlI,OAAO09F,IAEKvmG,KAAKi/G,iBAAiBkvB,GAEtBqB,EAAGE,kBAAkBvuI,IAEtB+sI,GAPe3nC,WAY/B,CAAC4nC,EAAc5nC,WAIzBsE,QAAU,WACP7qG,KAAKskI,mBACAA,YAAY5I,YAAY,WACxB4I,YAAc,WAElBkE,oBAGJxpB,YAAcA,GAsCpBt5G,KAAKk+H,EAAY7/H,aAEX,0BAA0B86H,QAAQn5H,KAAKk+H,EAAY7/H,aACnD,gCAAgC4+H,aAAaj9H,KAAKk+H,EAAY7/H,aAGhEiwG,cAAc4vB,EAAY7/H,UAAW,UAAW,CACnD2sD,KAAM,CACFvgD,IAAK,SAAS/N,MACLA,GAAkB,OAATA,EAEI,QAATA,KACG,EACM,eAATA,OAEgB,iBAATA,MACJgU,SAAShU,EAAO,MAAO,MANvB,EAQRpC,KAAK2vI,OAASvtI,UAEbutI,MAAQvtI,EACRA,EAEE,KACC29G,EAAsB,iBAAT39G,EAAoBA,EAAQ,UACxCgqI,kBAAkBrsB,EAAKA,QACvBksB,gBAAe,aAJfA,gBAAe,IAO5B/7H,IAAK,kBACGlQ,KAAKmsI,qBACDnsI,KAAK2vI,MACE,cACN3vI,KAAK6sI,oBAAoBh3H,IAEvB7V,KAAK2vI,MADD,OAGR,OAEX/7B,YAAY,GAEhB+0B,WAAY,CACRx4H,IAAK,SAASjH,MACG,QAAPA,EACmB,QAAnBlJ,KAAK6wH,MAAM3xH,KACJ,QAAPgK,IACKlJ,KAAK0tI,mBACPA,YAAcxkI,EACflJ,KAAK4+G,oBACAqhB,WAAY,OACZuE,eAAe,QACfzE,gBAAgB,EAAG//H,KAAKosG,YAAc,MAIvD6H,aAAc,QAElB05B,iBAAkB,CAAE15B,cAAc,GAClC27B,gBAAiB,CACbz/H,IAAK,gBAAiBw7F,QAAQ,qBAC9BsI,aAAc,GAElBg0B,UAAW,CACP93H,IAAK,SAAS83H,QACLE,WAAaF,OAEbO,cACDP,QACKQ,gBAEbx0B,cAAc,GAElB47B,YAAa,CAAC57B,cAAc,GAC5B+R,QAAS,CACL71G,IAAK,SAAS61G,GACNryG,MAAMqyG,IAAYhmH,KAAKimI,WAAajgB,SAEnCia,WAAY,OACZ0E,gBAAkB,QAClBsB,SAAWjgB,OACXra,QAAQ,mBAEjBsI,aAAc,EACdL,YAAY,GAEhBuyB,uBAAwB,CAAClyB,cAAc,GACvCsyB,UAAW,CACPp2H,IAAK,SAASjH,QAAWyiG,QAAQ,oBACjCsI,cAAc,GAElBklB,YAAa,CACThpH,IAAK,SAASjH,QAAWyiF,IAAIutC,eAAehwH,IAC5CgH,IAAK,kBAAmBlQ,KAAK2rF,IAAIytC,kBACjCxlB,YAAY,GAEhB35C,KAAM,CACF9pD,IAAK,SAASjH,QAAYm7H,QAAQn7H,IAClCgH,IAAK,kBAAoBlQ,KAAKqoI,cAI9BzE,YAAcA,KAGtB99C,IAAID,OAAO,aAAa,CAAC,UAAU,UAAU,SAAS,eAAe,cAAc,cAAc,SAASP,EAAU/wE,EAAS+f,OAGzH4qE,EAAO5Z,EAAS,cAChBiK,EAAMjK,EAAS,aACfxlE,EAAQwlE,EAAS,WAAWxlE,MAE5BgwH,EAAS,gBACJr8B,SAAW,KAGnB,gBACQtjG,IAAM,SAAS8B,YACZo9E,MAAMrvF,KAAKyzG,SAAUxhG,GAClBjS,WAENuzG,WAAa,kBACPrU,EAAKxB,WAAW19F,KAAKyzG,gBAE3BL,WAAa,SAASnhG,QAClBwhG,SAAWxhG,QAEf89H,KAAO,SAAS9sC,OACbhxF,EAAUjS,KAAKyzG,SACf5iG,EAAW7Q,KAAKgwI,eAAe/sC,EAAShxF,OACvCpB,SACM,MAEP6nG,EAAa,cACR/zG,SAAQ,SAASsrI,EAAIC,EAAIC,EAAIC,YACrB,IAAItwH,EAAMmwH,EAAIC,EAAIC,EAAIC,KAC/BF,GAAME,GAAMn+H,EAAQtD,OAASsD,EAAQtD,MAAMA,OACjB,GAAvBsD,EAAQo+H,aAAwB33B,EAAWwI,QAAQjvG,EAAQtD,YAEjD,MACN,MAMR+pG,QAEN43B,QAAU,SAASrtC,OAChBhxF,EAAUjS,KAAKyzG,aACdxhG,EAAQs+H,aACF,QACNC,gBAAgBv+H,OAEjB0/B,EAAQ1/B,EAAQ0/B,MAChBwsE,EAAQxsE,EACNsxD,EAAQq2B,SAAS3nF,EAAMhjC,MAAM03F,IAAK10D,EAAMziC,IAAIm3F,KAC5CpD,EAAQtX,IAAIitC,cAEdxQ,EAAS,GACTzS,EAAK1jG,EAAQ0jG,MACb1jG,EAAQw+H,aAAc,KAGlBC,EAFA3sF,EAAM4xD,EAAG92G,OACTmwI,EAAS7wB,EAAMt/G,OAASklD,YAEZsiD,EAAMsP,EAAG7lG,QAAU,EAAGu2F,GAAO2oC,EAAQ3oC,IAAO,SAC/C5+C,EAAI,EAAGA,EAAI1D,EAAK0D,WACjB02D,EAAM9X,EAAM5+C,GAAGt9C,OAAOwrG,EAAGluD,mBAG7B4zE,EAAYld,EAAM9X,GAClBoX,EAAOU,EAAM9X,EAAMtiD,EAAM,GACzB85E,EAAaxC,EAAUx8H,OAASw8H,EAAUjzH,MAAMutG,EAAG,IAAI,GAAG92G,OAC1Di/H,EAAWrgB,EAAKr1G,MAAMutG,EAAG5xD,EAAM,IAAI,GAAGllD,OAEtC6xI,GAAaA,EAAUxhI,IAAIm3F,MAAQA,GACnCqqC,EAAUxhI,IAAIq3F,OAASs3B,MAIpB/+H,KAAK4xI,EAAY,IAAI5wH,EACxBumF,EAAKw3B,EAAYx3B,EAAMtiD,EAAM,EAAG+5E,IAEhC/5E,EAAM,MACAsiD,EAAMtiD,EAAM,kBAGjBlmD,EAAI,EAAGA,EAAIsgH,EAAMt/G,OAAQhB,SAC1BwK,EAAU62F,EAAKf,gBAAgBggB,EAAMtgH,GAAI83G,OACpCluD,EAAI,EAAGA,EAAIp/C,EAAQxJ,OAAQ4oD,IAAK,KACjCr/C,EAAQC,EAAQo/C,KACb3oD,KAAK,IAAIghB,EAAMjiB,EAAGuK,EAAM0H,OAAQjS,EAAGuK,EAAM0H,OAAS1H,EAAMvJ,aAKvE8yC,EAAO,KACHovE,EAAcpvE,EAAMhjC,MAAM43F,OAC1B0a,EAAYtvE,EAAMhjC,MAAM43F,WACxB1oG,EAAI,EAAG4pD,EAAI2gE,EAAOvpH,OAAS,EACxBhB,EAAI4pD,GAAK2gE,EAAOvqH,GAAG8Q,MAAM43F,OAASwa,GAAeqH,EAAOvqH,GAAG8Q,MAAM03F,KAAO10D,EAAMhjC,MAAM03F,cAGpFxoG,EAAI4pD,GAAK2gE,EAAO3gE,GAAGv4C,IAAIq3F,OAAS0a,GAAamH,EAAO3gE,GAAGv4C,IAAIm3F,KAAO10D,EAAMziC,IAAIm3F,eAG1E+hB,EAAOplH,MAAMnF,EAAG4pD,EAAI,GACxB5pD,EAAI,EAAG4pD,EAAI2gE,EAAOvpH,OAAQhB,EAAI4pD,EAAG5pD,MAC3BA,GAAG8Q,MAAM03F,KAAO10D,EAAMhjC,MAAM03F,MAC5BxoG,GAAGqR,IAAIm3F,KAAO10D,EAAMhjC,MAAM03F,WAIlC+hB,QAENtlH,QAAU,SAAS0tD,EAAOmgF,OACvB1+H,EAAUjS,KAAKyzG,SAEfkC,EAAK31G,KAAKwwI,gBAAgBv+H,MAC1BA,EAAQw+H,oBACDE,KAENh7B,OAGDvtG,EAAQutG,EAAGxoG,KAAKqjD,OACfpoD,GAASA,EAAM,GAAGvJ,QAAU2xD,EAAM3xD,cAC5B,UAEG2xD,EAAM1tD,QAAQ6yG,EAAIg7B,GAC5B1+H,EAAQ2+H,aAAc,GACRD,EAAYroI,MAAM,YACvBzK,EAAI8K,KAAKkN,IAAI26C,EAAM3xD,OAAQ2xD,EAAM3xD,QAAShB,KAAO,KAClD09G,EAAK/qD,EAAM3yD,GACX09G,GAAMA,EAAGx4G,eAAiBw4G,IACd19G,GAAK8yI,EAAY9yI,GAAG6N,gBAEpB7N,GAAK8yI,EAAY9yI,GAAGkF,gBAE1B4tI,EAAYnoI,KAAK,WAG5BmoI,SAGNH,gBAAkB,SAASv+H,EAAS4+H,MACjC5+H,EAAQs+H,kBAAkBvqD,cACnB/zE,EAAQ0jG,GAAK1jG,EAAQs+H,WAE5BA,EAASt+H,EAAQs+H,WAEhBt+H,EAAQs+H,cACFt+H,EAAQ0jG,IAAK,EAEnB1jG,EAAQmsF,WACAc,EAAKjB,aAAasyC,IAE3Bt+H,EAAQ6+H,uBAgJKP,EAAQt+H,cACP9Q,SACd,KAAKuB,KAAKvB,IAAM8Q,EAAQmsF,OAAe,MACpC,UAEJ2yC,EAAaR,EAAO,IAAMA,EAC3BQ,EAAaR,EAAOA,EAAO1xI,OAAS,IArJzBmyI,CAAgBT,EAAQt+H,QAEjCg/H,EAAWh/H,EAAQi/H,cAAgB,KAAO,WAEtCT,cAAgBI,GAAyB,SAASnuI,KAAK6tI,GAC3Dt+H,EAAQw+H,oBACDx+H,EAAQ0jG,GAAK31G,KAAKmxI,yBAAyBZ,EAAQU,WAGtDt7B,EAAK,IAAI3vB,OAAOuqD,EAAQU,SACxB/vI,MACC,SAEF+Q,EAAQ0jG,GAAKA,QAGnBw7B,yBAA2B,SAASZ,EAAQU,WACzCx7B,EAAQ86B,EAAOztI,QAAQ,cAAe,QAAQwF,MAAM,MACpDqtG,EAAK,GACA93G,EAAI,EAAGA,EAAI43G,EAAM52G,OAAQhB,UAC3BiB,KAAK,IAAIknF,OAAOyvB,EAAM53G,GAAIozI,UACzB/vI,UACG,SAEJy0G,QAGNq6B,eAAiB,SAAS/sC,EAAShxF,OAChC0jG,EAAK31G,KAAKwwI,gBAAgBv+H,OACzB0jG,SACM,MACPy7B,EAAiC,GAArBn/H,EAAQm/H,UACpBf,EAAqC,GAAvBp+H,EAAQo+H,YAEtB1+F,EAAQ1/B,EAAQ0/B,MAChBhjC,EAAQsD,EAAQtD,MACfA,MACOgjC,EAAQA,EAAMy/F,EAAY,MAAQ,SAAWnuC,EAAQjC,UAAUgC,YAEvEr0F,EAAMA,UACEA,EAAM0hI,GAAee,EAAY,MAAQ,cAEjDnvB,EAAWtwE,EAAQA,EAAMhjC,MAAM03F,IAAM,EACrC6b,EAAUvwE,EAAQA,EAAMziC,IAAIm3F,IAAMpD,EAAQmJ,YAAc,KAExDglC,MACIzsI,EAAU,SAASwgF,OACfkhB,EAAM13F,EAAM03F,QACZgrC,EAAchrC,EAAK13F,EAAM43F,OAAQphB,QAEhCkhB,IAAOA,GAAO4b,EAAU5b,OACrBgrC,EAAchrC,EAAKjuF,OAAOuzH,UAAWxmD,aAEzB,GAAhBlzE,EAAQy+C,SAEP21C,EAAM6b,EAASD,EAAWtzG,EAAM03F,IAAKA,GAAO4b,EAAU5b,OACnDgrC,EAAchrC,EAAKjuF,OAAOuzH,UAAWxmD,iBAK7CxgF,EAAU,SAASwgF,OACfkhB,EAAM13F,EAAM03F,QACZgrC,EAAchrC,EAAK13F,EAAM43F,OAAQphB,QAEhCkhB,GAAY,EAAGA,GAAO6b,EAAS7b,OAC5BgrC,EAAchrC,EAAK,EAAGlhB,aAEV,GAAhBlzE,EAAQy+C,SAEP21C,EAAM4b,EAAUC,EAAUvzG,EAAM03F,IAAKA,GAAO6b,EAAS7b,OAClDgrC,EAAchrC,EAAK,EAAGlhB,eAKlClzE,EAAQw+H,iBACJ1sF,EAAM4xD,EAAG92G,OACTwyI,EAAgB,SAAShrC,EAAKv2F,EAAQq1E,OAClC27B,EAAWswB,EAAY/qC,EAAMtiD,EAAM,EAAIsiD,OACvCya,EAAW,QACXrD,EAAOxa,EAAQ0V,QAAQmI,GACvB+c,EAAapgB,EAAKtzG,OAAOwrG,EAAG,UAC3By7B,GAAavT,EAAa/tH,QAAU+tH,YAChChgI,EAAI,EAAGA,EAAIkmD,EAAKlmD,cACdolG,EAAQ0V,QAAQmI,EAAWjjH,IACzBsM,OAAOwrG,EAAG93G,eAGnBigI,EAAWrgB,EAAKr1G,MAAMutG,EAAG5xD,EAAM,IAAI,GAAGllD,YACtCuyI,GAAatT,EAAWhuH,WACxBq1E,EAAS27B,EAAU+c,EAAY/c,EAAW/8D,EAAM,EAAG+5E,sBAItDsT,EACDC,EAAgB,SAAShrC,EAAKy3B,EAAU34C,OAGpCxjF,EAFA87G,EAAOxa,EAAQ0V,QAAQtS,GACvBh+F,EAAU,GACPghD,EAAO,QACX88B,UAAY,EACRxkF,EAAIg0G,EAAGxoG,KAAKswG,IAAQ,KACnB5+G,EAAS8C,EAAE,GAAG9C,YACX8C,EAAE2H,OACJzK,EAAQ,IACLwqD,GAAQo0D,EAAK5+G,eACdsnF,UAAY98B,GAAQ,KAEvB1nD,EAAE2H,MAAQzK,EAASi/H,UAEfh/H,KAAK6C,EAAE2H,MAAOzK,WAEjBhB,EAAIwK,EAAQxJ,OAAS,EAAGhB,GAAK,EAAGA,GAAK,EAAG,KACzC0oG,EAASl+F,EAAQxK,EAAI,MAErBsnF,EAASkhB,EAAKE,EAAQF,EAAKE,GAD3B1nG,EAASwJ,EAAQxK,YAEV,SAKfwzI,EAAgB,SAAShrC,EAAKw3B,EAAY14C,OAEtCxjF,EADA87G,EAAOxa,EAAQ0V,QAAQtS,GAEvBh9C,EAAOw0E,QACR13C,UAAY03C,EACRl8H,EAAIg0G,EAAGxoG,KAAKswG,IAAQ,KACnB5+G,EAAS8C,EAAE,GAAG9C,UAEdsmF,EAASkhB,IADN1kG,EAAE2H,MACe+8F,EAAIh9C,EAAOxqD,UACxB,MACNA,MACEsnF,UAAY98B,GAAQ,EACnBA,GAAQo0D,EAAK5+G,eAAe,UAKzC,CAAC8F,QAAAA,MAGbe,KAAKoqI,EAAO/rI,aAWP+rI,OAASA,KAGjBhqD,IAAID,OAAO,4BAA4B,CAAC,UAAU,UAAU,SAAS,eAAe,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAGlIukF,EAAUvzB,EAAS,eACnBqT,EAAYrT,EAAS,oBACrBwK,EAAW+oB,EAAQ/oB,oBAEFl6E,EAAQyhF,QACpBA,SAAWA,MAAuBH,MAAQ,MAAQ,YAClDgiB,SAAW,QACXo4B,kBAAoB,QACpBC,YAAY37H,QACZ47H,gBAAiB,aAGA57H,EAAQyhF,KAClB3xF,KAAK1F,KAAM4V,EAAQyhF,QAC1Bm6C,gBAAiB,IAGTztI,UAAY0tI,EAAY1tI,UAExC,sBAgEwBosF,SACQ,iBAAXA,GAAuBA,EAAQuhD,SACtCvhD,EAAQuhD,QAAQ1vH,aACP2vH,eAAmB,QAhElCC,WAAa,SAASzhD,GACnBnwF,KAAKk5G,SAAS/oB,EAAQrqF,YACjB+rI,cAAc1hD,QAElB+oB,SAAS/oB,EAAQrqF,MAAQqqF,EAE1BA,EAAQuhD,cACHI,cAAc3hD,SAGtB0hD,cAAgB,SAAS1hD,EAAS4hD,OAC/BjsI,EAAOqqF,IAA+B,iBAAZA,EAAuBA,EAAUA,EAAQrqF,QAC7D9F,KAAKk5G,SAASpzG,GACnBisI,UACM/xI,KAAKk5G,SAASpzG,OACrBksI,EAAMhyI,KAAKsxI,0BACNW,KAASD,EAAK,KACfE,EAAWF,EAAIC,MACfC,GAAY/hD,SACL6hD,EAAIC,WACJlwI,MAAMC,QAAQkwI,GAAW,KAC5Br0I,EAAIq0I,EAAS/xI,QAAQgwF,OACrBtyF,MACSsJ,OAAOtJ,EAAG,GACI,GAAnBq0I,EAASrzI,WACLozI,GAASC,EAAS,aAMrCR,QAAU,SAAStyI,EAAK+wF,EAASnuE,MAChB,iBAAP5iB,GAAmBA,IACV,MAAZ4iB,MACW5iB,EAAI4iB,YACb5iB,EAAIY,KAAKq3F,WAEdj4F,QAEiB,mBAAX+wF,EACAnwF,KAAK4xI,WAAW,CAACzkI,KAAMgjF,EAASuhD,QAAStyI,EAAK0G,KAAMqqF,EAAQrqF,MAAQ1G,WAE3EkJ,MAAM,KAAK3D,SAAQ,SAASwtI,OACxBC,EAAQ,UACRD,EAAQhyI,QAAQ,KAAY,KACxBs1G,EAAQ08B,EAAQ7pI,MAAM,SAChBmtG,EAAM3mG,QACVnK,SAAQ,SAAS0tI,OACfC,EAAUtyI,KAAKuyI,UAAUF,GACzBG,EAAK1iD,EAASwiD,EAAQt2C,QAAUs2C,EAAQlzI,UAC1B,IAAM,IAAMozI,OACzBC,qBAAqBL,EAAO,eAClCpyI,SACM,QAET0yI,EAAU1yI,KAAKuyI,UAAUJ,GACzB1+H,EAAKq8E,EAAS4iD,EAAQ12C,QAAU02C,EAAQtzI,SACvCqzI,qBAAqBL,EAAQ3+H,EAAI08E,EAASnuE,KAChDhiB,YAQFyyI,qBAAuB,SAASR,EAAO9hD,EAASnuE,OACfnkB,EAA9Bm0I,EAAMhyI,KAAKsxI,qBACVnhD,MAEO6hD,EAAIC,IAAUjyI,KAAKwxI,iBACvBS,GAAS9hD,MACV,CACEpuF,MAAMC,QAAQgwI,EAAIC,WAEPD,EAAIC,GAAO9xI,QAAQgwF,OAC3B8hD,GAAO9qI,OAAOtJ,EAAG,KAFjBo0I,GAAS,CAACD,EAAIC,IAKC,iBAAZjwH,MACIuhG,EAAYpzB,QAGvB+oB,EAAW84B,EAAIC,OACdp0I,EAAI,EAAGA,EAAIq7G,EAASr6G,OAAQhB,IAAK,IAEnB0lH,EADHrK,EAASr7G,IAENmkB,UAGV7a,OAAOtJ,EAAG,EAAGsyF,eArBf6hD,EAAIC,SAyBdV,YAAc,SAASr4B,MACZ/sG,OAAOyL,KAAKshG,GAAUv0G,SAAQ,SAASmB,OAC3CqqF,EAAU+oB,EAASpzG,MAClBqqF,MAGkB,iBAAZA,SACAnwF,KAAK0xI,QAAQvhD,EAASrqF,GAEV,mBAAZqqF,MACG,CAAEhjF,KAAMgjF,IAEC,iBAAZA,IAGNA,EAAQrqF,SACDA,KAAOA,QAEd8rI,WAAWzhD,OACjBnwF,YAGF2yI,eAAiB,SAASz5B,UACpBthG,KAAKshG,GAAUv0G,SAAQ,SAASmB,QAC9B+rI,cAAc34B,EAASpzG,MAC7B9F,YAGF4yI,SAAW,SAASC,UACdj7H,KAAKi7H,GAASluI,SAAQ,SAASvF,QAC7BsyI,QAAQtyI,EAAKyzI,EAAQzzI,MAC3BY,YAGF8xI,cAAgB,SAAS3hD,QACrBuhD,QAAQvhD,EAAQuhD,QAASvhD,SAE7BoiD,UAAY,SAAS36H,OAClB69F,EAAQ79F,EAAK7U,cAAcuF,MAAM,mBAAmB0E,QAAO,SAASpJ,UAAUA,KAC9ExE,EAAMq2G,EAAM3mG,MAEZ6nF,EAAUkiB,EAAQz5G,MAClBy5G,EAAQxoB,cAAcsG,KAChBkiB,EAAQxoB,cAAcsG,GAAS5zF,uBAC/B0yG,EAAM52G,aACL,CAACO,IAAAA,EAAU48F,cACG,GAAhByZ,EAAM52G,QAA2B,SAAZ42G,EAAM,SACzB,CAACr2G,IAAKA,EAAIsM,cAAeswF,mBAEhCA,EAAS,EACJn+F,EAAI43G,EAAM52G,OAAQhB,KAAM,KACzBozI,EAAWp4B,EAAQ/oB,SAAS2lB,EAAM53G,OACtB,MAAZozI,QACsB,oBAAXp9B,iBACCrjG,MAAM,oBAAsBilG,EAAM53G,GAAK,OAAS+Z,IACrD,KAEDq5H,QAEP,CAAC7xI,IAAAA,EAAU48F,OAAAA,SAGjB82C,eAAiB,SAAwB92C,EAAQpF,OAC9Cx3F,EAAM0wF,EAASkM,GAAUpF,SACtB52F,KAAKsxI,kBAAkBlyI,SAG7Bo6G,eAAiB,SAAS/zG,EAAMu2F,EAAQpF,EAAWD,QAChDA,EAAU,QACVv3F,EAAM0wF,EAASkM,GAAUpF,EACzBzG,EAAUnwF,KAAKsxI,kBAAkBlyI,UACjCqG,EAAKstI,cACAA,WAAa,IAAM3zI,IACdY,KAAKsxI,kBAAkB7rI,EAAKstI,YAAc5iD,IAGpDA,GACe,aAAXA,GAAyD,aAA/BA,EAAQA,EAAQtxF,OAAS,IAMvD4G,EAAKstI,YACC/2C,GAAoB,GAAVA,GAAoC,GAApBpF,EAAU/3F,YAEjCm9F,GAAgBrF,EAAU,OAC1Bo8C,UAAY,MAFZA,UAAYttI,EAAKstI,UAAU/vI,MAAM,GAAI5D,EAAIP,OAAS,IAIxD,CAACsxF,QAAAA,OAXK4iD,UAAYttI,EAAKstI,WAAa3zI,EAC5B,CAAC+wF,QAAS,gBAaxBypB,cAAgB,SAASnU,EAAQhgG,UAC3BA,EAAKstI,WAAa,KAG9BrtI,KAAK+rI,EAAY1tI,aAEZ0tI,YAAcA,IACduB,iBAAmBA,KAG3BltD,IAAID,OAAO,+BAA+B,CAAC,UAAU,UAAU,SAAS,cAAc,4BAA4B,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGpKi7D,EAAMjK,EAAS,cACf0tD,EAAmB1tD,EAAS,4BAA4B0tD,iBACxD7gC,EAAe7sB,EAAS,wBAAwB6sB,aAEhD8gC,EAAiB,SAAS57C,EAAU6hB,KACnBxzG,KAAK1F,KAAMk5G,EAAU7hB,QACjC67C,OAASlzI,KAAKk5G,cACdxT,kBAAkB,QAAQ,SAASxkG,UAC7BA,EAAEivF,QAAQhjF,KAAKjM,EAAEukG,OAAQvkG,EAAE8T,MAAQ,UAI9Cg6E,SAASikD,EAAgBD,GAE5B,aAEO1jD,UAAUtvF,KAAMmyG,QAEfhlG,KAAO,SAASgjF,EAASsV,EAAQzwF,MAC9BjT,MAAMC,QAAQmuF,GAAU,SACftyF,EAAIsyF,EAAQtxF,OAAQhB,QACrBmC,KAAKmN,KAAKgjF,EAAQtyF,GAAI4nG,EAAQzwF,UAAc,SAE7C,KAGY,iBAAZm7E,MACGnwF,KAAKk5G,SAAS/oB,KAEvBA,SACM,KAEPsV,GAAUA,EAAO7C,YAAczS,EAAQ4T,gBAChC,KAEP5T,EAAQgjD,cAAgBhjD,EAAQgjD,YAAY1tC,UACrC,MAEPvkG,EAAI,CAACukG,OAAAA,EAAgBtV,QAAAA,EAAkBn7E,KAAAA,YACzC61E,YAAc7qF,KAAKikG,MAAM,OAAQ/iG,QAC9ByqG,QAAQ,YAAazqG,IAED,IAAlBA,EAAE2pF,kBAGRuoD,gBAAkB,SAAS3tC,OACxBzlG,KAAKqzI,oBAGC5tC,EAAOxB,MAAM,gBACnBjkG,KAAKszI,gBACAC,MAAMzkI,WACNzL,oBAAoB,OAAQrD,KAAKwzI,oBAEjCxzI,KAAKuzI,MAAM10I,cACP00I,MAAQvzI,KAAKyzI,UAEfzzI,KAAKszI,WAAY,IAEvBtzI,KAAKwzI,0BACDA,mBAAqB,SAAStyI,QAC1BqyI,MAAMz0I,KAAK,CAACoC,EAAEivF,QAASjvF,EAAE8T,QAChCtN,KAAK1H,YAGNyzI,SAAWzzI,KAAKuzI,WAChBA,MAAQ,QACR3vC,GAAG,OAAQ5jG,KAAKwzI,oBACdxzI,KAAKszI,WAAY,SAGvBI,OAAS,SAASjuC,OACfzlG,KAAKqzI,WAAcrzI,KAAKuzI,UAGxBvzI,KAAKszI,iBACEtzI,KAAKozI,gBAAgB3tC,YAGvB4tC,WAAY,OACZE,MAAM5uI,SAAQ,SAASf,GACR,iBAALA,OACFuJ,KAAKvJ,EAAG6hG,QAERt4F,KAAKvJ,EAAE,GAAI6hG,EAAQ7hG,EAAE,MAC/B5D,mBAEEqzI,WAAY,UAIpBM,UAAY,SAAShyI,UACfA,EAAEwH,KAAI,SAASvF,SACC,iBAARA,EAAE,OACP,GAAKA,EAAE,GAAGkC,MACXlC,EAAE,OACCA,EAAE,IACHA,OAIhB8B,KAAKutI,EAAelvI,aAEfkvI,eAAiBA,KAIzBntD,IAAID,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,eAAe,aAAa,cAAc,SAASP,EAAU/wE,EAAS+f,OAG3I4qE,EAAO5Z,EAAS,eAChB1vE,EAAS0vE,EAAS,aAClBxlE,EAAQwlE,EAAS,YAAYxlE,iBAEhBg9E,EAAK82C,SACX,CAAC92C,IAAAA,EAAU82C,IAAAA,KAEd16B,SAAW,CAAC,CAChBpzG,KAAM,mBACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KACJsQ,WAAW,yBAAyB,SAASnwB,KACzCywB,KAAK5Q,KACLouC,uBAGf9vC,UAAU,GACX,CACCj+F,KAAM,gBACN4rI,QAASA,EAAQ,QAAS,MAC1BvkI,KAAM,SAASs4F,KACJsQ,WAAW,wBAAwB,SAASnwB,KACxCkuD,gBAAgBruC,EAAQ,OAGvCsuC,eAAgB,UAChBhwC,UAAU,GACX,CACCj+F,KAAM,oBACN4rI,QAASA,EAAQ,cAAe,YAChCvkI,KAAM,SAASs4F,KACJsQ,WAAW,wBAAwB,SAASnwB,KACxCkuD,gBAAgBruC,UAG/BsuC,eAAgB,UAChBhwC,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiBhD,aAChCsB,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAASA,EAAQ,KAAM,UACvBvkI,KAAM,SAASs4F,KAAiBuuC,mBAChCjwC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,OACPgY,EAAOrnG,SAAS69H,OAAO,sBAAuB,IAC7CtgI,MAAM8pG,MACAy2B,SAASz2B,IAGxB1Z,UAAU,GACX,CACCj+F,KAAM,OACN4rI,QAASA,EAAQ,gBAAiB,4BAClCvkI,KAAM,SAASs4F,KAAiBxC,QAAQi+B,YAAW,IACnDiT,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,SACN4rI,QAASA,EAAQ,4BAA6B,wCAC9CvkI,KAAM,SAASs4F,KAAiBxC,QAAQi+B,YAAW,IACnDiT,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACN4rI,QAASA,EAAQ,KAAM,MACvBvkI,KAAM,SAASs4F,KAAiBxC,QAAQw/B,oBACxC0R,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,yBACN4rI,QAASA,EAAQ,SAAU,UAC3BvkI,KAAM,SAASs4F,KAAiBxC,QAAQw/B,kBAAiB,IACzD0R,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,UACN4rI,QAASA,EAAQ,KAAM,yBACvBvkI,KAAM,SAASs4F,KAAiBxC,QAAQo9B,WACxC0T,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAASA,EAAQ,QAAS,oBAC1BvkI,KAAM,SAASs4F,KACJxC,QAAQo9B,YACRp9B,QAAQs9B,OAAO96B,EAAOzE,UAAUozC,iBAE3CL,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAASA,EAAQ,cAAe,0BAChCvkI,KAAM,SAASs4F,KAAiBxC,QAAQs9B,UACxCwT,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiB4uC,YAChCF,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,eACN4rI,QAASA,EAAQ,eAAgB,mBACjCvkI,KAAM,SAASs4F,KAAiB6uC,gBAChCH,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACN4rI,QAASA,EAAQ,QAAS,UAC1BvkI,KAAM,SAASs4F,GACPA,EAAOzE,UAAUL,YACVK,UAAUqkB,eAEVgvB,YAEftwC,UAAU,GACX,CACCj+F,KAAM,uBACN4rI,QAASA,EAAQ,cAAe,gBAChCvkI,KAAM,SAASs4F,GACPA,EAAOzE,UAAUL,YACVK,UAAUqkB,eAEVivB,gBAEfvwC,UAAU,GACX,CACCj+F,KAAM,OACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KACJsQ,WAAW,qBAAqB,SAAS70G,KAAM4uI,OAAOrqC,OAEjE1B,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAAS,SACTvkI,KAAM,SAASs4F,KAAiBghC,mBAChC1iC,UAAU,GACX,CACCj+F,KAAM,gBACN4rI,QAASA,EAAQ,kBAAmB,uCACpCvkI,KAAM,SAASs4F,KAAiB6/B,eAAevgB,mBAC/CovB,kBAAmB,UACnBpwC,UAAU,EACVgwC,eAAgB,UAChBQ,gBAAiB,YAClB,CACCzuI,KAAM,YACN4rI,QAASA,EAAQ,YAAa,2BAC9BvkI,KAAM,SAASs4F,KAAiB+uC,qBAChCL,kBAAmB,UACnBpwC,UAAU,EACVgwC,eAAgB,UAChBQ,gBAAiB,YAClB,CACCzuI,KAAM,WACN4rI,QAASA,EAAQ,WAAY,yBAC7BvkI,KAAM,SAASs4F,KAAiB6/B,eAAerhB,YAC/CkwB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,KAAM,aACvBvkI,KAAM,SAASs4F,EAAQzwF,KAAey/H,WAAWz/H,EAAK0/H,QACtDP,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,cACN4rI,QAASA,EAAQ,iBAAkB,wCACnCvkI,KAAM,SAASs4F,KAAiB6/B,eAAezgB,iBAC/CsvB,kBAAmB,UACnBpwC,UAAU,EACVgwC,eAAgB,UAChBQ,gBAAiB,YAClB,CACCzuI,KAAM,UACN4rI,QAASA,EAAQ,WAAY,4BAC7BvkI,KAAM,SAASs4F,KAAiBkvC,mBAChCR,kBAAmB,UACnBpwC,UAAU,EACVgwC,eAAgB,UAChBQ,gBAAiB,YAClB,CACCzuI,KAAM,aACN4rI,QAASA,EAAQ,aAAc,2BAC/BvkI,KAAM,SAASs4F,KAAiB6/B,eAAenhB,cAC/CgwB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,aACN4rI,QAASA,EAAQ,OAAQ,eACzBvkI,KAAM,SAASs4F,EAAQzwF,KAAe4/H,aAAa5/H,EAAK0/H,QACxDP,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,iBACN4rI,QAASA,EAAQ,kBAAmB,qBACpCvkI,KAAM,SAASs4F,KAAiB6/B,eAAengB,kBAC/CgvB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,eACN4rI,QAASA,EAAQ,YAAa,eAC9BvkI,KAAM,SAASs4F,KAAiBovC,oBAChCV,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,oBACN4rI,QAASA,EAAQ,iBAAkB,mCACnCvkI,KAAM,SAASs4F,KAAiB6/B,eAAe7gB,mBAC/C0vB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,gBACN4rI,QAASA,EAAQ,gBAAiB,4BAClCvkI,KAAM,SAASs4F,KAAiBqvC,qBAChCX,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,aACN4rI,QAASA,EAAQ,aAAc,2BAC/BvkI,KAAM,SAASs4F,KAAiB6/B,eAAe/gB,cAC/C4vB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,OAAQ,eACzBvkI,KAAM,SAASs4F,EAAQzwF,KAAe+/H,aAAa//H,EAAK0/H,QACxDP,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAASA,EAAQ,mBAAoB,sBACrCvkI,KAAM,SAASs4F,KAAiB6/B,eAAergB,mBAC/CkvB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,gBACN4rI,QAASA,EAAQ,aAAc,gBAC/BvkI,KAAM,SAASs4F,KAAiBuvC,qBAChCb,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAASA,EAAQ,kBAAmB,8CACpCvkI,KAAM,SAASs4F,KAAiB6/B,eAAe3gB,iBAC/CwvB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,cACN4rI,QAASA,EAAQ,gBAAiB,4BAClCvkI,KAAM,SAASs4F,KAAiBwvC,mBAChCd,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,cACN4rI,QAASA,EAAQ,cAAe,eAChCvkI,KAAM,SAASs4F,KAAiB6/B,eAAejhB,eAC/C8vB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAASA,EAAQ,QAAS,gBAC1BvkI,KAAM,SAASs4F,EAAQzwF,KAAekgI,cAAclgI,EAAK0/H,QACzDP,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,iBACN4rI,QAAS,iBACTvkI,KAAM,SAASs4F,KAAiB0vC,kBAChCpxC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,KAAM,mBACvBvkI,KAAM,SAASs4F,KAAiB2vC,kBAChCrxC,UAAU,GACX,CACCj+F,KAAM,eACN4rI,QAASA,EAAQ,WAAY,mBAC7BvkI,KAAM,SAASs4F,KAAiB4vC,gBAChCtxC,UAAU,GACX,CACCj+F,KAAM,eACN4rI,QAAS,eACTvkI,KAAM,SAASs4F,KAAiB6vC,gBAChCvxC,UAAU,GACX,CACCj+F,KAAM,SACN4rI,QAASA,EAAQ,KAAM,iBACvBvkI,KAAM,SAASs4F,KAAiB8vC,gBAChCxxC,UAAU,GACX,CACCj+F,KAAM,aACN4rI,QAAS,SACTvkI,KAAM,SAASs4F,KAAiB+vC,cAChCzxC,UAAU,GACX,CACCj+F,KAAM,WACN4rI,QAASA,EAAQ,UAAW,MAC5BvkI,KAAM,SAASjM,KAAOqiG,SAASqG,SAAS,KAAQ1oG,EAAEqiG,SAAS0K,YAAYD,aACvEjK,UAAU,GACX,CACCj+F,KAAM,aACN4rI,QAASA,EAAQ,YAAa,MAC9BvkI,KAAM,SAASjM,KAAOqiG,SAASqG,SAAS,EAAG,EAAI1oG,EAAEqiG,SAAS0K,YAAYD,aACtEjK,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAAS,aACTvkI,KAAM,SAASs4F,KAAiB6/B,eAAe7gB,mBAC/C0vB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,gBACN4rI,QAAS,YACTvkI,KAAM,SAASs4F,KAAiB6/B,eAAe3gB,iBAC/CwvB,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAASA,EAAQ,aAAc,oBAC/BvkI,KAAM,SAASs4F,KAAiByT,SAASk6B,gBAAgB3tC,IACzD1B,UAAU,GACX,CACCj+F,KAAM,cACN4rI,QAASA,EAAQ,eAAgB,mBACjCvkI,KAAM,SAASs4F,KAAiByT,SAASw6B,OAAOjuC,IAChD1B,UAAU,GACX,CACCj+F,KAAM,iBACN4rI,QAASA,EAAQ,SAAU,UAC3BvkI,KAAM,SAASs4F,KAAiBgwC,kBAChCtB,kBAAmB,UACnBJ,eAAgB,UAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACN4rI,QAASA,EAAQ,eAAgB,gBACjCvkI,KAAM,SAASs4F,KAAiBgwC,gBAAe,IAC/CtB,kBAAmB,UACnBJ,eAAgB,UAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACN4rI,QAASA,EAAQ,eAAgB,gBACjCvkI,KAAM,SAASs4F,KAAiBgwC,gBAAe,GAAM,IACrDtB,kBAAmB,UACnBJ,eAAgB,UAChBhwC,UAAU,GACX,CACCj+F,KAAM,oBACN4rI,QAASA,EAAQ,KAAM,MACvBvkI,KAAM,aACN6sG,WAAW,EACXjW,UAAU,GACX,CACCj+F,KAAM,OACNqH,KAAM,SAASs4F,KAEf1B,UAAU,GAEd,CACIj+F,KAAM,MACNqH,KAAM,SAASs4F,OACP9zD,EAAQ8zD,EAAOoB,sBACZ5C,MAAM,MAAOtyD,GAEf8zD,EAAOzE,UAAUL,cACXsC,QAAQ5a,OAAO12C,KACfyxD,mBAGf2wC,eAAgB,SAChBI,kBAAmB,WACpB,CACCruI,KAAM,QACNqH,KAAM,SAASs4F,EAAQzwF,KACZ0gI,aAAa1gI,IAExB++H,eAAgB,UACjB,CACCjuI,KAAM,aACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiBi0B,eAChCqa,eAAgB,SAChBI,kBAAmB,eACpB,CACCruI,KAAM,qBACN4rI,QAASA,EAAQ,eAAgB,mBACjCvkI,KAAM,SAASs4F,KAAiBkwC,sBAChC5B,eAAgB,SAChBI,kBAAmB,WACpB,CACCruI,KAAM,YACN4rI,QAASA,EAAQ,aAAc,iBAC/BvkI,KAAM,SAASs4F,KAAiBmwC,aAChC7B,eAAgB,YAChBI,kBAAmB,eACpB,CACCruI,KAAM,gBACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiB6uB,sBAChC6f,kBAAmB,cACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,qBACN4rI,QAASA,EAAQ,eAAgB,mBACjCvkI,KAAM,SAASs4F,KAAiBgwB,sBAChC0e,kBAAmB,UACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,iBACN4rI,QAASA,EAAQ,gBAAiB,gBAClCvkI,KAAM,SAASs4F,KAAiBowC,aAAa,IAC7C9B,eAAgB,SAChBI,kBAAmB,WACpB,CACCruI,KAAM,mBACN4rI,QAASA,EAAQ,kBAAmB,kBACpCvkI,KAAM,SAASs4F,KAAiBowC,kBAChC9B,eAAgB,SAChBI,kBAAmB,WACpB,CACCruI,KAAM,UACN4rI,QAASA,EAAQ,SAAU,oBAC3BvkI,KAAM,SAASs4F,KACJsQ,WAAW,qBAAqB,SAAS70G,KAAM4uI,OAAOrqC,GAAQ,QAE1E,CACC3/F,KAAM,OACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiB3C,SACjC,CACCh9F,KAAM,OACN4rI,QAASA,EAAQ,sBAAuB,6BACxCvkI,KAAM,SAASs4F,KAAiBmgC,SACjC,CACC9/H,KAAM,cACN4rI,QAASA,EAAQ,eAAgB,qBACjCvkI,KAAM,SAASs4F,KAAiBqwC,eAChC/B,eAAgB,UACjB,CACCjuI,KAAM,cACN4rI,QAASA,EAAQ,SAAU,aAC3BvkI,KAAM,SAASs4F,KAAiBmmC,eAChCmI,eAAgB,UACjB,CACCjuI,KAAM,gBACN4rI,QAASA,EAAQ,iBAAkB,uBACnCvkI,KAAM,SAASs4F,KAAiBswC,iBAChChC,eAAgB,UACjB,CACCjuI,KAAM,gBACN4rI,QAASA,EAAQ,WAAY,eAC7BvkI,KAAM,SAASs4F,KAAiBomC,iBAChCkI,eAAgB,UACjB,CACCjuI,KAAM,MACN4rI,QAASA,EAAQ,SAAU,8BAC3BvkI,KAAM,SAASs4F,KAAiBpd,OAAO,UACvC8rD,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,YACN4rI,QAASA,EACL,4BACA,mDAEJvkI,KAAM,SAASs4F,KAAiBpd,OAAO,SACvC8rD,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,gBACN4rI,QAASA,EAAQ,eAAgB,MACjCvkI,KAAM,SAASs4F,OACPA,EAAOzE,UAAUL,iBAGV,IAFAtY,OAAO,SAKtB8rD,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,oBACN4rI,QAASA,EAAQ,gBAAiB,qBAClCvkI,KAAM,SAASs4F,KAAiBuwC,qBAChC7B,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,kBACN4rI,QAASA,EAAQ,aAAc,yBAC/BvkI,KAAM,SAASs4F,KAAiBwwC,mBAChC9B,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,wBACN4rI,QAASA,EAAQ,uBAAwB,MACzCvkI,KAAM,SAASs4F,OACP9zD,EAAQ8zD,EAAOzE,UAAUgC,aACvBr0F,MAAM43F,OAAS,IACdtD,QAAQ5a,OAAO12C,IAE1BwiG,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,sBACN4rI,QAASA,EAAQ,oBAAqB,MACtCvkI,KAAM,SAASs4F,OACP9zD,EAAQ8zD,EAAOzE,UAAUgC,aACvB9zF,IAAIq3F,OAASnuF,OAAOuzH,YACnB1oC,QAAQ5a,OAAO12C,IAE1BwiG,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,iBACN4rI,QAASA,EAAQ,iBAAkB,oCACnCvkI,KAAM,SAASs4F,KAAiBywC,kBAChC/B,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,kBACN4rI,QAASA,EAAQ,cAAe,cAChCvkI,KAAM,SAASs4F,KAAiB0wC,mBAChChC,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,UACN4rI,QAASA,EAAQ,YAAa,aAC9BvkI,KAAM,SAASs4F,KAAiB2wC,gBAChCjC,kBAAmB,UACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,SACN4rI,QAASA,EAAQ,MAAO,OACxBvkI,KAAM,SAASs4F,KAAiBsZ,UAChCo1B,kBAAmB,UACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,eACN4rI,QAASA,EAAQ,SAAU,UAC3BvkI,KAAM,SAASs4F,KAAiB2wC,gBAChCjC,kBAAmB,cACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,cACN4rI,QAASA,EAAQ,SAAU,UAC3BvkI,KAAM,SAASs4F,KAAiB4wC,eAChClC,kBAAmB,cACnBJ,eAAgB,iBACjB,CACCjuI,KAAM,eACNqH,KAAM,SAASs4F,EAAQ10F,KAAcshD,OAAOthD,IAC5CojI,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,aACNqH,KAAM,SAASs4F,EAAQzwF,KACZq9C,OAAO6sC,EAAK3B,aAAavoF,EAAK+d,MAAS,GAAI/d,EAAK0/H,OAAS,KAEpEP,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,YACN4rI,QAASA,EAAQ,KAAM,UACvBvkI,KAAM,SAASs4F,KAAiB6wC,aAChCnC,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,mBACN4rI,QAASA,EAAQ,cAAe,UAChCvkI,KAAM,SAASs4F,KAAiB8wC,oBAChCpC,kBAAmB,SAAS1uC,KAAgB+wC,oBAAoB,IAChEzC,eAAgB,UACjB,CACCjuI,KAAM,cACN4rI,QAASA,EAAQ,SAAU,UAC3BvkI,KAAM,SAASs4F,KAAiB/5F,eAChCyoI,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,cACN4rI,QAASA,EAAQ,eAAgB,gBACjCvkI,KAAM,SAASs4F,KAAiB1iG,eAChCoxI,kBAAmB,UACnBJ,eAAgB,UACjB,CACCjuI,KAAM,eACN4rI,QAASA,EAAQ,eAAgB,mBACjCvkI,KAAM,SAASs4F,OACP9zD,EAAQ8zD,EAAOzE,UAAUgC,aAEvBr0F,MAAM43F,OAAS50D,EAAMziC,IAAIq3F,OAAS,IAClCr3F,IAAIm3F,QACHrF,UAAUmC,SAASxxD,GAAO,IAErCwiG,kBAAmB,UACnBJ,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,YACN4rI,QAASA,EAAQ,KAAM,MACvBvkI,KAAM,SAASs4F,WACPoe,EAAcpe,EAAOzE,UAAU6iB,cAC/BhjB,EAAiBgjB,EAAcpe,EAAOzE,UAAUyiB,mBAAqBhe,EAAOzE,UAAUwiB,qBACtF1iB,EAAe+iB,EAAcpe,EAAOzE,UAAUwiB,qBAAuB/d,EAAOzE,UAAUyiB,mBACtFgzB,EAAkBhxC,EAAOxC,QAAQtX,IAAIgtB,QAAQ9X,EAAewF,KAAKxnG,OAEjE63I,EADejxC,EAAOxC,QAAQtX,IAAIikB,aAAanK,EAAOzE,UAAUgC,YACnClgG,QAAQ,QAAS,KAAKjE,OACnD83I,EAAalxC,EAAOxC,QAAQtX,IAAIgtB,QAAQ9X,EAAewF,KAElDxoG,EAAIgjG,EAAewF,IAAM,EAAGxoG,GAAKijG,EAAauF,IAAM,EAAGxoG,IAAK,KAC7D+4I,EAAU13C,EAAK1B,eAAe0B,EAAKzB,gBAAgBgI,EAAOxC,QAAQtX,IAAIgtB,QAAQ96G,KAC3D,IAAnB+4I,EAAQ/3I,WACE,IAAM+3I,MAENA,EAGd91C,EAAauF,IAAM,EAAKZ,EAAOxC,QAAQtX,IAAIygB,YAAc,OAC3C3G,EAAOxC,QAAQtX,IAAIktC,yBAG9Bz1B,mBACAH,QAAQtX,IAAI7oF,QAAQ,IAAIgd,EAAM+gF,EAAewF,IAAK,EAAGvF,EAAauF,IAAM,EAAG,GAAIswC,GAElFD,EAAgB,KACT11C,UAAU4iB,aAAa/iB,EAAewF,IAAKxF,EAAe0F,UAC1DvF,UAAU8K,SAASjL,EAAewF,IAAKxF,EAAe0F,OAASmwC,OAEpDjxC,EAAOxC,QAAQtX,IAAIgtB,QAAQ9X,EAAewF,KAAKxnG,OAAS43I,EAAmBA,EAAkB,EAAKA,IAC7Gz1C,UAAU4iB,aAAa/iB,EAAewF,IAAKowC,KAG1DtC,kBAAmB,UACnBpwC,UAAU,GACX,CACCj+F,KAAM,kBACN4rI,QAASA,EAAQ,KAAM,MACvBvkI,KAAM,SAASs4F,OACPub,EAASvb,EAAOxC,QAAQtX,IAAIygB,YAAc,EAC1C+T,EAAS1a,EAAOxC,QAAQtX,IAAIgtB,QAAQqI,GAAQniH,OAC5CupH,EAAS3iB,EAAOzE,UAAUsnB,UAAUF,OACpCyuB,EAAY,GACZzuB,EAAOvpH,OAAS,MACP,CAAC4mG,EAAOzE,UAAUgC,qBAGtBnlG,EAAI,EAAGA,EAAIuqH,EAAOvpH,OAAQhB,IAC3BA,GAAMuqH,EAAOvpH,OAAS,MACThB,GAAGqR,IAAIm3F,MAAQ2a,GAAUoH,EAAOvqH,GAAGqR,IAAIq3F,SAAW4Z,KACjDrhH,KAAK,IAAIghB,EAAMsoG,EAAOvqH,GAAGqR,IAAIm3F,IAAK+hB,EAAOvqH,GAAGqR,IAAIq3F,OAAQya,EAAQb,KAIxE,IAANtiH,EAC8B,MAAjBA,GAAG8Q,MAAM03F,KAAwC,IAA3B+hB,EAAOvqH,GAAG8Q,MAAM43F,UACrCznG,KAAK,IAAIghB,EAAM,EAAG,EAAGsoG,EAAOvqH,GAAG8Q,MAAM03F,IAAK+hB,EAAOvqH,GAAG8Q,MAAM43F,WAG9DznG,KAAK,IAAIghB,EAAMsoG,EAAOvqH,EAAE,GAAGqR,IAAIm3F,IAAK+hB,EAAOvqH,EAAE,GAAGqR,IAAIq3F,OAAQ6hB,EAAOvqH,GAAG8Q,MAAM03F,IAAK+hB,EAAOvqH,GAAG8Q,MAAM43F,WAI5GuwC,wBACA1zC,qBAECvlG,EAAI,EAAGA,EAAIg5I,EAAUh4I,OAAQhB,MAC1BmjG,UAAUwnB,SAASquB,EAAUh5I,IAAI,IAGhDkmG,UAAU,EACVgwC,eAAgB,YAKpBjuD,IAAID,OAAO,aAAa,CAAC,UAAU,UAAU,SAAS,yBAAyB,cAAc,cAAc,eAAe,oBAAoB,yBAAyB,0BAA0B,yBAAyB,0BAA0B,mBAAmB,aAAa,YAAY,wBAAwB,+BAA+B,gCAAgC,aAAa,uBAAuB,SAASP,EAAU/wE,EAAS+f,KAG9a,4BAELi7D,EAAMjK,EAAS,aACf2Z,EAAM3Z,EAAS,aACf4Z,EAAO5Z,EAAS,cAChBqT,EAAYrT,EAAS,mBACrBia,EAAYja,EAAS,wBAAwBia,UAC7CiX,EAAelxB,EAAS,yBAAyBkxB,aACjD0B,EAAc5yB,EAAS,wBAAwB4yB,YAC/CY,EAAaxzB,EAAS,yBAAyBwzB,WAC/C8qB,EAAct+C,EAAS,kBAAkBs+C,YACzCkM,EAASxqD,EAAS,YAAYwqD,OAC9BhwH,EAAQwlE,EAAS,WAAWxlE,MAC5BqyF,EAAe7sB,EAAS,uBAAuB6sB,aAC/C8gC,EAAiB3tD,EAAS,8BAA8B2tD,eACxD8D,EAAkBzxD,EAAS,+BAA+B4zB,SAC1DtjG,EAAS0vE,EAAS,YAClB6nC,EAAgB7nC,EAAS,oBAAoB6nC,cAC7C6pB,EAAS,SAASzzC,EAAUN,OACxBqB,EAAYf,EAAS0zC,2BACpB3yC,UAAYA,OACZf,SAAWA,OACX9vF,GAAK,YAAcujI,EAAO7S,UAE1BjrB,SAAW,IAAI+5B,EAAet6C,EAAUzB,MAAQ,MAAQ,MAAO6/C,GAC7C,iBAAZ3xI,gBACF2/F,UAAa,IAAIxF,EAAUgE,EAAS2zC,uBAAwBl3I,WAC5DujG,SAAS4zC,SAAWn3I,KAAK+kG,UAAUlB,kBACnCuzC,cAAgB,IAAI5gC,EAAax2G,UAClCk4G,EAAYl4G,YAGfq3I,WAAa,IAAIv+B,EAAW94G,WAE5B8mG,gBAAkB,OAClBwwC,SAAU,IAAIxH,GAAS3/H,IAAI,CAC5BugD,MAAM,SAGL6mF,gBAAkBv3I,KAAKu3I,gBAAgB7vI,KAAK1H,WAC5Ck5G,SAAStV,GAAG,OAAQ5jG,KAAKu3I,sBAEzBC,+BAEAC,iBAAmBv4C,EAAKN,YAAY,gBAChC+M,QAAQ,QAAS,IAClB3rG,KAAKijG,SAAWjjG,KAAKijG,QAAQqhC,kBACxBrhC,QAAQqhC,YAAY3I,iBAC/Bj0H,KAAK1H,YAEF4jG,GAAG,UAAU,SAASpiG,EAAGs9F,KACpB24C,iBAAiB/4C,SAAS,YAG/Bg5C,WAAWz0C,GAAW,IAAI2gC,EAAY,OACpC1vB,aAAal0G,QACb2rG,QAAQ,SAAU3rG,SAGtBmkI,KAAO,EAEb,aAEO70C,UAAUtvF,KAAMmyG,QAEfqlC,wBAA0B,gBAGtBp3B,WAAa,QACblH,SAAStV,GAAG,OAAQ5jG,KAAK23I,eAAejwI,KAAK1H,OAAO,QACpDk5G,SAAStV,GAAG,YAAa5jG,KAAK43I,aAAalwI,KAAK1H,OAAO,QAEvD63I,cAAgB34C,EAAKN,YAAY5+F,KAAK43I,aAAalwI,KAAK1H,YAExD4jG,GAAG,SAAU,gBACTk0C,OAAS93I,KAAK23I,sBACdG,MAAMC,YAAa,GAC1BrwI,KAAK1H,OAAO,QAET4jG,GAAG,kBAAmB,gBAClBk0C,OAAS93I,KAAK23I,sBACdG,MAAME,kBAAmB,GAChCtwI,KAAK1H,OAAO,SAGb83I,MAAQ,UACRG,OAAS,QACTN,eAAiB,SAASO,MACvBl4I,KAAK83I,MAAO,KACPI,GAAel4I,KAAK83I,MAAM3nD,oBAE1B8nD,OAASj4I,KAAK83I,MAElBI,SACIC,gBAAkB,OACT,SAGbN,cAAcn5C,gBACdo5C,MAAQ,CACT3nD,QAAS+nD,EAAY/nD,SAAW,GAChCn7E,KAAMkjI,EAAYljI,KAClBi5E,UAAWjuF,KAAKujG,SAAStV,WAEzBjuF,KAAK83I,MAAM3nD,QAAQrqF,WAA8C,IAAtC9F,KAAK83I,MAAM3nD,QAAQ4jD,qBACzCjtC,wBAGR8wC,aAAe,SAAS12I,MACrBlB,KAAK83I,MAAO,IACR52I,IAAuB,IAAlBA,EAAE2pF,mBACA7qF,KAAK83I,MAAQ,UACnBnsC,QAAQ,0BACTxb,EAAUnwF,KAAK83I,MAAM3nD,QACrBA,EAAQrqF,MAAQ9F,KAAK8mG,gBAAkB,QAClCA,sBACLitC,EAAiB5jD,GAAWA,EAAQ4jD,kBACpCA,EAAgB,QACRA,OACC,mBACgB,cAChB,cACIxwC,SAASuE,qBAAqB,KAAM,cAExC,cACA,cACIvE,SAASuE,iCAEb,oBACGn2D,EAAQ3xC,KAAKghG,UAAUgC,WACvBo1C,EAASp4I,KAAKujG,SAAS0K,aACvBt8D,EAAMhjC,MAAM03F,KAAO+xC,EAAOl2B,SAAWvwE,EAAMziC,IAAIm3F,KAAO+xC,EAAOn2B,gBACxD1e,SAAS80C,wBAAwBr4I,KAAKghG,UAAU99C,OAAQljD,KAAKghG,UAAU+hB,MAMlE,WAAlBgxB,QACKxwC,SAAS+0C,iBAAiBt4I,KAAK83I,MAAM7pD,gBAG7CgqD,OAASj4I,KAAK83I,WACdA,MAAQ,YAGhBS,mBAAqB,CAAC,YAAa,MAAO,qBAC1ChB,gBAAkB,SAASr2I,MACvBlB,KAAKw4I,sBAGNhpF,EAAOxvD,KAAKi4I,OACZQ,EAAoBz4I,KAAKu4I,mBACzBG,EAAclpF,EAAK2gC,SAAYjvF,EAAEivF,QAAQrqF,MAAQ0pD,EAAK2gC,QAAQrqF,QAC5C,gBAAlB5E,EAAEivF,QAAQrqF,KAAwB,KAC9BitB,EAAO7xB,EAAE8T,UACiB,IAA1BhV,KAAK24I,wBACAA,kBAAmB,KAEdD,GACP14I,KAAK24I,oBACH,KAAKj2I,KAAKqwB,IAAS,KAAKrwB,KAAK8sD,EAAKx6C,YAEtC2jI,kBAAmB,SAEVD,QACPD,EAAkBt4I,QAAQe,EAAEivF,QAAQrqF,MAIlB,UAAzB9F,KAAKw4I,kBACFl7H,KAAK8tE,MAAQprF,KAAK44I,kBAAoB,SAE3B,GAGdF,OACKz1C,QAAQyiC,iBAAkB,OAC1B+S,EAAkBt4I,QAAQe,EAAEivF,QAAQrqF,aACpC8yI,kBAAoBt7H,KAAK8tE,cAEjCmuB,mBAAqB,SAASs/B,EAAiB33C,MAC5C23C,GAA8C,iBAApBA,EAA8B,MACnDC,cAAgBD,MACjB/5C,EAAQ9+F,OACL+1G,WAAW,CAAC,aAAc8iC,IAAkB,SAASjzD,GACpDkZ,EAAMg6C,eAAiBD,KACjBxB,WAAW99B,mBAAmB3zB,GAAUA,EAAOmzD,YACnD73C,iBAGL43C,cAAgB,UAChBzB,WAAW99B,mBAAmBs/B,MAC7B33C,UAGTyY,mBAAqB,kBACf35G,KAAKq3I,WAAW19B,2BAEtB+9B,WAAa,SAASz0C,MACnBjjG,KAAKijG,SAAWA,GAEhBjjG,KAAK83I,YAAYF,oBAChBE,MAAQ,OAETkB,EAAah5I,KAAKijG,WAClB+1C,EAAY,MACP/1C,QAAQgQ,IAAI,SAAUjzG,KAAKi5I,wBAC3Bh2C,QAAQgQ,IAAI,aAAcjzG,KAAKsoI,oBAC/BrlC,QAAQgQ,IAAI,kBAAmBjzG,KAAKk5I,yBACpCj2C,QAAQgQ,IAAI,gBAAiBjzG,KAAKm5I,uBAClCl2C,QAAQgQ,IAAI,kBAAmBjzG,KAAKo5I,yBACpCn2C,QAAQgQ,IAAI,iBAAkBjzG,KAAKq5I,wBACnCp2C,QAAQgQ,IAAI,aAAcjzG,KAAKs5I,oBAC/Br2C,QAAQgQ,IAAI,oBAAqBjzG,KAAKu5I,2BACtCt2C,QAAQgQ,IAAI,mBAAoBjzG,KAAKw5I,0BACrCv2C,QAAQgQ,IAAI,mBAAoBjzG,KAAKy5I,0BACrCx2C,QAAQgQ,IAAI,mBAAoBjzG,KAAK05I,0BACrCz2C,QAAQgQ,IAAI,kBAAmBjzG,KAAK25I,sBACpC12C,QAAQgQ,IAAI,kBAAmBjzG,KAAK45I,yBACpC32C,QAAQgQ,IAAI,mBAAoBjzG,KAAK65I,yBAEtC74C,EAAYhhG,KAAKijG,QAAQqiC,iBACnBryB,IAAI,eAAgBjzG,KAAK25I,mBACzB1mC,IAAI,kBAAmBjzG,KAAK85I,yBAGrC72C,QAAUA,EACXA,QACKg2C,kBAAoBj5I,KAAK+5I,iBAAiBryI,KAAK1H,QAC5C4jG,GAAG,SAAU5jG,KAAKi5I,wBACrB11C,SAASm0C,WAAWz0C,QAEpBqlC,cAAgBtoI,KAAKg6I,aAAatyI,KAAK1H,QACpC4jG,GAAG,aAAc5jG,KAAKsoI,oBAEzB4Q,mBAAqBl5I,KAAKi6I,kBAAkBvyI,KAAK1H,QAC9C4jG,GAAG,kBAAmB5jG,KAAKk5I,yBAE9BC,iBAAmBn5I,KAAKujG,SAAS22C,gBAAgBxyI,KAAK1H,KAAKujG,YACxDK,GAAG,gBAAiB5jG,KAAKm5I,uBAE5BC,mBAAqBp5I,KAAKm6I,kBAAkBzyI,KAAK1H,QAC9C4jG,GAAG,kBAAmB5jG,KAAKo5I,yBAE9BC,kBAAoBr5I,KAAKo6I,iBAAiB1yI,KAAK1H,QAC5C4jG,GAAG,iBAAkB5jG,KAAKq5I,wBAE7BC,cAAgBt5I,KAAKokI,aAAa18H,KAAK1H,QACpC4jG,GAAG,aAAc5jG,KAAKs5I,oBAEzBC,qBAAuBv5I,KAAKq6I,oBAAoB3yI,KAAK1H,WACrDijG,QAAQW,GAAG,oBAAqB5jG,KAAKu5I,2BAErCC,oBAAsBx5I,KAAKs6I,mBAAmB5yI,KAAK1H,WACnDijG,QAAQW,GAAG,mBAAoB5jG,KAAKw5I,0BAEpCC,oBAAsBz5I,KAAKu6I,mBAAmB7yI,KAAK1H,WACnDijG,QAAQW,GAAG,mBAAoB5jG,KAAKy5I,0BAEpCC,oBAAsB15I,KAAKw6I,mBAAmB9yI,KAAK1H,WACnDijG,QAAQW,GAAG,mBAAoB5jG,KAAK05I,0BAEpCC,gBAAkB35I,KAAKy6I,eAAe/yI,KAAK1H,WAC3CijG,QAAQW,GAAG,kBAAmB5jG,KAAK25I,sBAEnCC,mBAAqB55I,KAAK06I,kBAAkBhzI,KAAK1H,WACjDijG,QAAQW,GAAG,kBAAmB5jG,KAAK45I,yBAEnCC,oBAAsB75I,KAAK26I,mBAAmBjzI,KAAK1H,WACnDijG,QAAQW,GAAG,mBAAoB5jG,KAAK65I,0BAEpC74C,UAAYiC,EAAQqiC,oBACpBtkC,UAAU4C,GAAG,eAAgB5jG,KAAK25I,sBAElCG,mBAAqB95I,KAAK46I,kBAAkBlzI,KAAK1H,WACjDghG,UAAU4C,GAAG,kBAAmB5jG,KAAK85I,yBAErCE,oBAEAlzC,iBAAmB,OACnB2zC,sBACA3zC,iBAAmB,OAEnB4zC,yBACAC,0BACAC,yBACAP,2BACAC,0BACAC,0BACAC,0BACAv3C,QAAQkpC,kBAAoBnsI,KAAKujG,SAAS8oC,uBAC1C9oC,SAASs3C,oBAET75C,UAAY,UACZuC,SAASm0C,WAAWz0C,SAGxB0I,QAAQ,gBAAiB,CAC1B1I,QAAAA,EACA+1C,WAAAA,SAGClB,MAAQ,QAECkB,EAAWrtC,QAAQ,eAAgB,CAACmvC,UAAW96I,UAClDijG,EAAQ0I,QAAQ,eAAgB,CAAClG,OAAQzlG,OAEhDijG,GAAWA,EAAQqhC,eACXA,YAAY3I,uBAEvBof,WAAa,kBACP/6I,KAAKijG,cAEXy1B,SAAW,SAASxvH,EAAK8xI,eACrB/3C,QAAQtX,IAAI+sC,SAASxvH,GAErB8xI,EAEiB,GAAbA,OACArG,sBACAqG,QACAxG,yBAJA/xC,YAMFv5F,QAENyvH,SAAW,kBACL34H,KAAKijG,QAAQ01B,iBAEnB2M,aAAe,kBACTtlI,KAAKghG,gBAEXi6C,OAAS,SAASrR,QACdrmC,SAAS23C,SAAStR,SAEtBuR,SAAW,SAASC,EAAOl6C,QACvBqC,SAAS43C,SAASC,EAAOl6C,SAE7Bm6C,SAAW,kBACLr7I,KAAKujG,SAAS83C,iBAEpB5zC,SAAW,SAAS9kG,QAChB4gG,SAASkE,SAAS9kG,SAEtB2lG,WAAa,SAAS3lG,QAClB4gG,SAAS+E,WAAW3lG,SAExB24I,YAAc,kBACRt7I,KAAK0zG,UAAU,aACnBzU,EAAIhS,cAAcjtF,KAAKskG,UAAW,kBAEpCi3C,YAAc,SAASziH,QACnBw6E,UAAU,WAAYx6E,SAG1B0iH,mBAAqB,cAClBx7I,KAAKijG,QAAQw4C,yBACRx4C,QAAQiM,aAAalvG,KAAKijG,QAAQw4C,wBAClCx4C,QAAQw4C,kBAAoB,OAGjCz7I,KAAK07I,uBAGL1yD,EAAOhpF,UACN07I,mBAAoB,cACd,aACFA,mBAAoB,MACrBz4C,EAAUja,EAAKia,WACdA,GAAYA,EAAQqhC,iBACrB94E,EAAMy3C,EAAQstB,oBAAoBvnC,EAAK2mC,wBACvCnkE,MACI7Z,EAAQ,IAAI7xB,EAAM0rC,EAAI66C,IAAK76C,EAAI+6C,OAAQ/6C,EAAI66C,IAAK76C,EAAI+6C,OAAS,WAC1DtD,EAAQ4tB,MAAM8qB,YACjBhqG,EAAQsxD,EAAQ4tB,MAAM8qB,YAAY3yD,EAAKia,SAE3CtxD,MACQ8pG,kBAAoBx4C,EAAQ0L,UAAUh9D,EAAO,cAAe,YACzE,WAEFiqG,eAAiB,eACd57I,KAAK67I,0BAEL7yD,EAAOhpF,UACN67I,sBAAuB,cACjB,aACFA,sBAAuB,MAExB54C,EAAUja,EAAKia,WACdA,GAAYA,EAAQqhC,iBAErB94E,EAAMw9B,EAAK2mC,oBACX9+G,EAAW,IAAIs8G,EAAcnkC,EAAKia,QAASz3C,EAAI66C,IAAK76C,EAAI+6C,QACxD+iB,EAAQz4G,EAASk9G,sBAEhBzE,IAAU,0BAA0B5mH,KAAK4mH,EAAMpqH,eACxCgwG,aAAajM,EAAQ64C,sBACrBA,cAAgB,aAIxBxyB,EAAMpqH,KAAKiB,QAAQ,gBACX0Q,EAASg9G,oBAKjBrsG,EAAM8nG,EAAMlnH,MACZq7B,EAAQ,EACRs+G,EAAYlrI,EAAS+8G,kBAEF,KAAnBmuB,EAAU35I,WAEMknH,KACJz4G,EAASg9G,gBAEJvE,EAAMlnH,QAAUof,QAAO8nG,EAAMpqH,KAAKiB,QAAQ,cAC3B,MAApB47I,EAAU35I,UAEiB,OAApB25I,EAAU35I,kBAKpBknH,GAAS7rF,GAAS,OACxB,MAESs+G,IACIlrI,EAAS+8G,eAEjBtE,GAASA,EAAMlnH,QAAUof,QAAO8nG,EAAMpqH,KAAKiB,QAAQ,cAC3B,MAApB47I,EAAU35I,UAEiB,OAApB25I,EAAU35I,kBAIpB25I,GAAat+G,GAAS,KACtBowF,kBAGRvE,WACOpa,aAAajM,EAAQ64C,sBACrBA,cAAgB,UAIxBz1C,EAAMx1F,EAASm9G,qBACfznB,EAAS11F,EAASo9G,wBAClBt8E,EAAQ,IAAI7xB,EAAMumF,EAAKE,EAAQF,EAAKE,EAAO+iB,EAAMlnH,MAAMvD,QACvDm9I,EAAM/4C,EAAQ+gC,aAAa/gC,EAAQ64C,eACnC74C,EAAQ64C,eAAwB,MAAPE,GAAsD,IAAlCrqG,EAAMyvE,aAAa46B,EAAIrqG,WAC5Du9D,aAAajM,EAAQ64C,iBACrBA,cAAgB,MAGxBnqG,IAAUsxD,EAAQ64C,kBACVA,cAAgB74C,EAAQ0L,UAAUh9D,EAAO,cAAe,aACrE,WAEF2uD,MAAQ,eACLxB,EAAQ9+F,iBACD,aACD+kG,UAAUzE,gBAEfyE,UAAUzE,cAEdJ,UAAY,kBACNlgG,KAAK+kG,UAAU7E,kBAErBK,KAAO,gBACHwE,UAAUxE,aAEdF,QAAU,SAASn/F,GAChBlB,KAAKi8I,kBAEJA,YAAa,OACb14C,SAAS24C,kBACT34C,SAAS44C,sBACTl4C,MAAM,QAAS/iG,UAEnBk/F,OAAS,SAASl/F,GACdlB,KAAKi8I,kBAELA,YAAa,OACb14C,SAAS64C,kBACT74C,SAAS84C,qBACTp4C,MAAM,OAAQ/iG,UAGlBo7I,cAAgB,gBACZ/4C,SAASg5C,qBAEbxC,iBAAmB,SAASvxH,OACzBkoC,EAAO1wD,KAAKijG,QAAQ2b,aACpBsD,EAAW15F,EAAM7Z,MAAM03F,KAAO79E,EAAMtZ,IAAIm3F,IAAM79E,EAAMtZ,IAAIm3F,IAAMrwF,EAAAA,OAC7DutF,SAASi5C,YAAYh0H,EAAM7Z,MAAM03F,IAAK6b,EAASxxD,QAE/Ci7C,QAAQ,SAAUnjF,QAClB8zH,qBACAG,mCAGJxC,kBAAoB,SAAS/4I,OAC1BsmH,EAAOtmH,EAAEuE,UACR89F,SAASi5C,YAAYh1B,EAAKv8C,MAAOu8C,EAAK5zG,YAI1C8mI,kBAAoB,gBAChBn3C,SAASm5C,UAAU18I,KAAKijG,QAAQimC,sBAGpCyR,mBAAqB,gBACjBp3C,SAASo5C,UAAU38I,KAAKijG,QAAQomC,uBAEpCoR,eAAiB,gBACb6B,gBAEAt8I,KAAK8mG,oBACCjrF,KAAK,kEACR,4CACA,sEAEC0nF,SAASuE,6BAGb0zC,0BACAI,sBACAa,kCACA9wC,QAAQ,yBAGZ8wC,2BAA6B,eAG1BlV,EAFAtkC,EAAUjjG,KAAK+6I,gBAGf/6I,KAAK48I,uBACwB,QAAxB58I,KAAK68I,iBAA8B78I,KAAKghG,UAAU+H,kBACvC/oG,KAAK2vH,sBACjB3vH,KAAKujG,SAASu5C,WAA0C,IAA7B98I,KAAKijG,QAAQmJ,kBAA4B7I,SAASw5C,UAAY,OAC7E,IAGhB95C,EAAQ+5C,uBAAyBzV,IACzBr4B,aAAajM,EAAQ+5C,qBAAqBvpI,MAC1CupI,qBAAuB,cACvB/5C,EAAQ+5C,sBAAwBzV,EAAW,KAC/C51F,EAAQ,IAAI7xB,EAAMynH,EAAUlhC,IAAKkhC,EAAUhhC,OAAQghC,EAAUlhC,IAAKrwF,EAAAA,KAChEvC,GAAKwvF,EAAQ0L,UAAUh9D,EAAO,kBAAmB,gBAC/CqrG,qBAAuBrrG,OACxB41F,MACCyV,qBAAqBruI,MAAM03F,IAAMkhC,EAAUlhC,MAC3C22C,qBAAqB9tI,IAAIm3F,IAAMkhC,EAAUlhC,MACzC22C,qBAAqBruI,MAAM43F,OAASghC,EAAUhhC,SAC9CoF,QAAQ,2BAInBivC,kBAAoB,SAAS15I,OAC1B+hG,EAAUjjG,KAAKijG,WAEfA,EAAQg6C,oBACA/tC,aAAajM,EAAQg6C,oBAEzBA,iBAAmB,KAEtBj9I,KAAKghG,UAAUL,eAKX87C,iCALsB,KACvB9qG,EAAQ3xC,KAAKghG,UAAUgC,WACvBrgG,EAAQ3C,KAAK4uG,sBACTquC,iBAAmBh6C,EAAQ0L,UAAUh9D,EAAO,gBAAiBhvC,OAKrEgzG,EAAK31G,KAAKk9I,wBAA0Bl9I,KAAKm9I,oCACxCl6C,QAAQskC,UAAU5xB,QAElBhK,QAAQ,yBAGZwxC,6BAA+B,eAC5Bl6C,EAAUjjG,KAAKijG,QAEfjC,EAAYhhG,KAAK6mG,wBACjB7F,EAAUL,YAAaK,EAAU+H,mBAGjCq0C,EAAap8C,EAAUryF,MAAM43F,OAAS,EACtC82C,EAAWr8C,EAAU9xF,IAAIq3F,OAAS,EAClCkX,EAAOxa,EAAQ0V,QAAQ3X,EAAUryF,MAAM03F,KACvCi3C,EAAW7/B,EAAK5+G,OAChB0xI,EAAS9yB,EAAKjc,UAAU74F,KAAKD,IAAI00I,EAAY,GACrBz0I,KAAKkN,IAAIwnI,EAAUC,SAC1CF,GAAc,GAAK,UAAU16I,KAAK6tI,IAClC8M,GAAYC,GAAY,UAAU56I,KAAK6tI,SAGnC9yB,EAAKjc,UAAUR,EAAUryF,MAAM43F,OAAQvF,EAAU9xF,IAAIq3F,QACzD,YAAY7jG,KAAK6tI,UAGbvwI,KAAKs3I,QAAQ9G,gBAAgB,CAClCM,WAAW,EACXI,eAAe,EACfX,OAAAA,WAOH8J,oBAAsB,gBAClB92C,SAASg6C,2BAGbjD,mBAAqB,gBACjB/2C,SAASi6C,0BAIbjD,mBAAqB,gBACjBh3C,SAASk6C,0BAGbjD,mBAAqB,gBACjBj3C,SAASmkC,eAAe1nI,KAAKijG,QAAQ2kC,wBAIzCoS,aAAe,SAAS94I,QACpBqiG,SAASm6C,kBACTz5C,MAAM,aAAc/iG,SAIxBi5I,kBAAoB,gBAChB52C,SAASs3C,mBAGbT,iBAAmB,gBACf72C,SAAS23C,UAAS,SAItB9W,aAAe,gBACXqY,kCACAl5C,SAASs3C,mBAEb8C,gBAAkB,kBACZ39I,KAAKijG,QAAQ2M,aAAa5vG,KAAK6mG,2BAErC1E,YAAc,eACXpvE,EAAO/yB,KAAK29I,8BACXhyC,QAAQ,OAAQ54E,GACdA,QAENsvE,OAAS,gBACL6W,SAAS/rG,KAAK,OAAQnN,YAE1BoiG,MAAQ,gBACJ8W,SAAS/rG,KAAK,MAAOnN,YAEzBshG,QAAU,SAASvuE,EAAMvvB,OACtBtC,EAAI,CAAC6xB,KAAAA,EAAYvvB,MAAAA,QAChB01G,SAAS/rG,KAAK,QAASnN,KAAMkB,SAGjCw0I,aAAe,SAASx0I,GACT,iBAALA,MACH,CAAC6xB,KAAM7xB,SACVyqG,QAAQ,QAASzqG,OAClB6xB,EAAO7xB,EAAE6xB,SACR/yB,KAAKinG,mBAAqBjnG,KAAK49I,4BAC3BvrF,OAAOt/B,OACT,KACCorF,EAAQprF,EAAKzqB,MAAM,cACnB8/G,EAASpoH,KAAKghG,UAAUsnB,UAAUF,UAElCjK,EAAMt/G,OAASupH,EAAOvpH,QAAUs/G,EAAMt/G,OAAS,IAAMs/G,EAAM,UACpDn+G,KAAKk5G,SAAS/rG,KAAK,eAAgBnN,KAAM+yB,WAE3Cl1B,EAAIuqH,EAAOvpH,OAAQhB,KAAM,KAC1B8zC,EAAQy2E,EAAOvqH,GACd8zC,EAAMgvD,gBACFsC,QAAQ5a,OAAO12C,QAEnBsxD,QAAQ5wC,OAAO1gB,EAAMhjC,MAAOwvG,EAAMtgH,YAK9C0jG,YAAc,SAASpR,EAASn7E,UAC1BhV,KAAKk5G,SAAS/rG,KAAKgjF,EAASnwF,KAAMgV,SAExCq9C,OAAS,SAASt/B,EAAM+sE,OACrBmD,EAAUjjG,KAAKijG,QACfhpC,EAAOgpC,EAAQ8lC,UACf3iC,EAASpmG,KAAK2vH,uBAEd3vH,KAAK69I,yBAA2B/9C,EAAQ,KACpCg+C,EAAY7jF,EAAKw8D,gBAAgBxzB,EAAQ44B,SAASz1B,EAAOC,KAAM,YAAarmG,KAAMijG,EAASlwE,GAC3F+qH,IACI/qH,IAAS+qH,EAAU/qH,YACdkwE,QAAQyiC,iBAAkB,OAC1BqY,mBAAoB,KAEtBD,EAAU/qH,SAKb,MAARA,MACO/yB,KAAKijG,QAAQ0tB,gBACnB3wH,KAAKghG,UAAUL,cAKX3gG,KAAKijG,QAAQujC,oBAAkBzzG,EAAK5yB,QAAQ,MAAa,EAC1DwxC,EAAQ,IAAI7xB,EAAMqiG,WAAW/b,EAAQA,IACnCl3F,IAAIq3F,QAAUxzE,EAAKl0B,YACpBokG,QAAQ5a,OAAO12C,QARO,KACvBA,EAAQ3xC,KAAK6mG,sBACR7mG,KAAKijG,QAAQ5a,OAAO12C,QACxByxD,oBAQG,MAARrwE,GAAwB,QAARA,EAAgB,KAC5B0qF,EAAOxa,EAAQ0V,QAAQvS,EAAOC,QAC9BD,EAAOG,OAASkX,EAAKtzG,OAAO,QAAS,KACjCzG,EAAI+5G,EAAKpsG,OAAO+0F,EAAOG,QAAQp8F,OAAO,UAClCwhF,IAAIopC,aAAa3uB,EAAOC,IAAKD,EAAOG,OAAQH,EAAOG,OAAS7iG,SAGvE0/F,qBAEDz0F,EAAQy3F,EAAOG,OACfy3C,EAAY/6C,EAAQ44B,SAASz1B,EAAOC,KAEpC43C,GADAxgC,EAAOxa,EAAQ0V,QAAQvS,EAAOC,KACdpsC,EAAK+7D,aAAagoB,EAAWvgC,EAAM1qF,SACrCs/B,OAAO+zC,EAAQrzE,GAE7B+qH,GAAaA,EAAU98C,YACW,GAA9B88C,EAAU98C,UAAUniG,YACfmiG,UAAUD,kBACX,IAAIjhF,EAAMsmF,EAAOC,IAAK13F,EAAQmvI,EAAU98C,UAAU,GACxCoF,EAAOC,IAAK13F,EAAQmvI,EAAU98C,UAAU,UAEjDA,UAAUD,kBACX,IAAIjhF,EAAMsmF,EAAOC,IAAMy3C,EAAU98C,UAAU,GACjC88C,EAAU98C,UAAU,GACpBoF,EAAOC,IAAMy3C,EAAU98C,UAAU,GACjC88C,EAAU98C,UAAU,MAItCiC,EAAQ6f,cAAcuW,UAAUtmG,GAAO,KACnCmrH,EAAajkF,EAAK67D,kBAAkBkoB,EAAWvgC,EAAKz6G,MAAM,EAAGojG,EAAOG,QAAStD,EAAQ0tB,kBAEjFt+D,OAAO,CAACg0C,IAAKD,EAAOC,IAAI,EAAGE,OAAQ,GAAI23C,GAE/CD,KACKhoB,YAAY+nB,EAAW/6C,EAASmD,EAAOC,WAG/C5E,YAAc,SAAS1uE,QACnBskH,WAAW51C,YAAY1uE,SAG3BwvE,aAAe,SAASrhG,EAAG86F,EAAQrF,QAC/B0gD,WAAW90C,aAAarhG,EAAG86F,EAAQrF,SAEvC2vC,aAAe,SAASC,QACpBtjC,QAAQqjC,aAAaC,SAEzBC,aAAe,kBACTxmI,KAAKijG,QAAQujC,qBAEnBC,gBAAkB,gBACdxjC,QAAQwjC,wBAEZ0X,eAAiB,SAASx0C,QACtB2J,UAAU,cAAe3J,SAE7By0C,eAAiB,kBACXp+I,KAAK0zG,UAAU,qBAErB2qC,aAAe,SAASvmC,QACpBxE,UAAU,YAAawE,SAE3BjH,aAAe,kBACT7wG,KAAK0zG,UAAU,mBAErB4qC,kBAAoB,SAASp1I,QACzBoqG,UAAU,iBAAkBpqG,SAEhC0lG,kBAAoB,kBACd5uG,KAAK0zG,UAAU,wBAErB6qC,uBAAyB,SAASC,QAC9BlrC,UAAU,sBAAuBkrC,SAErCC,uBAAyB,kBACnBz+I,KAAK0zG,UAAU,6BAErBgrC,uBAAyB,SAASF,QAC9BlrC,UAAU,sBAAuBkrC,SAGrCG,uBAAyB,kBACnB3+I,KAAK0zG,UAAU,6BAErBkrC,yBAA2B,SAASJ,QAChClrC,UAAU,wBAAyBkrC,SAEvCK,yBAA2B,kBACrB7+I,KAAKk9I,6BAGX4B,kBAAoB,SAASC,QACzBx7C,SAASu7C,kBAAkBC,SAG/BC,kBAAoB,kBACdh/I,KAAKujG,SAASy7C,0BAEpBt/B,kBAAoB,SAASnC,QACzBha,SAASmc,kBAAkBnC,SAE/BkC,kBAAoB,kBACdz/G,KAAKujG,SAASkc,0BAGpBw/B,uBAAyB,SAAS55H,QAC9Bk+E,SAAS07C,uBAAuB55H,SAGpC65H,uBAAyB,kBACnBl/I,KAAKujG,SAAS27C,+BAEpBC,mBAAqB,SAASC,QAC1B77C,SAAS47C,mBAAmBC,SAEhCC,mBAAqB,kBACfr/I,KAAKujG,SAAS87C,2BAEpBC,qBAAuB,SAASF,QAC5B77C,SAAS+7C,qBAAqBF,SAElCG,qBAAuB,kBACjBv/I,KAAKujG,SAASg8C,6BAEpBz7C,YAAc,SAASC,QACnBuP,UAAU,WAAYvP,SAE1BqL,YAAc,kBACRpvG,KAAK0zG,UAAU,kBAErB8rC,qBAAuB,SAAU/qI,QAC7B6+F,UAAU,oBAAqB7+F,SAEnCopI,qBAAuB,kBACjB79I,KAAK0zG,UAAU,2BAErB+rC,yBAA2B,SAAUhrI,QACjC6+F,UAAU,wBAAyB7+F,SAEvCm7G,yBAA2B,kBACrB5vH,KAAK0zG,UAAU,+BAErBgsC,mBAAqB,SAASl1C,QAC1B8I,UAAU,kBAAmB9I,SAGjCm1C,mBAAqB,kBACf3/I,KAAK0zG,UAAU,yBAGrBksC,mBAAqB,SAASC,QAC1BvsC,UAAU,kBAAmBusC,SAGjCC,mBAAqB,kBACf9/I,KAAK0zG,UAAU,yBAErBrrB,OAAS,SAAS4xB,GACfj6G,KAAKghG,UAAUL,YACJ,QAAPsZ,OACKjZ,UAAUujB,kBAEVvjB,UAAUqjB,mBAGnB1yE,EAAQ3xC,KAAK6mG,uBACb7mG,KAAK69I,uBAAwB,KACzB56C,EAAUjjG,KAAKijG,QACf7+F,EAAQ6+F,EAAQ44B,SAASlqF,EAAMhjC,MAAM03F,KACrC05C,EAAY98C,EAAQ8lC,UAAUtS,gBAAgBryH,EAAO,WAAYpE,KAAMijG,EAAStxD,MAE3D,IAArBA,EAAMziC,IAAIq3F,OAAc,KACpBxzE,EAAOkwE,EAAQ2M,aAAaj+D,MACH,MAAzB5e,EAAKA,EAAKl0B,OAAS,GAAY,KAC3B4+G,EAAOxa,EAAQ0V,QAAQhnE,EAAMziC,IAAIm3F,KACjC,QAAQ3jG,KAAK+6G,OACPvuG,IAAIq3F,OAASkX,EAAK5+G,SAIhCkhJ,MACQA,QAGX98C,QAAQ5a,OAAO12C,QACfyxD,uBAEJ+yC,gBAAkB,WACfn2I,KAAKghG,UAAUL,gBACVK,UAAUikB,uBAEdhiB,QAAQ5a,OAAOroF,KAAK6mG,0BACpBzD,uBAEJ8yC,eAAiB,WACdl2I,KAAKghG,UAAUL,gBACVK,UAAUmkB,sBAEdliB,QAAQ5a,OAAOroF,KAAK6mG,0BACpBzD,uBAEJ4yC,kBAAoB,WACjBh2I,KAAKghG,UAAUL,gBACVK,UAAUyjB,uBAEdxhB,QAAQ5a,OAAOroF,KAAK6mG,0BACpBzD,uBAEJ6yC,gBAAkB,WACfj2I,KAAKghG,UAAUL,gBACVK,UAAU2jB,oBAEfhzE,EAAQ3xC,KAAK6mG,oBACbl1D,EAAMhjC,MAAM43F,QAAU50D,EAAMziC,IAAIq3F,QAAU50D,EAAMhjC,MAAM03F,KAAO10D,EAAMziC,IAAIm3F,QACjEn3F,IAAIq3F,OAAS,IACbr3F,IAAIm3F,YAGTpD,QAAQ5a,OAAO12C,QACfyxD,uBAEJkzC,UAAY,WACRt2I,KAAKghG,UAAUL,iBACXsC,QAAQ5a,OAAOroF,KAAK6mG,0BACpBzD,sBAGLgD,EAASpmG,KAAK2vH,yBACbt9D,OAAO,WACPy7C,qBAAqB1H,SAEzBmwC,iBAAmB,cACfv2I,KAAKghG,UAAUL,eAIhByF,EAASpmG,KAAK2vH,oBACdppB,EAASH,EAAOG,UACL,IAAXA,OAIAy5C,EAAMruG,EADN8rE,EAAOz9G,KAAKijG,QAAQ0V,QAAQvS,EAAOC,KAEnCE,EAASkX,EAAK5+G,UACP4+G,EAAK50G,OAAO09F,GAAUkX,EAAK50G,OAAO09F,EAAO,KACxC,IAAIzmF,EAAMsmF,EAAOC,IAAKE,EAAO,EAAGH,EAAOC,IAAKE,EAAO,OAGpDkX,EAAK50G,OAAO09F,EAAO,GAAKkX,EAAK50G,OAAO09F,EAAO,KAC1C,IAAIzmF,EAAMsmF,EAAOC,IAAKE,EAAO,EAAGH,EAAOC,IAAKE,SAEnDtD,QAAQngG,QAAQ6uC,EAAOquG,QACvB/8C,QAAQjC,UAAU+F,eAAep1D,EAAMziC,aAE3CnM,YAAc,eACXk9I,EAAgBjgJ,KAAK6mG,oBACrB7mG,KAAKghG,UAAUL,gBACVK,UAAUqkB,iBAGf1zE,EAAQ3xC,KAAK6mG,oBACb9zE,EAAO/yB,KAAKijG,QAAQ2M,aAAaj+D,QAChCsxD,QAAQngG,QAAQ6uC,EAAO5e,EAAKhwB,oBAC5Bi+F,UAAUD,kBAAkBk/C,SAEhCv0I,YAAc,eACXu0I,EAAgBjgJ,KAAK6mG,oBACrB7mG,KAAKghG,UAAUL,gBACVK,UAAUqkB,iBAGf1zE,EAAQ3xC,KAAK6mG,oBACb9zE,EAAO/yB,KAAKijG,QAAQ2M,aAAaj+D,QAChCsxD,QAAQngG,QAAQ6uC,EAAO5e,EAAKrnB,oBAC5Bs1F,UAAUD,kBAAkBk/C,SAEhClhC,OAAS,eACN9b,EAAUjjG,KAAKijG,QACftxD,EAAQ3xC,KAAK6mG,yBAEbl1D,EAAMhjC,MAAM03F,IAAM10D,EAAMziC,IAAIm3F,SAIrB10D,EAAMhjC,MAAM43F,OAAS50D,EAAMziC,IAAIq3F,OAAQ,KAC1CxzE,EAAOkwE,EAAQ2M,aAAaj+D,OAC3B,QAAQjvC,KAAKqwB,GAAO,CACjBy0F,EAAOxnH,KAAKkgJ,iCACR/U,WAAW3jB,EAAKv8C,MAAOu8C,EAAK5zG,KAAM,WAK9C6pG,EAAOxa,EAAQ0V,QAAQhnE,EAAMhjC,MAAM03F,KACnCrkF,EAAW2vB,EAAMhjC,MACjBmqB,EAAOmqE,EAAQijB,aACf3f,EAAStD,EAAQurC,uBAAuBxsH,EAASqkF,IAAKrkF,EAASukF,WAE/DvmG,KAAKijG,QAAQ2xB,qBACTnzG,EAASqX,EAAOytE,EAASztE,EACzBsyG,EAAelsC,EAAK3B,aAAa,IAAK97E,OACvC,KACCA,EAAQ8kF,EAASztE,EACkB,KAAhC2kF,EAAK9rE,EAAMhjC,MAAM43F,OAAS,IAAa9kF,KACpC9S,MAAM43F,kBAGXvF,UAAUD,kBAAkBpvD,KAClB,YAEZ3xC,KAAKqyD,OAAO+4E,OA7BX5jB,EAAOxnH,KAAKkgJ,qBACR/U,WAAW3jB,EAAKv8C,MAAOu8C,EAAK5zG,KAAM,YA8B7CyiI,YAAc,eACX7uB,EAAOxnH,KAAKkgJ,wBACXj9C,QAAQkoC,WAAW3jB,EAAKv8C,MAAOu8C,EAAK5zG,KAAM,YAE9CwiI,aAAe,eACZp1C,EAAYhhG,KAAKijG,QAAQqiC,oBACxBriC,QAAQooC,YAAYrqC,EAAUgC,kBAElC4yC,UAAY,mBACTpuB,EAAOxnH,KAAKkgJ,mBACZj9C,EAAUjjG,KAAKijG,QAEfkb,EAAQ,GACHtgH,EAAI2pH,EAAKv8C,MAAOptE,GAAK2pH,EAAK5zG,KAAM/V,MAC/BiB,KAAKmkG,EAAQ0V,QAAQ96G,MAEzB4C,MAAK,SAASY,EAAGK,UACfL,EAAE0B,cAAgBrB,EAAEqB,iBACpB1B,EAAE0B,cAAgBrB,EAAEqB,cAAsB,EACvC,SAGPwoI,EAAc,IAAIzrH,EAAM,EAAG,EAAG,EAAG,OAC5BjiB,EAAI2pH,EAAKv8C,MAAOptE,GAAK2pH,EAAK5zG,KAAM/V,IAAK,KACtC4/G,EAAOxa,EAAQ0V,QAAQ96G,KACf8Q,MAAM03F,IAAMxoG,IACZqR,IAAIm3F,IAAMxoG,IACVqR,IAAIq3F,OAASkX,EAAK5+G,SACtBiE,QAAQyoI,EAAaptB,EAAMtgH,EAAE2pH,EAAKv8C,eAG7CqpD,mBAAqB,eAClBlwH,EAAQpE,KAAKijG,QAAQ44B,SAAS77H,KAAK2vH,oBAAoBtpB,KACvDmhB,EAAOxnH,KAAKkgJ,wBACXj9C,QAAQ8lC,UAAUzU,mBAAmBlwH,EAAOpE,KAAKijG,QAASukB,EAAKv8C,MAAOu8C,EAAK5zG,YAG/E6hH,mBAAqB,eAClBrvB,EAASpmG,KAAK2vH,oBACdvrH,EAAQpE,KAAKijG,QAAQ44B,SAASz1B,EAAOC,KACrC10D,EAAQ3xC,KAAK6mG,yBACZ5D,QAAQ8lC,UAAUtT,mBAAmBrxH,EAAOpE,KAAKijG,QAAStxD,EAAOy0D,SAErE+5C,YAAc,SAAS95C,EAAKE,OACzB65C,EAAY,8BACNj6D,UAAY,UAElB/kF,EAAIpB,KAAKijG,QAAQ0V,QAAQtS,GACtB+5C,EAAUj6D,UAAYogB,GAAQ,KAC7B5kG,EAAIy+I,EAAUjzI,KAAK/L,MACpBO,EAAE2H,OAASi9F,GAAU5kG,EAAE2H,MAAM3H,EAAE,GAAG9C,QAAU0nG,QAC9B,CACTnkG,MAAOT,EAAE,GACTgN,MAAOhN,EAAE2H,MACT4F,IAAKvN,EAAE2H,MAAM3H,EAAE,GAAG9C,eAKvB,WAENg3I,aAAe,SAAS1kH,OACrBk1E,EAAMrmG,KAAKghG,UAAUsiB,YAAYjd,IACjCE,EAASvmG,KAAKghG,UAAUsiB,YAAY/c,OACpC85C,EAAY,IAAIvgI,EAAMumF,EAAKE,EAAO,EAAGF,EAAKE,GAE1CplG,EAAInB,KAAKijG,QAAQ2M,aAAaywC,OAC7B1sI,MAAMqf,WAAW7xB,KAAO8xB,SAAS9xB,GAAI,KAClCm/I,EAAKtgJ,KAAKmgJ,YAAY95C,EAAKE,MAC3B+5C,EAAI,KACAC,EAAKD,EAAGl+I,MAAMjC,QAAQ,MAAQ,EAAImgJ,EAAG3xI,MAAQ2xI,EAAGl+I,MAAMjC,QAAQ,KAAO,EAAImgJ,EAAGpxI,IAC5EsxI,EAAWF,EAAG3xI,MAAQ2xI,EAAGl+I,MAAMvD,OAAS0hJ,EAExC/hJ,EAAIw0B,WAAWstH,EAAGl+I,UACjBuG,KAAK83D,IAAI,GAAI+/E,GAGfD,IAAOD,EAAGpxI,KAAOq3F,EAASg6C,KACf53I,KAAK83D,IAAI,GAAI6/E,EAAGpxI,IAAMq3F,EAAS,MAE/B59F,KAAK83D,IAAI,GAAI6/E,EAAGpxI,IAAMq3F,MAG/Bp1E,MAEDsvH,MADC93I,KAAK83D,IAAI,GAAI+/E,IACNE,QAAQF,GAChBG,EAAe,IAAI7gI,EAAMumF,EAAKi6C,EAAG3xI,MAAO03F,EAAKi6C,EAAGpxI,UAC/C+zF,QAAQngG,QAAQ69I,EAAcF,QAC9B78B,aAAavd,EAAK19F,KAAKD,IAAI43I,EAAG3xI,MAAO,EAAG43F,EAASk6C,EAAI5hJ,OAASyhJ,EAAGl+I,MAAMvD,iBAKnF66H,YAAc,eACXlS,EAAOxnH,KAAKkgJ,wBACXj9C,QAAQ02B,gBAAgBnS,EAAKv8C,MAAOu8C,EAAK5zG,WACzCwvF,uBAGJuyC,mBAAqB,eAClBiL,EAAM5gJ,KAAKghG,UACXrV,EAAM3rF,KAAKijG,QACXtxD,EAAQivG,EAAI59C,WACZ1F,EAAUsjD,EAAI/8B,iBACdlyE,EAAMgvD,UAAW,KACb0F,EAAM10D,EAAMhjC,MAAM03F,MAClBylC,eAAezlC,EAAKA,OACrB,KACC5uB,EAAQ6lB,EAAU3rD,EAAMhjC,MAAQgjC,EAAMziC,IACtC2xI,EAAWl1D,EAAIt5B,OAAOolB,EAAOkU,EAAIikB,aAAaj+D,IAAQ,KACpDhjC,MAAQ8oE,IACRvoE,IAAM2xI,IAER9/C,kBAAkBpvD,EAAO2rD,UAGhCuuC,cAAgB,gBACZL,WAAW,GAAG,SAElBI,YAAc,gBACVJ,eAAe,SAEnBj7B,SAAW,SAAS5+D,EAAOm5F,EAAYv7H,UACjCvP,KAAKijG,QAAQsN,SAAS5+D,EAAOm5F,EAAYv7H,SAE/CumI,YAAc,gBACVtK,eAAe,SAEnBuK,cAAgB,gBACZvK,WAAW,GAAG,SAElBA,WAAa,SAASvxB,EAAK1qG,OACxBi4G,EAAMs5B,EACN9/C,EAAYhhG,KAAKghG,cAChBA,EAAUiG,mBAAqBjnG,KAAK49I,uBAAwB,KACzDjsG,EAAQqvD,EAAU0N,oBACf1uG,KAAKkgJ,iBAAiBvuG,KACrB3xC,KAAKijG,QAAQuoC,WAAWhkB,EAAKv8C,MAAOu8C,EAAK5zG,KAAMrE,EAAO,EAAI0qG,GAC9D1qG,OAAQ0qG,MAAmB,KACzByI,OAAOo+B,EAAO,KACV3xC,kBAAkBx9D,OACzB,KACCy2E,EAASpnB,EAAUsnB,UAAUF,SACvBE,UAAU5O,OAAO15G,KAAKijG,cAC3B26C,wBAAyB,UAE1BnS,EAAO,EACPsV,EAAY,EACZ3iJ,EAAIgqH,EAAOvpH,OACNhB,EAAI,EAAGA,EAAIO,EAAGP,IAAK,KACpBmjJ,EAAanjJ,IACVA,GAAG6kH,OAAO+oB,EAAM,WAEnBxgE,KADGjrE,KAAKkgJ,iBAAiB93B,EAAOvqH,KACnBotE,MACb5hB,EAAOm+D,EAAK5zG,OACP/V,EAAIO,GAAG,CACR2iJ,KAAkBljJ,GAAG6kH,OAAOq+B,EAAW,OACvCE,EAAUjhJ,KAAKkgJ,iBAAiB93B,EAAOvqH,OACvC0R,GAAQ0xI,EAAQh2E,OAAS5hB,YAEnB95C,GAAQ0xI,EAAQh2E,MAAQ5hB,EAAO,UAElC43F,EAAQrtI,eAGZ5T,KAAKijG,QAAQuoC,WAAWvgE,EAAO5hB,EAAM95C,EAAO,EAAI0qG,GACnD1qG,OAAQ0qG,MAAwBp8G,EAAI,GACjCmjJ,GAAcnjJ,KACVmjJ,GAAYt+B,OAAO+oB,EAAM,OAG/Bl8H,MAAa,MACLk8H,IAGPt8B,kBAAkBnO,EAAUonB,OAAO,MACnCE,UAAU7O,OAAOz5G,KAAKijG,cAC3B26C,wBAAyB,SAGjCsC,iBAAmB,SAASvuG,gBACX3xC,KAAK6mG,qBAAqBwb,eAErC,CACHp3C,MAAOjrE,KAAKijG,QAAQ29B,gBAAgBjvF,EAAMhjC,MAAM03F,KAChDzyF,KAAM5T,KAAKijG,QAAQ09B,cAAchvF,EAAMziC,IAAIm3F,YAI9C3C,mBAAqB,SAAS3wE,QAC1BwwE,SAAS29C,gBAAgBlhJ,KAAK2vH,2BAGlChtB,oBAAsB,SAAS5vE,QAC3BwwE,SAAS49C,mBAAmBpuH,SAGhCswE,iBAAmB,gBACfE,SAAS69C,wBAEbC,mBAAqB,kBACfrhJ,KAAKujG,SAAS89C,2BAEpBC,kBAAoB,kBACdthJ,KAAKujG,SAAS+9C,0BAEpBC,aAAe,SAASl7C,UACjBA,GAAOrmG,KAAKqhJ,sBAAwBh7C,GAAOrmG,KAAKshJ,0BAEvDE,kBAAoB,SAASn7C,UACtBA,GAAOrmG,KAAKujG,SAASk+C,2BAA6Bp7C,GAAOrmG,KAAKujG,SAASm+C,+BAE9EC,oBAAsB,kBAChB3hJ,KAAKujG,SAASq+C,qBAAuB5hJ,KAAKujG,SAASs+C,kBAAoB,QAG7EC,YAAc,SAAS7nC,EAAK3X,OACzBiB,EAAWvjG,KAAKujG,SAChB60C,EAASp4I,KAAKujG,SAAS0K,YACvBuZ,EAAOvN,EAAMtxG,KAAK2zB,MAAM87G,EAAO7/G,OAAS6/G,EAAOpqC,iBAE9ClH,mBACU,IAAXxE,OACKtB,UAAU8iB,gBAAe,gBACrBgC,aAAa0B,EAAM,OAEV,IAAXllB,SACFtB,UAAU8kB,aAAa0B,EAAM,QAC7BxmB,UAAUoC,uBAEd0D,sBAED7Y,EAAYsV,EAAStV,YAEhB2b,SAAS,EAAG4d,EAAO4wB,EAAOpqC,YACrB,MAAV1L,KACSwF,qBAAqB,KAAM,MAE/BwwC,iBAAiBrqD,SAEzBknD,eAAiB,gBACb2M,YAAY,GAAG,SAEnBxM,aAAe,gBACXwM,gBAAgB,SAEpBzM,aAAe,gBACZyM,YAAY,GAAG,SAElBtM,WAAa,gBACTsM,gBAAgB,SAEpB1M,eAAiB,gBACb0M,YAAY,SAEhBvM,aAAe,gBACXuM,sBAEJC,YAAc,SAAS17C,QACnB9C,SAASw+C,YAAY17C,SAEzB27C,aAAe,SAASvkC,EAAMwkC,EAAQC,EAAS/8D,QAC3Coe,SAASy+C,aAAavkC,EAAMwkC,EAAQC,EAAS/8D,SAEjD6uD,gBAAkB,eACfriG,EAAQ3xC,KAAK6mG,oBACbr7C,EAAM,CACN66C,IAAK19F,KAAK2zB,MAAMqV,EAAMhjC,MAAM03F,OAAan3F,IAAIm3F,IAAM10D,EAAMhjC,MAAM03F,KAAO,GACtEE,OAAQ59F,KAAK2zB,MAAMqV,EAAMhjC,MAAM43F,UAAgBr3F,IAAIq3F,OAAS50D,EAAMhjC,MAAM43F,QAAU,SAEjFhD,SAAS4+C,YAAY32F,EAAK,UAE9BmkE,kBAAoB,kBACd3vH,KAAKghG,UAAUsiB,kBAErB8+B,wBAA0B,kBACpBpiJ,KAAKijG,QAAQuf,yBAAyBxiH,KAAK2vH,2BAEjD9oB,kBAAoB,kBACd7mG,KAAKghG,UAAUgC,iBAErBP,UAAY,gBACRqE,iBAAmB,OACnB9F,UAAUyB,iBACVqE,iBAAmB,QAEvB1D,eAAiB,gBACbpC,UAAUoC,uBAEdwgB,aAAe,SAASvd,EAAKE,QACzBvF,UAAU4iB,aAAavd,EAAKE,SAEhCuH,qBAAuB,SAAStiD,QAC5Bw1C,UAAU8M,qBAAqBtiD,SAEnCiqF,eAAiB,SAASnzC,EAAQ3zE,OAC/By3E,EAASpmG,KAAK2vH,oBACd9+G,EAAW,IAAIs8G,EAAcntH,KAAKijG,QAASmD,EAAOC,IAAKD,EAAOG,QAC9Dw1C,EAAYlrI,EAASk9G,kBACrBzE,EAAQyyB,GAAalrI,EAASg9G,iBAE7BvE,OACD+4B,EAIAC,EAHAC,GAAQ,EACR9kH,EAAQ,GACR5/B,EAAIuoG,EAAOG,OAAS+iB,EAAM36G,MAE1B6zI,EAAW,CACXxf,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,OAGN,IACK/Z,EAAMlnH,MAAMgG,MAAM,qBACXvK,EAAIyrH,EAAMlnH,MAAMvD,SAAW0jJ,EAAO1kJ,OAChC2kJ,EAASl5B,EAAMlnH,MAAMvE,aAIZ2kJ,EAASl5B,EAAMlnH,MAAMvE,IAAM,IAAMyrH,EAAMpqH,KAAK4D,QAAQ,SAAU,UAExE6Q,MAAM8pB,EAAM6kH,QACNA,GAAe,GAGjBh5B,EAAMlnH,MAAMvE,QACX,QACA,QACA,MACKykJ,eAEL,QACA,QACA,MACKA,UAEF7kH,EAAM6kH,OACM,aACJ,SAMnBh5B,QAASA,EAAMpqH,KAAKiB,QAAQ,cAC7BwT,MAAM8pB,EAAM6rF,EAAMlnH,YACZknH,EAAMlnH,OAAS,GAGD,MAApB25I,EAAU35I,QACJknH,EAAMlnH,SAEa,OAApB25I,EAAU35I,SACTknH,EAAMlnH,cAGZq7B,EAAM6rF,EAAMlnH,WACA,SACJ,IAIXmgJ,MACWj5B,IACJz4G,EAASg9G,gBACb,SAEHvE,IAAUi5B,MACdF,OAGD1wG,EAAO6Z,KACO,YAAd62F,KACQriJ,KAAKijG,QAAQ4F,gBAAgBzC,WAEzB,IAAItmF,EACRjP,EAASm9G,qBACTn9G,EAASo9G,wBAA0BpwH,EAAI,EACvCgT,EAASm9G,qBACTn9G,EAASo9G,wBAA0BpwH,EAAI,IAE/B8Q,OACRggB,GAAU68B,EAAI66C,MAAQD,EAAOC,KAAO19F,KAAKwkE,IAAI3hB,EAAI+6C,OAASH,EAAOG,QAAU,OACnEvmG,KAAKijG,QAAQ4F,gBAAgBr9C,aAG1B,QAAd62F,EAAqB,KACtB/4B,QAASA,EAAMpqH,KAAKiB,QAAQ,uBACxBqhB,EAAM8nG,EAAMlnH,SAU6B,OANzC,IAAI0d,EACRjP,EAASm9G,qBACTn9G,EAASo9G,wBAA0B,EACnCp9G,EAASm9G,qBACTn9G,EAASo9G,wBAA0B,IAE7B9M,QAAQ/a,EAAOC,IAAKD,EAAOG,QAAe,IACxC,OAEIw1C,KACIlrI,EAAS+8G,uBAGbmuB,EAAU78I,KAAKiB,QAAQ,gBACjBuhH,OAAO7wG,EAASm9G,qBAAsBn9G,EAASo9G,wBAA0B,GAG/E3E,EAAMlnH,QAAUof,QAAO8nG,EAAMpqH,KAAKiB,QAAQ,cAClB,MAApB47I,EAAU35I,QACJof,KAEmB,OAApBu6H,EAAU35I,SACTof,KAGS,IAAfic,EAAMjc,QACE,WAGfu6H,IAAcwG,GAEvBj5B,GAASA,EAAMpqH,KAAKiB,QAAQ,gBACtBwxC,EAAMhjC,OACJ03F,KAAOD,EAAOC,KAAO19F,KAAKwkE,IAAI3hB,EAAI+6C,OAASH,EAAOG,QAAU,MAC1D50D,EAAMziC,QAIlByiC,GAASA,EAAMy0D,QAAU56C,KAEvB82C,EACI3wD,GAAShjB,OACJqyE,UAAUmC,SAASxxD,GACjBA,GAASA,EAAMuvE,QAAQlhH,KAAK6mG,0BAC9BzD,sBAEApC,UAAU8K,SAAStgD,EAAI66C,IAAK76C,EAAI+6C,aAGpCvF,UAAUgjB,OAAOx4D,EAAI66C,IAAK76C,EAAI+6C,iBAI1C2tC,SAAW,SAASuO,EAAYl8C,EAAQ27C,QACpClhD,UAAUoC,sBACVH,QAAQs9B,OAAO,CAACl6B,IAAKo8C,EAAa,EAAGl8C,OAAQA,GAAU,SAEvDO,iBAAmB,OACnBgwC,qBAAuB92I,KAAK82I,2BAC5BlzB,aAAa6+B,EAAa,EAAGl8C,GAAU,QACvCO,iBAAmB,EAEnB9mG,KAAKwhJ,kBAAkBiB,EAAa,SAChCT,aAAaS,EAAa,GAAG,EAAMP,SAE3CQ,WAAa,SAASr8C,EAAKE,QACvBvF,UAAUgjB,OAAO3d,EAAKE,SAE1BkuC,WAAa,SAASC,MACnB10I,KAAKghG,UAAU+H,gBAAkB/oG,KAAKghG,UAAU6iB,cAAe,KAC3DhjB,EAAiB7gG,KAAKghG,UAAU99C,OAAOqgE,qBACpCvjH,KAAK8tG,qBAAqBjN,QAEhCG,UAAUoC,sBACVpC,UAAU8kB,cAAc4uB,MAAa,SAEzCE,aAAe,SAASF,MACrB10I,KAAKghG,UAAU+H,eAAiB/oG,KAAKghG,UAAU6iB,cAAe,KAC1D/iB,EAAe9gG,KAAKghG,UAAU99C,OAAOqgE,qBAClCvjH,KAAK8tG,qBAAqBhN,QAEhCE,UAAUoC,sBACVpC,UAAU8kB,aAAa4uB,GAAS,EAAG,SAEvCK,aAAe,SAASL,MACpB10I,KAAKghG,UAAUL,gBAKR+zC,GAAS,EACVA,UACE1zC,UAAUwjB,qBAPQ,KACvB3jB,EAAiB7gG,KAAK6mG,oBAAoBl4F,WACzCm/F,qBAAqBjN,QAQzBuC,uBAEJ8xC,cAAgB,SAASR,MACrB10I,KAAKghG,UAAUL,gBAKR+zC,GAAS,EACVA,UACE1zC,UAAUsjB,sBAPQ,KACvBxjB,EAAe9gG,KAAK6mG,oBAAoB33F,SACvC4+F,qBAAqBhN,QAQzBsC,uBAEJ0xC,kBAAoB,gBAChB9zC,UAAU0jB,2BACVthB,uBAEJ6xC,gBAAkB,gBACdj0C,UAAU4jB,yBACVxhB,uBAEJuxC,gBAAkB,gBACd3zC,UAAU8jB,yBACV1hB,uBAEJoxC,kBAAoB,gBAChBxzC,UAAUgkB,2BACV5hB,uBAEJ4xC,kBAAoB,gBAChBh0C,UAAUkkB,2BACV9hB,uBAEJyxC,iBAAmB,gBACf7zC,UAAUokB,0BACVhiB,uBAEJtgG,QAAU,SAAS6tI,EAAa1+H,GAC7BA,QACKqlI,QAAQnnI,IAAI8B,OAEjB0/B,EAAQ3xC,KAAKs3I,QAAQvH,KAAK/vI,KAAKijG,SAC/B0/C,EAAW,SACVhxG,GAGD3xC,KAAK4iJ,YAAYjxG,EAAOg/F,OACb,GAED,OAAVh/F,SACKqvD,UAAUD,kBAAkBpvD,QAC5B4xD,SAAS80C,wBAAwB1mG,EAAMhjC,MAAOgjC,EAAMziC,MAGtDyzI,GAVIA,QAYVE,WAAa,SAASlS,EAAa1+H,GAChCA,QACKqlI,QAAQnnI,IAAI8B,OAGjBm2G,EAASpoH,KAAKs3I,QAAQhH,QAAQtwI,KAAKijG,SACnC0/C,EAAW,MACVv6B,EAAOvpH,cACD8jJ,OAEN77C,iBAAmB,MAEpB9F,EAAYhhG,KAAK6mG,yBAChB7F,UAAUgjB,OAAO,EAAG,WAEhBnmH,EAAIuqH,EAAOvpH,OAAS,EAAGhB,GAAK,IAAKA,EACnCmC,KAAK4iJ,YAAYx6B,EAAOvqH,GAAI8yI,oBAK9B3vC,UAAUD,kBAAkBC,QAC5B8F,iBAAmB,EAEjB67C,QAGNC,YAAc,SAASjxG,EAAOg/F,OAC3BngF,EAAQxwD,KAAKijG,QAAQ2M,aAAaj+D,UAElB,UADN3xC,KAAKs3I,QAAQx0I,QAAQ0tD,EAAOmgF,OAEhCzhI,IAAMlP,KAAKijG,QAAQngG,QAAQ6uC,EAAOg/F,GACjCh/F,GAEA,WAGVmxG,qBAAuB,kBACjB9iJ,KAAKs3I,QAAQ/jC,mBAEnBw8B,KAAO,SAASQ,EAAQt+H,EAASiwI,GAC7BjwI,MACS,IAEO,iBAAVs+H,GAAsBA,aAAkBvqD,SACvCuqD,OAASA,EACK,iBAAVA,KACRlhD,MAAMp9E,EAASs+H,OAEnB5+F,EAAQ3xC,KAAKghG,UAAUgC,WACL,MAAlB/wF,EAAQs+H,YACCvwI,KAAKijG,QAAQ2M,aAAaj+D,IAC5B3xC,KAAKs3I,QAAQ7jC,SAAS88B,YAEjBvwI,KAAKijG,QAAQ6F,aAAan3D,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,UACtDvmG,KAAKijG,QAAQ2M,aAAaj+D,SAElC2lG,QAAQnnI,IAAI,CAACogI,OAAAA,UAGjB+G,QAAQnnI,IAAI8B,GACZA,EAAQtD,YACJ2oI,QAAQnnI,IAAI,CAACxB,MAAOgjC,QAEzBoxG,EAAW/iJ,KAAKs3I,QAAQvH,KAAK/vI,KAAKijG,gBAClChxF,EAAQ+wI,cACDD,EACPA,QACKE,YAAYF,EAAUb,GACpBa,IAEP9wI,EAAQm/H,YACFziI,MAAQgjC,EAAMziC,MAEdA,IAAMyiC,EAAMhjC,gBACjBqyF,UAAUmC,SAASxxD,UAEvB0iG,SAAW,SAASpiI,EAASiwI,QACzBnS,KAAK,CAACM,aAAa,EAAMe,WAAW,GAAQn/H,EAASiwI,SAEzD5N,aAAe,SAASriI,EAASiwI,QAC7BnS,KAAK99H,EAAS,CAACo+H,aAAa,EAAMe,WAAW,GAAO8Q,SAGxDe,YAAc,SAAStxG,EAAOuwG,QAC1Bp7C,iBAAmB,OACnB7D,QAAQs9B,OAAO5uF,QACfqvD,UAAUD,kBAAkBpvD,QAC5Bm1D,iBAAmB,MAEpB7Y,EAAYjuF,KAAKujG,SAAStV,eACzBsV,SAAS80C,wBAAwB1mG,EAAMhjC,MAAOgjC,EAAMziC,IAAK,KAC9C,IAAZgzI,QACK3+C,SAAS+0C,iBAAiBrqD,SAElC6U,KAAO,gBACHgE,uBACA7D,QAAQoiC,iBAAiBviC,YACzBgE,uBACAvD,SAASuE,qBAAqB,KAAM,UAExC89B,KAAO,gBACH9+B,uBACA7D,QAAQoiC,iBAAiBO,YACzB9+B,uBACAvD,SAASuE,qBAAqB,KAAM,UAExC+C,QAAU,gBACNtH,SAASsH,eACTc,QAAQ,UAAW3rG,MACpBA,KAAKijG,cACAA,QAAQ4H,gBAGhBq4C,4BAA8B,SAASxY,MACnCA,OAEDrmC,EACArb,EAAOhpF,KACPmjJ,GAAe,EACdnjJ,KAAKojJ,qBACDA,cAAgBh+I,SAASG,cAAc,YAC5C89I,EAAerjJ,KAAKojJ,gBACXzgJ,MAAMC,QAAU,yBACxB0hG,UAAU9hG,aAAa6gJ,EAAcrjJ,KAAKskG,UAAUn+F,gBACrDm9I,EAAoBtjJ,KAAK4jG,GAAG,mBAAmB,cAChC,KAEf2/C,EAAiBvjJ,KAAKujG,SAASK,GAAG,gBAAgB,WAC9Cu/C,MACOn6D,EAAKua,SAASe,UAAUC,4BAEnCi/C,EAAgBxjJ,KAAKujG,SAASK,GAAG,eAAe,cAC5Cu/C,GAAgB9+C,MAAcnE,aAC3BlX,EAAKy6D,WAAaz6D,EAAKy6D,UAAUvjD,aACtC,KACMqD,EAAWva,EAAKua,SAChB/3C,EAAM+3C,EAASsL,aAAa60C,UAC5BtL,EAAS70C,EAAS0K,YAClBzJ,EAAMh5C,EAAIg5C,IAAM4zC,EAAOtoI,OASP,SARhB07C,EAAIg5C,KAAO,GAAKA,EAAMH,EAAKG,IAAM,KAE1Bh5C,EAAIg5C,IAAM4zC,EAAO7/G,QACxBizB,EAAIg5C,IAAMH,EAAKG,IAAM4zC,EAAOpqC,WAAazkD,OAAO4hD,cAGjC,UAGFxoG,MAAM6hG,IAAMA,EAAM,OAClB7hG,MAAM04D,KAAO7P,EAAI6P,KAAO,OACxB14D,MAAM41B,OAAS6/G,EAAOpqC,WAAa,OACnC+lC,eAAeoP,MAEjB9+C,EAAO,cAGzB6+C,4BAA8B,SAASS,GACpCA,WAEG3jJ,KAAKkjJ,iCACPjwC,IAAI,kBAAmBqwC,QACvB//C,SAAS0P,IAAI,cAAeuwC,QAC5BjgD,SAAS0P,IAAI,eAAgBswC,YAKrCK,kBAAoB,eACjBjhJ,EAAQ3C,KAAK6jJ,cAAgB,MAC7BC,EAAc9jJ,KAAKujG,SAASsL,aAC3Bi1C,MAEOC,kBAAkB,SAASrhJ,KAAKC,MAChCqhJ,YAAchkJ,KAAK4iG,WAAsB,QAATjgG,IACxC0pF,YAAYy3D,EAAY10I,QAAS,mBAAoB,OAAO1M,KAAKC,OAG1E+C,KAAKsxI,EAAOjzI,aAIRiwG,cAAcgjC,EAAOjzI,UAAW,SAAU,CAC7CkgJ,eAAgB,CACZ9zI,IAAK,SAASxN,QACLi4I,yBACAjvC,QAAQ,uBAAwB,CAAClmG,KAAM9C,KAEhDsxG,aAAc,QAElBiwC,oBAAqB,CACjB/zI,IAAK,gBAAiBssI,8BACtBxoC,cAAc,GAElBkwC,sBAAuB,CACnBh0I,IAAK,SAASquI,QAAuB1E,sBACrC7lC,cAAc,GAElBlQ,SAAU,CACN5zF,IAAK,SAAS4zF,QACL6/C,qBAET3vC,cAAc,GAElBhD,YAAa,CACT9gG,IAAK,SAASjH,QAAY06I,qBAC1BrrI,OAAQ,CAAC,MAAO,OAAQ,SAAU,QAClC07F,aAAc,OAElByxB,gBAAiB,CACbntH,OAAQ,EAAC,GAAO,EAAM,UACtB07F,cAAc,GAElBmwC,kBAAmB,CAACnwC,cAAc,GAClCowC,sBAAuB,CAACpwC,cAAc,GACtCqwC,yBAA0B,CACtBn0I,IAAK,SAASjH,QAAWg6I,4BAA4Bh6I,KAEzD2vI,gBAAiB,CACb1oI,IAAK,SAASjH,QAAYqwG,mBAAmBrwG,IAC7CgH,IAAK,kBAAoBlQ,KAAKukJ,cAC9B3wC,YAAY,GAGhB4wC,wBAAyB,WACzBC,wBAAyB,WACzBC,oBAAqB,WACrBC,eAAgB,WAChBpnC,eAAgB,WAChB6hC,gBAAiB,WACjBwF,kBAAmB,WACnBC,YAAa,WACbC,gBAAiB,WACjBC,gBAAiB,WACjBC,gBAAiB,WACjBC,WAAY,WACZC,oBAAqB,WACrBC,SAAU,WACVC,WAAY,WACZC,SAAU,WACVC,SAAU,WACVC,cAAe,WACfC,iBAAkB,WAClBpK,MAAO,WAEPvjC,YAAa,gBACbC,UAAW,gBACXC,YAAa,gBACbC,YAAa,gBACbC,oBAAqB,gBAErB23B,gBAAiB,UACjBrJ,UAAW,UACXpN,YAAa,UACb8O,UAAW,UACX4H,YAAa,UACb7pB,QAAS,UACTt1D,KAAM,UACNi9E,iBAAkB,UAClB8X,UAAW,UACXxrF,KAAM,cAGF+8E,OAASA,KAGjBlxD,IAAID,OAAO,kBAAkB,CAAC,UAAU,UAAU,WAAW,SAASP,EAAU/wE,EAAS+f,OAErFoxH,EAAc,gBACTlyI,UAGR,sBA6D4BgV,SACd,CACHkL,OAAQlL,EAAMkL,OACd/kB,MAAO6Z,EAAM7Z,MACbO,IAAKsZ,EAAMtZ,IACXivG,MAA6B,GAAtB31F,EAAM21F,MAAMt/G,OAAc,KAAO2pB,EAAM21F,MAC9CprF,KAA4B,GAAtBvK,EAAM21F,MAAMt/G,OAAc2pB,EAAM21F,MAAM,GAAK,iBAI9B31F,SAChB,CACHkL,OAAQlL,EAAMkL,OACd/kB,MAAO6Z,EAAM7Z,MACbO,IAAKsZ,EAAMtZ,IACXivG,MAAO31F,EAAM21F,OAAS,CAAC31F,EAAMuK,kBAIV4yH,EAAeC,WAClCC,EAAgB,IAAI9jJ,MAAM4jJ,EAAc9mJ,QACnChB,EAAI,EAAGA,EAAI8nJ,EAAc9mJ,OAAQhB,IAAK,SACvCioJ,EAAeH,EAAc9nJ,GAC7BkoJ,EAAe,CAAEn0H,MAAOk0H,EAAal0H,MAAOyoG,OAAQ,IAAIt4H,MAAM+jJ,EAAajnJ,SAEtE4oD,EAAI,EAAGA,EAAIq+F,EAAazrB,OAAOx7H,OAAQ4oD,IAAK,KAC7Cu+F,EAAYF,EAAazrB,OAAO5yE,KACvB4yE,OAAO5yE,GAAKm+F,EAAmBI,KAGlCnoJ,GAAKkoJ,SAEhBF,OA5FNpgB,QAAU,SAASxzH,OAChBg0I,EAAYh0I,EAAQ+C,KAAK,QACxBkxI,KAAQj0I,EAAQ+C,KAAK,GACtB/C,EAAQ84G,OAAS/qH,KAAKmmJ,iBACjBC,iBACOpmJ,KAAKqmJ,WAAWv3I,MAAM6H,OAAOsvI,SAExCI,WAAWvnJ,KAAKmnJ,QAChBK,WAAa,GACdtmJ,KAAKomJ,aAAe,SACfA,aAAeG,UAEnBH,qBAEJtjD,KAAO,SAASsnC,OACb6b,EAAYjmJ,KAAKqmJ,WAAWv3I,MAC5B03I,EAAqB,YACrBP,MACqBjmJ,KAAKkmJ,KAAK/b,YAAY8b,EAAW7b,QACjDkc,WAAWxnJ,KAAKmnJ,QAChBG,gBAGFI,QAEN5gB,KAAO,SAASwE,OACb6b,EAAYjmJ,KAAKsmJ,WAAWx3I,MAC5B23I,EAAqB,YACrBR,MAEIjmJ,KAAKkmJ,KAAK1b,YAAYxqI,KAAK0mJ,mBAAmBT,GAAY7b,QACzDic,WAAWvnJ,KAAKmnJ,QAChBG,gBAEFK,QAENjzI,MAAQ,gBACJ6yI,WAAa,QACbC,WAAa,QACbF,aAAe,QAEnBD,QAAU,kBACJnmJ,KAAKqmJ,WAAWxnJ,OAAS,QAE/B8nJ,QAAU,kBACJ3mJ,KAAKsmJ,WAAWznJ,OAAS,QAE/B+nJ,UAAY,gBACRR,aAAe,QAEnBS,QAAU,kBACkB,IAAtB7mJ,KAAKomJ,mBAEXU,iBAAmB,SAASb,UACtBc,EAAkBd,EAAWe,SAEnCN,mBAAqB,SAAST,UACxBc,EAAkBd,EAAWgB,MAsCzCvhJ,KAAKggJ,EAAY3hJ,aAEZ2hJ,YAAcA,KAGtB5/D,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGzJ2qE,EAAM3Z,EAAS,cACfiK,EAAMjK,EAAS,cACf4Z,EAAO5Z,EAAS,eAChB6sB,EAAe7sB,EAAS,wBAAwB6sB,aAEhD+0C,EAAS,SAASC,QACb/3I,QAAU6vF,EAAI15F,cAAc,YAC5B6J,QAAQ48E,UAAY,+BAChB1pF,YAAYtC,KAAKoP,cACrBswI,mBAAmB1/I,KAAKonJ,uBAExBC,YAAc,OAEdl7C,aAAe,QACfm7C,mBAAqBtnJ,KAAKsnJ,mBAAmB5/I,KAAK1H,WAElDunJ,OAAS,KAGjB,aAEOj4D,UAAUtvF,KAAMmyG,QAEfulC,WAAa,SAASz0C,GACnBjjG,KAAKijG,cACAA,QAAQ5/F,oBAAoB,SAAUrD,KAAKsnJ,yBAC/CrkD,QAAUA,EACXA,KACQW,GAAG,SAAU5jG,KAAKsnJ,0BAG7B5gB,oBAAsB,SAASrgC,EAAKra,GACjCziC,OAAOsqD,iBACCh4F,MAAQg4F,QAAQh4F,KAAK,mDAC5BonF,QAAQyjC,oBAAoBrgC,EAAKra,SAGrC26C,uBAAyB,SAAStgC,EAAKra,GACpCziC,OAAOsqD,iBACCh4F,MAAQg4F,QAAQh4F,KAAK,sDAC5BonF,QAAQ0jC,uBAAuBtgC,EAAKra,SAGxC07C,eAAiB,SAASC,QACtBx7B,aAAe,WACXtuG,EAAI,EAAGA,EAAI8pI,EAAY9oI,OAAQhB,IAAK,KACrCquG,EAAay7B,EAAY9pI,GACzBwoG,EAAM6F,EAAW7F,IACjBmhD,EAAUxnJ,KAAKmsG,aAAa9F,GAC3BmhD,MACSxnJ,KAAKmsG,aAAa9F,GAAO,CAACtzE,KAAM,SAE1C00H,EAAWv7C,EAAWn5E,OACf00H,EAAWvoD,EAAKhB,WAAWupD,GAAYv7C,EAAW7B,MAAQ,QAEjEm9C,EAAQz0H,KAAK5yB,QAAQsnJ,MACb10H,KAAKj0B,KAAK2oJ,OAElBp9I,EAAO6hG,EAAWhtG,KACV,SAARmL,IACQ2hF,UAAY,aACP,WAAR3hF,GAA0C,cAArBm9I,EAAQx7D,YAC1BA,UAAY,eACP,QAAR3hF,GAAoBm9I,EAAQx7D,cACzBA,UAAY,oBAI3Bs7D,mBAAqB,SAAU9+H,MAC3BxoB,KAAKmsG,aAAattG,YAEnBojH,EAAWz5F,EAAM7Z,MAAM03F,IACvBtiD,EAAMv7B,EAAMtZ,IAAIm3F,IAAM4b,KACd,IAARl+D,WACuB,UAAhBv7B,EAAMkL,YACRy4E,aAAahlG,OAAO86G,EAAUl+D,EAAM,EAAG,UACzC,KACC/uC,EAAO,IAAIjT,MAAMgiD,EAAM,KACtBinE,QAAQ/I,EAAU,QAClB9V,aAAahlG,OAAOukB,MAAM1rB,KAAKmsG,aAAcn3F,WAIrDE,OAAS,SAASU,WACfqtF,EAAUjjG,KAAKijG,QACfgf,EAAWrsG,EAAOqsG,SAClBC,EAAUv5G,KAAKkN,IAAID,EAAOssG,QAAUtsG,EAAO8xI,aAC3CzkD,EAAQmJ,YAAc,GACtB+L,EAAOlV,EAAQs8B,gBAAgBtd,GAC/BgoB,EAAY9xB,EAAOA,EAAKxpG,MAAM03F,IAAMrwF,EAAAA,EACpCuiG,EAAcv4G,KAAKonJ,kBAAoBnkD,EAAQsV,YAC/CovC,EAAc1kD,EAAQ4gC,aACtB+jB,EAAc3kD,EAAQ6gC,aACtB8L,EAAkB3sC,EAAQ4kD,iBAC1BC,EAAiB,EAEjBC,EAAiB9kD,EAAQ8kD,gBAAkB/nJ,KAAKgoJ,UAEhDC,EAAO,KACP1+I,KACA88F,EAAM4b,IACG,IACL5b,EAAM4jC,MACA9xB,EAAKjpG,IAAIm3F,IAAM,OACdpD,EAAQs8B,gBAAgBl5B,EAAK8R,IACjBA,EAAKxpG,MAAM03F,IAAMrwF,EAAAA,GAEpCqwF,EAAM6b,EAAS,MACRliH,KAAKunJ,OAAO1oJ,OAAS0K,EAAQ,KACzBvJ,KAAKunJ,OAAOz4I,WACdM,QAAQ7Q,YAAY0pJ,EAAK74I,kBAK/BpP,KAAKunJ,SAASh+I,SAEV,CAAC6F,QAAS,KAAM84I,SAAU,KAAMC,WAAY,OAC9C/4I,QAAU6vF,EAAI15F,cAAc,SAC5B2iJ,SAAW9iJ,SAASC,eAAe,MACnC+J,QAAQ9M,YAAY2lJ,EAAKC,eACzB94I,QAAQ9M,YAAY2lJ,EAAK74I,cACzBm4I,OAAOh+I,GAAS0+I,OAGrBj8D,EAAY,sBACZ27D,EAAYthD,QACCshD,EAAYthD,IACzBuhD,EAAYvhD,QACCuhD,EAAYvhD,IACzBrmG,KAAKmsG,aAAa9F,QACLrmG,KAAKmsG,aAAa9F,GAAKra,WACpCi8D,EAAK74I,QAAQ48E,WAAaA,MACrB58E,QAAQ48E,UAAYA,IAEzBzzD,EAAS0qE,EAAQmrC,aAAa/nC,GAAOzwF,EAAOo4F,WAAa,OAC/Ci6C,EAAK74I,QAAQzM,MAAM41B,WACxBnpB,QAAQzM,MAAM41B,OAASA,GAE5BggF,EAAa,KACTp3G,EAAIo3G,EAAYlS,GACX,MAALllG,MACIo3G,EAAYlS,GAAOpD,EAAQq+B,cAAcj7B,OAGjDllG,EAAG,CACE8mJ,EAAKE,eACDA,WAAalpD,EAAI15F,cAAc,UAC/B6J,QAAQ9M,YAAY2lJ,EAAKE,aAE9Bn8D,EAAY,uBAAyB7qF,EAChC,SAALA,GAAgBklG,GAAO4jC,GAAa5jC,EAAM8R,EAAKjpG,IAAIm3F,OACtC,iBAEA,YACb4hD,EAAKE,WAAWn8D,WAAaA,MACxBm8D,WAAWn8D,UAAYA,OAE5BzzD,EAAS3iB,EAAOo4F,WAAa,KAC7Bi6C,EAAKE,WAAWxlJ,MAAM41B,QAAUA,MAC3B4vH,WAAWxlJ,MAAM41B,OAASA,QAE/B0vH,EAAKE,eACA/4I,QAAQ7Q,YAAY0pJ,EAAKE,cACzBA,WAAa,UAItBp1H,EAAO+0H,EAAiBC,EACtBA,EAAeK,QAAQnlD,EAASoD,GAChCA,EAAMupC,EACR78G,IAASk1H,EAAKC,SAASziJ,SAClByiJ,SAASziJ,KAAOstB,YAKxB3jB,QAAQzM,MAAM41B,OAAS3iB,EAAOyyI,UAAY,MAE3CroJ,KAAKsoJ,aAAerlD,EAAQ2b,kBACX3b,EAAQmJ,YAAcwjC,OAEvCyX,EAAcU,EACZA,EAAen9C,SAAS3H,EAAS6kD,EAAgBlyI,GACjDkyI,EAAe12I,WAAWvS,OAAS+W,EAAOs4F,eAE5Cq6C,EAAUvoJ,KAAKwoJ,UAAYxoJ,KAAKyoJ,sBACrBF,EAAQltF,KAAOktF,EAAQljD,SAClBrlG,KAAKqnJ,aAAgB1zI,MAAM0zI,UACtCA,YAAcA,OACdj4I,QAAQzM,MAAM4qF,MAAQ5kF,KAAK+/I,KAAK1oJ,KAAKqnJ,aAAe,UACpDpjD,MAAM,oBAAqBojD,UAInCiB,aAAc,OAEdK,kBAAmB,OACnBX,UAAY,QACZY,mBAAqB,SAASp+C,QAC1Bw9C,WAAax9C,GAAQ,CACtBI,SAAU,iBAAmB,IAC7Bw9C,QAAS,iBAAmB,WAI/BS,mBAAqB,kBACf7oJ,KAAK2oJ,uBAGXvB,kBAAmB,OACnB1H,mBAAqB,SAASl1C,GAC3BA,IACIve,YAAYjsF,KAAKoP,QAAS,yBAE1B88E,eAAelsF,KAAKoP,QAAS,4BAEhCg4I,iBAAmB58C,OACnBg+C,SAAW,WAGf7I,mBAAqB,kBACf3/I,KAAKonJ,uBAGXqB,gBAAkB,eACdzoJ,KAAKoP,QAAQjJ,iBACP,CAACk1D,KAAM,EAAGgqC,MAAO,OACxB1iG,EAAQs8F,EAAIhS,cAAcjtF,KAAKoP,QAAQjJ,wBACtCqiJ,SAAW,QACXA,SAASntF,KAAOjlD,SAASzT,EAAMmmJ,aAAe,GAAK,OACnDN,SAASnjD,MAAQjvF,SAASzT,EAAMomJ,eAAiB,EAC/C/oJ,KAAKwoJ,eAGX38C,UAAY,SAASp0B,OAClB8wE,EAAUvoJ,KAAKwoJ,UAAYxoJ,KAAKyoJ,kBAChCpkD,EAAOrkG,KAAKoP,QAAQm1F,+BACpB9sB,EAAMt1E,EAAIomJ,EAAQltF,KAAOgpC,EAAKhpC,KACvB,UACPr7D,KAAKonJ,kBAAoB3vE,EAAMt1E,EAAIkiG,EAAKgB,MAAQkjD,EAAQljD,MACjD,wBAGhB3/F,KAAKwhJ,EAAOnjJ,aAEPmjJ,OAASA,KAIjBphE,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,YAAY,gBAAgB,SAASP,EAAU/wE,EAAS+f,OAGhHxU,EAAQwlE,EAAS,YAAYxlE,MAC7Bm/E,EAAM3Z,EAAS,cAEf0jE,EAAS,SAAS7B,QACb/3I,QAAU6vF,EAAI15F,cAAc,YAC5B6J,QAAQ48E,UAAY,+BAChB1pF,YAAYtC,KAAKoP,WAG7B,gBAEQo5I,SAAW,OAEXS,WAAa,SAASV,QAClBC,SAAWD,QAEf7Q,WAAa,SAASz0C,QAClBA,QAAUA,QAGdimD,WAAa,SAAS7hB,QAClBA,QAAUA,QAGdnyH,OAAS,SAASU,MACdA,QAEAA,OAASA,MAGVy0F,EAAO,WACFjrG,KAAOY,KAAKqnI,QAAS,KACtBH,EAASlnI,KAAKqnI,QAAQjoI,MAErB8nI,EAAOv1F,WAKRA,EAAQu1F,EAAOv1F,MAAMqwE,SAASpsG,EAAOqsG,SAAUrsG,EAAOssG,aACtDvwE,EAAMgvD,eAEFhvD,EAAM2wE,cAActiH,KAAKijG,SAC7BikC,EAAO3jC,SAAU,KACbiB,EAAMxkG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,GACpCylD,EAAOr7D,KAAKwoJ,eAAiBvlD,QAAQykB,aAAa5J,UAAUnsE,EAAMhjC,MAAM03F,KACtErmG,KAAKijG,QAAQykB,aAAa5H,WAAWnuE,EAAMhjC,MAAM43F,QACjD50D,EAAMhjC,MAAM43F,OAAS3wF,EAAOs4F,kBAC3B3K,SAAS8G,EAAM14D,EAAO0pB,EAAMmpC,EAAK5uF,OAClB,YAAfsxH,EAAOhoI,UACTkqJ,mBAAmB/+C,EAAM14D,EAAOu1F,EAAOnL,MAAOnmH,GAC7B,cAAfsxH,EAAOhoI,UACTmqJ,qBAAqBh/C,EAAM14D,EAAOu1F,EAAOnL,MAAOnmH,GAC9C+7B,EAAMo3D,cACM,QAAfm+B,EAAOhoI,UACFoqJ,eAAej/C,EAAM14D,EAAOu1F,EAAOnL,MAAOnmH,QAE1C2zI,oBAAoBl/C,EAAM14D,EAAOu1F,EAAOnL,MAAOnmH,GAEpD5V,KAAKijG,QAAQykB,aAAa5J,UAAUnsE,EAAMhjC,MAAM03F,UAC3CmjD,yBAAyBn/C,EAAM14D,EAAOu1F,EAAOnL,MAAQ,sBAA4BnmH,QAEjFwmH,qBAAqB/xB,EAAM14D,EAAOu1F,EAAOnL,MAAQ,sBAA4BnmH,UA3B/EV,OAAOm1F,EAAMrqG,KAAMA,KAAKijG,QAASrtF,QA+B3CxG,QAAQpJ,UAAYqkG,EAAK7hG,KAAK,WAGlC2gJ,QAAU,SAAS9iD,EAAK4H,YACXA,EAAYw7C,gBAAkBx7C,EAAYD,iBAMvDs7C,eAAiB,SAASI,EAAe/3G,EAAOoqF,EAAO9tB,EAAa07C,WACjE1mD,EAAUjjG,KAAKijG,QACft0F,EAAQgjC,EAAMhjC,MAAM03F,IACpBn3F,EAAMyiC,EAAMziC,IAAIm3F,IAChBA,EAAM13F,EACN6gD,EAAO,EACP2L,EAAO,EACPlF,EAAOgtC,EAAQsrC,uBAAuBloC,GACtCujD,EAAgB,KAChBC,EAAY,IAAI/pI,EAAMumF,EAAK10D,EAAMhjC,MAAM43F,OAAQF,EAAKlrC,GACjDkrC,GAAOn3F,EAAKm3F,MACL13F,MAAM03F,IAAMwjD,EAAU36I,IAAIm3F,IAAMA,IAChC13F,MAAM43F,OAASF,GAAO13F,EAAQgjC,EAAMhjC,MAAM43F,OAAStD,EAAQqrC,iBAAiBjoC,KAC5En3F,IAAIq3F,OAAStwC,IAChBkF,IACAlF,IACAowC,EAAM,EAAIn3F,EAAM+zF,EAAQsrC,uBAAuBloC,EAAM,GAAKA,GAAOn3F,EAAM,EAAIyiC,EAAMziC,IAAIq3F,SAC5Ew1B,MAAgBptH,EAAS,aAAe,IAAM,YACzC03F,GAAO13F,GAAS03F,GAAO13F,EAAQ,GAAKgjC,EAAMhjC,MAAM43F,OApB5D,EAAI,IAoBgE/2C,EAAO2L,EApB5D,EAAI,IAoB8DA,EAAOlF,EApB1D,EAAI,IAoB4DowC,GAAOn3F,EApBxD,EAAI,IAsBtDlP,KAAKijG,QAAQykB,aAAa5J,UAAUzX,QAC/BmjD,yBAAyBE,EAAeG,EAAWD,EACpD37C,EAAa5H,GAAOn3F,EAAM,EAAI,EAAGy6I,QAEhCvtB,qBAAqBstB,EAAeG,EAAWD,EAChD37C,EAAa5H,GAAOn3F,EAAM,EAAI,EAAGy6I,SAI5CJ,oBAAsB,SAASG,EAAe/3G,EAAOoqF,EAAOnmH,EAAQ+zI,OAEjEpxH,EAAQisE,EAAKnpC,EADbktF,EAAUvoJ,KAAKwoJ,YAENmB,GAAc,GACxB3pJ,KAAKijG,QAAQykB,aAAa5J,UAAUnsE,EAAMhjC,MAAM03F,QAC5CyjD,EAASn4G,EAAM5zB,SACZ7O,IAAIm3F,IAAMyjD,EAAOn7I,MAAM03F,MACvBn3F,IAAIq3F,OAASvmG,KAAKijG,QAAQ0V,QAAQmxC,EAAOn7I,MAAM03F,KAAKxnG,YACtD2qJ,yBAAyBE,EAAeI,EAAQ/tB,EAAQ,qBAAsBnmH,EAAQ,KAAM+zI,OAExF/zI,EAAOo4F,aACVhuG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,KAC7B2yI,EAAU52G,EAAMhjC,MAAM43F,OAAS3wF,EAAOs4F,iBAC/BpvG,KACV,eAAgBi9H,EAAO,8BACvB,UAAWxjG,EAAQ,MACnB,WACA,OAAQisE,EAAK,MACb,QAASnpC,EAAM,MAAOsuF,EAAY,gBAGrC3pJ,KAAKijG,QAAQykB,aAAa5J,UAAUnsE,EAAMziC,IAAIm3F,KAAM,KACjDyjD,GAAAA,EAASn4G,EAAM5zB,SACZpP,MAAM03F,IAAMyjD,EAAO56I,IAAIm3F,MACvB13F,MAAM43F,OAAS,OACjBijD,yBAAyBE,EAAeI,EAAQ/tB,EAAQ,YAAanmH,EAAQ,KAAM+zI,OACpF,KACAp8D,EAAQ57C,EAAMziC,IAAIq3F,OAAS3wF,EAAOs4F,iBAC7Bt4F,EAAOo4F,aACVhuG,KAAKmpJ,QAAQx3G,EAAMziC,IAAIm3F,IAAKzwF,KACpB9W,KACV,eAAgBi9H,EAAO,qBACvB,UAAWxjG,EAAQ,MACnB,SAAUg1D,EAAO,MACjB,OAAQiX,EAAK,MACb,QAAS+jD,EAAS,MAAOoB,EAAY,uBAG5Bz6I,IAAIm3F,IAAM10D,EAAMhjC,MAAM03F,IAAM,GAAKzwF,EAAOo4F,aAC1C,MAERhuG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAM,EAAGzwF,OAEpCm0I,KAAqBp7I,MAAM43F,OAAS,EAAI,MAAYr3F,IAAIq3F,OAAS,EAAI,KAE3DznG,KACV,eAAgBi9H,EAAQguB,EAAc,UAAYA,EAAc,GAAK,YACrE,UAAWxxH,EAAQ,MACnB,WACA,OAAQisE,EAAK,MACb,QAAS+jD,EAAS,MAAOoB,EAAY,mBAGxCvtB,qBAAuB,SAASstB,EAAe/3G,EAAOoqF,EAAOnmH,EAAQo0I,EAAaL,OAC/EpxH,EAAS3iB,EAAOo4F,WAChBzgB,KAAer+E,IAAIq3F,WAAyB,GAAK50D,EAAMhjC,MAAM43F,QAAU3wF,EAAOs4F,eAE9E1J,EAAMxkG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,GACpCylD,EAAOr7D,KAAKwoJ,SAAW72G,EAAMhjC,MAAM43F,OAAS3wF,EAAOs4F,iBAEzCpvG,KACV,eAAgBi9H,EAAO,YACvB,UAAWxjG,EAAQ,MACnB,SAAUg1D,EAAO,MACjB,OAAQiX,EAAK,MACb,QAASnpC,EAAM,MAAOsuF,GAAc,GAAI,kBAG3CH,yBAA2B,SAASE,EAAe/3G,EAAOoqF,EAAOnmH,EAAQo0I,EAAaL,OACnFpxH,EAAS3iB,EAAOo4F,WAAYxJ,EAAMxkG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,GAAS2yI,EAAUvoJ,KAAKwoJ,SAC3ExoJ,KAAKijG,QAAQykB,aAAazH,cAActuE,EAAMhjC,MAAM43F,OAAQ50D,EAAMziC,IAAIq3F,QAE5E5hG,SAAQ,SAASq8F,KACVliG,KACV,eAAgBi9H,EAAO,YACvB,UAAWxjG,EAAQ,MACnB,SAAUyoE,EAAUzT,UAAwB,GAAI,MAChD,OAAQiX,EAAK,MACb,QAAS+jD,EAAUvnD,EAAU3lC,KAAM,MAAOsuF,GAAc,GAAI,qBAKnEP,mBAAqB,SAASM,EAAe/3G,EAAOoqF,EAAOnmH,EAAQ+zI,OAChEnlD,EAAMxkG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,GACpC2iB,EAAS3iB,EAAOo4F,WAChBr8D,EAAMhjC,MAAM03F,KAAO10D,EAAMziC,IAAIm3F,SACnBrmG,KAAKmpJ,QAAQx3G,EAAMziC,IAAIm3F,IAAKzwF,GAAU4uF,KAEtC1lG,KACV,eAAgBi9H,EAAO,YACvB,UAAWxjG,EAAQ,MACnB,OAAQisE,EAAK,MACb,kBAAmBmlD,GAAc,GAAI,kBAIxCN,qBAAuB,SAASK,EAAe/3G,EAAOoqF,EAAOnmH,EAAQ+zI,OAClEnlD,EAAMxkG,KAAKmpJ,QAAQx3G,EAAMhjC,MAAM03F,IAAKzwF,GACpC2iB,EAAS3iB,EAAOo4F,aAENlvG,KACV,eAAgBi9H,EAAO,YACvB,UAAWxjG,EAAQ,MACnB,OAAQisE,EAAK,MACb,kBAAmBmlD,GAAc,GAAI,eAI9CjkJ,KAAKsjJ,EAAOjlJ,aAEPilJ,OAASA,KAIjBljE,IAAID,OAAO,iBAAiB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,oBAAoB,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAG3Ki7D,EAAMjK,EAAS,cACf2Z,EAAM3Z,EAAS,cACf4Z,EAAO5Z,EAAS,iBACK,wBACrB6sB,EAAe7sB,EAAS,wBAAwB6sB,aAEhD83C,EAAO,SAAS9C,QACX/3I,QAAU6vF,EAAI15F,cAAc,YAC5B6J,QAAQ48E,UAAY,6BAChB1pF,YAAYtC,KAAKoP,cACrB86I,eAAiBlqJ,KAAKkqJ,eAAexiJ,KAAK1H,QAGlD,aAEOsvF,UAAUtvF,KAAMmyG,QAEfg4C,SAAW,SACXC,YAAc,SACdC,cAAgB,SAChBC,SAAWtqJ,KAAKoqJ,iBAChBG,SAAW,SACXC,WAAa,SACbhC,SAAW,OAEX0B,eAAiB,eACdI,EAAqD,MAA1CtqJ,KAAKijG,QAAQtX,IAAIktC,sBAC3B74H,KAAKoqJ,YACLpqJ,KAAKqqJ,iBACNrqJ,KAAKsqJ,UAAYA,cACZA,SAAWA,GACT,QAIVrB,WAAa,SAASV,QAClBC,SAAWD,OACXn5I,QAAQzM,MAAM4lJ,QAAU,KAAOA,EAAU,WAG7CkC,cAAgB,kBACVzqJ,KAAK0qJ,aAAaprC,eAAe/mF,QAAU,QAGjDm3G,kBAAoB,kBACd1vI,KAAK0qJ,aAAaprC,eAAe/xB,OAAS,QAGhDgiD,gBAAkB,SAASob,QACvBD,aAAeC,OACfD,aAAa9mD,GAAG,sBAAuB,SAAS1iG,QAC5CyqG,QAAQ,sBAAuBzqG,IACtCwG,KAAK1H,YACF4qJ,yBAGJC,oBAAsB,gBAClBH,aAAaG,4BAEjBD,iBAAmB,kBACb5qJ,KAAK8qJ,sBAAwB9qJ,KAAK0qJ,aAAaE,yBAErDlT,WAAa,SAASz0C,QAClBA,QAAUA,EACXA,QACK8nD,0BAGRxtC,gBAAiB,OACjBmC,kBAAoB,SAASnC,UAC1Bv9G,KAAKu9G,gBAAkBA,SAGtBA,eAAiBA,OACjBwtC,qBACE,SAGN7F,qBAAsB,OACtBjG,uBAAyB,SAAS55H,UAC/BrlB,KAAKklJ,qBAAuB7/H,SAG3B6/H,oBAAsB7/H,OACtB0lI,qBACE,SAGNC,YAAc,QACd9Q,gBACLl6I,KAAK+qJ,kBAAoB,eACjB/kC,EAAUhmH,KAAKijG,QAAQijB,kBACtBF,QAAUA,UACXilC,EAASjrJ,KAAKgrJ,YAAc,CAAC,GACxBntJ,EAAI,EAAGA,EAAImoH,EAAU,EAAGnoH,IACzBmC,KAAKu9G,iBACEz+G,KAAK,iDACNogG,EAAK3B,aAAav9F,KAAKuqJ,SAAU1sJ,GACjC,aAECiB,KAAKogG,EAAK3B,aAAa,IAAK1/F,OAGvCmC,KAAKklJ,oBAAqB,MACrBgG,eAAkB,uBACnBl/D,EAAY,mBACZm/D,EAAa,GACbC,EAAW,MACXprJ,KAAKu9G,eAAgB,IACR,mBACA,yBACF,yBACP8tC,EAAensD,EAAK3B,aAAav9F,KAAKwqJ,WAAYxqJ,KAAKgmH,SACvDslC,EAAapsD,EAAK3B,aAAav9F,KAAKuqJ,SAAUvqJ,KAAKgmH,cAGnDslC,EADAD,EAAensD,EAAK3B,aAAa,IAAKv9F,KAAKgmH,cAI9CglC,YAAY,KAAO,gBAAkBh/D,EAAYm/D,EAAa,KAAOE,EAAe,eACpFL,YAAY,MAAQ,gBAAkBh/D,EAAYo/D,EAAW,KAAOE,EAAa,iBAIzF9O,YAAc,SAAS5mI,EAAQqsG,EAAUC,GACtCliH,KAAK4V,OAAOssG,SAAWtsG,EAAOssG,SAC9BliH,KAAK4V,OAAOqsG,UAAYrsG,EAAOqsG,eAC1BspC,YAAY31I,QAEhBA,OAASA,UAEVq1D,EAAQtiE,KAAKD,IAAIu5G,EAAUrsG,EAAOqsG,UAClC54D,EAAO1gD,KAAKkN,IAAIqsG,EAAStsG,EAAOssG,SAEhCspC,EAAexrJ,KAAKoP,QAAQzJ,WAC5B8lJ,EAAkB,EAEbplD,EAAMzwF,EAAOqsG,SAAU5b,EAAMp7B,EAAOo7B,IAAO,IAC5Csf,EAAW3lH,KAAKijG,QAAQ2iB,YAAYvf,GAC1B,IACNsf,EAASgX,YAAY1xD,GAAQ,GACrB06C,EAASh3G,MAAM03F,YAGjBsf,EAASz2G,IAAIm3F,QAM3BA,EAAMp7B,UACN06C,EACAskB,GADAtkB,EAAW3lH,KAAKijG,QAAQs8B,gBAAgBl5B,IACjBsf,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAGxCqwF,EAAM4jC,MACAtkB,EAASz2G,IAAIm3F,IAAI,OACZrmG,KAAKijG,QAAQs8B,gBAAgBl5B,EAAKsf,IACtBA,EAASh3G,MAAM03F,IAAKrwF,EAAAA,KAE3CqwF,EAAMh9C,IAND,KASLqiG,EAAcF,EAAaC,QAC3BC,EAAa,KACTrhD,EAAO,QACNshD,YACDthD,EAAMhE,GAAMrmG,KAAK4rJ,iBAAkBvlD,GAAO4jC,GAAYtkB,KAE9ChjH,MAAM41B,OAAS3iB,EAAOo4F,WAAahuG,KAAKijG,QAAQmrC,aAAa/nC,GAAO,OACpErgG,UAAYqkG,EAAK7hG,KAAK,eAMzC+iJ,YAAc,SAAS31I,OACpBi2I,EAAY7rJ,KAAK4V,eAChBA,OAASA,GAETi2I,GAAaA,EAAU3pC,QAAUtsG,EAAOqsG,gBAClCjiH,KAAKkV,OAAOU,MAEnBA,EAAOssG,QAAU2pC,EAAU5pC,gBACpBjiH,KAAKkV,OAAOU,OAEnBm2E,EAAK/rF,KAAKoP,WACVy8I,EAAU5pC,SAAWrsG,EAAOqsG,iBACnB5b,EAAIrmG,KAAKijG,QAAQu8B,kBAAkBqsB,EAAU5pC,SAAUrsG,EAAOqsG,SAAW,GAAI5b,EAAI,EAAGA,MACtF9nG,YAAYwtF,EAAG5lF,eAEtB0lJ,EAAU3pC,QAAUtsG,EAAOssG,YAClB7b,EAAIrmG,KAAKijG,QAAQu8B,kBAAkB5pH,EAAOssG,QAAU,EAAG2pC,EAAU3pC,SAAU7b,EAAI,EAAGA,MACpF9nG,YAAYwtF,EAAG+/D,cAEtBl2I,EAAOqsG,SAAW4pC,EAAU5pC,SAAU,KAClC8pC,EAAW/rJ,KAAKgsJ,qBAAqBp2I,EAAQA,EAAOqsG,SAAU4pC,EAAU5pC,SAAW,GACnFl2B,EAAG5lF,aACA3D,aAAaupJ,EAAUhgE,EAAG5lF,cAE1B7D,YAAYypJ,MAGnBn2I,EAAOssG,QAAU2pC,EAAU3pC,QAAS,CAChC6pC,EAAW/rJ,KAAKgsJ,qBAAqBp2I,EAAQi2I,EAAU3pC,QAAU,EAAGtsG,EAAOssG,WAC5E5/G,YAAYypJ,UAIlBC,qBAAuB,SAASp2I,EAAQqsG,EAAUC,WAC/C6pC,EAAW/rJ,KAAKoP,QAAQ+lG,cAAc82C,yBACtC5lD,EAAM4b,EACN0D,EAAW3lH,KAAKijG,QAAQs8B,gBAAgBl5B,GACxC4jC,EAAYtkB,EAAWA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAGxCqwF,EAAM4jC,MACAtkB,EAASz2G,IAAIm3F,IAAI,OACZrmG,KAAKijG,QAAQs8B,gBAAgBl5B,EAAKsf,IACtBA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,KAE5CqwF,EAAM6b,IAND,KASL5d,EAAYrF,EAAI15F,cAAc,OAE9B8kG,EAAO,WACNshD,YAAYthD,EAAMhE,GAAK,EAAOA,GAAO4jC,GAAYtkB,KAC5C3/G,UAAYqkG,EAAK7hG,KAAK,IAC5BxI,KAAK4rJ,mBACK5/D,UAAY,mBACb1pF,YAAYgiG,KACX3hG,MAAM41B,OAAS3iB,EAAOo4F,WAAahuG,KAAKijG,QAAQmrC,aAAa/nC,GAAO,eAGxE/B,EAAUn+F,cACH7D,YAAYgiG,EAAUn+F,uBAKpC4lJ,QAGN72I,OAAS,SAASU,QACdA,OAASA,UAEVy0F,EAAO,GACP4X,EAAWrsG,EAAOqsG,SAAUC,EAAUtsG,EAAOssG,QAE7C7b,EAAM4b,EACN0D,EAAW3lH,KAAKijG,QAAQs8B,gBAAgBl5B,GACxC4jC,EAAYtkB,EAAWA,EAASh3G,MAAM03F,IAAMrwF,EAAAA,EAGxCqwF,EAAM4jC,MACAtkB,EAASz2G,IAAIm3F,IAAI,OACZrmG,KAAKijG,QAAQs8B,gBAAgBl5B,EAAKsf,IACtBA,EAASh3G,MAAM03F,IAAKrwF,EAAAA,KAE3CqwF,EAAM6b,IAGNliH,KAAK4rJ,oBACA9sJ,KAAK,6CAA8C8W,EAAOo4F,WAAWhuG,KAAKijG,QAAQmrC,aAAa/nC,GAAM,aAEzGslD,YAAYthD,EAAMhE,GAAK,EAAOA,GAAO4jC,GAAYtkB,GAElD3lH,KAAK4rJ,oBACA9sJ,KAAK,mBAIbsQ,QAAQpJ,UAAYqkG,EAAK7hG,KAAK,UAGlC0jJ,WAAa,CACdn5H,MAAQ,EACRo5H,QAAU,EACVC,QAAU,QAGTC,aAAe,SAAS3C,EAAevb,EAAc7kB,EAAOlnH,OACzD4mF,EAAOhpF,KAkCP6vD,EAASztD,EAAMU,QAjCF,yjBACC,SAAS3B,EAAGE,EAAGK,EAAG4qJ,EAAQC,MACpClrJ,SACO2nF,EAAKu0B,eACN,mDAAqDre,EAAK3B,aAAavU,EAAKwhE,WAAYrpJ,EAAEtC,QAAU,UACpGsC,KACM,KAALA,QACA,WACK,KAALA,QACA,WACK,KAALA,QACA,WACK,MAALA,EAAW,KACd6kH,EAAUh9B,EAAKia,QAAQgc,iBAAiBkvB,EAAeme,aAC3CtmC,EAAU,EACnBh9B,EAAKgiE,YAAYhlC,MACZ,KAAL7kH,EAAe,KAClBqrJ,EAAaxjE,EAAKu0B,eAAiB,4CAA8C,UACjFrwC,EAAQ8b,EAAKu0B,eAAiBv0B,EAAKwhE,WAAa,aACpC,EACT,gBAAkBgC,EAAa,kBACJ,EAA7BxjE,EAAKpzE,OAAOs4F,eACb,OAAShhC,EAAQ,iBACdxrE,EACA,+DAAiEsnF,EAAKwhE,WAAa,cAE1E,EACT,sCAC2B,EAA7BxhE,EAAKpzE,OAAOs4F,eACb,OAAS/sG,EAAI,iBAMpBnB,KAAKksJ,WAAW5iC,EAAMpqH,QAQTJ,KAAK+wD,OARW,KAC1Bs8B,EAAU,OAASm9B,EAAMpqH,KAAK4D,QAAQ,MAAO,SAC7CH,EAAQ,GACM,QAAd2mH,EAAMpqH,SACE,iBAAoBoqH,EAAMlnH,MAAMvD,OAASmB,KAAK4V,OAAOs4F,eAAkB,WACrEpvG,KAAK,gBAAiBqtF,EAAS,IAAKxpF,EAAO,IAAKktD,EAAQ,kBAKnEs+E,EAAe/rI,EAAMvD,aAG3B4tJ,kBAAoB,SAAS/C,EAAetnJ,EAAOsG,OAChDgkJ,EAAOtqJ,EAAM+H,OAAOnK,KAAKkrJ,uBACzBwB,GAAQ,GAAKA,GAAQhkJ,EACdtG,EACK,KAAZA,EAAM,OACEsqJ,EAAO1sJ,KAAKgmH,UACNlnH,KAAKogG,EAAK3B,aAAav9F,KAAKgrJ,YAAY,KAAM0B,EAAK1sJ,KAAKgmH,UAC/D5jH,EAAMiP,OAAOq7I,IACD,MAAZtqJ,EAAM,MACCtD,KAAKogG,EAAK3B,aAAav9F,KAAKgrJ,YAAY,MAAO0B,IACtDtqJ,EAAMiP,OAAOq7I,IAEjBtqJ,QAGNuqJ,mBAAqB,SAASjD,EAAex/B,EAAQrL,EAAQ+tC,WAC1D3xC,EAAQ,EACR3yG,EAAQ,EACRukJ,EAAahuC,EAAO,GACpBsvB,EAAe,EAEVtwI,EAAI,EAAGA,EAAIqsH,EAAOrrH,OAAQhB,IAAK,KAChCyrH,EAAQY,EAAOrsH,GACfuE,EAAQknH,EAAMlnH,SACT,GAALvE,GAAUmC,KAAKklJ,oBAAqB,MAC5B9iJ,EAAMvD,WACNmB,KAAKysJ,kBAAkB/C,EAAetnJ,EAAOyqJ,gBAG5CzqJ,EAAMvD,UAGfo8G,EAAQ74G,EAAMvD,OAASguJ,IACR7sJ,KAAKqsJ,aAAa3C,EAAevb,EAAc7kB,EAAOlnH,MAC5DA,EAAMvD,WACZ,MACIo8G,EAAQ74G,EAAMvD,QAAUguJ,KACZ7sJ,KAAKqsJ,aAChB3C,EAAevb,EACf7kB,EAAOlnH,EAAMo/F,UAAU,EAAGqrD,EAAa5xC,MAEnC74G,EAAMo/F,UAAUqrD,EAAa5xC,KAC7B4xC,EAEHD,KACa9tJ,KAAK,SACf,uCACAkB,KAAK4V,OAAOo4F,WAAY,UAIlBlvG,KAAKogG,EAAK3B,aAAa,IAAQshB,EAAOE,WAGrC,IACFF,QAAiBzmG,OAAOuzH,UAErB,GAAhBvpI,EAAMvD,YACGuD,EAAMvD,SACAmB,KAAKqsJ,aAChB3C,EAAevb,EAAc7kB,EAAOlnH,YAOnD0qJ,kBAAoB,SAASpD,EAAex/B,OACzCikB,EAAe,EACf7kB,EAAQY,EAAO,GACf9nH,EAAQknH,EAAMlnH,MACdpC,KAAKklJ,wBACGllJ,KAAKysJ,kBAAkB/C,EAAetnJ,IAC9CA,MACepC,KAAKqsJ,aAAa3C,EAAevb,EAAc7kB,EAAOlnH,YAChEvE,EAAI,EAAGA,EAAIqsH,EAAOrrH,OAAQhB,SACvBqsH,EAAOrsH,IACDuE,QACCpC,KAAKqsJ,aAAa3C,EAAevb,EAAc7kB,EAAOlnH,SAGxEupJ,YAAc,SAASjC,EAAerjD,EAAKumD,EAAcjnC,MACrDA,GAAwB,GAAZA,MACF3lH,KAAKijG,QAAQ2iB,YAAYvf,IAEpCsf,MACIuE,EAASlqH,KAAK+sJ,mBAAmB1mD,EAAKsf,QAEtCuE,EAASlqH,KAAKijG,QAAQwqB,UAAUpnB,MAGnCumD,KACa9tJ,KACV,uCACIkB,KAAK4V,OAAOo4F,iBACH49C,iBAAmB,EAAG5rJ,KAAKijG,QAAQmrC,aAAa/nC,IACtD,QAIX6jB,EAAOrrH,OAAQ,KACXggH,EAAS7+G,KAAKijG,QAAQ0rC,gBAAgBtoC,GACtCwY,GAAUA,EAAOhgH,YACZ8tJ,mBAAmBjD,EAAex/B,EAAQrL,EAAQ+tC,QAElDE,kBAAkBpD,EAAex/B,GAG1ClqH,KAAKu9G,iBACDoI,MACMA,EAASz2G,IAAIm3F,OAETvnG,KACV,iDACAunG,GAAOrmG,KAAKijG,QAAQmJ,YAAc,EAAIpsG,KAAKmqJ,SAAWnqJ,KAAKsqJ,SAC3D,YAGHsC,KACa9tJ,KAAK,gBAGtBiuJ,mBAAqB,SAAS1mD,EAAKsf,OAChC1iB,EAAUjjG,KAAKijG,QACf+pD,EAAe,OAuCf9iC,EAASjnB,EAAQwqB,UAAUpnB,YACtBu2B,MAAK,SAASG,EAAaiQ,EAAKzmC,EAAQw6B,EAAYjE,GACtC,MAAfC,IACaj+H,KAAK,CACdI,KAAM,OACNkD,MAAO26H,KAGPD,MACS75B,EAAQwqB,UAAUuf,IAE3B9iB,EAAOrrH,iBAhDAouJ,EAAQv7I,EAAMqV,WACzBy2G,EAAM,EAAGzd,EAAM,EACXA,EAAMktC,EAAOzvB,GAAKp7H,MAAMvD,OAAU6S,SAC/Bu7I,EAAOzvB,GAAKp7H,MAAMvD,YAGdouJ,EAAOpuJ,kBAGlBkhH,GAAOruG,KACHtP,EAAQ6qJ,EAAOzvB,GAAKp7H,MAAMo/F,UAAU9vF,EAAOquG,IACrClhH,OAAUkoB,EAAKrV,MACbtP,EAAMo/F,UAAU,EAAGz6E,EAAKrV,MAEvB5S,KAAK,CACdI,KAAM+tJ,EAAOzvB,GAAKt+H,KAClBkD,MAAAA,MAGEsP,EAAOtP,EAAMvD,UACZ,GAGJkhH,EAAMh5F,GAAMy2G,EAAMyvB,EAAOpuJ,QAAQ,KAChCuD,GAAAA,EAAQ6qJ,EAAOzvB,GAAKp7H,OACdvD,OAASkhH,EAAMh5F,IACRjoB,KAAK,CACdI,KAAM+tJ,EAAOzvB,GAAKt+H,KAClBkD,MAAOA,EAAMo/F,UAAU,EAAGz6E,EAAKg5F,OAGtBjhH,KAAKmuJ,EAAOzvB,OACtBp7H,EAAMvD,UACN,IAgBOqrH,EAAQ6W,EAAYx6B,MAEvCof,EAASz2G,IAAIm3F,IAAKrmG,KAAKijG,QAAQ0V,QAAQgN,EAASz2G,IAAIm3F,KAAKxnG,QAErDmuJ,QAGNpB,eAAiB,kBACX5rJ,KAAKijG,QAAQkpC,uBAGnBthC,QAAU,yBACG7qG,KAAK8qJ,uBACf9qJ,KAAKktJ,mBACAA,aAAa5uJ,WAAWC,YAAYyB,KAAKktJ,qBAC3CltJ,KAAKktJ,gBAGjBxnJ,KAAKukJ,EAAKlmJ,aAELkmJ,KAAOA,KAIfnkE,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,gBAAgB,SAASP,EAAU/wE,EAAS+f,OAIpG64H,EADAluD,EAAM3Z,EAAS,cAGf8nE,EAAS,SAASjG,QACb/3I,QAAU6vF,EAAI15F,cAAc,YAC5B6J,QAAQ48E,UAAY,+BAChB1pF,YAAYtC,KAAKoP,cAEZ,IAAV+9I,oBACuBntJ,KAAKoP,QAAQzM,aAEnC0qJ,WAAY,OACZrJ,YAAa,OACbsJ,cAAgB,SAChBC,gBAAiB,OAEjBC,QAAU,QACVpnD,OAASpmG,KAAKytJ,cACfxhE,YAAYjsF,KAAKoP,QAAS,2BACzBs+I,kBACC1tJ,KAAK2tJ,kBACL3tJ,KAAK4tJ,gBAAgBlmJ,KAAK1H,QAGnC,gBAEQ2tJ,kBAAoB,SAASzkJ,WAC1BskJ,EAAUxtJ,KAAKwtJ,QACV3vJ,EAAI2vJ,EAAQ3uJ,OAAQhB,OACjBA,GAAG8E,MAAMkrJ,WAAa3kJ,EAAM,GAAK,eAE5C0kJ,eAAiB,SAAS1kJ,WACvBskJ,EAAUxtJ,KAAKwtJ,QACV3vJ,EAAI2vJ,EAAQ3uJ,OAAQhB,OACjBA,GAAG8E,MAAM+8F,QAAUx2F,EAAM,GAAK,UAIzCs/I,SAAW,OACXS,WAAa,SAASV,QAClBC,SAAWD,QAGf7Q,WAAa,SAASz0C,QAClBA,QAAUA,QAGd6L,YAAc,SAASg/C,GACpBA,GAAY9tJ,KAAKgkJ,kBACZA,WAAa8J,OACbC,sBAIRC,iBAAmB,SAASV,GACzBA,GAAiBttJ,KAAKstJ,qBACjBA,cAAgBA,OAChBS,sBAIRhK,kBAAoB,SAASwJ,GAC1BA,GAAkBvtJ,KAAKutJ,gBAAmBJ,SACrCI,eAAiBA,IAClBlhE,YAAYrsF,KAAKoP,QAAS,sBAAuBm+I,QAChDG,gBAAe,QACfA,eAAkB1tJ,KAAK4tJ,eAAgBlmJ,KAAK1H,WAC5C+tJ,sBAIRN,UAAY,eACT1hE,EAAKkT,EAAI15F,cAAc,gBACxBymF,UAAY,kBACV58E,QAAQ9M,YAAYypF,QACpByhE,QAAQ1uJ,KAAKitF,GACXA,QAGNkiE,aAAe,cACZjuJ,KAAKwtJ,QAAQ3uJ,OAAS,EAAG,KACrBktF,EAAK/rF,KAAKwtJ,QAAQ1+I,eACnBxQ,WAAWC,YAAYwtF,GACnBA,SAIVqwD,WAAa,gBACTiR,WAAY,IACbphE,YAAYjsF,KAAKoP,QAAS,2BACzB2+I,qBAGJ7R,WAAa,gBACTmR,WAAY,IACbnhE,eAAelsF,KAAKoP,QAAS,2BAC5B2+I,qBAGJA,aAAe,eACZ74I,EAASlV,KAAK0tJ,gCACJ1tJ,KAAKkuJ,yBACNluJ,KAAKmuJ,WACdnuJ,KAAKutJ,kBACDrhE,eAAelsF,KAAKoP,QAAS,0BAG9B,GAEFpP,KAAKgkJ,YAAehkJ,KAAKstJ,eAAkBttJ,KAAKqtJ,WAGjDrtJ,KAAKutJ,2BACM,aACHthE,YAAYjsF,KAAKoP,QAAS,wBAChC1H,KAAK1H,WAGPouJ,EAAQ,gBACHD,UAAYvmJ,YAAW,cACjB,KACR,GAAM5H,KAAKstJ,gBAChB5lJ,KAAK1H,WAEFkuJ,WAAan/C,aAAY,cACnB,SAER/uG,KAAKstJ,0BAKPe,iBAAmB,SAASrsI,EAAUssI,OAClCtuJ,KAAK4V,SAAW5V,KAAKijG,cACf,CAAC5nC,KAAO,EAAGmpC,IAAM,GAEvBxiF,MACUhiB,KAAKijG,QAAQjC,UAAUsiB,iBAClC93D,EAAMxrD,KAAKijG,QAAQuf,yBAAyBxgG,SAQzC,CAACq5C,KAPSr7D,KAAKwoJ,eAAiBvlD,QAAQykB,aAAa5J,UAAUtyD,EAAI66C,IAAKrkF,EAASqkF,KAClFrmG,KAAKijG,QAAQykB,aAAa5H,WAAWt0D,EAAI+6C,QACzC/6C,EAAI+6C,OAASvmG,KAAK4V,OAAOs4F,gBAKJ1J,OAHN6B,OAAkBrmG,KAAK4V,OAAO6zI,eAAiB,IAChEzpJ,KAAK4V,OAAOo4F,kBAKf94F,OAAS,SAASU,QACdA,OAASA,MAEVwqG,EAAapgH,KAAKijG,QAAQsrD,kBAC1B1wJ,EAAI,EAAG2wJ,EAAc,OAEN,IAAfpuC,GAAkD,IAAtBA,EAAWvhH,WAC1B,CAAC,CAACunG,OAAQ,QAGlBvoG,EAAI,UAAGM,EAAIiiH,EAAWvhH,OAAQhB,EAAIM,EAAGN,IAAK,KAC3C4wJ,EAAWzuJ,KAAKquJ,iBAAiBjuC,EAAWviH,GAAGuoG,QAAQ,WAC7C5B,IAAM5uF,EAAO2iB,OAAS3iB,EAAO9F,QACtC2+I,EAASjqD,IAAM,IAAM3mG,EAAI,QAI1B8E,QAAc6qJ,QAAQgB,MAAkBxuJ,KAAKytJ,aAAa9qJ,MAEzD3C,KAAK0uJ,gBAMDA,WAAW/rJ,EAAO8rJ,EAAU74I,EAAQwqG,EAAWviH,GAAImC,KAAKijG,YALvD5nC,KAAOozF,EAASpzF,KAAO,OACvBmpC,IAAMiqD,EAASjqD,IAAM,OACrBjX,MAAQ33E,EAAOs4F,eAAiB,OAChC31E,OAAS3iB,EAAOo4F,WAAa,YAKpChuG,KAAKwtJ,QAAQ3uJ,OAAS2vJ,QACpBP,mBAEL1nB,EAAYvmI,KAAKijG,QAAQujC,oBACxBmoB,cAAcpoB,QACdmd,UAAY+K,OACZV,qBAGJW,WAAa,UAEbC,cAAgB,SAASpoB,GACtBA,GAAavmI,KAAKumI,iBACbA,UAAYA,EACbA,IACIt6C,YAAYjsF,KAAKoP,QAAS,2BAE1B88E,eAAelsF,KAAKoP,QAAS,gCAIxCy7F,QAAU,yBACG7qG,KAAKkuJ,yBACNluJ,KAAKmuJ,cAGvBzoJ,KAAK0nJ,EAAOrpJ,aAEPqpJ,OAASA,KAIjBtnE,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,gBAAgB,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGvJi7D,EAAMjK,EAAS,aACf2Z,EAAM3Z,EAAS,aACf9hF,EAAQ8hF,EAAS,eACjB6sB,EAAe7sB,EAAS,uBAAuB6sB,aAC/Cy8C,EAAe,MACfC,EAAY,SAAS/oI,QAChB1W,QAAU6vF,EAAI15F,cAAc,YAC5B6J,QAAQ48E,UAAY,8BAAgChsF,KAAK8uJ,iBAEzDztH,MAAQ49D,EAAI15F,cAAc,YAC1B87B,MAAM2qD,UAAY,2BAClB58E,QAAQ9M,YAAYtC,KAAKqhC,SAEvB/+B,YAAYtC,KAAKoP,cAEnB2/I,YAAW,QACXC,WAAY,IAEXl2D,YAAY94F,KAAKoP,QAAS,SAAUpP,KAAKivJ,SAASvnJ,KAAK1H,SACvD84F,YAAY94F,KAAKoP,QAAS,YAAa5L,EAAM+H,kBAGtD,aACO+jF,UAAUtvF,KAAMmyG,QAEf48C,WAAa,SAAS1B,QAClBj+I,QAAQzM,MAAM0iB,QAAUgoI,EAAY,GAAK,YACzCA,UAAYA,OACZ6B,MAAQ,KAElBxpJ,KAAKmpJ,EAAU9qJ,eACdorJ,EAAa,SAASrpI,EAAQy9E,KACpB79F,KAAK1F,KAAM8lB,QAChBmoE,UAAY,OACZmhE,aAAe,IACXC,gBACTrvJ,KAAKutF,MAAQ0R,EAAI5R,eAAevnE,EAAOqvF,oBAClC9zE,MAAM1+B,MAAM4qF,MACjBvtF,KAAKoP,QAAQzM,MAAM4qF,YAAcA,OAAS,IAAM,EAAI,UAC/C+hE,UAAY,KAGjBtgE,SAASmgE,EAAYN,GAExB,gBAEQC,YAAc,UACdG,SAAW,eACPjvJ,KAAKgvJ,UAAW,SACZ/gE,UAAYjuF,KAAKoP,QAAQ6+E,UACZ,GAAdjuF,KAAKkvJ,MAAY,KACb5tJ,EAAItB,KAAKoP,QAAQg+E,aAAeptF,KAAKovJ,kBACpCnhE,UAAYjuF,KAAKiuF,aAAiB3sF,SAAW4tJ,MAAQ5tJ,QAEzD2iG,MAAM,SAAU,CAACx+F,KAAMzF,KAAKiuF,iBAEhC+gE,WAAY,QAEhBpkD,SAAW,kBACLjiG,KAAKD,IAAI1I,KAAKqtJ,UAAYrtJ,KAAKutF,MAAQ,EAAGvtF,KAAKsvJ,WAAa,SAElEC,UAAY,SAASh3H,QACjBnpB,QAAQzM,MAAM41B,OAASA,EAAS,WAEpCi3H,eACLxvJ,KAAKyvJ,gBAAkB,SAASl3H,QACvB62H,aAAe72H,EAChBA,EAASq2H,QACJM,MAAQN,EAAer2H,IACnBq2H,GACY,GAAd5uJ,KAAKkvJ,aACPA,MAAQ,QAEZ7tH,MAAM1+B,MAAM41B,OAASA,EAAS,WAElC0wG,aAAe,SAASh7C,GACrBjuF,KAAKiuF,WAAaA,SACb+gE,WAAY,OACZ/gE,UAAYA,OACZ7+E,QAAQ6+E,UAAYA,EAAYjuF,KAAKkvJ,SAInDxpJ,KAAKypJ,EAAWprJ,eACf2rJ,EAAa,SAAS5pI,EAAQy9E,KACpB79F,KAAK1F,KAAM8lB,QAChBooE,WAAa,OACb31D,OAASgrE,EAAS8rD,qBAClBhuH,MAAM1+B,MAAM41B,OACjBv4B,KAAKoP,QAAQzM,MAAM41B,aAAeA,QAAU,IAAM,EAAI,QAGtDy2D,SAAS0gE,EAAYb,GAExB,gBAEQC,YAAc,UACdG,SAAW,WACPjvJ,KAAKgvJ,iBACD9gE,WAAaluF,KAAKoP,QAAQ8+E,gBAC1B+V,MAAM,SAAU,CAACx+F,KAAMzF,KAAKkuF,mBAEhC8gE,WAAY,QAEhBtkD,UAAY,kBACN1qG,KAAKqtJ,UAAYrtJ,KAAKu4B,OAAS,QAErCo3H,SAAW,SAASpiE,QAChBn+E,QAAQzM,MAAM4qF,MAAQA,EAAQ,WAElCqiE,cAAgB,SAASriE,QACrBlsD,MAAM1+B,MAAM4qF,MAAQA,EAAQ,WAEhCsiE,eAAiB,SAAStiE,QACtBlsD,MAAM1+B,MAAM4qF,MAAQA,EAAQ,WAEhC67C,cAAgB,SAASl7C,GACtBluF,KAAKkuF,YAAcA,SACd8gE,WAAY,OACZ9gE,WAAaluF,KAAKoP,QAAQ8+E,WAAaA,KAIrDxoF,KAAKgqJ,EAAW3rJ,aAGX8qJ,UAAYM,IACZW,WAAaX,IACbY,WAAaL,IAEbP,WAAaA,IACbO,WAAaA,KAGrB5pE,IAAID,OAAO,iBAAiB,CAAC,UAAU,UAAU,SAAS,kBAAkB,SAASP,EAAU/wE,EAAS+f,OAGpG9wB,EAAQ8hF,EAAS,eAGjB0qE,EAAa,SAASC,EAAUnzD,QAC3BmzD,SAAWA,OACXpqG,SAAU,OACVqqG,QAAU,OACV3mG,OAASuzC,GAAOvzC,SAGxB,gBAGQm1C,SAAW,SAASlnF,WAChB04I,QAAUlwJ,KAAKkwJ,QAAU14I,GACzBxX,KAAK6lD,SAAW7lD,KAAKkwJ,QAAS,MAC1BrqG,SAAU,MACXi5C,EAAQ9+F,OACNg9F,WAAU,eAERkzD,QADErqG,SAAU,EAETqqG,EAAUpxD,EAAMoxD,WACbA,QAAU,IACVD,SAASC,KAEpBlwJ,KAAKupD,YAIjB7jD,KAAKsqJ,EAAWjsJ,aAEXisJ,WAAaA,KAGrBlqE,IAAID,OAAO,yBAAyB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,eAAe,oBAAoB,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAEnLi7D,EAAMjK,EAAS,cACf2Z,EAAM3Z,EAAS,cACf4Z,EAAO5Z,EAAS,eAChBqT,EAAYrT,EAAS,oBACrB6sB,EAAe7sB,EAAS,wBAAwB6sB,aAEhDg+C,EAAa,EAEbC,EAAc77I,EAAQ67I,YAAc,SAASjJ,QACxCp7D,GAAKkT,EAAI15F,cAAc,YACvB8qJ,sBAAsBrwJ,KAAK+rF,GAAGppF,OAAO,QAErC2tJ,MAAQrxD,EAAI15F,cAAc,YAC1B8qJ,sBAAsBrwJ,KAAKswJ,MAAM3tJ,YAEjCuqJ,aAAejuD,EAAI15F,cAAc,YACjC8qJ,sBAAsBrwJ,KAAKktJ,aAAavqJ,YAGxCopF,GAAGzpF,YAAYtC,KAAKswJ,YACpBvkE,GAAGzpF,YAAYtC,KAAKktJ,gBAChB5qJ,YAAYtC,KAAK+rF,IAErBokE,QACII,2BACJrD,aAAalnJ,UAAYk5F,EAAK3B,aAAa,IAAK4yD,QAEhD7wC,eAAiB,CAAC/xB,MAAO,EAAGh1D,OAAQ,QACpCsyH,wBAGR,aAEOv7D,UAAUtvF,KAAMmyG,QAEfmN,eAAiB,CAAC/xB,MAAO,EAAGh1D,OAAQ,QAEpCg4H,oBAAsB,eACnBxkE,EAAKkT,EAAI15F,cAAc,YACtB8qJ,sBAAsBtkE,EAAGppF,SAC3BA,MAAM4qF,MAAQ,iBACR1B,gBAAgBvpF,YAAYypF,OACjCnqF,EAAImqF,EAAGwY,wBAAwBhX,QAC/B3rF,EAAI,GAAKA,EAAI,EACA,GAEA,MACdtD,WAAWC,YAAYwtF,SAGzBskE,sBAAwB,SAAS1tJ,EAAO6tJ,KACnCjjE,MAAQ5qF,EAAM41B,OAAS,SACvB8iC,KAAO14D,EAAM6hG,IAAM,QACnBqpD,WAAa,WACb7rI,SAAW,aACXyuI,WAAa,MAEf93D,EAAUlB,KAAO,IACX,eAAiB,YAEjBp6D,KAAO,YAEXkrB,SAAWioG,EAAS,SAAW,gBAGpC3F,oBAAsB,eACnB/xH,EAAO94B,KAAK0wJ,mBACZ53H,SAAcwmF,eAAe/xB,QAAUz0D,EAAKy0D,OAASvtF,KAAKs/G,eAAe/mF,SAAWO,EAAKP,QAAS,MAC7F20H,aAAavqJ,MAAMguJ,WAAa,WACjCC,EAAW5wJ,KAAK0wJ,qBACfxD,aAAavqJ,MAAMguJ,WAAa,QAChCrxC,eAAiBxmF,OACjB+3H,UAAY1kJ,OAAOC,OAAO,WAC1B0kJ,eAAiBF,GAAYA,EAASrjE,QAAUz0D,EAAKy0D,OAASqjE,EAASr4H,SAAWO,EAAKP,YACvF0rE,MAAM,sBAAuB,CAACx+F,KAAMqzB,WAI5C8xH,iBAAmB,cAChB5qJ,KAAK8qJ,6BACE9qJ,KAAK8qJ,0BACZ9hE,EAAOhpF,YACJA,KAAK8qJ,sBAAwB/7C,aAAY,aACvC87C,wBACN,WAGFkG,WAAa,SAAS7nJ,GACnBA,OACK0hJ,mBACE5qJ,KAAK8qJ,sCACE9qJ,KAAK8qJ,4BACdA,sBAAwB,SAIhC4F,cAAgB,cACE,KAAfP,EAAmB,KACf9rD,EAAO,WAEDrkG,KAAKktJ,aAAa3oD,8BACpBrjG,KACE,CAACqsF,MAAO,EAAGh1D,OAAO,OAExBO,EAAO,CACPP,OAAQ8rE,EAAK9rE,OACbg1D,MAAO8W,EAAK9W,MAAQ4iE,QAGpBr3H,EAAO,CACPP,OAAQv4B,KAAKktJ,aAAa9/D,aAC1BG,MAAOvtF,KAAKktJ,aAAahgE,YAAcijE,UAG5B,IAAfr3H,EAAKy0D,OAA+B,IAAhBz0D,EAAKP,OAClB,KACJO,QAGN0mF,kBAAoB,SAASjE,eACzB+0C,MAAMtqJ,UAAYk5F,EAAK3B,aAAage,EAAI40C,GAClCnwJ,KAAKswJ,MAAM/rD,wBACVhX,MAAQ4iE,QAGnBzgB,kBAAoB,SAASn0B,OAC1B35G,EAAI5B,KAAK6wJ,UAAUt1C,eACb,IAAN35G,MACI5B,KAAK6wJ,UAAUt1C,GAAMv7G,KAAKw/G,kBAAkBjE,GAAMv7G,KAAKs/G,eAAe/xB,OAEvE3rF,QAGNipG,QAAU,yBACG7qG,KAAK8qJ,uBACf9qJ,KAAK+rF,IAAM/rF,KAAK+rF,GAAGztF,iBACdytF,GAAGztF,WAAWC,YAAYyB,KAAK+rF,OAG7CrmF,KAAK0qJ,EAAYrsJ,cAIpB+hF,IAAID,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,aAAa,oBAAoB,mBAAmB,mBAAmB,iBAAiB,mBAAmB,gBAAgB,gBAAgB,iBAAiB,yBAAyB,0BAA0B,SAASP,EAAU/wE,EAAS+f,OAGnUi7D,EAAMjK,EAAS,aACf2Z,EAAM3Z,EAAS,aACf1vE,EAAS0vE,EAAS,YAClBqT,EAAYrT,EAAS,mBACrB0rE,EAAc1rE,EAAS,kBAAkB4hE,OACzC+J,EAAc3rE,EAAS,kBAAkB0jE,OACzCkI,EAAY5rE,EAAS,gBAAgB2kE,KACrCkH,EAAc7rE,EAAS,kBAAkB8nE,OACzCsC,EAAapqE,EAAS,eAAeoqE,WACrCP,EAAa7pE,EAAS,eAAe6pE,WACrCa,EAAa1qE,EAAS,gBAAgB0qE,WACtCI,EAAc9qE,EAAS,wBAAwB8qE,YAC/Cj+C,EAAe7sB,EAAS,uBAAuB6sB,eA8X/CvlB,gBA7XY,s6XA6Xe,sBAE3BwkE,EAAkB,SAAS9sD,EAAW82C,OAClCt8C,EAAQ9+F,UAEPskG,UAAYA,GAAarF,EAAI15F,cAAc,YAC3Ci+F,uBAAyB7K,EAAUhB,UAEpC1L,YAAYjsF,KAAKskG,UAAW,mBAE3B62C,SAASC,QAET3uC,QAAUxN,EAAI15F,cAAc,YAC5BknG,QAAQzgB,UAAY,kBACpBsY,UAAUhiG,YAAYtC,KAAKysG,cAC3BA,QAAQnpG,aAAa,eAAe,QAEpC0hG,SAAW/F,EAAI15F,cAAc,YAC7By/F,SAAShZ,UAAY,oBACrBsY,UAAUhiG,YAAYtC,KAAKglG,eAE3BqsD,QAAUpyD,EAAI15F,cAAc,YAC5B8rJ,QAAQrlE,UAAY,mBACpBgZ,SAAS1iG,YAAYtC,KAAKqxJ,cAE1B5lD,aAAe,IAAIulD,EAAYhxJ,KAAKysG,cACpChB,aAAa7H,GAAG,oBAAqB5jG,KAAKsxJ,eAAe5pJ,KAAK1H,YAE9DuxJ,YAAc,IAAIN,EAAYjxJ,KAAKqxJ,aAEpCG,EAAYxxJ,KAAKyxJ,WAAa,IAAIP,EAAUlxJ,KAAKqxJ,cAChDK,OAASF,EAAUpiJ,aAEnBuiJ,aAAe,IAAIV,EAAYjxJ,KAAKqxJ,cAEpCxiD,aAAe,IAAIsiD,EAAYnxJ,KAAKqxJ,cACpCO,cAAe,OACfC,UAAW,OAEXC,UACL9xJ,KAAK62G,WAAa,IAAIs4C,EAAWnvJ,KAAKskG,UAAWtkG,WAC5C82G,WAAa,IAAI44C,EAAW1vJ,KAAKskG,UAAWtkG,WAC5C62G,WAAW3zG,iBAAiB,UAAU,SAAShC,GAC3C49F,EAAMizD,oBACD9uD,QAAQgmC,aAAa/nI,EAAEuE,KAAOq5F,EAAMkzD,aAAaxtD,aAE1DsS,WAAW5zG,iBAAiB,UAAU,SAAShC,GAC3C49F,EAAMizD,oBACD9uD,QAAQmmC,cAAcloI,EAAEuE,KAAOq5F,EAAMkzD,aAAa32F,cAG3D4yB,UAAY,OACZC,WAAa,OAEb8sD,UAAY,CACb30C,IAAM,EACNE,OAAS,QAGRmkD,aAAe,IAAI0F,EAAYpwJ,KAAKskG,gBACpCmtD,WAAWliB,gBAAgBvvI,KAAK0qJ,mBAChC+G,WAAWvuJ,iBAAiB,uBAAuB,SAAShC,KACvD+wJ,wBACA/W,UAAS,EAAMp8C,EAAMuoD,YAAavoD,EAAMozD,MAAM3kE,MAAOuR,EAAMozD,MAAM35H,UACjEozE,QAAQ,sBAAuBzqG,WAGpCgxJ,MAAQ,CACT3kE,MAAO,EACPh1D,OAAQ,EACR45H,eAAgB,EAChBC,cAAe,EACfC,QAAQ,QAGPpkD,YAAc,CACf1gB,MAAQ,EACRg7D,QAAU,EACVtmC,SAAW,EACXwnC,eAAgB,EAChBvnC,QAAU,EACVlU,WAAa,EACbE,eAAiB,EACjBm6C,UAAY,EACZiK,UAAY,EACZxiJ,OAAS,EACTyoB,OAAS,EACTmvH,aAAc,QAGbsK,aAAe,CAChB32F,KAAM,EACNgqC,MAAO,EACPb,IAAK,EACLI,OAAQ,EACR3lG,EAAG,EACHqC,EAAG,QAGFixJ,MAAQ,IAAIvC,EACbhwJ,KAAKwyJ,eAAe9qJ,KAAK1H,MACzBA,KAAKskG,UAAU6Q,cAAcrmB,kBAE5ByjE,MAAM7zD,SAAS1+F,KAAKyyJ,kBAEpBR,2BACAhJ,WAAW,KACT/0C,aAAal0G,QACbikG,MAAM,WAAYjkG,QAG5B,gBAEQ0yJ,cAAgB,OAChBC,cAAgB,OAChBC,cAAgB,OAChBC,cAAgB,OAChBC,aAAe,QACfC,YAAc,QACdC,YAAc,QACdC,mBAAqB,SACrBC,oBAAsB,SACtBT,YAAc,SACdU,gBAAkB,OAEnB7jE,UAAUtvF,KAAMmyG,QAEf8/C,oBAAsB,WACnBjyJ,KAAKyxJ,WAAWX,gBAAkB9wJ,KAAKozJ,uBAClCA,gBAAkBpzJ,KAAKyxJ,WAAWX,oBAClCrpD,SAAS,cAAeznG,KAAKozJ,uBAGjCnlD,YAAYC,eACjBluG,KAAKkuG,eAAiBluG,KAAKyxJ,WAAW/hB,yBACjCzhC,YAAYD,WACjBhuG,KAAKguG,WAAahuG,KAAKyxJ,WAAWhH,qBAC7B4I,2BAEJ3b,WAAa,SAASz0C,GACnBjjG,KAAKijG,cACAA,QAAQtX,IAAIsnB,IAAI,oBAAqBjzG,KAAKszJ,0BAE9CrwD,QAAUA,EACXA,GAAWjjG,KAAKgyJ,aAAaxtD,KAAOvB,EAAQimC,gBAAkB,KACtDD,cAAcjpI,KAAKgyJ,aAAaxtD,UAEvCqK,aAAa6oC,WAAWz0C,QACxBsuD,YAAY7Z,WAAWz0C,QACvB0uD,aAAaja,WAAWz0C,QACxBwI,aAAaisC,WAAWz0C,QACxBwuD,WAAW/Z,WAAWz0C,GACtBA,SAGAsvD,MAAM7zD,SAAS1+F,KAAKyyJ,kBACpBxvD,QAAQssC,gBAAgBvvI,KAAK0qJ,mBAC7B5zC,WAAW5oB,WAAaluF,KAAK62G,WAAW5oB,UAAY,UAEpDqlE,oBAAsBtzJ,KAAKszJ,oBAAoB5rJ,KAAK1H,WACpDszJ,2BACArwD,QAAQtX,IAAIiY,GAAG,oBAAqB5jG,KAAKszJ,4BAE7C9W,YAAc,SAASv6B,EAAUC,EAAS0nB,WAC3B,IAAZ1nB,MACUlsG,EAAAA,GAEThW,KAAKuzJ,eAOFvzJ,KAAKuzJ,cAActxC,SAAWA,SACzBsxC,cAActxC,SAAWA,GAE9BjiH,KAAKuzJ,cAAcrxC,QAAUA,SACxBqxC,cAAcrxC,QAAUA,SAV5BqxC,cAAgB,CACjBtxC,SAAAA,EACAC,QAAAA,GAUJliH,KAAKuzJ,cAAcrxC,QAAUliH,KAAKiuG,YAAYgU,SAAU,KACpD2nB,cACK2pB,cAAcrxC,QAAUliH,KAAKiuG,YAAYiU,QAIlDliH,KAAKuzJ,cAActxC,SAAWjiH,KAAKiuG,YAAYiU,cAE9CqwC,MAAM7zD,SAAS1+F,KAAK8yJ,oBAGxBQ,oBAAsB,gBAClBf,MAAM7zD,SAAS1+F,KAAK+yJ,kBACpBtB,WAAWvH,sBACXjnD,QAAQykB,aAAa/H,WAAW3/G,KAAKyxJ,WAAWnH,gBAGpDpQ,gBAAkB,gBACdqY,MAAM7zD,SAAS1+F,KAAK+yJ,YAAc/yJ,KAAK2yJ,oBACvClB,WAAWvX,wBAEfwD,WAAa,gBACT6U,MAAM7zD,SAAS1+F,KAAK+yJ,mBAExBlY,WAAa,SAASjR,GACnBA,OACK4oB,eAAexyJ,KAAKyyJ,aAAa,QAEjCF,MAAM7zD,SAAS1+F,KAAKyyJ,mBAE5Be,eAAiB,gBACb/B,WAAW5G,4BAGf4I,SAAW,OACXC,iBAAmB,WAChB1zJ,KAAKuyJ,MAAM1sG,aACNqsG,MAAMG,QAAS,OAEfnX,iBAERA,SAAW,SAAStR,EAAOyd,EAAa95D,EAAOh1D,QAC5Cv4B,KAAK2zJ,SAAW,IAEX3zJ,KAAK2zJ,SAAW,OAChBA,gBAEAA,SAAW/pB,EAAQ,EAAI,MAC5B79C,EAAK/rF,KAAKskG,UACT/rE,MACQwzD,EAAGqB,cAAgBrB,EAAGqjE,cAC9B7hE,MACOxB,EAAGmB,aAAenB,EAAG6nE,iBAC7B1D,EAAUlwJ,KAAK6zJ,kBAAkBjqB,EAAOyd,EAAa95D,EAAOh1D,OAG3Dv4B,KAAKkyJ,MAAMC,iBAAoB5kE,IAAUh1D,SACnCv4B,KAAK2zJ,SAAW,EAEvB/pB,SACKn+B,aAAa+8C,SAAW,MAE7B5e,OACK4oB,eAAetC,EAAUlwJ,KAAKyzJ,UAAU,QAExClB,MAAM7zD,SAASwxD,EAAUlwJ,KAAKyzJ,UAEnCzzJ,KAAK2zJ,gBACAA,SAAW,QACf98C,WAAW3oB,WAAaluF,KAAK62G,WAAW5oB,UAAY,YAGxD4lE,kBAAoB,SAASjqB,EAAOyd,EAAa95D,EAAOh1D,MAC9Cv4B,KAAK8zJ,cAAgB,MAC5B5D,EAAU,EACVp3H,EAAO94B,KAAKkyJ,MACZ6B,EAAU,CACVxmE,MAAOz0D,EAAKy0D,MACZh1D,OAAQO,EAAKP,OACb45H,eAAgBr5H,EAAKq5H,eACrBC,cAAet5H,EAAKs5H,sBAEpB75H,OAAoBO,EAAKP,QAAUA,OAC9BA,OAASA,KACHv4B,KAAKgzJ,cAEXb,eAAiBr5H,EAAKP,OACvBv4B,KAAK4xJ,iBACAO,gBAAkBnyJ,KAAK82G,WAAWpM,kBACtCmM,WAAWznG,QAAQzM,MAAMiiG,OAAS5kG,KAAK82G,WAAWpM,YAAc,QAEjD1qG,KAAK6yJ,eAGzBtlE,OAAmBz0D,EAAKy0D,OAASA,QACtBvtF,KAAKgzJ,cACXzlE,MAAQA,EAEM,MAAf85D,MACcrnJ,KAAKg0J,YAAch0J,KAAKysG,QAAQ9e,YAAc,QAE3D05D,YAAcA,OAEdvwC,WAAW1nG,QAAQzM,MAAM04D,KAC9Br7D,KAAKglG,SAASriG,MAAM04D,KAAOgsF,EAAc,OACpC+K,cAAgBzpJ,KAAKD,IAAI,EAAG6kF,EAAQ85D,EAAcrnJ,KAAK62G,WAAWjM,iBAElEkM,WAAW1nG,QAAQzM,MAAM0iG,MAC9BrlG,KAAKglG,SAASriG,MAAM0iG,MAAQrlG,KAAK62G,WAAWjM,WAAa,UACpD5F,SAASriG,MAAMiiG,OAAS5kG,KAAK82G,WAAWpM,YAAc,MAEvD1qG,KAAKijG,SAAWjjG,KAAKijG,QAAQkpC,kBAAoBnsI,KAAKqsI,mBAAqBzC,QAChE5pI,KAAKyyJ,gBAGnBJ,QAAU9kE,IAAUh1D,EAErB23H,QACKvkD,QAAQ,SAAUooD,GAEpB7D,QAGNoB,eAAiB,eACdjK,EAAcrnJ,KAAKg0J,YAAch0J,KAAKysG,QAAQ9e,YAAc,EAC5D05D,GAAernJ,KAAKqnJ,mBACfoM,UAAYzzJ,KAAK6zJ,mBAAkB,EAAMxM,EAAarnJ,KAAKkyJ,MAAM3kE,MAAOvtF,KAAKkyJ,MAAM35H,SAExFv4B,KAAKijG,QAAQkpC,kBAAoBnsI,KAAKqsI,mBAE/BrsI,KAAKkyJ,MAAMG,YADbE,MAAM7zD,SAAS1+F,KAAKyyJ,mBAIpBwB,2BACA1B,MAAM7zD,SAAS1+F,KAAK2yJ,sBAG5BtmB,gBAAkB,eACf6nB,EAAiBl0J,KAAKkyJ,MAAME,cAAgC,EAAhBpyJ,KAAKwoJ,SACjDp4H,EAAQznB,KAAK2zB,MAAM43H,EAAiBl0J,KAAKkuG,uBACtCluG,KAAKijG,QAAQopC,gBAAgBj8G,EAAOpwB,KAAKm0J,kBAAoBn0J,KAAKo0J,0BAExEtV,kBAAoB,SAASC,QACzBzrC,UAAU,iBAAkByrC,SAEhCC,kBAAoB,kBACdh/I,KAAKq0J,sBAEX30C,kBAAoB,SAASnC,QACzBjK,UAAU,iBAAkBiK,QAC5Bta,QAAQykB,aAAahI,kBAAkBnC,SAE3CkC,kBAAoB,kBACdz/G,KAAK0zG,UAAU,wBAErBwrC,uBAAyB,kBACnBl/I,KAAK0zG,UAAU,6BAGrBurC,uBAAyB,SAAS55H,QAC9BiuF,UAAU,sBAAuBjuF,SAErC85H,mBAAqB,SAASC,QAC1B9rC,UAAU,kBAAmB8rC,SAEjCC,mBAAqB,kBACfr/I,KAAK0zG,UAAU,yBAErB4rC,qBAAuB,SAASF,QAC5B9rC,UAAU,oBAAqB8rC,SAEnCG,qBAAuB,kBACjBv/I,KAAK0zG,UAAU,2BAErB4gD,cAAgB,kBACVt0J,KAAK0zG,UAAU,oBAErB6gD,cAAgB,SAAS/pD,UACnBxqG,KAAKszG,UAAU,aAAc9I,SAGnCs1C,mBAAqB,kBACf9/I,KAAK0zG,UAAU,yBAGrBksC,mBAAqB,SAASp1C,QAC1B8I,UAAU,kBAAmB9I,SAGjCk0C,uBAAyB,SAASF,QAC9BlrC,UAAU,sBAAuBkrC,SAGrCG,uBAAyB,kBACnB3+I,KAAK0zG,UAAU,6BAGrB8gD,2BAA6B,eAC1BhpG,EAAMxrD,KAAK6uG,aAAa60C,UACxBnrH,EAASv4B,KAAKiuG,YAAYD,cAC1BhuG,KAAKijG,QAAQkpC,iBAAkB,KAC3B/lC,EAASpmG,KAAKijG,QAAQjC,UAAUsiB,cAC7B/c,OAAS,IACVvmG,KAAK6uG,aAAaw/C,iBAAiBjoD,GAAQ,MACvCpmG,KAAKijG,QAAQmrC,aAAahoC,EAAOC,UAE1CouD,qBAAqB9xJ,MAAM6hG,IAAMh5C,EAAIg5C,IAAMxkG,KAAKiuG,YAAYn+F,OAAS,UACrE2kJ,qBAAqB9xJ,MAAM41B,OAASA,EAAS,WAGjD86H,mBAAqB,cACjBrzJ,KAAKm0J,kBAAqBn0J,KAAK00J,oBAG/B10J,KAAK00J,eAAgB,KAClBC,EAAc11D,EAAI15F,cAAc,SACxBymF,UAAY,wCACnB0oE,eAAiBz1D,EAAI15F,cAAc,YACnCmvJ,eAAe1oE,UAAY,qBACpB1pF,YAAYtC,KAAK00J,qBACxBrD,QAAQ7uJ,aAAamyJ,EAAa30J,KAAKqxJ,QAAQlrJ,gBAGpDxD,EAAQ3C,KAAK00J,eAAe/xJ,QAC1B04D,KAASr7D,KAAKkuG,eAAiBluG,KAAKo0J,mBAAsBp0J,KAAKwoJ,SAAY,OAC3EqF,WAAa7tJ,KAAKm0J,iBAAmB,UAAY,SAEnDn0J,KAAKijG,aAAWjjG,KAAKijG,QAAQ0sC,YACxBtD,yBAER4K,oBAAsB,kBAChBj3I,KAAKskG,gBAEXqS,oBAAsB,kBAChB32G,KAAKglG,eAEXkyC,qBAAuB,kBACjBl3I,KAAKskG,gBAEXb,sBAAwB,cACpBzjG,KAAKwjG,2BAEN40C,EAASp4I,KAAKiuG,YACd2mD,EAAS50J,KAAK6uG,aAAa60C,UAAUl/C,IACrCqwD,EAAU70J,KAAK6uG,aAAa60C,UAAUroF,QAChC+8E,EAAOtoI,WAEbnN,EAAQ3C,KAAKm3I,SAASx0I,MACtBrB,EAAItB,KAAKguG,cACT4mD,EAAS,GAAKA,EAASxc,EAAO7/G,OAASj3B,IACjCkjG,IAAM7hG,EAAM04D,KAAO,aAIzBz5D,EAAI5B,KAAKkuG,kBACTluG,KAAK80J,aAAc,KACf5rJ,EAAMlJ,KAAKm3I,SAAS/0I,MAAMU,QAAQ,SAAU,OAC1C9C,KAAKijG,QAAQinC,sBAAsBhhI,GAAK,GAAG,KAC5C,MAEElJ,KAAKkuF,YACFluF,KAAKkyJ,MAAME,cAAgBxwJ,MAC3B5B,KAAKkyJ,MAAME,cAAgBxwJ,MAE9B5B,KAAKqnJ,cACV9uH,OAASj3B,EAAI,OACbisF,MAAQ3rF,EAAI,OACZy5D,KAAO1yD,KAAKkN,IAAIg/I,EAAS70J,KAAKkyJ,MAAME,cAAgBxwJ,GAAK,OACzD4iG,IAAM77F,KAAKkN,IAAI++I,EAAQ50J,KAAKkyJ,MAAM35H,OAASj3B,GAAK,aAErD+/I,mBAAqB,kBACfrhJ,KAAKiuG,YAAYgU,eAEvBw/B,wBAA0B,kBACpBzhJ,KAAKiuG,YAAYgU,UAAwC,SAAvBhU,YAAYn+F,OAAe,EAAI,SAEvE4xI,uBAAyB,eACtBtJ,EAASp4I,KAAKiuG,YACdiU,EAAUk2B,EAAOl2B,eACXliH,KAAKijG,QAAQuJ,oBAAoB0V,EAAS,GAAKk2B,EAAOpqC,WACtDhuG,KAAKijG,QAAQimC,eAAiBkP,EAAO7/G,OAAS6/G,EAAOpqC,WACpDkU,EAAU,EACdA,QAENo/B,kBAAoB,kBACdthJ,KAAKiuG,YAAYiU,cAGvBsmC,SAAW,UACXS,WAAa,SAASV,QAClBC,SAAWD,OACXkJ,WAAWxI,WAAWV,QACtB15C,aAAao6C,WAAWV,QACxBoJ,aAAa1I,WAAWV,QACxBgJ,YAAYtI,WAAWV,QACvBgK,MAAM7zD,SAAS1+F,KAAKyyJ,kBACpBY,2BAGJ0B,gBAAkB,SAASvwD,EAAKI,EAAQvpC,EAAMgqC,OAC3C2vD,EAAKh1J,KAAKgyJ,eACXxtD,IAAU,EAAJA,IACNI,OAAgB,EAAPA,IACTS,MAAc,EAANA,IACRhqC,KAAY,EAALA,IACPp8D,EAAI+1J,EAAGxwD,IAAMwwD,EAAGpwD,SAChBtjG,EAAI0zJ,EAAG35F,KAAO25F,EAAG3vD,MAChB2vD,EAAGxwD,KAAOxkG,KAAKiuF,WAAa,GAAKjuF,KAAKijG,cACjCA,QAAQgmC,cAAc+rB,EAAGxwD,UAC7Bq2C,mBAEJoa,2BAA6B,kBACvBj1J,KAAKk1J,+BAEXC,2BAA6B,SAASC,QAClC9hD,UAAU,0BAA2B8hD,SAEzCC,2BAA6B,kBACvBr1J,KAAKs1J,+BAEXC,2BAA6B,SAASH,QAClC9hD,UAAU,0BAA2B8hD,SAGzCI,kBAAoB,eACjBpG,EAAepvJ,KAAKiuG,YAAYqkD,UAChCH,EAAiBnyJ,KAAKkyJ,MAAMC,gBAC3BnyJ,KAAK88I,WAAa98I,KAAKy1J,uBACUz1J,KAAKguG,YAAchuG,KAAKy1J,eACtDz1J,KAAKiuF,UAAYmhE,EAAe+C,MACjBnyJ,KAAKiuF,UAAYkkE,OAC3Bt7C,WAAW5oB,UAAY,YAG/B4oB,WAAW44C,gBAAgBL,EAAepvJ,KAAKgyJ,aAAa/yJ,QAC5D43G,WAAWoyB,aAAajpI,KAAKiuF,UAAYjuF,KAAKgyJ,aAAaxtD,WAE/DkxD,kBAAoB,gBAChB5+C,WAAW+4C,eAAe7vJ,KAAKiuG,YAAY1gB,MAAQ,EAAIvtF,KAAKwoJ,SAAWxoJ,KAAKgyJ,aAAa1wJ,QACzFw1G,WAAWsyB,cAAcppI,KAAKkuF,WAAaluF,KAAKgyJ,aAAa32F,YAGjEs6F,SAAU,OACVnrE,OAAS,gBACLmrE,SAAU,QAGdC,SAAW,gBACPD,SAAU,QAGdnD,eAAiB,SAAStC,EAAStmB,MAChC5pI,KAAKyzJ,cACMzzJ,KAAKyzJ,cACXA,SAAW,GAEdzzJ,KAAKijG,SAAYjjG,KAAKskG,UAAU3W,cAAe3tF,KAAK21J,UAAczF,GAAYtmB,OAIhF5pI,KAAKkyJ,MAAMG,mBACNoB,UAAYvD,EACVlwJ,KAAKk7I,UAAS,GAEpBl7I,KAAKguG,iBACDyjD,WAAW5G,2BAGfl/C,QAAQ,gBAET3rG,KAAKijG,SAAWjjG,KAAKijG,QAAQykB,mBACxBzkB,QAAQykB,aAAatI,sBAAsBp/G,KAAK0qJ,kBAErDtS,EAASp4I,KAAKiuG,eACdiiD,EAAUlwJ,KAAKyyJ,aACfvC,EAAUlwJ,KAAKgzJ,aACf9C,EAAUlwJ,KAAK+yJ,aACf7C,EAAUlwJ,KAAK8yJ,cACf5C,EAAUlwJ,KAAK6yJ,eACf3C,EAAUlwJ,KAAKmzJ,gBACjB,OACanzJ,KAAKi0J,sBACZ7b,EAAOn2B,UAAYjiH,KAAKiuG,YAAYgU,UAAYm2B,EAAOqR,gBAAkBzpJ,KAAKiuG,YAAYw7C,eAAgB,KACtGoM,EAAK71J,KAAKiuF,aAAoBg0B,SAAWjiH,KAAKiuG,YAAYgU,UAAYjiH,KAAKguG,WAC3E6nD,EAAK,SACA5nE,UAAY4nE,KACG71J,KAAK6yJ,iBACd7yJ,KAAKi0J,yBAGfj0J,KAAKiuG,iBACTunD,oBACDtF,EAAUlwJ,KAAKmzJ,sBACVuC,yBACJjqD,aAAar8F,QAAQzM,MAAMmzJ,WAAc1d,EAAOtoI,OAAU,UAC1DuhJ,QAAQ1uJ,MAAMmzJ,WAAc1d,EAAOtoI,OAAU,UAC7CuhJ,QAAQ1uJ,MAAM4qF,MAAQ6qD,EAAO7qD,MAAQ,EAAIvtF,KAAKwoJ,SAAW,UACzD6I,QAAQ1uJ,MAAM41B,OAAS6/G,EAAOiQ,UAAY,QAE/C6H,EAAUlwJ,KAAKmzJ,uBACV9B,QAAQ1uJ,MAAMozJ,YAAc/1J,KAAKkuF,WAAa,UAC9C8W,SAAShZ,UAAYhsF,KAAKkuF,YAAc,EAAI,eAAiB,gCAElEgiE,EAAUlwJ,KAAKyyJ,wBACVhB,WAAWv8I,OAAOkjI,GACnBp4I,KAAKg0J,kBACAvoD,aAAav2F,OAAOkjI,QACxBmZ,YAAYr8I,OAAOkjI,QACnBuZ,aAAaz8I,OAAOkjI,QACpBvpC,aAAa35F,OAAOkjI,QACpB30C,6BACAuyD,sBAAwBh2J,KAAKw0J,uCAC7B7oD,QAAQ,kBAGbukD,EAAUlwJ,KAAK6yJ,qBACX3C,EAAUlwJ,KAAK+yJ,aAAe7C,EAAUlwJ,KAAK8yJ,kBACxCrB,WAAWv8I,OAAOkjI,QAElBqZ,WAAWlG,YAAYnT,GAE5Bp4I,KAAKg0J,kBACAvoD,aAAav2F,OAAOkjI,QACxBmZ,YAAYr8I,OAAOkjI,QACnBuZ,aAAaz8I,OAAOkjI,QACpBvpC,aAAa35F,OAAOkjI,QACpB4d,sBAAwBh2J,KAAKw0J,kCAC7B/wD,kCACAkI,QAAQ,eAIbukD,EAAUlwJ,KAAK+yJ,kBACVtB,WAAWv8I,OAAOkjI,GACnBp4I,KAAKg0J,kBACAvoD,aAAav2F,OAAOkjI,IAExB8X,EAAUlwJ,KAAK8yJ,cAChB9yJ,KAAKi2J,gBAAmB/F,EAAUlwJ,KAAK4yJ,eAAkB5yJ,KAAKg0J,mBACzDvoD,aAAav2F,OAAOkjI,IAExB8X,EAAUlwJ,KAAK+yJ,aAAe7C,EAAUlwJ,KAAK4yJ,gBAC9C5yJ,KAAKg0J,kBACAvoD,aAAav2F,OAAOkjI,GAG7B8X,EAAUlwJ,KAAK0yJ,qBACV7jD,aAAa35F,OAAOkjI,QACpB30C,6BACAuyD,sBAAwBh2J,KAAKw0J,8BAGlCtE,QAAgByC,cAAgB3yJ,KAAKkzJ,2BAChCvB,aAAaz8I,OAAOkjI,GAGzB8X,QAAgByC,cAAgB3yJ,KAAKizJ,0BAChC1B,YAAYr8I,OAAOkjI,QAGvBzsC,QAAQ,yBAvGJ8nD,UAAYvD,QA2GpBgG,UAAY,eACT39H,EAASv4B,KAAKijG,QAAQmsC,kBAAoBpvI,KAAKguG,WAC/CskD,EAAYtyJ,KAAK88I,UAAY98I,KAAKguG,WAClCmoD,EAAgBxtJ,KAAKkN,IAAIy8I,EACzB3pJ,KAAKD,UAAUq0I,WAAa,GAAK/8I,KAAKguG,WAAYz1E,IAClDv4B,KAAKgyJ,aAAa/yJ,QAAU60J,cAAgB,GAC5C9zJ,KAAK4xJ,kBACY5xJ,KAAK82G,WAAWpM,aACjC1qG,KAAKo2J,iBAAmBD,EAAgBn2J,KAAKo2J,oBAC7Bp2J,KAAKo2J,qBACrB5nD,EAAUj2E,EAAS+5H,KAEnB6D,GAAiBn2J,KAAKm2J,eACtBn2J,KAAKkyJ,MAAM35H,QAAUv4B,KAAKm2J,eAAiB3nD,GAAWxuG,KAAK6xJ,SAAU,CACjErjD,GAAWxuG,KAAK6xJ,gBACXA,SAAWrjD,OACXqI,WAAWk4C,WAAWvgD,QAG3B5sG,EAAI5B,KAAKskG,UAAUpX,iBAClBoX,UAAU3hG,MAAM41B,OAAS49H,EAAgB,UACzCtC,mBAAkB,EAAM7zJ,KAAKq2J,aAAcz0J,EAAGu0J,QAC9CA,cAAgBA,OAEhBxqD,QAAQ,mBAIhBsoD,oBAAsB,eACnBhxD,EAAUjjG,KAAKijG,QACfnqE,EAAO94B,KAAKkyJ,MAEZoE,EAAiBx9H,EAAKP,QAAU,EAAIv4B,KAAKguG,WAEzCskD,EADctyJ,KAAKijG,QAAQmsC,kBACDpvI,KAAKguG,WAE/BuoD,EAAcv2J,KAAKw2J,kBAEnBC,GAAeH,SAAwBpB,0BACvCp8H,EAAKs5H,cAAgBmE,EAAc,EAAIv2J,KAAKwoJ,SAAW,GAEvDkO,EAAiB12J,KAAK4xJ,eAAiB6E,EACvCC,SACK9E,aAAe6E,OACf3/C,WAAWi4C,WAAW0H,QAE3BE,EAAgB32J,KAAK6xJ,SACrB7xJ,KAAK88I,WAAa98I,KAAKguG,WAAa,QAC/BkoD,gBAELpmJ,EAAS9P,KAAKiuF,UAAYjuF,KAAKguG,WAC/Bq6C,EAAYvvH,EAAKq5H,eAAiBnyJ,KAAKguG,WAEvCu3C,GAAiBvlJ,KAAK88I,WAAa98I,KAAKy1J,kBAChCtD,eAAiBnyJ,KAAKguG,YAAchuG,KAAKy1J,eAC/C,KACOlQ,MAETyP,EAAKh1J,KAAKgyJ,kBACT/uD,QAAQgmC,aAAatgI,KAAKD,KAAKssJ,EAAGxwD,IACnC77F,KAAKkN,IAAI7V,KAAKiuF,UAAWqkE,EAAYx5H,EAAKq5H,eAAiB6C,EAAGpwD,eAE7D3B,QAAQmmC,cAAczgI,KAAKD,KAAKssJ,EAAG35F,KAAM1yD,KAAKkN,IAAI7V,KAAKkuF,WACxDqoE,EAAc,EAAIv2J,KAAKwoJ,SAAW1vH,EAAKs5H,cAAgB4C,EAAG3vD,aAE1DmJ,GAAW8nD,SAAwBhB,0BACnCx8H,EAAKq5H,eAAiBG,EAAY/M,EAAgB,GAAKvlJ,KAAKiuF,UAAY+mE,EAAGxwD,KAC3EoyD,EAAiBD,IAAkBnoD,EACnCooD,SACK/E,SAAWrjD,OACXqI,WAAWk4C,WAAWvgD,QAM3Bi7C,EAAgBoN,EAHhBC,EAAYnuJ,KAAK+/I,KAAKL,EAAYroJ,KAAKguG,YAAc,EACrDiU,EAAWt5G,KAAKD,IAAI,EAAGC,KAAKg/G,YAAY15B,UAAYn+E,GAAU9P,KAAKguG,aACnEkU,EAAUD,EAAW60C,EAErB9oD,EAAahuG,KAAKguG,aACX/K,EAAQ2rC,oBAAoB3sB,EAAU,OAC7C0D,EAAW1iB,EAAQ2iB,YAAY3D,GAC/B0D,MACWA,EAASh3G,MAAM03F,OAGbpD,EAAQuJ,oBAAoByV,EAAU,KACtChf,EAAQmrC,aAAansB,GAAYjU,IAExCrlG,KAAKkN,IAAIotF,EAAQ2rC,oBAAoB1sB,EAAS,GAAIjf,EAAQmJ,YAAc,KACtEtzE,EAAKq5H,eAAiBlvD,EAAQmrC,aAAalsB,GAAWlU,EAC1B6oD,IAE/B72J,KAAKiuF,UAAYw7D,EAAiBz7C,MAEvCkiD,EAAU,SACVlwJ,KAAKiuG,YAAY1gB,OAASgpE,MAChBv2J,KAAKmzJ,kBACfuD,GAAkBE,OACR52J,KAAK6zJ,mBAAkB,EAAM7zJ,KAAKqnJ,YAAavuH,EAAKy0D,MAAOz0D,EAAKP,aACrEozE,QAAQ,8BACTirD,MACc52J,KAAKw2J,yBAGtBvoD,YAAc,CACf1gB,MAAQgpE,EACRhO,QAAUvoJ,KAAKwoJ,SACfvmC,SAAAA,EACAwnC,eAAAA,EACAvnC,QAAAA,EACAlU,WAAAA,EACAE,eAAiBluG,KAAKkuG,eACtBm6C,UAAAA,EACAiK,UAAAA,EACAxiJ,OAAAA,EACA43I,aAAe15C,EAAarlG,KAAKD,IAAI,EAAGC,KAAK+/I,QAAe5vH,EAAKP,OAASO,EAAKq5H,gBAAkBnkD,IAAe,EAChHz1E,OAASv4B,KAAKkyJ,MAAMC,gBAGjBjC,QAGN+F,aAAe,cACXj2J,KAAKuzJ,mBACNtxC,EAAWjiH,KAAKuzJ,cAActxC,SAC9BC,EAAUliH,KAAKuzJ,cAAcrxC,aAC5BqxC,cAAgB,SAEjBtlD,EAAcjuG,KAAKiuG,iBAEnBgU,EAAWhU,EAAYiU,QAAU,GACjCA,EAAUjU,EAAYgU,iBACtBC,IAAYlsG,EAAAA,GACRhW,KAAKg0J,kBACAvoD,aAAav2F,OAAO+4F,aACxBwjD,WAAWv8I,OAAO+4F,UAGtBwjD,WAAWjV,YAAYvuC,EAAagU,EAAUC,IAC5C,UAGNs0C,gBAAkB,eACfO,EAAY/2J,KAAKijG,QAAQqmC,wBACzBtpI,KAAKu9G,iBAAmBv9G,KAAKijG,QAAQ2b,kBACxB,GAEVj2G,KAAKD,IAAI1I,KAAKkyJ,MAAME,cAAgB,EAAIpyJ,KAAKwoJ,SAAU7/I,KAAKg/G,MAAMovC,EAAY/2J,KAAKkuG,uBAEzFqvC,mBAAqB,gBACjBoU,aAAazI,WAAWlpJ,KAAKijG,QAAQqkC,YAAW,SAChDirB,MAAM7zD,SAAS1+F,KAAKkzJ,2BAExB1V,kBAAoB,gBAChB+T,YAAYrI,WAAWlpJ,KAAKijG,QAAQqkC,mBACpCirB,MAAM7zD,SAAS1+F,KAAKizJ,0BAExBvsB,oBAAsB,SAASrgC,EAAKra,QAChCyf,aAAai7B,oBAAoBrgC,EAAKra,SAE1C26C,uBAAyB,SAAStgC,EAAKra,QACnCyf,aAAak7B,uBAAuBtgC,EAAKra,SAE7CyxD,kBAAoB,SAASj2B,QACzB+qC,MAAM7zD,SAAS1+F,KAAK4yJ,qBAExBlrB,eAAiB,SAASC,QACtBl8B,aAAai8B,eAAeC,QAC5B4qB,MAAM7zD,SAAS1+F,KAAK4yJ,qBAExBrW,aAAe,gBACXgW,MAAM7zD,SAAS1+F,KAAK0yJ,qBAExBtW,WAAa,gBACTvtC,aAAautC,mBAEjBF,WAAa,gBACTrtC,aAAaqtC,mBAGjB7D,wBAA0B,SAASn1F,EAAQ6/D,EAAMjzG,QAC7Cg4F,qBAAqB5kD,EAAQpzC,QAC7Bg4F,qBAAqBib,EAAMjzG,SAE/Bg4F,qBAAuB,SAAS1B,EAAQt2F,EAAQknJ,MACf,IAA9Bh3J,KAAKkyJ,MAAMC,oBAGX3mG,EAAMxrD,KAAK6uG,aAAaw/C,iBAAiBjoD,GAEzC/qC,EAAO7P,EAAI6P,KACXmpC,EAAMh5C,EAAIg5C,IAEVyyD,EAAYD,GAAeA,EAAYxyD,KAAO,EAC9C0yD,EAAeF,GAAeA,EAAYpyD,QAAU,EAEpD3W,EAAYjuF,KAAK+xJ,iBAAmB/xJ,KAAKijG,QAAQimC,eAAiBlpI,KAAKiuF,UAEvEA,EAAYgpE,EAAYzyD,GACpB10F,GAAUm+E,EAAYgpE,EAAYzyD,EAAMxkG,KAAKguG,gBACtCl+F,EAAS9P,KAAKkyJ,MAAMC,gBACnB,IAAR3tD,OACOxkG,KAAKgyJ,aAAaxtD,UACxBvB,QAAQgmC,aAAazkC,IACnBvW,EAAYjuF,KAAKkyJ,MAAMC,eAAiB+E,EAAe1yD,EAAMxkG,KAAKguG,aACrEl+F,GAAUm+E,EAAYjuF,KAAKkyJ,MAAMC,eAAiB+E,EAAe1yD,EAAOxkG,KAAKguG,gBACtEl+F,EAAS9P,KAAKkyJ,MAAMC,qBAC1BlvD,QAAQgmC,aAAazkC,EAAMxkG,KAAKguG,WAAahuG,KAAKkyJ,MAAMC,qBAG7DjkE,EAAaluF,KAAKkuF,WAElBA,EAAa7yB,GACTA,EAAOr7D,KAAKwoJ,SAAW,EAAIxoJ,KAAKiuG,YAAYC,oBACpCluG,KAAKgyJ,aAAa32F,WACzB4nC,QAAQmmC,cAAc/tE,IACpB6yB,EAAaluF,KAAKkyJ,MAAME,cAAgB/2F,EAAOr7D,KAAKkuG,oBACtDjL,QAAQmmC,cAAczgI,KAAKg/G,MAAMtsD,EAAOr7D,KAAKkuG,eAAiBluG,KAAKkyJ,MAAME,gBACvElkE,GAAcluF,KAAKwoJ,UAAYntF,EAAO6yB,EAAaluF,KAAKkuG,qBAC1DjL,QAAQmmC,cAAc,UAG9BF,aAAe,kBACTlpI,KAAKijG,QAAQimC,qBAEnBG,cAAgB,kBACVrpI,KAAKijG,QAAQomC,sBAEnBwY,gBAAkB,kBACZ7hJ,KAAKiuF,UAAYjuF,KAAKguG,iBAE5B4zC,mBAAqB,kBACfj5I,KAAKD,IAAI,EAAGC,KAAK2zB,YAAY2xD,UAAYjuF,KAAKkyJ,MAAMC,gBAAkBnyJ,KAAKguG,YAAc,SAE/F+zC,YAAc,SAAS17C,QACnBpD,QAAQgmC,aAAa5iC,EAAMrmG,KAAKguG,kBAGpCm0C,YAAc,SAAS/7C,EAAQ+wD,GACX,iBAAV/wD,MACE,CAACC,IAAKD,EAAQG,OAAQ,QAE/B/6C,EAAMxrD,KAAK6uG,aAAaw/C,iBAAiBjoD,GACzC9kG,EAAItB,KAAKkyJ,MAAMC,eAAiBnyJ,KAAKguG,WACrCl+F,EAAS07C,EAAIg5C,IAAMljG,MAAkB,eAEpC2hG,QAAQgmC,aAAan5H,GACnBA,QAGNsnJ,MAAQ,OACRC,WAAa,SAASC,EAAWC,OAC9B15J,EAAI,EACJO,EAAI4B,KAAKo3J,MACTI,EAAQ,GAERlkG,EAAQ,SAAS90D,EAAGi5J,EAAOC,UACpBA,QAAWj3F,IAAIjiE,EAAI,EAAG,GAAK,GAAKi5J,OAGtC55J,EAAI,EAAGA,EAAIO,IAAKP,IACXiB,KAAKw0D,EAAKz1D,EAAImC,KAAKo3J,MAAOE,EAAWC,EAAUD,WAElDE,QAENxV,aAAe,SAASvkC,EAAMwkC,EAAQC,EAAS/8D,OAE5Cr1E,EADM9P,KAAK6uG,aAAaw/C,iBAAiB,CAAChoD,IAAKoX,EAAMlX,OAAQ,IAChD/B,IACby9C,OACUjiJ,KAAKkyJ,MAAMC,eAAiB,OAEtCwF,EAAgB33J,KAAKiuF,eACpBgV,QAAQgmC,aAAan5H,IACV,IAAZoyI,QACK5J,iBAAiBqf,EAAexyE,SAGxCmzD,iBAAmB,SAASgf,EAAWnyE,OACpCoyE,EAAUv3J,KAAKiuF,aACdjuF,KAAKq0J,qBAENv1D,EAAQ9+F,QAERs3J,GAAaC,MAGbv3J,KAAK+xJ,iBAAkB,KACnB6F,EAAW53J,KAAK+xJ,iBAAiByF,SACjCI,EAAS/4J,WACG+4J,EAAS,KACJL,aAKrBC,EAAQ14D,EAAMu4D,WAAWC,EAAWC,QACnCxF,iBAAmB,CAACrgJ,KAAM4lJ,EAAWvwI,GAAIwwI,EAASC,MAAAA,iBAEzCx3J,KAAK63J,UAEb50D,QAAQgmC,aAAauuB,EAAMnnJ,WAC3B4yF,QAAQ+lC,WAAauuB,OACtBM,OAAS9oD,aAAY,WAClByoD,EAAM34J,UACAokG,QAAQgmC,aAAauuB,EAAMnnJ,WAC3B4yF,QAAQ+lC,WAAauuB,GACT,MAAXA,KACDt0D,QAAQ+lC,gBACR/lC,QAAQgmC,aAAasuB,KACjB,SAEJM,OAASC,cAAch5D,EAAM+4D,UAC7B9F,iBAAmB,QACb5sE,OAEjB,YAEFu3D,UAAY,SAASzuD,GAClBjuF,KAAKiuF,YAAcA,SACdskE,MAAM7zD,SAAS1+F,KAAK6yJ,oBACpB5kE,UAAYA,SAGpB0uD,UAAY,SAASzuD,GAClBluF,KAAKkuF,aAAeA,SACfA,WAAaA,QACjBqkE,MAAM7zD,SAAS1+F,KAAKmzJ,uBAExB4E,SAAW,SAASn0J,EAAGqB,QACnBg+F,QAAQgmC,aAAahkI,QACrBg+F,QAAQmmC,cAAcnkI,SAE1B2kG,SAAW,SAAShP,EAAQC,MACnB76F,KAAKijG,QAAQgmC,aAAajpI,KAAKijG,QAAQimC,eAAiBruC,MACxD76F,KAAKijG,QAAQmmC,cAAcppI,KAAKijG,QAAQomC,gBAAkBzuC,SAEnE8O,eAAiB,SAAS9O,EAAQC,UAC/BA,EAAS,GAAK76F,KAAKijG,QAAQimC,gBAAkB,EAAIlpI,KAAKgyJ,aAAaxtD,MAEnE3J,EAAS,GAAK76F,KAAKijG,QAAQimC,eAAiBlpI,KAAKkyJ,MAAMC,eACrDnyJ,KAAKiuG,YAAYqkD,aAAiBtyJ,KAAKgyJ,aAAaptD,SAEtDhK,EAAS,GAAK56F,KAAKijG,QAAQomC,iBAAmB,EAAIrpI,KAAKgyJ,aAAa32F,OAEpEu/B,EAAS,GAAK56F,KAAKijG,QAAQomC,gBAAkBrpI,KAAKkyJ,MAAME,cACtDpyJ,KAAKiuG,YAAY1gB,SAAavtF,KAAKgyJ,aAAa3sD,uBAIrDiH,yBAA2B,SAAS1oG,EAAGqB,OACpC+yJ,EAAYh4J,KAAKglG,SAAST,wBAE1BnkF,EAAUxc,EAAI5D,KAAKkuF,WAAa8pE,EAAU38F,KAAOr7D,KAAKwoJ,SACtD14I,EAASsQ,EAAUpgB,KAAKkuG,eACxB7H,EAAM19F,KAAK2zB,SAAWt8B,KAAKiuF,UAAY+pE,EAAUxzD,KAAOxkG,KAAKguG,YAC7D+R,EAAMp3G,KAAKg/G,MAAM73G,SAEd,CAACu2F,IAAAA,EAAUE,OAAQwZ,EAAK+e,KAAMhvH,EAASiwG,EAAM,EAAI,KAAQ3/F,QAAAA,SAG/DinF,wBAA0B,SAASzjG,EAAGqB,OACnC+yJ,EAAYh4J,KAAKglG,SAAST,wBAC1BnkF,EAAUxc,EAAI5D,KAAKkuF,WAAa8pE,EAAU38F,KAAOr7D,KAAKwoJ,SAEtDzoC,EAAMp3G,KAAKg/G,MAAMvnG,EAAUpgB,KAAKkuG,gBAEhC7H,KAAWrmG,KAAKiuF,UAAY+pE,EAAUxzD,KAAOxkG,KAAKguG,kBAE/ChuG,KAAKijG,QAAQojB,yBAAyBhgB,EAAK19F,KAAKD,IAAIq3G,EAAK,GAAI3/F,SAEnE63I,wBAA0B,SAAS5xD,EAAKE,OACrCyxD,EAAYh4J,KAAKglG,SAAST,wBAC1B/4C,EAAMxrD,KAAKijG,QAAQuf,yBAAyBnc,EAAKE,GAEjD3iG,EAAI5D,KAAKwoJ,eAAiBvlD,QAAQykB,aAAa5J,UAAUtyD,EAAI66C,IAAKA,GAC/DrmG,KAAKijG,QAAQykB,aAAa5H,WAAWt0D,EAAI+6C,QACzC59F,KAAKg/G,MAAMn8D,EAAI+6C,OAASvmG,KAAKkuG,iBAEhCjpG,EAAIumD,EAAI66C,IAAMrmG,KAAKguG,iBAEhB,CACHkqD,MAAOF,EAAU38F,KAAOz3D,EAAI5D,KAAKkuF,WACjCiqE,MAAOH,EAAUxzD,IAAMv/F,EAAIjF,KAAKiuF,iBAGnCkuD,eAAiB,aACdlwD,YAAYjsF,KAAKskG,UAAW,mBAE/B+3C,cAAgB,aACbnwD,eAAelsF,KAAKskG,UAAW,mBAElC48C,gBAAkB,SAASl/H,GACvBhiB,KAAK80J,oBACDA,aAAe,CAChBsD,qBAAsBp4J,KAAKwjG,sBAC3B5gG,QAAS5C,KAAKm3I,SAASx0I,MAAMC,eAGhC4gG,uBAAwB,IACzBvX,YAAYjsF,KAAKm3I,SAAU,wBAC1BA,SAASx0I,MAAMC,QAAU,QACzB6gG,8BAEJ09C,mBAAqB,SAASpuH,QAC1B0wE,8BAEJ29C,gBAAkB,WACdphJ,KAAK80J,iBAGN5oE,eAAelsF,KAAKm3I,SAAU,wBAC7B3zC,sBAAwBxjG,KAAK80J,aAAasD,0BAC1CjhB,SAASx0I,MAAMC,QAAU5C,KAAK80J,aAAalyJ,aAC3CkyJ,aAAe,YAEnB3Z,SAAW,SAASC,EAAOl6C,OACxBpC,EAAQ9+F,aACPq4J,SAAWjd,IACVhpC,eAAe,cAAc,CAACgpC,MAAAA,IAE/BA,GAAyB,iBAATA,IAIPA,OAJ0B,KAChC31D,EAAa21D,GAASp7I,KAAKyzG,SAAS2nC,MAAMnnC,eACvC8B,WAAW,CAAC,QAAStwB,GAAaywB,cAK1BtwB,MACXkZ,EAAMu5D,UAAYjd,SACXl6C,GAAMA,QACZtb,IAAWA,EAAO0yE,eACb,IAAIhgG,MAAM,wBAA0B8iF,EAAQ,+BAClDxuD,gBACAhH,EAAOhjF,QACPgjF,EAAO0yE,SACPx5D,EAAMwF,UAAU6Q,eAGhBrW,EAAMs8C,SACFlvD,eAAe4S,EAAMwF,UAAWxF,EAAMs8C,MAAMkd,cAEhD/P,EAAU,YAAa3iE,EAASA,EAAO2iE,QACrC,cAAoBnN,OAAS,IAAM,EAAIt8C,EAAM0pD,SAC/C1pD,EAAM0pD,UAAYD,GAAWzpD,EAAM0pD,YAC7BS,WAAWV,KACfgQ,OAAS3yE,EAAO0yE,WAEhBld,MAAQx1D,IACVqG,YAAY6S,EAAMwF,UAAW1e,EAAO0yE,YACpCjsE,YAAYyS,EAAMwF,UAAW,WAAY1e,EAAO4yE,QAChD15D,EAAMozD,UACAA,MAAM3kE,MAAQ,IACdmmE,sBAGJthD,eAAe,cAAe,CAACgpC,MAAMx1D,OACrCsb,WAGTm6C,SAAW,kBACLr7I,KAAKq4J,eAEX5wD,SAAW,SAAS9kG,EAAO2pF,KACxBD,YAAYrsF,KAAKskG,UAAW3hG,GAAmB,IAAZ2pF,SAEtCgc,WAAa,SAAS3lG,KACnBupF,eAAelsF,KAAKskG,UAAW3hG,SAGlCotG,eAAiB,SAASptG,GACvB3C,KAAKglG,SAASriG,MAAMyjG,QAAUzjG,SACzBqiG,SAASriG,MAAMyjG,OAASzjG,SAEhC81J,eAAiB,SAASxnD,QACtBjM,SAASriG,MAAMyjG,OAAS6K,QAE5BpG,QAAU,gBACN4mD,WAAW5mD,eACXgE,aAAahE,aAGvBnlG,KAAK0rJ,EAAgBrtJ,aAGjBiwG,cAAco9C,EAAgBrtJ,UAAW,WAAY,CACxD4gJ,eAAgB,CAAC1wC,cAAc,GAC/BsJ,eAAgB,CACZptG,IAAK,SAAS/N,GACNpC,KAAKyxJ,WAAW/xC,kBAAkBt9G,SAC7BmwJ,MAAM7zD,SAAS1+F,KAAK+yJ,cAEjC9+C,cAAc,GAElBmrC,gBAAiB,CACbjvI,IAAK,gBAAkBkjJ,sBACvBp/C,cAAc,GAElB2wC,kBAAmB,CACfz0I,IAAK,gBAAkBkjJ,sBACvBp/C,aAAc,IAElB4wC,YAAa,CACT10I,IAAK,SAASjH,GACQ,iBAAPA,SACFkrJ,mBAAqBlrJ,QACzBirJ,mBAAqBjrJ,OACrBmqJ,sBAETnjJ,IAAK,kBACMlQ,KAAKm0J,kBAAoBn0J,KAAKo0J,qBAG7CnP,WAAY,CACR90I,IAAK,SAASq6F,QACLiC,QAAQ9pG,MAAM0iB,QAAUmlF,EAAO,QAAU,YACzC+nD,MAAM7zD,SAAS1+F,KAAKyyJ,kBACpBnB,kBAETr9C,cAAc,GAElB6wC,gBAAiB,CACb30I,IAAK,SAASq6F,KACNne,YAAYrsF,KAAKysG,QAAS,wBAAyBjC,IAE3DyJ,cAAc,GAElB8wC,gBAAiB,CACb50I,IAAK,SAASq6F,QAAYiB,aAAai0C,mBAAmBl1C,IAC1DyJ,cAAc,GAElB+wC,gBAAiB,CACb70I,IAAK,SAASq6F,QACLiB,aAAam9C,mBAAmBp+C,QAChC+nD,MAAM7zD,SAAS1+F,KAAK4yJ,gBAE7B3+C,cAAc,GAElBixC,oBAAqB,CACjB/0I,IAAK,SAASq6F,GACNxqG,KAAKyxJ,WAAWxS,uBAAuBz0C,SAClC+nD,MAAM7zD,SAAS1+F,KAAK+yJ,cAEjC9+C,cAAc,GAElBywC,oBAAqB,CACjBv0I,IAAK,SAASquI,OACLx+I,KAAKy0J,iCACDA,qBAAuBx1D,EAAI15F,cAAc,YACzCkvJ,qBAAqBzoE,UAAY,mCACjCygB,QAAQnqG,YAAYtC,KAAKy0J,2BAI7BA,qBAAqB9xJ,MAAM0iB,QAAUm5H,EAAkB,GAAK,OAC7Dx+I,KAAK6uG,aAAa60C,gBACb8Q,8BAEbvgD,cAAc,EACd7xG,OAAO,GAEXoiJ,wBAAyB,CACrBr0I,IAAK,SAASjH,GACLlJ,KAAKk1J,0BAA6Bl1J,KAAK4xJ,mBACnCW,MAAM7zD,SAAS1+F,KAAK6yJ,gBAEjC5+C,cAAc,GAElBwwC,wBAAyB,CACrBt0I,IAAK,SAASjH,GACLlJ,KAAKs1J,0BAA6Bt1J,KAAK6xJ,eACnCU,MAAM7zD,SAAS1+F,KAAK6yJ,gBAEjC5+C,cAAc,GAElBkxC,SAAW,CACPh1I,IAAK,SAAS2oB,GACS,iBAARA,OACO,WACbwrE,UAAU3hG,MAAMwiJ,SAAWrsH,OAC3B06H,kBAETv/C,aAAc,IAElBmxC,WAAY,CACRj1I,IAAK,SAASrK,QACLw+F,UAAU3hG,MAAMyiJ,WAAat/I,OAC7B0tJ,mBAGbnO,SAAU,CACNl1I,IAAK,SAASjH,QACL2xI,eAGbyK,SAAU,CACNn1I,IAAK,SAASjH,QACL2xI,eAGb6d,eAAgB,CACZvoJ,IAAK,SAASjH,QACL2xI,cAET5mC,aAAc,GAElBsxC,cAAe,CACXp1I,IAAK,SAASjH,MACHA,GAAO,EACVlJ,KAAKy1J,gBAAkBvsJ,SAEtBusJ,eAAiBvsJ,OACjBqpJ,MAAM7zD,SAAS1+F,KAAK6yJ,iBAE7B5+C,aAAc,EACdL,YAAY,GAEhB4xC,iBAAkB,CACdr1I,IAAK,SAASjH,QACLuiG,aAAa68C,cAAgBp/I,OAC7BqpJ,MAAM7zD,SAAS1+F,KAAK4yJ,iBAGjCxX,MAAO,CACHjrI,IAAK,SAASjH,QAAYiyI,SAASjyI,IACnCgH,IAAK,kBAAoBlQ,KAAKq4J,UAAYr4J,KAAKo7I,OAC/CnnC,aAAc,mBACdL,YAAY,OAIZw9C,gBAAkBA,KAG1BtrE,IAAID,OAAO,2BAA2B,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,wBAAwB,eAAe,SAASP,EAAU/wE,EAAS+f,OAG/Ji7D,EAAMjK,EAAS,cACfivB,EAAMjvB,EAAS,cACf6sB,EAAe7sB,EAAS,wBAAwB6sB,aAChDv8F,EAAS0vE,EAAS,wBAcAqzE,EAAWriI,OACzBsiI,WAbaD,EAAWriI,OACxB8+E,EAAS9+E,EAAIy2E,IAAwBwH,EAAIrC,WAAWymD,cAE7C,IAAIE,KAAK,CAACzjD,GAAS,CAACl2G,KAAQ,iCAC9BgC,OAED43J,EAAc,IADAvvG,OAAOwvG,aAAexvG,OAAOyvG,mBAAqBzvG,OAAO0vG,yBAE/DlnH,OAAOqjE,GACZ0jD,EAAYI,QAAQ,2BAKpBC,CAAYR,EAAWriI,GAE9B8iI,GADM7vG,OAAO+5B,KAAO/5B,OAAO8vG,WACbC,gBAAgBV,UAC3B,IAAIW,OAAOH,OAGlBI,EAAe,SAASC,EAAoBnjI,EAAKojI,EAAWf,EAAWgB,WAClEC,gBAAkB55J,KAAK45J,gBAAgBlyJ,KAAK1H,WAC5C65J,eAAiB75J,KAAK65J,eAAenyJ,KAAK1H,WAC1C85J,UAAY95J,KAAK85J,UAAUpyJ,KAAK1H,MACjCslF,EAASy0E,YAAcz0E,EAAS00E,UACvBA,MAAQ10E,EAASy0E,WAE1BnkJ,EAAO1F,IAAI,cAAgBo1E,EAAS00E,QACxBrB,GAAa/iJ,EAAO4/F,UAAUl/E,EAAI7iB,GAAI,cAC/C,KACCwmJ,EAAgBj6J,KAAKk6J,iBACbvB,GAAasB,EAAc30E,EAAS00E,MAAM,uBAAwB,KAAM,UAEhFG,EAAO,KACQx1J,SAAQ,SAASqgF,KAC3BA,GAAMi1E,EAAc30E,EAAS00E,MAAMh1E,EAAI,KAAM,KAAKliF,QAAQ,kBAAmB,aAIrFo4H,QAAUhF,EAAayiC,EAAWriI,GACnCqjI,QACK7nD,KAAK,gBAAiB6nD,QAE1Bz+B,QAAQt+B,YAAY,CACrByZ,MAAO,EACP8jD,KAAAA,EACA7lI,OAASgC,EAAI7iB,GACbimJ,UAAAA,SAGCU,WAAa,OACbC,UAAY,QAEZn/B,QAAQo/B,UAAYt6J,KAAK85J,YAGjC,aAEOxqE,UAAUtvF,KAAMmyG,QAEf2nD,UAAY,SAAS54J,OAClBmuD,EAAMnuD,EAAEuE,YACJ4pD,EAAInwD,UACH,aACIysG,QAAQt8C,EAAIvpD,KAAM,CAACL,KAAM4pD,EAAI5pD,iBAEjC,WACG0/E,EAAWnlF,KAAKq6J,UAAUhrG,EAAI57C,IAC9B0xE,MACS91B,EAAI5pD,aACNzF,KAAKq6J,UAAUhrG,EAAI57C,eAG7B,aACI6gG,YAAYjlD,EAAI5pD,gBAEpB,aACMouG,SAAWA,QAAQhgG,KAAOggG,QAAQhgG,IAAI6X,MAAMmoF,QAASxkD,EAAI5pD,aAKvE6uG,YAAc,SAASimD,UACjB1mD,SAAWA,QAAQrjG,OAASqjG,QAAQrjG,MAAM+pJ,SAGhDL,eAAiB,SAAS1wJ,UACpB+qG,EAAIrC,WAAW1oG,SAGrBs/H,UAAY,gBACRn9B,QAAQ,YAAa,SACrB6uD,WAAa,UACbt/B,QAAQ4N,iBACR5N,QAAU,KACXl7H,KAAKkmJ,WACAA,KAAKjzC,IAAI,SAAUjzG,KAAK65J,qBAC5B3T,KAAO,WAGXp0C,KAAO,SAAS1hB,EAAKp7E,QACjBkmH,QAAQt+B,YAAY,CAACzM,QAASC,EAAKp7E,KAAAA,UAGvCtP,KAAO,SAAS0qF,EAAKp7E,EAAMmwE,MACxBA,EAAU,KACN1xE,EAAKzT,KAAKo6J,kBACTC,UAAU5mJ,GAAM0xE,IAChBrmF,KAAK2U,QAETq+F,KAAK1hB,EAAKp7E,SAGdylJ,KAAO,SAASj3J,EAAOiC,YAEfy1H,QAAQt+B,YAAY,CAACp5F,MAAAA,EAAciC,KAAM,CAACA,KAAMA,EAAKA,cAExDi1J,WACMlqJ,MAAMkqJ,EAAGvwC,cAIpBwwC,iBAAmB,SAAShvE,GACzB3rF,KAAKkmJ,WACApd,iBAEJod,KAAOv6D,OACPjmF,KAAK,WAAY,CAACimF,EAAIgtC,eACvB/0B,GAAG,SAAU5jG,KAAK65J,sBAGrBA,eAAiB,SAASrxI,GACtBxoB,KAAKw6J,kBACDA,WAAa,cACPx6J,KAAK45J,gBAAiB,IAEjB,UAAhBpxI,EAAMkL,YACD8mI,WAAW17J,KAAK0pB,EAAM7Z,MAAO6Z,EAAM21F,YAEnCq8C,WAAW17J,KAAK0pB,EAAM7Z,MAAO6Z,EAAMtZ,WAG3C0qJ,gBAAkB,eACfhjG,EAAI52D,KAAKw6J,WACR5jG,SACA4jG,WAAa,KACd5jG,EAAE/3D,OAAS,IAAM+3D,EAAE/3D,OAASmB,KAAKkmJ,KAAK95C,aAAe,OAChD1mG,KAAK,WAAY,CAAC1F,KAAKkmJ,KAAKvtB,kBAE5B8hC,KAAK,SAAU,CAACh1J,KAAMmxD,QAGpClxD,KAAK8zJ,EAAaz1J,eAGjB62J,EAAiB,SAASnB,EAAoBnjI,EAAKojI,QAC9CE,gBAAkB55J,KAAK45J,gBAAgBlyJ,KAAK1H,WAC5C65J,eAAiB75J,KAAK65J,eAAenyJ,KAAK1H,WAC1Co6J,WAAa,OACbC,UAAY,QACZQ,cAAgB,OAEjBC,EAAO,KACPC,GAAW,EACXC,EAAS7uJ,OAAOC,OAAO+lG,GACvBrT,EAAQ9+F,UAEPk7H,QAAU,QACVA,QAAQ4N,UAAY,kBACpB5N,QAAQt+B,YAAc,SAAS17F,KAC1B25J,cAAc/7J,KAAKoC,GACrB45J,IACIC,aACWE,cAKlBC,YAAc,SAAShyJ,KAAkBA,OAE1C+xJ,EAAc,eACV5rG,EAAMyvC,EAAM+7D,cAAcxqJ,QAC1Bg/C,EAAI8gC,UACC9gC,EAAI8gC,SAASzkE,MAAMovI,EAAMzrG,EAAIr6C,MAC7Bq6C,EAAI7rD,SACFmoG,QAAQt8C,EAAI7rD,MAAO6rD,EAAI5pD,SAG/Bm3F,YAAc,SAASvtC,KACpByqG,UAAU,CAACr0J,KAAM4pD,OAEpB81B,SAAW,SAAS1/E,EAAM20J,QACxBx9D,YAAY,CAAC19F,KAAM,OAAQuU,GAAI2mJ,EAAY30J,KAAAA,OAE7Cg1J,KAAO,SAAS30J,EAAML,QACpBm3F,YAAY,CAAC19F,KAAM,QAAS4G,KAAAA,EAAYL,KAAAA,OAG1CswG,WAAW,CAAC,SAAUz/E,IAAM,SAAS6kI,SACjC,IAAIA,EAAKzB,GAAWsB,GACpBl8D,EAAM+7D,cAAch8J,kBAKpBkF,UAAYy1J,EAAaz1J,YAEhC62J,eAAiBA,IACjBpB,aAAeA,IACftjC,aAAeA,KAKvBpwC,IAAID,OAAO,kBAAkB,CAAC,UAAU,UAAU,SAAS,YAAY,wBAAwB,gBAAgB,SAASP,EAAU/wE,EAAS+f,OAGvIxU,EAAQwlE,EAAS,WAAWxlE,MAC5BqyF,EAAe7sB,EAAS,uBAAuB6sB,aAC/C5iB,EAAMjK,EAAS,aAEf81E,EAAc,SAASn4D,EAASpkG,EAAQ2sD,EAAK6vG,EAAQC,EAAWC,OAC5Dz8D,EAAQ9+F,UACPnB,OAASA,OACTokG,QAAUA,OACVtX,IAAMsX,EAAQ6f,mBACdw4C,UAAYA,OACZC,YAAcA,OACdC,UAAYx7J,KAAKy7J,SAAS/zJ,KAAK1H,WAC/B2rF,IAAIiY,GAAG,SAAU5jG,KAAKw7J,gBACtBE,QAAUL,OAEV1hB,gBAAkB,uBACR,aACDc,0BAITluC,KAAO/gD,MACRmwG,EAAY14D,EAAQoiC,iBAAiBghB,YAAcpjD,EAAQoiC,iBAAiBu2B,YAAc,CAAC/8J,gBAC1Fg9J,gBAAkBF,EAAU98J,YAC5Bi9J,UAEG96D,UAAU4C,GAAG,eAAgB5jG,KAAK25I,mBAG7C,aAEOrqD,UAAUtvF,KAAMmyG,QACf2pD,MAAQ,eACLh9D,EAAQ9+F,KACR2rF,EAAM3rF,KAAK2rF,IACXsX,EAAUjjG,KAAKijG,aAEd84D,gBAAkB94D,EAAQjC,UAAUknB,SACrCjlB,EAAQjC,UAAUiG,qBACVjG,UAAUunB,qBAEjB/8D,IAAMmgC,EAAIs3B,aAAajjH,KAAKusG,KAAKlG,IAAKrmG,KAAKusG,KAAKhG,YACjD/6C,EAAMxrD,KAAKwrD,MACXosE,cAAe,IACfle,WACA0tB,SAAWnkC,EAAQ0L,UAAU,IAAI7uF,EAAM0rC,EAAI66C,IAAK76C,EAAI+6C,OAAQ/6C,EAAI66C,IAAK76C,EAAI+6C,OAASvmG,KAAKnB,QAASmB,KAAKs7J,UAAW,MAAM,QACrHD,OAAS,QACTK,QAAQ/2J,SAAQ,SAASiL,OACtBszC,EAASyoC,EAAIs3B,aAAarzG,EAAMy2F,IAAKz2F,EAAM22F,UACxCqxB,cAAe,IACfle,WACD2hD,OAAOv8J,KAAKokD,QAEdunF,eAAc,SAErBuxB,iBAAmB,eAChBh8J,KAAKi8J,kBACLh5D,EAAUjjG,KAAKijG,QACfnE,EAAQ9+F,UACPi8J,cAAe,OACfZ,OAAO12J,SAAQ,SAASu+C,KAClBkkF,SAAWnkC,EAAQ0L,UAAU,IAAI7uF,EAAMojC,EAAOmjD,IAAKnjD,EAAOqjD,OAAQrjD,EAAOmjD,IAAKnjD,EAAOqjD,OAAOzH,EAAMjgG,QAASigG,EAAMy8D,YAAa,MAAM,aAG9IW,iBAAmB,cACfl8J,KAAKi8J,mBACLA,cAAe,UACXp+J,EAAI,EAAGA,EAAImC,KAAKq7J,OAAOx8J,OAAQhB,SAC/BolG,QAAQiM,aAAalvG,KAAKq7J,OAAOx9J,GAAGupI,iBAG5Cq0B,SAAW,SAASjzI,MACjBxoB,KAAKmgI,iBACEngI,KAAKm8J,cAAc3zI,OAE1BmpB,EAAQnpB,KACRmpB,EAAMhjC,MAAM03F,MAAQ10D,EAAMziC,IAAIm3F,KAC9B10D,EAAMhjC,MAAM03F,MAAQrmG,KAAKwrD,IAAI66C,UAC5B85B,WAAY,MACbi8B,EAA8B,WAAjB5zI,EAAMkL,OAAsBie,EAAMziC,IAAIq3F,OAAS50D,EAAMhjC,MAAM43F,OAAS50D,EAAMhjC,MAAM43F,OAAS50D,EAAMziC,IAAIq3F,OAChH81D,EAAc1qH,EAAMhjC,MAAM43F,QAAUvmG,KAAKwrD,IAAI+6C,QAAU50D,EAAMhjC,MAAM43F,QAAUvmG,KAAKwrD,IAAI+6C,OAASvmG,KAAKnB,OAAS,EAC7Gy9J,EAAoB3qH,EAAMhjC,MAAM43F,OAASvmG,KAAKwrD,IAAI+6C,eAEjD41D,cAAc3zI,GAEf6zI,SACKx9J,QAAUu9J,GAEfC,IAAgBr8J,KAAKijG,QAAQ6hC,aACR,WAAjBt8G,EAAMkL,eACG71B,EAAImC,KAAKq7J,OAAOx8J,OAAS,EAAGhB,GAAK,EAAGA,IAAK,KAE1C0+J,EAAS,CAACl2D,KADVm2D,EAAWx8J,KAAKq7J,OAAOx9J,IACCwoG,IAAKE,OAAQi2D,EAASj2D,OAAS+1D,QACtD3wE,IAAI8sC,kBAAkB8jC,EAAQ/zI,EAAM21F,eAErB,WAAjB31F,EAAMkL,WACJ71B,EAAImC,KAAKq7J,OAAOx8J,OAAS,EAAGhB,GAAK,EAAGA,IAAK,KAC1C2+J,EACAD,EAAS,CAACl2D,KADVm2D,EAAWx8J,KAAKq7J,OAAOx9J,IACCwoG,IAAKE,OAAQi2D,EAASj2D,OAAS+1D,QACtD3wE,IAAItD,OAAO,IAAIvoE,EAAMy8I,EAAOl2D,IAAKk2D,EAAOh2D,OAAQg2D,EAAOl2D,IAAKk2D,EAAOh2D,OAAS61D,SAKxFj8B,WAAY,OACZs8B,uBAGJN,cAAgB,SAAS3zI,QACrBgjC,IAAIj/C,SAASic,WACT3qB,EAAImC,KAAKq7J,OAAOx8J,OAAQhB,UACxBw9J,OAAOx9J,GAAG0O,SAASic,QACvBi0I,sBAGJA,cAAgB,eACbz8J,KAAKmgI,eAELrhC,EAAQ9+F,KACRijG,EAAUjjG,KAAKijG,QACfy5D,EAAe,SAASlxG,EAAKwgC,KACrBkjB,aAAa1jD,EAAI47E,YACrBA,SAAWnkC,EAAQ0L,UAAU,IAAI7uF,EAAM0rC,EAAI66C,IAAK76C,EAAI+6C,OAAQ/6C,EAAI66C,IAAK76C,EAAI+6C,OAAOzH,EAAMjgG,QAASmtF,EAAW,MAAM,MAE3GhsF,KAAKwrD,IAAKxrD,KAAKs7J,mBACnBz9J,EAAImC,KAAKq7J,OAAOx8J,OAAQhB,OAChBmC,KAAKq7J,OAAOx9J,GAAImC,KAAKu7J,oBAGrC9gB,eAAiB,SAASj3I,OACvBxD,KAAKmgI,WAAcngI,KAAKijG,aACxBz3C,EAAMxrD,KAAKijG,QAAQjC,UAAUsiB,YAC7B93D,EAAI66C,MAAQrmG,KAAKwrD,IAAI66C,KAAO76C,EAAI+6C,QAAUvmG,KAAKwrD,IAAI+6C,QAAU/6C,EAAI+6C,QAAUvmG,KAAKwrD,IAAI+6C,OAASvmG,KAAKnB,aAC7Fm9J,wBACA/3D,MAAM,cAAezgG,UAErB04J,wBACAj4D,MAAM,cAAezgG,WAG7Bk2G,OAAS,gBACLzW,QAAQiM,aAAalvG,KAAKwrD,KAAOxrD,KAAKwrD,IAAI47E,eAC1C80B,wBACAvwE,IAAItoF,oBAAoB,SAAUrD,KAAKw7J,gBACvCv4D,QAAQjC,UAAU39F,oBAAoB,eAAgBrD,KAAK25I,sBAC3D12C,QAAQwnC,eAAc,QACtBxnC,QAAU,WAEdxE,OAAS,mBACNz+F,KAAK67J,yBAELt2B,EAAcvlI,KAAKijG,QAAQoiC,iBAC3Bs3B,KAA6BtW,YAAc9gB,EAAYq2B,YAAY/8J,OAASmB,KAAK67J,gBAC5Eh+J,EAAI,EAAGA,EAAI8+J,EAAe9+J,MACnBilG,MAAK,GAEjB9iG,KAAK+7J,sBACA94D,QAAQjC,UAAUqnB,SAASroH,KAAK+7J,qBAE9Cr2J,KAAK01J,EAAYr3J,aAGZq3J,YAAcA,KAGtBt1E,IAAID,OAAO,iCAAiC,CAAC,UAAU,UAAU,SAAS,gBAAgB,sBAAsB,SAASP,EAAU/wE,EAAS+f,OAExI9wB,EAAQ8hF,EAAS,gBACjBqT,EAAYrT,EAAS,+BACJs9B,EAAIrhH,UACdqhH,EAAGvc,KAAO9kG,EAAG8kG,KAAOuc,EAAGrc,QAAUhlG,EAAGglG,SA2KvCZ,qBAxKazkG,OACbslG,EAAKtlG,EAAEgjG,SACPlU,EAAMwW,EAAGx7F,OACTqF,EAAQm2F,EAAGv7F,SACX8kF,EAAOyW,EAAG17F,QACV8xJ,EAAQ17J,EAAEgoG,cACVh+F,EAAShK,EAAEq4F,eAEXxJ,GAAQ4I,EAAUzB,UACTsP,EAAGt7F,QAEZhK,EAAEukG,OAAOwB,mBAA+B,GAAV/7F,IAC5Bu6F,OAAOV,UAAUf,cAAc9iG,EAAEgjG,kBAIlCnU,GAASC,GAAQ4sE,MAMP,IAAX1xJ,OAoBA2xJ,EAjBAp3D,EAASvkG,EAAEukG,OACXzE,EAAYyE,EAAOzE,UACnB87D,EAAgBr3D,EAAOwB,kBACvBz7C,EAAMtqD,EAAEwlG,sBACRN,EAASpF,EAAUsiB,YACnB7c,EAAcvlG,EAAEulG,eAAkBzF,EAAUL,WAAao8D,EAAYvxG,EAAK46C,GAE1E42D,EAAS97J,EAAEiB,EAAG86J,EAAS/7J,EAAEe,EAMzBghG,EAAUwC,EAAOxC,QACjBi6D,EAAez3D,EAAOlC,SAAS+I,yBAAyB0wD,EAAQC,GAChEE,EAAeD,KAGfz3D,EAAO2xC,cAAcgmB,iBACjBrtE,GAAQC,GAAO4sE,GAAS5sE,IACR3/E,EAAQ,QAAU,MAC7B2/E,GAAOyV,EAAO43D,wBACH,iBAEhBT,IAAU5sE,QACM,OACX8sE,GAAiBzsJ,cAEf2/E,GAAOyV,EAAO43D,wBACL,YAIpBR,GAAiBlkE,EAAUzB,OAASsP,EAAG17F,WAChCssI,cAAcx/B,oBAGJ,OAAjBilD,EAAwB,KACnBC,GAAiBr2D,aAGjBq2D,EAAe,KACZnrH,EAAQqvD,EAAU0N,oBACf4uD,mBAAmB3rH,OAG1B4rH,EAAWv8D,EAAUsnB,UAAU4V,aAAa1yE,KAGzCs7C,oBACA82C,wBAAyB,EAE5BvtI,MACW,OACH2wF,EAAUonB,OAAO,IAAMz2E,IACxB6rH,sBAAsB7rH,MAE1B8gE,KAAK,WAAW,eACfgrD,EAASz8D,EAAU0N,kBAEnB6uD,GAAYE,EAAO98D,WAAao8D,EAAYQ,EAASn3D,OAAQq3D,EAAOr3D,UAC1D43B,eAAey/B,EAAOr3D,SAE5B/1F,IACU2tH,eAAersF,EAAMy0D,QACxBz0D,MACA6rH,sBAAsB7rH,KACnB62E,SAAS72E,MAEb62E,SAASi1C,MAEhB32D,oBACA82C,wBAAyB,aAGZ,SAAjBif,EAA0B,KAG7BlnC,IAFF9rB,SACK+zC,wBAAyB,MAE5B8f,EAAU,KAqBP52D,kBACHg2D,IAAkBF,IACRr0C,iBACFu0C,GAAiBF,MACV57D,EAAU0N,oBAClB4uD,mBAAmB3nC,IAG1BtlH,IACe4yF,EAAQuf,yBAAyBxhB,EAAU+hB,QAEhDhc,eAAev7C,KACtBs7C,oBAEQ,CAACT,OAASE,eAmBrBo3D,EArDc,eACVC,EAAYn4D,EAAOlC,SAAS+I,yBAAyB0wD,EAAQC,GAC7DY,EAAS56D,EAAQojB,yBAAyBu3C,EAAUv3D,IAAKu3D,EAAUr3D,OAAQq3D,EAAUx9I,SAErF28I,EAAYI,EAAcS,IAAcb,EAAYc,EAAQ78D,EAAU+hB,UAE3D66C,IAER92D,oBACA9F,UAAU+F,eAAe82D,KACzBt6D,SAASuE,yBAETg2D,uBAAuBJ,KACpB18D,EAAU+8D,sBAAsBZ,EAAcD,GACpDz3D,EAAO2xC,cAAc5xC,iBAAqC,GAAlBk4D,EAAQ7+J,QAAe6+J,EAAQ,GAAG/8D,cAClE,GAAK8E,EAAO2xC,cAAc5xC,gBAAgBznF,WAC9CpZ,QAAQ8gG,EAAO63D,mBAAoB73D,KACpCu4D,2BACAl3D,sBAqCLrN,QAAQgM,EAAOnB,WA/HF,SAAS1/B,KACnBA,EAAEs1B,UACFt1B,EAAEu1B,WA0Ge,SAASv1B,iBACjBsoC,KACP4wD,uBAAuBJ,GACzBA,EAAQ7+J,WACC,CAACmiG,EAAU0N,sBAClB5H,kBACH6uB,MACO6nC,sBAAsB7nC,KACnBpN,cAAcoN,YAEnB93H,EAAI,EAAGA,EAAI6/J,EAAQ7+J,OAAQhB,MACtB2qH,SAASk1C,EAAQ7/J,MACxB+/I,wBAAyB,IACzBxG,cAAc5xC,gBAAkB,OAChCsB,yBAMPoG,EAAU6B,aAAY,iBAAqC,WAExD7tG,EAAEqK,wBAlJM,IAAXL,GAAgBhK,EAAEukG,OAAOwB,qBACvBxB,OAAOqxC,0BA0JrBhxD,IAAID,OAAO,qCAAqC,CAAC,UAAU,UAAU,SAAS,8BAA8B,SAASP,EAAU/wE,EAAS+f,KAChIyiH,gBAAkB,CAAC,CACvBjxI,KAAM,iBACNqH,KAAM,SAASs4F,KAAiBw4D,qBAChCvsB,QAAS,CAAC50C,IAAK,cAAe82C,IAAK,eACnCG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,iBACNqH,KAAM,SAASs4F,KAAiBw4D,gBAAgB,IAChDvsB,QAAS,CAAC50C,IAAK,gBAAiB82C,IAAK,iBACrCG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,4BACNqH,KAAM,SAASs4F,KAAiBw4D,oBAAoB,IACpDvsB,QAAS,CAAC50C,IAAK,oBAAqB82C,IAAK,qBACzCG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,4BACNqH,KAAM,SAASs4F,KAAiBw4D,gBAAgB,GAAG,IACnDvsB,QAAS,CAAC50C,IAAK,sBAAuB82C,IAAK,uBAC3CG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACNqH,KAAM,SAASs4F,KAAiBy4D,gBAChCxsB,QAAS,CAAC50C,IAAK,gBAAiB82C,IAAK,iBACrCG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,kBACNqH,KAAM,SAASs4F,KAAiBy4D,WAAW,IAC3CxsB,QAAS,CAAC50C,IAAK,iBAAkB82C,IAAK,kBACtCG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,mBACNqH,KAAM,SAASs4F,KAAiBy4D,eAAe,IAC/CxsB,QAAS,CAAC50C,IAAK,sBAAuB82C,IAAK,uBAC3CG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,kBACNqH,KAAM,SAASs4F,KAAiBy4D,WAAW,GAAG,IAC9CxsB,QAAS,CAAC50C,IAAK,uBAAwB82C,IAAK,wBAC5CG,eAAgB,SAChBhwC,UAAU,GACX,CACCj+F,KAAM,iBACNqH,KAAM,SAASs4F,KAAiBopB,YAAYsvC,kBAC5CzsB,QAAS,CAAC50C,IAAK,aAAc82C,IAAK,cAClC7vC,UAAU,GACX,CACCj+F,KAAM,eACNqH,KAAM,SAASs4F,KAAiB24D,gBAChC1sB,QAAS,CAAC50C,IAAK,aAAc82C,IAAK,cAClCG,eAAgB,UACjB,CACCjuI,KAAM,UACNqH,KAAM,SAASs4F,KAAiB6qC,WAChCoB,QAAS,CAAC50C,IAAK,aAAc82C,IAAK,cAClCG,eAAgB,SAChBhwC,UAAU,MAENs6D,oBAAsB,CAAC,CAC3Bv4J,KAAM,kBACN4rI,QAAS,MACTvkI,KAAM,SAASs4F,KAAiBqxC,uBAChC/C,eAAgB,SAChBhwC,UAAU,EACVovC,YAAa,SAAS1tC,UAAgBA,GAAUA,EAAOwB,yBAGvDwqC,EAAcnsD,EAAS,4BAA4BmsD,cAC/CoH,gBAAkB,IAAIpH,EAAYl9H,EAAQ8pJ,wBAIlDv4E,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,iBAAiB,YAAY,gBAAgB,iCAAiC,gBAAgB,eAAe,qCAAqC,aAAa,mBAAmB,aAAa,eAAe,SAASP,EAAU/wE,EAAS+f,OAElSopG,EAAYp4C,EAAS,gBAAgBo4C,UACrC59G,EAAQwlE,EAAS,WAAWxlE,MAC5B+iG,EAAYv9B,EAAS,eAAeu9B,UACpCld,EAAcrgB,EAAS,gCAAgCqgB,YACvDniG,EAAQ8hF,EAAS,eACjB4Z,EAAO5Z,EAAS,cAChB4zB,EAAW5zB,EAAS,sCAChB4zB,SAAWA,EAAS69B,gBAAgBpgI,OAAOuiG,EAASmlD,yBAExDl0J,EAAS,IAAI2lI,EADJxqD,EAAS,YAAYwqD,YAS9BlM,EAAct+C,EAAS,kBAAkBs+C,aAC5C,gBACQ06B,oBAAsB,kBAChBt+J,KAAKuuJ,qBAEjB7oJ,KAAKk+H,EAAY7/H,WACnB,gBACQqkH,OAAS,UACTE,UAAY,UACZE,SAAW,SAAS72E,EAAO4sH,MACvB5sH,OAGA3xC,KAAKinG,mBAAyC,IAApBjnG,KAAKmoH,WAAkB,KAC9Co1C,EAAWv9J,KAAK0uG,0BACf4Z,UAAUp0G,IAAIqpJ,QACdj1C,UAAUp0G,IAAIy9B,GACiB,GAAhC3xC,KAAKsoH,UAAUF,OAAOvpH,mBACjBypH,UAAU8V,YACRmgC,GAAsBv+J,KAAKmvG,kBAAkBx9D,QAEnD22E,UAAU8V,iBACV9V,UAAUp0G,IAAIqpJ,QACdiB,YAAYjB,GAGhB5rH,EAAMy0D,WACDA,OAASz0D,EAAMziC,SAErBk5E,EAAUpoF,KAAKsoH,UAAUp0G,IAAIy9B,eAE5B6sH,YAAY7sH,GAEby2C,EAAQvpF,aACH4/J,eAAer2E,GAEpBpoF,KAAKmoH,WAAa,IAAMnoH,KAAKinG,yBACxB0E,QAAQ,oBACR1E,mBAAoB,OACpBhE,QAAQihC,aAAc,OACtB5b,UAAU7O,OAAOz5G,KAAKijG,UAGxBs7D,GAAsBv+J,KAAKmvG,kBAAkBx9D,UAGnD42E,cAAgB,SAAS52E,KAClBA,GAAS3xC,KAAKooH,OAAO,OACzBhgC,EAAUpoF,KAAKsoH,UAAU8V,YACzBh2C,EAAQvpF,aACH4/J,eAAer2E,MAEfpoF,KAAKmvG,kBAAkBx9D,SAE/BqsF,eAAiB,SAASxyE,OACvB48B,EAAUpoF,KAAKsoH,UAAU0V,eAAexyE,MACxC48B,cACKq2E,eAAer2E,GACbA,EAAQ,SAGlBs2E,uBAAyB,eACtBt2E,EAAUpoF,KAAKsoH,UAAUyC,QACzB3iC,EAAQvpF,YACH4/J,eAAer2E,GAChBpoF,KAAKooH,OAAO,SACXjZ,kBAAkBnvG,KAAKooH,OAAO,UAGtCo2C,YAAc,SAAS7sH,QACnBw2E,WAAanoH,KAAKsoH,UAAUF,OAAOvpH,YACnCupH,OAAO4C,QAAQr5E,QACfg6D,QAAQ,WAAY,CAACh6D,MAAAA,UAGzB8sH,eAAiB,SAASr2E,WACtB+/B,WAAanoH,KAAKsoH,UAAUF,OAAOvpH,OACjB,GAAnBmB,KAAKmoH,YAAmBnoH,KAAKinG,kBAAmB,KAC5C03D,EAAY3+J,KAAKsoH,UAAUF,OAAOt5G,QAC9BhQ,KAAK6/J,QACRx2C,WAAa,UAGbtqH,EAAIuqF,EAAQvpF,OAAQhB,KAAO,KAC5B0L,EAAQvJ,KAAKooH,OAAOjoH,QAAQioF,EAAQvqF,SACnCuqH,OAAOjhH,OAAOoC,EAAO,QAGzBoiG,QAAQ,cAAe,CAACyc,OAAQhgC,IAEb,IAApBpoF,KAAKmoH,YAAoBnoH,KAAKinG,yBACzBA,mBAAoB,OACpB0E,QAAQ,qBACR1I,QAAQihC,aAAc,OACtB5b,UAAU5O,OAAO15G,KAAKijG,aAGnB07D,GAAa3+J,KAAKooH,OAAO,MACnBu2C,EAAUz9C,QAAQlhH,KAAKgjG,kBAChCmM,kBAAkBwvD,SAE1BC,eAAiB,WACd5+J,KAAKsoH,iBAGJA,UAAY,IAAIoV,OAChBtV,OAAS,QACTD,WAAa,SAEjBisB,aAAe,kBACTp0I,KAAKmoH,WAAanoH,KAAKsoH,UAAUF,OAAOzxG,SAAW,CAAC3W,KAAKgjG,kBAG/Dm7D,eAAiB,cACdn+J,KAAKmoH,WAAa,EAAG,KACjBC,EAASpoH,KAAKsoH,UAAUF,OACxBu2C,EAAYv2C,EAAOA,EAAOvpH,OAAS,GACnC8yC,EAAQ7xB,EAAMqiG,WAAWiG,EAAO,GAAGz5G,MAAOgwJ,EAAUzvJ,UAEnDq5G,qBACAxnB,kBAAkBpvD,EAAOgtH,EAAUv4D,QAAUu4D,EAAUhwJ,WACzD,CACCgjC,EAAQ3xC,KAAKgjG,eACb6gB,EAAc7jH,KAAK6jH,cACnB/C,EAAWnvE,EAAMhjC,MAAM03F,IACvB2a,EAASrvE,EAAMziC,IAAIm3F,OACnBya,GAAYE,EAAQ,IAChB6C,MACIl1G,EAAQgjC,EAAMziC,IAAKA,EAAMyiC,EAAMhjC,WAE/BA,EAAQgjC,EAAMhjC,MAAOO,EAAMyiC,EAAMziC,gBAEpCs5G,SAAS1oG,EAAMqiG,WAAWjzG,EAAKA,cAC/Bs5G,SAAS1oG,EAAMqiG,WAAWxzG,EAAOA,QAItC+uJ,EAAU,GACVh/J,EAAIsB,KAAKipG,aAAa6X,GAAU,KAClCnyG,MAAM43F,OAAS50D,EAAMhjC,MAAM43F,SACrBznG,KAAKJ,WAEJb,EAAIijH,EAAW,EAAGjjH,EAAImjH,EAAQnjH,MAC3BiB,KAAKkB,KAAKipG,aAAaprG,GAAG,OAElCmC,KAAKipG,aAAa+X,GAAQ,IAC5B9xG,IAAIq3F,OAAS50D,EAAMziC,IAAIq3F,SACjBznG,KAAKJ,KAELiG,QAAQ3E,KAAKwoH,SAAUxoH,aAGlC6+J,qBAAuB,cACpB7+J,KAAKmoH,WAAa,EAAG,KACjBC,EAASpoH,KAAKsoH,UAAUF,OACxBu2C,EAAYv2C,EAAOA,EAAOvpH,OAAS,GACnC8yC,EAAQ7xB,EAAMqiG,WAAWiG,EAAO,GAAGz5G,MAAOgwJ,EAAUzvJ,UAEnDq5G,qBACAxnB,kBAAkBpvD,EAAOgtH,EAAUv4D,QAAUu4D,EAAUhwJ,WACzD,KACCy3F,EAASpmG,KAAKijG,QAAQuf,yBAAyBxiH,KAAKgjH,eACpD9/D,EAASljD,KAAKijG,QAAQuf,yBAAyBxiH,KAAKkjH,iBAE1CljH,KAAK+9J,sBAAsB33D,EAAQljD,GACzCv+C,QAAQ3E,KAAKwoH,SAAUxoH,aAGlC+9J,sBAAwB,SAASZ,EAAcD,EAAc4B,OAC1DpB,EAAU,GAEVqB,EAAa5B,EAAa52D,OAAS22D,EAAa32D,UAChDw4D,MACIh+C,EAAco8C,EAAa52D,OAC3B0a,EAAYi8C,EAAa32D,OACzBy4D,EAAe7B,EAAa/8I,QAC5B6+I,EAAa/B,EAAa98I,aAE1B2gG,EAAcm8C,EAAa32D,OAC3B0a,EAAYk8C,EAAa52D,OACzBy4D,EAAe9B,EAAa98I,QAC5B6+I,EAAa9B,EAAa/8I,YAmfrBwiG,EAAIrhH,EAhfb29J,EAAa/B,EAAa92D,IAAM62D,EAAa72D,OAC7C64D,MACIp+C,EAAWq8C,EAAa92D,IACxB2a,EAASk8C,EAAa72D,SAEtBya,EAAWo8C,EAAa72D,IACxB2a,EAASm8C,EAAa92D,IAG1B0a,EAAc,MACA,GACdD,EAAW,MACA,GAEXA,GAAYE,OACQ,WAEf3a,EAAMya,EAAUza,GAAO2a,EAAQ3a,IAAO,KACvC10D,EAAQ7xB,EAAMqiG,WACdniH,KAAKijG,QAAQojB,yBAAyBhgB,EAAK0a,EAAai+C,GACxDh/J,KAAKijG,QAAQojB,yBAAyBhgB,EAAK4a,EAAWg+C,OAEtDttH,EAAMgvD,UAAW,IACbw+D,IAydCv8C,EAzdqBjxE,EAAMziC,IAydvB3N,EAzd4B49J,EA0d1Cv8C,EAAGvc,KAAO9kG,EAAG8kG,KAAOuc,EAAGrc,QAAUhlG,EAAGglG,kBAxd3B44D,EAASxtH,EAAMziC,MAEjBk3F,OAAS24D,EAAaptH,EAAMhjC,MAAQgjC,EAAMziC,MACxCpQ,KAAK6yC,MAGbutH,KACQ5hE,WAEPwhE,EAAmB,SAChB5vJ,EAAMwuJ,EAAQ7+J,OAAS,EACpB6+J,EAAQxuJ,GAAKyxF,WAAazxF,EAAM,UAEnCA,EAAM,UACFP,EAAQ,EACL+uJ,EAAQ/uJ,GAAOgyF,uBAGjB9iG,EAAIqR,EAAKrR,GAAK8Q,EAAO9Q,IACtB6/J,EAAQ7/J,GAAG8iG,aACHx5F,OAAOtJ,EAAG,UAIvB6/J,IAEZh4J,KAAKm9G,EAAU9+G,eACdizI,EAAS1xD,EAAS,YAAY0xD,kBAkebvxC,GACbA,EAAO25D,gCAEJZ,YAAc/4D,EAAO+4D,YAAY92J,KAAK+9F,KACtCg5D,eAAiBh5D,EAAOg5D,eAAe/2J,KAAK+9F,KAC5C45D,eAAiB55D,EAAO45D,eAAe33J,KAAK+9F,KAC5C65D,gBAAkB75D,EAAO65D,gBAAgB53J,KAAK+9F,KAC9C25D,4BAA8B7qJ,EAAQgrJ,gBAAgB73J,KAAK+9F,KAC3D+5D,wBAA0B/5D,EAAO+5D,wBAAwB93J,KAAK+9F,KAE9D25D,4BAA4B35D,KAC5B7B,GAAG,gBAAiB6B,EAAO25D,+BAE3Bx7D,GAAG,YAAa+B,KAChBuT,SAASq4B,YAAYr4B,EAAS69B,0BAKVtxC,OACvB1Z,EAAK0Z,EAAOV,UAAUlB,aACtB47D,GAAY,aAeDv+J,GACPu+J,MACOl8D,SAASk1D,eAAe,OACnB,KAjBd3/D,YAAY/M,EAAI,WAAW,SAAS7qF,OAClCw+J,EAAuB,IAAbx+J,EAAEy1F,aAAqB7rF,SAAW5J,EAAE+J,UAAY/J,EAAE6J,SAC5D06F,EAAO43D,qBAAuBqC,EACzBD,MACMl8D,SAASk1D,eAAe,gBACnB,GAETgH,YAKT3mE,YAAY/M,EAAI,QAASv4E,KACzBslF,YAAY/M,EAAI,OAAQv4E,IAnBRiyF,KAjfzB,gBACQu4D,uBAAyB,gBACrBz6D,SAASg5C,oBACTh5C,SAASi6C,0BAEb8f,mBAAqB,SAAS31D,GAC1BA,EAAcvB,WACDA,OAASuB,EAAcz4F,SAErCvM,EAAQ3C,KAAK4uG,6BACHs4B,OAASlnI,KAAKijG,QAAQ0L,UAAUhH,EAAe,gBAAiBhlG,QAEzEsgG,QAAQsrD,kBAAkBzvJ,KAAK6oG,QAC/B1E,QAAQ08D,qBAAuB3/J,KAAKijG,QAAQsrD,kBAAkB1vJ,OAC5D8oG,QAEN61D,sBAAwB,SAAS7rH,MAC7BA,EAAMu1F,aAENjkC,QAAQiM,aAAav9D,EAAMu1F,YAC5B39H,EAAQvJ,KAAKijG,QAAQsrD,kBAAkBpuJ,QAAQwxC,OAC/CpoC,QACK05F,QAAQsrD,kBAAkBpnJ,OAAOoC,EAAO,QAC5C05F,QAAQ08D,qBAAuB3/J,KAAKijG,QAAQsrD,kBAAkB1vJ,cAGlEi/J,uBAAyB,SAAS11C,WAC/Bw3C,EAAa5/J,KAAKijG,QAAQsrD,kBACrB1wJ,EAAIuqH,EAAOvpH,OAAQhB,KAAO,KAC3B8zC,EAAQy2E,EAAOvqH,MACd8zC,EAAMu1F,aAENjkC,QAAQiM,aAAav9D,EAAMu1F,YAC5B39H,EAAQq2J,EAAWz/J,QAAQwxC,OAC3BpoC,KACWpC,OAAOoC,EAAO,SAE5B05F,QAAQ08D,qBAAuBC,EAAW/gK,aAG9C2/J,YAAc,SAASt9J,QACnBo8J,mBAAmBp8J,EAAEywC,YACrB4xD,SAASg5C,oBACTh5C,SAASi6C,0BAGbihB,eAAiB,SAASv9J,QACtB48J,uBAAuB58J,EAAEknH,aACzB7kB,SAASg5C,oBACTh5C,SAASi6C,0BAGb6hB,eAAiB,SAASn+J,GACvBlB,KAAKinG,yBAEJA,mBAAoB,OAEpBQ,SAAS,wBACT4vC,WAAW/9B,mBAAmBJ,EAAS2/B,sBACvC3/B,SAASxT,kBAAkB,OAAQ1lG,KAAK6/J,yBAExCt8D,SAASg5C,oBACTh5C,SAASi6C,2BAGb8hB,gBAAkB,SAASp+J,GACxBlB,KAAKijG,QAAQ4rB,YAAYixC,qBAExB74D,mBAAoB,OAEpBqB,WAAW,wBACX+uC,WAAWj+B,sBAAsBF,EAAS2/B,sBAE1C3/B,SAASnG,qBAAqB,OAAQ/yG,KAAK6/J,yBAC3Ct8D,SAASg5C,oBACTh5C,SAASi6C,yBACTv5C,MAAM,0BAGV47D,mBAAqB,SAAS3+J,OAC3BivF,EAAUjvF,EAAEivF,QACZsV,EAASvkG,EAAEukG,UACVA,EAAOopB,gBAEP1+B,EAAQgkD,kBAI2B,WAA7BhkD,EAAQgkD,oBACN1uC,EAAOs6D,iBAAiB5vE,EAASjvF,EAAE8T,MACR,eAA7Bm7E,EAAQgkD,oBACN1uC,EAAOs6D,iBAAiB5vE,EAASjvF,EAAE8T,MAAM,GACd,UAA7Bm7E,EAAQgkD,qBACR2C,wBACE3mD,EAAQhjF,KAAKs4F,EAAQvkG,EAAE8T,MAAQ,OAE/Bm7E,EAAQgkD,kBAAkB1uC,EAAQvkG,EAAE8T,MAAQ,QAZzB,KACxB8c,EAASq+D,EAAQhjF,KAAKs4F,EAAQvkG,EAAE8T,MAAQ,MACrC65G,YAAYrG,SAAS/iB,EAAOopB,YAAYngB,qBACxCmgB,YAAY6vC,gCAWhB5sI,SAENiuI,iBAAmB,SAAS3vE,EAAKp7E,EAAM/C,OACpCjS,KAAK49I,4BAQL9rH,EANAkuI,EAAY/tJ,GAAWA,EAAQ+tJ,UAC/BC,EAAsB,GAAXhuJ,GAAmBA,GAAWA,EAAQguJ,SACjDh9D,EAAUjjG,KAAKijG,QACfjC,EAAYhhG,KAAKghG,UACjBsnB,EAAYtnB,EAAUsnB,UACtBF,KAAsBpnB,EAAYsnB,GAAWF,WAG5CA,EAAOvpH,cACDuxF,EAAIjjF,KAAOijF,EAAIjjF,KAAKnN,KAAMgV,GAAQ,IAAMo7E,EAAIpwF,KAAMgV,GAAQ,QAEjE7M,EAAM64F,EAAUsR,iBACVA,eAAiB,OAEvBmrD,EAAS,IAAI56C,EAAU5f,QACtB26C,wBAAyB,UACrB//I,EAAIuqH,EAAOvpH,OAAQhB,KAAM,IAC1BoiK,OACOpiK,EAAI,GAAKuqH,EAAOvqH,GAAG8Q,MAAM03F,KAAO+hB,EAAOvqH,EAAI,GAAGqR,IAAIm3F,WAGtD8I,kBAAkBiZ,EAAOvqH,MACzByL,MAAQzL,OACVmjG,UAAYiC,EAAQjC,UAAYy8D,MACjCyC,EAAY9vE,EAAIjjF,KAAOijF,EAAIjjF,KAAKnN,KAAMgV,GAAQ,IAAMo7E,EAAIpwF,KAAMgV,GAAQ,IACrE8c,QAAwB,IAAdouI,MACFA,KACNxxD,gBAAgB0Z,EAAOvqH,MAE3B67G,cAEF1Y,UAAYiC,EAAQjC,UAAYA,OAChC48C,wBAAyB,IACpBtrC,eAAiBnqG,IACjBu2J,6BAENyB,EAAOngK,KAAKujG,SAASwuD,6BACpBtX,sBACAG,oBACDulB,GAAQA,EAAKzuJ,MAAQyuJ,EAAKp5I,SACrBw8E,SAAS+0C,iBAAiB6nB,EAAKzuJ,MAEjCogB,SAENglH,oBAAsB,WAClB92I,KAAKinG,oBAAqBjnG,KAAK49I,6BAE/B/uB,YAAYtG,sBAGhBo1B,gBAAkB,eACf5qH,EAAO,MACP/yB,KAAKinG,oBAAsBjnG,KAAK49I,uBAAwB,SACpDx1B,EAASpoH,KAAK6uH,YAAYvG,UAAUF,OACpCtkE,EAAM,GACDjmD,EAAI,EAAGA,EAAIuqH,EAAOvpH,OAAQhB,MAC3BiB,KAAKkB,KAAKijG,QAAQ2M,aAAawY,EAAOvqH,SAE1CuiK,EAAKpgK,KAAKijG,QAAQ6f,cAAc+V,yBAC7B/0E,EAAIt7C,KAAK43J,IACPvhK,WAAeA,OAAS,GAAKuhK,EAAGvhK,WAC9B,SACHmB,KAAKghG,UAAUL,cAChB3gG,KAAKijG,QAAQ2M,aAAa5vG,KAAK6mG,6BAEnC9zE,QAGNysI,wBAA0B,SAASt+J,EAAGgiD,MACnCljD,KAAKinG,oBAAsBjnG,KAAK49I,uBAAwB,KACpDjsG,EAAQ3xC,KAAK6uH,YAAYzG,OAAO,MAChCpoH,KAAK6uH,YAAYluB,WAAaz9C,GAAUljD,KAAK6uH,YAAY3rE,kBAEzDsI,EAAMtI,GAAUljD,KAAK6uH,YAAY3rE,OAC/BvR,EAAMy0D,QAAUz0D,EAAMhjC,MAAQgjC,EAAMziC,IAAMyiC,EAAMhjC,MAChDgjC,EAAMy0D,OACR56C,EAAI66C,KAAOnjD,EAAOmjD,KACfrmG,KAAKijG,QAAQ00B,wBAAwBnsE,EAAI66C,IAAK76C,EAAI+6C,QAAQA,QAAUrjD,EAAOqjD,aACzEsoB,YAAYtG,cAAcvoH,KAAK6uH,YAAYngB,0BAGvD4hC,QAAU,SAASC,EAAQt+H,EAASouJ,SAC3BpuJ,GAAW,IACbs+H,OAASA,GAAUt+H,EAAQs+H,OACb,MAAlBt+H,EAAQs+H,OAAqB,KACzB5+F,EAAQ3xC,KAAKghG,UAAUL,UACrB3gG,KAAKghG,UAAU8H,eACf9oG,KAAKghG,UAAUgC,aACbutC,OAASvwI,KAAKijG,QAAQ2M,aAAaj+D,QAE1C2lG,QAAQnnI,IAAI8B,OAEbm2G,EAASpoH,KAAKs3I,QAAQhH,QAAQtwI,KAAKijG,aAClCmlB,EAAOvpH,cACD,OAENioG,iBAAmB,MACpB9F,EAAYhhG,KAAK6uH,YAEhBwxC,KACS93C,cAAcH,EAAO,YAE1BvqH,EAAIuqH,EAAOvpH,OAAQhB,OACd2qH,SAASJ,EAAOvqH,IAAI,UAC9B8zC,GAASqvD,EAAUsnB,UAAU4V,aAAavsF,EAAMhjC,UACtC65G,SAAS72E,GAAO,QAEzBm1D,iBAAmB,EAEjBshB,EAAOvpH,aAEbo/J,gBAAkB,SAAShkD,EAAKqmD,OAC7B3uH,EAAQ3xC,KAAKghG,UAAU0N,kBACvBmV,EAAclyE,EAAMy0D,QAAUz0D,EAAMziC,IAEpCqxJ,EAAavgK,KAAKijG,QAAQuf,yBAAyB7wE,EAAMy0D,QACzDpmG,KAAKghG,UAAUqiB,mBACJ9c,OAASvmG,KAAKghG,UAAUqiB,oBAe/B0/B,EAbJhgC,EAAO/iH,KAAKijG,QAAQojB,yBAAyBk6C,EAAWl6D,IAAM4T,EAAKsmD,EAAWh6D,WAE7E50D,EAAMgvD,UAIHz9C,EAAS6/D,WAHTm6C,EAAel9J,KAAKijG,QAAQuf,yBAAyBqB,EAAclyE,EAAMziC,IAAMyiC,EAAMhjC,OACrFu0C,EAASljD,KAAKijG,QAAQojB,yBAAyB62C,EAAa72D,IAAM4T,EAAKijD,EAAa32D,QAKxFsd,GACIk/B,EAAWjjI,EAAMqiG,WAAWY,EAAM7/D,IAC7BkjD,OAAS28C,EAASp0I,OAEvBo0I,EAAWjjI,EAAMqiG,WAAWj/D,EAAQ6/D,IAC/B3c,OAAS28C,EAAS7zI,SAGtB84G,cAAgBu4C,EAAWh6D,OAC/BvmG,KAAKghG,UAAUiG,sBAGZq5D,MACIE,EAAW7uH,EAAMy0D,iBAHpBpF,UAAUwnB,SAAS72E,QAMvBqvD,UAAUwnB,SAASu6B,GACpByd,QACKx/D,UAAUg9B,eAAewiC,SAEjChqB,oBAAsB,SAASv8B,WAC5BhX,EAAUjjG,KAAKijG,QACf29C,EAAM39C,EAAQ4rB,YACdtZ,EAAMqrC,EAAIx4B,OAELvqH,EAAI03G,EAAI12G,OAAQhB,KAAO,KACxB8zC,EAAQ4jE,EAAI13G,IACN8iG,UAAW,KACbqa,EAAM/X,EAAQ6F,aAAan3D,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,UACtD53F,MAAM03F,IAAM2U,EAAIrsG,MAAM03F,MACtB13F,MAAM43F,OAASyU,EAAIrsG,MAAM43F,SACzBr3F,IAAIm3F,IAAM2U,EAAI9rG,IAAIm3F,MAClBn3F,IAAIq3F,OAASyU,EAAI9rG,IAAIq3F,UAG/Bm4D,6BAEA3+F,EAAQ,OACHliE,EAAI03G,EAAI12G,OAAQhB,KAAO,KACxB8zC,EAAQ4jE,EAAI13G,KACVmtH,QAAQ/nB,EAAQ2M,aAAaj+D,IAGnCsoE,EAAM,IACA+Q,QAAQjrD,EAAMjxD,SAEdhQ,KAAKihE,EAAM1vD,aAEZxS,EAAI03G,EAAI12G,OAAQhB,KAAO,CAExBm9G,GADArpE,EAAQ4jE,EAAI13G,IACAkgB,UACRjb,QAAQ6uC,EAAOouB,EAAMliE,MACvB8Q,MAAM03F,IAAM2U,EAAIrsG,MAAM03F,MACtB13F,MAAM43F,OAASyU,EAAIrsG,MAAM43F,cAGlC23D,WAAa,SAASjkD,EAAKqmD,EAAMG,OAC9Bx9D,EAAUjjG,KAAKijG,QAGftxD,EAFMsxD,EAAQ4rB,YAEFngB,sBACZ/8D,EAAMgvD,eACEsC,EAAQ6F,aAAan3D,EAAMhjC,MAAM03F,IAAK10D,EAAMhjC,MAAM43F,SACpDH,WAAS6T,EAAYtoE,EAAMhjC,MAAQgjC,EAAMziC,SAC1C2/G,YAAYrG,SAAS72E,IACtB8uH,QAGJlwB,EAASttC,EAAQ2M,aAAaj+D,GAE9BoxG,WAhiBE9/C,EAASstC,EAAQt2B,YACpBxG,SAAS/iD,MAAO,IAChB+iD,SAAS88B,OAASA,IAClB98B,SAAS29B,cAAYn3B,EACrB9vG,EAAO4lI,KAAK9sC,GA4hBA8sC,CAAK9sC,EAASstC,EAAQt2B,GACjC8oC,MACS38C,WAAS6T,EAAY8oC,EAASp0I,MAAQo0I,EAAS7zI,SACnD43F,iBAAmB,OACnB7D,QAAQs9B,OAAOwiB,QACfl0B,YAAYrG,SAASu6B,QACrBj8C,iBAAmB,OACnBvD,SAASuE,qBAAqB,KAAM,KAEzCw4D,QACKzxC,YAAYmP,eAAersF,EAAMy0D,eAEzCg4D,aAAe,eACZn7D,EAAUjjG,KAAKijG,QACf29C,EAAM39C,EAAQ4rB,YACdzG,EAASw4B,EAAIx4B,OACb/hB,KACAq6D,EAAgBt4C,EAAOp7G,QAAO,SAAStO,MACnCA,EAAE0nG,OAAOC,KAAOA,SACT,IACL3nG,EAAE0nG,OAAOC,UAGd+hB,EAAOvpH,QAAU6hK,EAAc7hK,QAAUupH,EAAOvpH,OAAS,EAyBvD,GACW8F,SAAQ,SAASjG,KACvBs/H,eAAet/H,EAAE0nG,eAGrBu6D,EAAS,EACTC,EAAW5qJ,EAAAA,EACX6qJ,EAAez4C,EAAOj/G,KAAI,SAASzK,OAC/B6C,EAAI7C,EAAE0nG,OAEN06D,EADO79D,EAAQ0V,QAAQp3G,EAAE8kG,KACNh1F,OAAO9P,EAAEglG,QAAQp8F,OAAO,iBAC3C22J,MACc,GAEdv/J,EAAEglG,OAASo6D,MACFp/J,EAAEglG,QACXu6D,EAAcF,MACHE,GACRA,OAEJn8J,SAAQ,SAASjG,EAAGb,OACnB0D,EAAI7C,EAAE0nG,OACNhoG,EAAIuiK,EAASp/J,EAAEglG,OACf7iG,EAAIm9J,EAAahjK,GAAK+iK,EACtBxiK,EAAIsF,IACI2uD,OAAO9wD,EAAG29F,EAAK3B,aAAa,IAAKn/F,EAAIsF,MAErC2kF,OAAO,IAAIvoE,EAAMve,EAAE8kG,IAAK9kG,EAAEglG,OAAQhlG,EAAE8kG,IAAK9kG,EAAEglG,OAASnoG,EAAIsF,MAElEiL,MAAM43F,OAAS7nG,EAAEwQ,IAAIq3F,OAASo6D,IAC9BhyJ,MAAM03F,IAAM3nG,EAAEwQ,IAAIm3F,IAAM9kG,EAAE8kG,MAC1BD,OAAS1nG,EAAEwQ,SAEbigG,kBAAkBiZ,EAAO,SACxB7kB,SAASg5C,oBACTh5C,SAASi6C,wBA5D+C,KACzD7rG,EAAQ3xC,KAAKghG,UAAUgC,WACvB+9D,EAAKpvH,EAAMhjC,MAAM03F,IAAK26D,EAAKrvH,EAAMziC,IAAIm3F,IACrC46D,EAAaF,GAAMC,KACnBC,EAAY,KAERxjD,EADA/0G,EAAM1I,KAAKijG,QAAQmJ,iBAGZpsG,KAAKijG,QAAQ0V,QAAQqoD,SACvB,OAAOt+J,KAAK+6G,MAAWujD,EAAKt4J,QAE1B1I,KAAKijG,QAAQ0V,QAAQooD,SACvB,OAAOr+J,KAAK+6G,MAAWsjD,EAAK,GAEjCA,EAAK,MAAQ,GACbC,GAAMt4J,MAAUA,EAAM,OAE1By1G,EAAQn+G,KAAKijG,QAAQ02B,gBAAgBonC,EAAIC,KACrChhK,KAAKkhK,aAAa/iD,EAAO8iD,QAC5Bh+D,QAAQ5wC,OAAO,CAACg0C,IAAK06D,EAAIx6D,OAAQ,GAAI4X,EAAM31G,KAAK,MAAQ,MACxDy4J,MACKtyJ,MAAM43F,OAAS,IACfr3F,IAAIq3F,OAAS4X,EAAMA,EAAMt/G,OAAS,GAAGA,aAE1CmiG,UAAUmC,SAASxxD,UAwC3BuvH,aAAe,SAAS/iD,EAAOgjD,OAE5BC,EAAQC,EAAOC,EADfC,GAAgB,EAAMC,GAAiB,SAGpCrjD,EAAMh1G,KAAI,SAASs0G,OAClB97G,EAAI87G,EAAKr1G,MAAM,kCACdzG,EAGS,MAAVy/J,KACSz/J,EAAE,GAAG9C,SACN8C,EAAE,GAAG9C,SACN8C,EAAE,GAAG9C,OACL8C,IAGPy/J,EAASC,EAAQC,GAAQ3/J,EAAE,GAAG9C,OAAS8C,EAAE,GAAG9C,OAAS8C,EAAE,GAAG9C,YACzC,GACjBuiK,GAAUz/J,EAAE,GAAG9C,YACC,GAEhBuiK,EAASz/J,EAAE,GAAG9C,WACL8C,EAAE,GAAG9C,QACdwiK,EAAQ1/J,EAAE,GAAG9C,WACL8C,EAAE,GAAG9C,QACbyiK,EAAO3/J,EAAE,GAAG9C,WACL8C,EAAE,GAAG9C,QAET8C,GArBI,CAAC87G,MAsBbt0G,IAAIg4J,EAAYM,EACfF,EAAgBC,WAWA7/J,UACRA,EAAE,GAAY0zH,EAAO+rC,EAASC,EAAQ1/J,EAAE,GAAG9C,QAAU8C,EAAE,GACzD0zH,EAAOisC,GACP3/J,EAAE,GAAGmB,QAAQ,aAAc,OAFlBnB,EAAE,IAZ6B8/J,WAgBjC9/J,UACLA,EAAE,GAAY0zH,EAAO+rC,GAAUz/J,EAAE,GACnC0zH,EAAOisC,GACP3/J,EAAE,GAAGmB,QAAQ,aAAc,OAFlBnB,EAAE,gBAfLxD,UACL+gG,EAAK3B,aAAa,IAAKp/F,cAGfwD,UACPA,EAAE,GAAY0zH,EAAO+rC,GAAUz/J,EAAE,GACnC0zH,EAAOgsC,EAAQ1/J,EAAE,GAAG9C,OAASyiK,GAC7B3/J,EAAE,GAAGmB,QAAQ,aAAc,OAFlBnB,EAAE,OAe1B+D,KAAKsxI,EAAOjzI,aAMPw7J,gBAAkB,SAASr+J,OAC3B+hG,EAAU/hG,EAAE+hG,QACZA,IAAYA,EAAQ4rB,gBACZ0/B,kBAAoB,KACpBvtD,UAAU49D,mBACV/vC,YAAc5rB,EAAQjC,gBAE7B6tB,YAAc5rB,GAAWA,EAAQ4rB,gBAElCmqB,EAAa93I,EAAE83I,WACfA,MACWnqB,YAAY5b,IAAI,WAAYjzG,KAAKw+J,eACjC3vC,YAAY5b,IAAI,cAAejzG,KAAKy+J,kBACpC5vC,YAAY5b,IAAI,cAAejzG,KAAKq/J,kBACpCxwC,YAAY5b,IAAI,eAAgBjzG,KAAKs/J,mBACrCzwC,YAAY9L,KAAK9P,IAAI,SAAUjzG,KAAKw/J,2BACpC3wC,YAAY3rE,OAAO+vD,IAAI,SAAUjzG,KAAKw/J,0BAGjDv8D,MACQ4rB,YAAYjrB,GAAG,WAAY5jG,KAAKw+J,eAChC3vC,YAAYjrB,GAAG,cAAe5jG,KAAKy+J,kBACnC5vC,YAAYjrB,GAAG,cAAe5jG,KAAKq/J,kBACnCxwC,YAAYjrB,GAAG,eAAgB5jG,KAAKs/J,mBACpCzwC,YAAY9L,KAAKnf,GAAG,SAAU5jG,KAAKw/J,2BACnC3wC,YAAY3rE,OAAO0gD,GAAG,SAAU5jG,KAAKw/J,0BAG7Cv8D,GAAWjjG,KAAKinG,mBAAqBhE,EAAQjC,UAAUiG,oBACnDhE,EAAQjC,UAAUiG,uBACbo4D,sBAEAC,sBA+CToC,YAAcA,IAGb,YAAY1tD,cAAcgjC,EAAOjzI,UAAW,SAAU,CAC3D49J,kBAAmB,CACfxxJ,IAAK,SAASjH,KACElJ,MACRkJ,QACK06F,GAAG,gBAAiB5jG,KAAKo/J,kCACzBx7D,GAAG,YAAa+B,UAEhBsN,IAAI,gBAAiBjzG,KAAKo/J,kCAC1BnsD,IAAI,YAAatN,KAG9BvjG,OAAO,GAEXw/J,kBAAmB,CACfzxJ,IAAK,SAASjH,QACLm0J,oBAAsBn0J,GAE/B9G,OAAO,QAQf0jF,IAAID,OAAO,6BAA6B,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAG5GxU,EAAQwlE,EAAS,eAAexlE,MAEhC+hJ,EAAWttJ,EAAQstJ,SAAW,cAEjC,gBAEQC,mBAAqB,UACrBC,kBAAoB,UACpBzgC,cAAgB,SAASr+B,EAASwiD,EAAWp/C,OAC1CoX,EAAOxa,EAAQ0V,QAAQtS,UACvBrmG,KAAK8hK,mBAAmBp/J,KAAK+6G,GACtB,QACM,gBAAbgoC,GACOzlJ,KAAK+hK,mBACL/hK,KAAK+hK,kBAAkBr/J,KAAK+6G,GAC5B,MACJ,SAGN8jB,mBAAqB,SAASt+B,EAASwiD,EAAWp/C,UAC5C,WAGN27D,iBAAmB,SAAS/+D,EAASoD,EAAKE,OACvCoP,EAAK,KACL8H,EAAOxa,EAAQ0V,QAAQtS,GACvB47D,EAAaxkD,EAAKtzG,OAAOwrG,UACzBssD,WAGAlhD,EAAcxa,GAAUkX,EAAK5+G,OAC7BmwI,EAAS/rC,EAAQmJ,YACjB0U,EAAWza,EACX2a,EAAS3a,IAEJA,EAAM2oC,GAAQ,KACflwH,EAAQmkF,EAAQ0V,QAAQtS,GAAKl8F,OAAOwrG,UAEpC72F,MAGAA,GAASmjJ,UAGJ57D,MAGT2a,EAASF,EAAU,KACfG,EAAYhe,EAAQ0V,QAAQqI,GAAQniH,cACjC,IAAIihB,EAAMghG,EAAUC,EAAaC,EAAQC,WAInDihD,oBAAsB,SAASj/D,EAAS2uB,EAASvrB,EAAKE,EAAQ+8B,OAC3D30H,EAAQ,CAAC03F,IAAAA,EAAUE,OAAQA,EAAS,GACpCr3F,EAAM+zF,EAAQ6/B,oBAAoBlR,EAASjjH,EAAO20H,MACjDp0H,OAGDozH,EAAKr/B,EAAQsV,YAAYrpG,EAAIm3F,YACvB,MAANi8B,MACKr/B,EAAQq+B,cAAcpyH,EAAIm3F,MAEzB,SAANi8B,GAAiBpzH,EAAIm3F,IAAM13F,EAAM03F,QAC7BA,QACAE,OAAStD,EAAQ0V,QAAQzpG,EAAIm3F,KAAKxnG,QAEnCihB,EAAMqiG,WAAWxzG,EAAOO,UAG9BizJ,oBAAsB,SAASl/D,EAAS2uB,EAASvrB,EAAKE,EAAQ+8B,OAC3Dp0H,EAAM,CAACm3F,IAAAA,EAAUE,OAAAA,GACjB53F,EAAQs0F,EAAQgtB,oBAAoB2B,EAAS1iH,MAE5CP,WAGC43F,WACFA,SAEIzmF,EAAMqiG,WAAWxzG,EAAOO,MAErCxJ,KAAKm8J,EAAS99J,cAIjB+hF,IAAID,OAAO,qBAAqB,CAAC,UAAU,UAAU,SAAS,gBAAgB,SAASP,EAAU/wE,EAAS+f,KAGlGkkI,QAAS,IACTF,SAAW,WACX11J,QAAU,s0EAyHR0iF,EAAS,cACfsH,gBAAgBr4E,EAAQ3R,QAAS2R,EAAQ+jJ,aAG7CxyE,IAAID,OAAO,mBAAmB,CAAC,UAAU,UAAU,SAAS,cAAc,cAAc,cAAc,SAASP,EAAU/wE,EAAS+f,KAG/G,iBACf2qE,EAAM3Z,EAAS,wBAIE2d,QACZA,QAAUA,OACVA,QAAQm/D,cAAgBpiK,UACxBijG,QAAQmrC,aAAepuI,KAAKouI,kBAC5BnrC,QAAQqsC,uBAAyBtvI,KAAKsvI,4BACtC+yB,eAAiBriK,KAAKqiK,eAAe36J,KAAK1H,WAC1CsiK,cAAgBtiK,KAAKsiK,cAAc56J,KAAK1H,WACxCuiK,eAAiBviK,KAAKuiK,eAAe76J,KAAK1H,WAC1CijG,QAAQu/D,gBAAkB,QAC1BC,gBAAkBziK,KAAKyiK,gBAAgB/6J,KAAK1H,WAE5CijG,QAAQW,GAAG,SAAU5jG,KAAKqiK,qBAC1Bp/D,QAAQW,GAAG,aAAc5jG,KAAK0iK,mBAC9Bz/D,QAAQW,GAAG,eAAgB5jG,KAAKyiK,mBAhBpB,WAAW3iJ,MAmB/B,gBACQsuH,aAAe,SAAS/nC,OACrB/kG,WACAtB,KAAK6nH,aACD7nH,KAAK6nH,YAAYxhB,IAAQrmG,KAAK6nH,YAAYxhB,GAAKynB,UAE/C,EACH9tH,KAAK4+G,cAAiB5+G,KAAK8+G,UAAUzY,GAG/BrmG,KAAK8+G,UAAUzY,GAAKxnG,OAAS,EAAIyC,EAFjC,EAAIA,QAMdguI,uBAAyB,eACtBD,EAAa,cACZxnB,YAAYljH,SAAQ,SAAS/C,GAC1BA,GAAKA,EAAEksH,WAAalsH,EAAEikB,YACRjkB,EAAEksH,aAEjBuhB,QAGNozB,gBAAkB,SAASvhK,QACvBu4G,OAAOv4G,EAAEukG,cAGbgU,OAAS,SAAShU,GACfA,GAAWA,EAAO28D,eAAiB38D,EAAO28D,eAAiBpiK,QACpDoiK,cAAc1oD,SAErB15G,KAAKylG,QAAUA,SAGdiU,cACAjU,OAASA,EAEVA,MACO28D,cAAgBpiK,OAChBujG,SAASK,GAAG,eAAgB5jG,KAAKuiK,kBACjCh/D,SAASK,GAAG,cAAe5jG,KAAKsiK,uBAG1C5oD,OAAS,SAASx4G,OACfukG,EAASzlG,KAAKylG,UACbA,QAGAA,OAAS,OACP28D,cAAgB,OAEhB7+D,SAAS0P,IAAI,eAAgBjzG,KAAKuiK,kBAClCh/D,SAAS0P,IAAI,cAAejzG,KAAKsiK,mBACpCz6C,EAAc7nH,KAAKijG,QAAQ4kB,eAChBA,EAAYljH,SAAQ,SAAS/C,GACpCA,GAAKA,EAAEmqF,IAAMnqF,EAAEmqF,GAAGztF,eAChBqkK,aAAc,IACd52E,GAAGztF,WAAWC,YAAYqD,EAAEmqF,eAKrC22E,aAAe,SAASxhK,EAAG+hG,OACxB4kB,EAAc5kB,EAAQ4kB,eACrBA,GAAgB3mH,EAAEwyB,gBAEnBykF,EAAOj3G,EAAEuE,KACTkJ,EAAQwpG,EAAKxpG,MAAM03F,IACnBn3F,EAAMipG,EAAKjpG,IAAIm3F,IACfoE,EAAmB,OAAZvpG,EAAEwyB,OACJ71B,EAAI8Q,EAAQ,EAAG9Q,EAAIqR,EAAKrR,IACzBgqH,EAAYhqH,OACAA,GAAGgoB,OAAS4kF,GAE5Bod,EAAY34G,KACRu7F,EACKod,EAAYl5G,KAGDO,GAAK2W,OAAS4kF,IAFd97F,GAASk5G,EAAY34G,IAIjC24G,EAAYl5G,IAAUk5G,EAAY34G,OACtBP,QAAS,KACbO,GAAK2W,OAAS4kF,WAKjC43D,eAAiB,SAAS75I,OACvBq/F,EAAc7nH,KAAKijG,QAAQ4kB,eAC1BA,OAED/G,EAAWt4F,EAAM7Z,MAAM03F,IACvBtiD,EAAMv7B,EAAMtZ,IAAIm3F,IAAMya,KAEd,IAAR/8D,WACuB,UAAhBv7B,EAAMkL,OAAoB,CACnBm0F,EAAY1gH,OAAO25G,EAAW,EAAG/8D,GACvCp/C,SAAQ,SAAS/C,MAChB5B,KAAK4iK,iBAAiBhhK,KAC5B5B,WACE6iK,kBACF,KACC7tJ,EAAO,IAAIjT,MAAMgiD,KAChBinE,QAAQlK,EAAU,KACX35G,OAAOukB,MAAMm8F,EAAa7yG,QACjC6tJ,sBAIRA,YAAc,eACXh7C,EAAc7nH,KAAKijG,QAAQ4kB,eAC1BA,OACDi7C,GAAY,IACJn+J,SAAQ,SAAS/C,EAAG/D,MACxB+D,SACY,IACVykG,IAAMxoG,EACD+D,EAAEmhK,cACHA,WAAW18D,IAAMxoG,IACf+D,EAAEmhK,cAIdD,SACK7/D,QAAQ4kB,YAAc,aAG9Bm7C,cAAgB,SAASphK,GACrB5B,KAAKijG,QAAQ4kB,mBACT5kB,QAAQ4kB,YAAc,IAAI9lH,MAAM/B,KAAKijG,QAAQmJ,kBAElDyG,EAAM7yG,KAAKijG,QAAQ4kB,YAAYjmH,EAAEykG,KACjCwM,MACEkwD,WAAalwD,EACXA,EAAI9mB,IAAM8mB,EAAI9mB,GAAGztF,eACbytF,GAAGztF,WAAWC,YAAYs0G,EAAI9mB,MAC9B42E,aAAc,SAIrB1/D,QAAQ4kB,YAAYjmH,EAAEykG,KAAOzkG,IAEhCqhG,QAAUjjG,KAAKijG,YAEbM,EAAWvjG,KAAKylG,OAAOlC,SACvB3hG,EAAEyoG,OAASzoG,EAAEmqF,OACXA,GAAKkT,EAAI15F,cAAc,SACvBwmF,GAAG/lF,UAAYpE,EAAEyoG,MAEnBzoG,EAAEmqF,OACEE,YAAYrqF,EAAEmqF,GAAI,6BACpBA,GAAGppF,MAAMqf,SAAW,aACpB+pE,GAAGppF,MAAMsgK,OAAS,IACX3+D,UAAUhiG,YAAYV,EAAEmqF,MAC/B42E,aAAc,GAGf/gK,EAAEshK,gBACDn3E,GAAGppF,MAAMsgK,OAAS,GAEH,MAAjBrhK,EAAEuhK,gBACAA,YAAcvhK,EAAEmqF,GAAG4e,cAEP,MAAd/oG,EAAEksH,aACAA,SAAWlsH,EAAEuhK,YAAc5/D,EAAS0K,YAAYD,gBAGlDmK,EAAOn4G,KAAKijG,QAAQmV,UAAUx2G,EAAEykG,IAAK,QACvC+8D,MAAQjrD,EACNA,EAAM,KACF0P,EAAc7nH,KAAKijG,QAAQ4kB,YAC3BjmH,EAAEykG,KAAO8R,EAAKjpG,IAAIm3F,KAAQwhB,EAAY1P,EAAKxpG,MAAM03F,OAG/CxgF,QAAS,IAFCsyF,EAAKxpG,MAAM03F,KAAOzkG,cAKjCqhG,QAAQgB,MAAM,aAAc,CAACx+F,KAAK,CAACkJ,MAAM,CAAC03F,IAAKzkG,EAAEykG,aAEjDw8D,mBACAP,cAAc,KAAM/+D,QACpB8/D,gBAAgBzhK,GACdA,QAGNghK,iBAAmB,SAAShhK,QAC3B+gK,aAAc,IACd1/D,QAAU,KACRrhG,EAAEmqF,IAAMnqF,EAAEmqF,GAAGztF,cACXytF,GAAGztF,WAAWC,YAAYqD,EAAEmqF,IAC9BnqF,EAAE6jG,QAAU7jG,EAAE6jG,OAAOoF,cACnBpF,OAAOoF,gBACL3pG,OACJlB,KAAKijG,QAAQ4kB,YAAa,KACtBy7C,EAAKtjK,KAAKijG,QAAQ4kB,YAAYjmH,EAAEykG,QAChCi9D,GAAM1hK,OACDqhG,QAAQ4kB,YAAYjmH,EAAEykG,KAAOzkG,EAAEmhK,WAChCnhK,EAAEmhK,iBACGM,gBAAgBzhK,EAAEmhK,sBAEpBO,GAAI,IACHA,EAAGP,YAAcnhK,EAAG,GACjBmhK,WAAanhK,EAAEmhK,mBAGjBO,EAAGP,iBAIf9/D,QAAQgB,MAAM,aAAc,CAACx+F,KAAK,CAACkJ,MAAM,CAAC03F,IAAKzkG,EAAEykG,aACjDw8D,oBAGJU,gBAAkB,SAASl9D,WACxBwhB,EAAc7nH,KAAKijG,QAAQ4kB,YAC3BjmH,EAAIimH,GAAeA,EAAYxhB,GAC/B9vF,EAAO,GACJ3U,KACE9C,KAAK8C,KACNA,EAAEmhK,kBAEHxsJ,QAGN8sJ,gBAAkB,SAASzhK,QACvBqhG,QAAQu/D,gBAAgB1jK,KAAK8C,QAC7B6jG,QAAUzlG,KAAKylG,OAAOlC,SAASs3C,mBAGnC0nB,eAAiB,SAASrhK,EAAGqiG,OAC1BigE,EAAiBxjK,KAAKijG,QAAQu/D,gBAC9B5sJ,EAAS2tF,EAAS0K,eAEjBu1D,GAAmBA,EAAe3kK,gBACnCgX,EAAMG,EAAAA,EACDnY,EAAI,EAAGA,EAAI2lK,EAAe3kK,OAAQhB,IAAK,KACxC+D,EAAI4hK,EAAe3lK,MAClB+D,GAAMA,EAAEmqF,IACTnqF,EAAEqhG,SAAWjjG,KAAKijG,aACjBrhG,EAAE+gK,YAAa,IACZ3iK,KAAKijG,QAAQ4kB,YAAYjmH,EAAEykG,MAAQzkG,aAErC+gK,aAAc,IACPr+D,UAAUhiG,YAAYV,EAAEmqF,MAGnCzqF,EAAIM,EAAEmqF,GAAG4e,aAEN/oG,EAAE6hK,eACDp1J,EAAIzM,EAAEmqF,GAAG4B,cACT87C,YAAc9gI,KAAK+/I,KAAK9mJ,EAAEyM,EAAIuH,EAAOs4F,qBAGvC4f,EAAWlsH,EAAEN,EAAIsU,EAAOo4F,WACxBpsG,EAAE8hK,eACU1jK,KAAKijG,QAAQorC,gBAAgBzsI,EAAEykG,MAC5B,MACA,GAEfzkG,EAAEksH,UAAYA,MACZA,SAAWA,EACTlsH,EAAEykG,IAAMxwF,MACFjU,EAAEykG,OAGhBxwF,GAAOG,EAAAA,SACFitF,QAAQgB,MAAM,aAAc,CAACx+F,KAAK,CAACkJ,MAAM,CAAC03F,IAAKxwF,WAC/CotF,QAAQ0mC,gBAAkB,WAE9B1mC,QAAQu/D,gBAAkB,UAG9BF,cAAgB,SAASphK,EAAGqiG,OACzB3tF,EAAS2tF,EAAS0K,YAClB4Z,EAAc7nH,KAAKijG,QAAQ4kB,eAC1BA,WAED58C,EAAQtiE,KAAKkN,IAAI7V,KAAKiiH,SAAUrsG,EAAOqsG,UACvC54D,EAAO1gD,KAAKD,IAAI1I,KAAKkiH,QAAStsG,EAAOssG,QAAS2F,EAAYhpH,QAEvDosE,EAAQ,IAAM48C,EAAY58C,aAG5Bg3C,SAAWrsG,EAAOqsG,cAClBC,QAAUtsG,EAAOssG,UAEbrT,aAAaj5F,OAASA,UACtB/X,EAAIotE,EAAOptE,GAAKwrD,EAAMxrD,IAAK,KAC5B+D,EAAIimH,EAAYhqH,MACf+D,GAAMA,EAAEmqF,MACTnqF,EAAEikB,SACAkmE,GAAGppF,MAAM6hG,YAAgB2+D,aAAe,GAAK,UAG9CvhK,EAAE+gK,gBACDA,aAAc,IACPr+D,UAAUhiG,YAAYV,EAAEmqF,SAEjCyY,EAAMjB,EAASsL,aAAaw/C,iBAAiB,CAAChoD,IAAKxoG,EAAG0oG,OAAO,IAAI,GAAM/B,IACtE5iG,EAAE8hK,eACI9tJ,EAAOo4F,WAAahuG,KAAKijG,QAAQorC,gBAAgBzsI,EAAEykG,QAC5Dta,GAAGppF,MAAM6hG,IAAMA,EAAM5uF,EAAO9F,OAAS,SAEnCurD,EAAOz5D,EAAEshK,YAAc,EAAI3/D,EAAS8jD,YACnCzlJ,EAAE6hK,gBACKlgE,EAASrV,cACnBnC,GAAGppF,MAAM04D,KAAOA,EAAO,KAErBz5D,EAAE+hK,WAAa/hK,EAAE6nI,gBACf19C,GAAGppF,MAAM6qF,SAAW53E,EAAO23E,MAAQ,EAAI33E,EAAO2yI,QAAU,MAG1D3mJ,EAAE6hK,aACA13E,GAAGppF,MAAM0iG,MAAQ9B,EAASuuD,UAAUlnD,WAAa,OAEjD7e,GAAGppF,MAAM0iG,MAAQ,QAKhC3/F,KAAKk+J,EAAY7/J,aAGZ6/J,YAAcA,KAItB99E,IAAID,OAAO,uBAAuB,CAAC,UAAU,UAAU,SAAS,mBAAmB,cAAc,cAAc,SAASP,EAAU/wE,EAAS+f,OAEvIsvI,EAAct+E,EAAS,mBAAmBs+E,YAC1C3kE,EAAM3Z,EAAS,cACfxlE,EAAQwlE,EAAS,YAAYxlE,QAuDzBg0H,gBAAkB,SAASruC,EAAQwU,OACnChX,EAAUwC,EAAOxC,QAChBA,EAAQm/D,kBACDA,cAAgB,IAAIwB,EAAY3gE,KAChCm/D,cAAc3oD,OAAOhU,QAG7Bj6C,EAAMi6C,EAAOkqB,oBACbtpB,EAAM76C,EAAI66C,IACVw9D,EAAY5gE,EAAQm/D,cAAcmB,gBAAgBl9D,GAAKr5F,QAAO,SAAS82J,SACtD,eAAVA,EAAE5kK,QACV,GACC2kK,IACUh5D,aAEHoP,MAGP8pD,EADAp8B,WArDiB1kC,EAASoD,EAAK4T,OAC/B0tB,EAAc1kC,EAAQ2kC,iBAAiBnnI,KAAKqf,EAAM6iG,kBACjDglB,EAAY9oI,YAGbhB,WAtBc6oF,EAAO6pD,EAAQyzB,WAC7B/4F,EAAQ,EACR5hB,EAAOq9B,EAAM7nF,OAAS,EAEnBosE,GAAS5hB,GAAM,KACdq7E,EAAOz5D,EAAQ5hB,GAAS,EACxBloD,EAAI6iK,EAAWzzB,EAAQ7pD,EAAMg+C,OAC7BvjI,EAAI,IACIujI,EAAM,YACTvjI,EAAI,UAGFujI,IAFAA,EAAM,aAIJ,GAQTu/B,CAAat8B,EAAa,CAACthC,IAAAA,EAAUE,WAAazmF,EAAM6iG,eAC5D9kH,EAAI,OACCA,EAAI,GAETA,GAAK8pI,EAAY9oI,SACbo7G,EAAM,EAAI,EAAI0tB,EAAY9oI,OAAS,EAC5B,IAANhB,GAAWo8G,EAAM,MAClB0tB,EAAY9oI,OAAS,OAEzBqtG,EAAay7B,EAAY9pI,MACxBquG,GAAe+N,MAGhB/N,EAAW7F,MAAQA,EAAK,MAEPshC,EAAY9pI,GAAKo8G,SACzB/N,GAAcA,EAAW7F,MAAQA,OACrC6F,SACMy7B,EAAY3kI,YAIvBkhK,EAAU,KACRh4D,EAAW7F,SAEL4T,EAAM,EAAI,UAAY,QAAQ/N,KACzBy7B,EAAY9pI,GAAKo8G,SACzB/N,GAAcA,EAAW7F,KAAOA,UAClC69D,EAAQrlK,QAAUqlK,IAoBPC,CAAgBlhE,EAASoD,EAAK4T,MAE5C0tB,EAAa,KACTz7B,EAAay7B,EAAY,KACzBphC,UAAqB/6C,KAAmC,iBAArB0gD,EAAW3F,OAC5C2F,EAAW1gD,IAAI0kF,GACfhkC,EAAW3F,SAAW,IACxBF,IAAM6F,EAAW7F,MACRZ,EAAOlC,SAASkI,aAAaU,aAAa3gD,EAAI66C,aACpDw9D,WAGM,CACT9wI,KAAM,CAAC,eACPi5D,UAAW,YAGZiX,QAAQs9B,OAAO/0E,EAAI66C,OACnBrF,UAAU+F,eAAev7C,OAE5B5pD,EAAI,CACJykG,IAAK76C,EAAI66C,IACTo9D,YAAY,EACZP,aAAa,EACbn3E,GAAIkT,EAAI15F,cAAc,OACtBrG,KAAM,eAEN6sF,EAAKnqF,EAAEmqF,GAAGzpF,YAAY28F,EAAI15F,cAAc,QACxC6+J,EAAQxiK,EAAEmqF,GAAGzpF,YAAY28F,EAAI15F,cAAc,UACzCymF,UAAY,sBAAwB+3E,EAAW/3E,cAEjD3wB,EAAOoqC,EAAOlC,SAASsL,aACtBw/C,iBAAiB7iG,GAAK6P,OACrB14D,MAAM04D,KAAOA,EAAOoqC,EAAOlC,SAAS8jD,YAAc,EAAI,OAE1Dt7D,GAAGC,UAAY,yBACdA,UAAY,gBAAkB+3E,EAAW/3E,YACzChmF,UAAY+9J,EAAWhxI,KAAKvqB,KAAK,UAEjClG,YAAY28F,EAAI15F,cAAc,YAE7B4zG,EAAK,SAAS33G,EAAGw6F,EAAQpF,MACV,IAAXoF,IAA+B,WAAuB,WAAdpF,YACtCiU,UACK,CAAC1a,QAAS,WAIvB0a,QAAU,WACJpF,EAAO2xC,cAAcnrC,mBAElBorC,WAAWj+B,sBAAsBD,KAChCipD,cAAcQ,iBAAiBhhK,KAChCqxG,IAAI,kBAAmBrxG,EAAEipG,WACzBoI,IAAI,gBAAiBrxG,EAAEipG,WACvBoI,IAAI,UAAWrxG,EAAEipG,WACjBoI,IAAI,SAAUrxG,EAAEipG,aAGpBwsC,WAAW/9B,mBAAmBH,KAC9BvV,GAAG,kBAAmBhiG,EAAEipG,WACxBjH,GAAG,gBAAiBhiG,EAAEipG,WACtBjH,GAAG,UAAWhiG,EAAEipG,WAChBjH,GAAG,SAAUhiG,EAAEipG,WAEf5H,QAAQm/D,cAAcY,cAAcphK,KAEzCmqF,GAAGs4E,YAAc5+D,EAAOnF,MAAM54F,KAAK+9F,KAE9BlC,SAASuE,qBAAqB,KAAM,GAAK,CAAClD,OAAQhjG,EAAEmqF,GAAG4e,kBAI9D/d,gBAAgB,u3BAiCjB,OAIH9G,IAAID,OAAO,UAAU,CAAC,UAAU,UAAU,SAAS,yBAAyB,cAAc,gBAAgB,aAAa,mBAAmB,kBAAkB,uBAAuB,2BAA2B,4BAA4B,kBAAkB,mBAAmB,6BAA6B,qBAAqB,uBAAuB,eAAe,SAASP,EAAU/wE,EAAS+f,KAG1X,4BAEL2qE,EAAM3Z,EAAS,aACf9hF,EAAQ8hF,EAAS,eAEjB0xD,EAAS1xD,EAAS,YAAY0xD,OAC9BpT,EAAct+C,EAAS,kBAAkBs+C,YACzC8hB,EAAcpgE,EAAS,iBAAiBogE,YACxC4e,EAAWh/E,EAAS,sBAAsB8rE,kBACrC,4BACA,6BACA,mBACA,oBACA,8BACA,sBACA,wBAEDx7I,OAAS0vE,EAAS,cAClBA,SAAWA,IAIXi/E,KAAO,SAASx4E,MACH,iBAANA,EAAgB,KACnBy4E,EAAMz4E,SACL3mF,SAASq/J,eAAeD,UAEnB,IAAIlsG,MAAM,4BAA8BksG,MAGlDz4E,GAAMA,EAAG24E,KAAO34E,EAAG24E,IAAIj/D,kBAAkBuxC,SAClCjrD,EAAG24E,IAAIj/D,WAEdrjG,EAAQ,MACR2pF,GAAM,kBAAkBrpF,KAAKqpF,EAAG44E,SAAU,KACtCC,EAAU74E,IACN64E,EAAQxiK,QACX68F,EAAI15F,cAAc,SACfjH,WAAWkwF,aAAazC,EAAI64E,QAC7B74E,MACCkT,EAAIrQ,aAAa7C,KACtB/lF,UAAY,QAGf2lF,EAAMp3E,EAAQswJ,kBAAkBziK,GAEhCqjG,EAAS,IAAIuxC,EAAO,IAAIstB,EAASv4E,MAC9B2rD,WAAW/rD,OAEd+4E,EAAM,CACNt/J,SAAUumF,EACV8Z,OAAAA,EACAy1C,SAAUz1C,EAAOw1C,OAAOvzI,KAAK+9F,EAAQ,cAErCm/D,MAAaztB,SAAWytB,KACtB9rE,YAAYvvC,OAAQ,SAAUm7G,EAAIxpB,YACjCt3C,GAAG,WAAW,aACXzK,eAAe5vC,OAAQ,SAAUm7G,EAAIxpB,YACvCz1C,OAAOnB,UAAUogE,IAAM,UAExBpgE,UAAUogE,IAAMj/D,EAAOi/D,IAAMA,EAC7Bj/D,KAEHo/D,kBAAoB,SAAS9xI,EAAMknC,OACnC0xB,EAAM,IAAIi4C,EAAY7wG,EAAMknC,YAC5BmrE,eAAe,IAAIsgB,GAChB/5D,KAEHi4C,YAAcA,IACd8hB,YAAcA,IACdof,QAAU,eAGEx/E,SAAS,CAAC,YAAY,SAASjkF,WAOtBjC,KANLiC,MACEuU,OAAOygG,MAAK,KACZxwB,OAASC,IAAID,QAEdt8B,OAAOu8B,aACDA,IAAMzkF,GACDA,EAAOA,EAAEgb,eAAejd,YAC7B0mF,IAAI1mF,GAAOiC,EAAEjC,WAI5C2lK,GAAiBx7G,OAAOu8B,IAAIR,SAAS,kBC/ynBjB,2BACC,85zCCDrBQ,IAAID,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAASP,EAAU/wE,EAAS+f,OAGjJi7D,EAAMjK,EAAS,cACf6lC,EAAqB7lC,EAAS,0BAA0B6lC,mBAExD65C,EAAqB,gBAChB55C,OAAS,CACVz8G,MAAU,CACN,CACI26G,MAAQ,WACRljC,MAAQ,+CACT,CACCkjC,MAAQ,SACRljC,MAAQ,IACRrpB,KAAQ,UACT,CACCusD,MAAQ,mBACRljC,MAAQ,wBACT,CACCkjC,MAAQ,mBACRljC,MAAQ,mDACT,CACCkjC,MAAQ,4BACRljC,MAAQ,qBACT,CACCkjC,MAAQ,OACRljC,MAAQ,sCACT,CACCkjC,MAAQ,UACRljC,MAAQ,aACT,CACCkjC,MAAQ,gBACRljC,MAAQ,SACRrpB,KAAQ,WACT,CACCusD,MAAQ,eACRljC,MAAQ,SACT,CACCkjC,MAAQ,eACRljC,MAAQ,WACT,CACCkjC,MAAQ,OACRljC,MAAQ,SAGhB1qE,OAAW,CACP,CACI4tG,MAAQ,2BACRljC,MAAQ,sDACT,CACCkjC,MAAQ,SACRljC,MAAQ,MACRrpB,KAAQ,SACT,CACCisD,aAAe,WAGvB7zD,QAAY,CACR,CACIm0D,MAAQ,cACRljC,MAAQ,SACRrpB,KAAQ,SACT,CACCisD,aAAc,gBAO1Bh6B,SAASg2E,EAAoB75C,KAEzB65C,mBAAqBA,KAG7Bl/E,IAAID,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAGjHxU,EAAQwlE,EAAS,YAAYxlE,MAE7BmlJ,EAAuB,cAE1B,gBAEQjvC,aAAe,SAASvY,EAAMjtD,WACzB,QAAQ9tD,KAAK+6G,IAGZ,SAAS/6G,KAAK8tD,SAGpBylE,YAAc,SAAStqC,EAAK0a,OAEzBj+F,EADOujF,EAAIgtB,QAAQtS,GACNj+F,MAAM,gBAElBA,SAAc,MAEfm+F,EAASn+F,EAAM,GAAGvJ,OAClByxH,EAAe3kC,EAAI4kC,oBAAoB,CAAClqB,IAAAA,EAAUE,OAAAA,QAEjD+pB,GAAgBA,EAAajqB,KAAOA,SAAY,MAEjDqqB,EAAS1wH,KAAKywH,WAAW9kC,EAAIgtB,QAAQ2X,EAAajqB,QAClDvjG,QAAQ,IAAIgd,EAAMumF,EAAK,EAAGA,EAAKE,EAAO,GAAImqB,SAG7CD,WAAa,SAAShT,UAChBA,EAAKr1G,MAAM,QAAQ,MAG/B1C,KAAKu/J,EAAqBlhK,aAErBkhK,qBAAuBA,KAG/Bn/E,IAAID,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,YAAY,+BAA+B,SAASP,EAAU/wE,EAAS+f,OAGpJi7D,EAAMjK,EAAS,iBACfxlE,EAAQwlE,EAAS,eAAexlE,MAChColJ,EAAe5/E,EAAS,eAAeu8E,SAEvCA,EAAWttJ,EAAQstJ,SAAW,SAASsD,GACnCA,SACKrD,mBAAqB,IAAI97E,OAC1BhmF,KAAK8hK,mBAAmB3yI,OAAOrsB,QAAQ,YAAa,IAAMqiK,EAAax2J,aAEtEozJ,kBAAoB,IAAI/7E,OACzBhmF,KAAK+hK,kBAAkB5yI,OAAOrsB,QAAQ,YAAa,IAAMqiK,EAAaj2J,UAI9E8/E,SAAS6yE,EAAUqD,GAEtB,gBAEQpD,mBAAqB,wCACrBC,kBAAoB,4CACpBqD,yBAA0B,4BAC1BC,yBAA2B,gCAC3BC,cAAgB,iCAChBC,mBAAqBvlK,KAAKshI,mBAC1BA,cAAgB,SAASr+B,EAASwiD,EAAWp/C,OAC1CoX,EAAOxa,EAAQ0V,QAAQtS,MAEvBrmG,KAAKolK,yBAAyB1iK,KAAK+6G,KAC9Bz9G,KAAKslK,cAAc5iK,KAAK+6G,KAAUz9G,KAAKqlK,yBAAyB3iK,KAAK+6G,SAC/D,OAGX6kB,EAAKtiI,KAAKulK,mBAAmBtiE,EAASwiD,EAAWp/C,UAEhDi8B,GAAMtiI,KAAKslK,cAAc5iK,KAAK+6G,GACxB,QAEJ6kB,QAGNf,mBAAqB,SAASt+B,EAASwiD,EAAWp/C,EAAKm/D,OA4BpDp9J,EA3BAq1G,EAAOxa,EAAQ0V,QAAQtS,MAEvBrmG,KAAKslK,cAAc5iK,KAAK+6G,UACjBz9G,KAAKylK,sBAAsBxiE,EAASwa,EAAMpX,MAEjDj+F,EAAQq1G,EAAKr1G,MAAMpI,KAAK8hK,oBACjB,KACHjkK,EAAIuK,EAAMkB,SAEVlB,EAAM,UACCpI,KAAKkiK,oBAAoBj/D,EAAS76F,EAAM,GAAIi+F,EAAKxoG,OAExD8zC,EAAQsxD,EAAQo+B,oBAAoBh7B,EAAKxoG,EAAIuK,EAAM,GAAGvJ,OAAQ,UAE9D8yC,IAAUA,EAAMo3D,gBACZy8D,IACQxlK,KAAK0lK,gBAAgBziE,EAASoD,GAClB,OAAbo/C,MACC,OAGT9zG,KAGO,cAAd8zG,IAGAr9I,EAAQq1G,EAAKr1G,MAAMpI,KAAK+hK,oBACjB,CACHlkK,EAAIuK,EAAMkB,MAAQlB,EAAM,GAAGvJ,cAE3BuJ,EAAM,GACCpI,KAAKmiK,oBAAoBl/D,EAAS76F,EAAM,GAAIi+F,EAAKxoG,GAErDolG,EAAQo+B,oBAAoBh7B,EAAKxoG,aAI3C6nK,gBAAkB,SAASziE,EAASoD,WACjCoX,EAAOxa,EAAQ0V,QAAQtS,GACvBs/D,EAAcloD,EAAKtzG,OAAO,MAC1B22G,EAAWza,EACX0a,EAActD,EAAK5+G,OAEnBmiH,KADQ,EAERguB,EAAS/rC,EAAQmJ,cACZ/F,EAAM2oC,GAAQ,KAEfte,KADGztB,EAAQ0V,QAAQtS,IACLl8F,OAAO,cACrBumH,MAECi1C,EAAcj1C,YAEfk1C,EAAW5lK,KAAKuhI,mBAAmBt+B,EAAS,MAAOoD,MAEnDu/D,EAAU,IACNA,EAASj3J,MAAM03F,KAAOya,WAEf8kD,EAAS78D,gBACV68D,EAAS12J,IAAIm3F,YACZs/D,GAAej1C,UAIrBrqB,UAGN,IAAIvmF,EAAMghG,EAAUC,EAAaC,EAAQ/d,EAAQ0V,QAAQqI,GAAQniH,cAEvE4mK,sBAAwB,SAASxiE,EAASwa,EAAMpX,WAC7C0a,EAActD,EAAKtzG,OAAO,QAC1B6kI,EAAS/rC,EAAQmJ,YACjB0U,EAAWza,EAEXsP,EAAK,uCACLl4E,EAAQ,IACH4oE,EAAM2oC,GAAQ,GACZ/rC,EAAQ0V,QAAQtS,OACnB1kG,EAAIg0G,EAAGxoG,KAAKswG,MACX97G,IACDA,EAAE,YAGD87B,YAGI4oE,EACAya,SACF,IAAIhhG,EAAMghG,EAAUC,EAFlB1a,EAEuCoX,EAAK5+G,UAI9D6G,KAAKm8J,EAAS99J,cAIjB+hF,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,0BAA0B,6BAA6B,SAASP,EAAU/wE,EAAS+f,OAGpQi7D,EAAMjK,EAAS,cACfq+C,EAAWr+C,EAAS,UAAUyuC,KAC9BrI,EAAiBpmC,EAAS,0BAA0B0/E,mBACpDC,EAAuB3/E,EAAS,4BAA4B2/E,qBAC5Dv1C,EAAkBpqC,EAAS,sBAAsBoqC,gBACjDm2C,EAAiBvgF,EAAS,oBAAoBu8E,SAC9CrI,EAAel0E,EAAS,2BAA2Bk0E,aAEnDzlC,EAAO,gBACFrI,eAAiBA,OACjBo6C,SAAW,IAAIb,OACfvuC,WAAa,IAAIhH,OACjBmZ,aAAe,IAAIg9B,KAExB72E,SAAS+kC,EAAM4P,GAElB,gBAEQ7N,kBAAoB,SAAS1xH,EAAOq5G,EAAMsY,OACvCrF,EAAS1wH,KAAKywH,WAAWhT,GAEhB,SAATr5G,IACYq5G,EAAKr1G,MAAM,wBAET2tH,WAIXrF,QAGNsF,aAAe,SAAS5xH,EAAOq5G,EAAMjtD,UAC/BxwD,KAAK8lK,SAAS9vC,aAAavY,EAAMjtD,SAGvCylE,YAAc,SAAS7xH,EAAOunF,EAAK0a,QAC/By/D,SAAS7vC,YAAYtqC,EAAK0a,SAG9B6vB,aAAe,SAASjzB,OACrB8iE,EAAS,IAAIvM,EAAa,CAAC,OAAQ5nJ,GAA2B,uBAC3D+oJ,iBAAiB13D,EAAQ6f,iBAEzBlf,GAAG,YAAY,SAAS1iG,KACnBwmI,eAAexmI,EAAEuE,WAGtBm+F,GAAG,aAAa,aACXikC,sBAGLk+B,QAIN9uC,IAAM,iBACZvxH,KAAKquH,EAAKhwH,aAELgwH,KAAOA,KC7TfjuC,IAAID,OAAO,gCAAgC,CAAC,UAAU,UAAU,SAAS,cAAc,kCAAkC,SAASP,EAAU/wE,EAAS+f,OAGjJi7D,EAAMjK,EAAS,cACf6lC,EAAqB7lC,EAAS,0BAA0B6lC,mBAExD66C,EAAqB,gBAChB56C,OAAS,CACVz8G,MAAU,CACN,CACI26G,MAAQ,UACRljC,MAAQ,QACT,CACCkjC,MAAQ,cACRljC,MAAQ,6BACR,CACAkjC,MAAQ,cACRljC,MAAQ,qBACT,CACCkjC,MAAO,WACPljC,MAAO,cACR,CACCkjC,MAAO,oBACPljC,MAAO,wBACR,CACCkjC,MAAO,CAAC,WAAY,WACpBljC,MAAO,0BACT,CACEkjC,MAAO,CAAC,WAAY,WACpBljC,MAAO,wBACR,CACCkjC,MAAQ,mBACRljC,MAAQ,eACT,CACCkjC,MAAQ,mBACRljC,MAAQ,gBACT,CACCkjC,MAAQ,SACRljC,MAAQ,sCACT,CACCkjC,MAAQ,SACRljC,MAAQ,iBACRqjC,QAAS,SAASvgH,EAAK9E,EAAO+lH,EAAO1M,OAC7BiT,EAAS,OAAOvjH,KAAKswG,GAAM,UAC3B0M,EAAMtrH,OAAS,IACTC,KAAKkB,KAAK+8D,QAEV,GAAK,WAGXotD,EAAMtrH,OAAS,IACTC,KAAK4xH,EAAO7xH,UAGZ,GAAK6xH,EAAO7xH,OAEfmB,KAAKspH,OAEhBvsD,KAAO,YACR,CACCusD,MAAQ,SACRljC,MAAQ,sCACT,CACCkjC,MAAQ,mBACRljC,MAAQ,0EACT,CACCkjC,MAAQ,mBACRljC,MAAQ,+CACT,CACCkjC,MAAQ,4BACRljC,MAAQ,qDACT,CACCkjC,MAAQ,eACRljC,MAAQ,SACT,CACCkjC,MAAQ,eACRljC,MAAQ,WACT,CACCkjC,MAAQ,OACRljC,MAAQ,qBAGhB6/E,SAAa,CACT,CACI38C,MAAQ,SACRljC,MAAQ,SACT,CACCkjC,MAAQ,SACRljC,MAAQ,OACRqjC,QAAS,SAASvgH,EAAK9E,EAAO+lH,UACVA,EAAM,IAELjhH,EAAIrK,aACZk+D,KAAO,UACN51D,OAAO,SAGR41D,KAAO,WAET/8D,KAAKspH,OAEhBvsD,KAAO,YACR,CACCusD,MAAQ,SACRljC,MAAQ,aAGf4lC,oBAILh9B,SAASg3E,EAAoB76C,KAEzB66C,mBAAqBA,KAG7BlgF,IAAID,OAAO,kCAAkC,CAAC,UAAU,UAAU,SAAS,cAAc,SAASP,EAAU/wE,EAAS+f,OAGjHxU,EAAQwlE,EAAS,YAAYxlE,MAE7BmlJ,EAAuB,cAE1B,gBAEQjvC,aAAe,SAASvY,EAAMjtD,WACzB,QAAQ9tD,KAAK+6G,IAGZ,SAAS/6G,KAAK8tD,SAGpBylE,YAAc,SAAStqC,EAAK0a,OAEzBj+F,EADOujF,EAAIgtB,QAAQtS,GACNj+F,MAAM,gBAElBA,SAAc,MAEfm+F,EAASn+F,EAAM,GAAGvJ,OAClByxH,EAAe3kC,EAAI4kC,oBAAoB,CAAClqB,IAAAA,EAAUE,OAAAA,QAEjD+pB,GAAgBA,EAAajqB,KAAOA,SAAY,MAEjDqqB,EAAS1wH,KAAKywH,WAAW9kC,EAAIgtB,QAAQ2X,EAAajqB,QAClDvjG,QAAQ,IAAIgd,EAAMumF,EAAK,EAAGA,EAAKE,EAAO,GAAImqB,SAG7CD,WAAa,SAAShT,UAChBA,EAAKr1G,MAAM,QAAQ,MAG/B1C,KAAKu/J,EAAqBlhK,aAErBkhK,qBAAuBA,KAG/Bn/E,IAAID,OAAO,0BAA0B,CAAC,UAAU,UAAU,SAAS,cAAc,6BAA6B,cAAc,SAASP,EAAU/wE,EAAS+f,OAGpJi7D,EAAMjK,EAAS,iBACf4/E,EAAe5/E,EAAS,eAAeu8E,SACvC/hJ,EAAQwlE,EAAS,eAAexlE,MAEhC+hJ,EAAWttJ,EAAQstJ,SAAW,eAC9B7yE,SAAS6yE,EAAUqD,GAEtB,gBAEQ3jC,mBAAqB,SAASt+B,EAASwiD,EAAWp/C,OAC/C10D,EAAQ3xC,KAAKgiK,iBAAiB/+D,EAASoD,MACvC10D,SACOA,MAEPgkE,EAAK,KACL8H,EAAOxa,EAAQ0V,QAAQtS,GACvB47D,EAAaxkD,EAAKtzG,OAAOwrG,UACzBssD,GAAwC,KAApBxkD,EAAKwkD,YAGzBlhD,EAActD,EAAK5+G,OACnBmwI,EAAS/rC,EAAQmJ,YACjB0U,EAAWza,EACX2a,EAAS3a,IAEJA,EAAM2oC,GAAQ,KAEflwH,KADGmkF,EAAQ0V,QAAQtS,IACNl8F,OAAOwrG,UAEpB72F,MAGe,KAAf2+F,EAAK3+F,WAGAunF,MAGT2a,EAASF,EAAU,KACfG,EAAYhe,EAAQ0V,QAAQqI,GAAQniH,cACjC,IAAIihB,EAAMghG,EAAUC,EAAaC,EAAQC,WAGnDqgB,cAAgB,SAASr+B,EAASwiD,EAAWp/C,OAC1CoX,EAAOxa,EAAQ0V,QAAQtS,GACvBqqB,EAASjT,EAAKtzG,OAAO,MACrB8rD,EAAOgtC,EAAQ0V,QAAQtS,EAAM,GAC7B72C,EAAOyzC,EAAQ0V,QAAQtS,EAAM,GAC7B6/D,EAAa12G,EAAKrlD,OAAO,MACzBg8J,EAAalwG,EAAK9rD,OAAO,aAEzBumH,WACQnY,YAAYlS,EAAM,OAAK6/D,GAAmBA,EAAaC,EAAa,QAAU,GAC/E,UAEPD,MACIx1C,GAAUy1C,GAA8B,KAAhB1oD,EAAKiT,IAAkC,KAAhBz6D,EAAKy6D,YAC5CnY,YAAYlS,EAAM,GAAK,KACvBkS,YAAYlS,EAAM,GAAK,GACxB,gBAEJ6/D,GAAcx1C,GAA0B,KAAhBjT,EAAKiT,IAAkC,KAAhBlhE,EAAKkhE,QACvDztB,EAAQ0V,QAAQtS,EAAM,GAAGl8F,OAAO,eACxBouG,YAAYlS,EAAM,GAAK,UACvBkS,YAAYlS,EAAM,GAAK,GACxB,YAKHkS,YAAYlS,EAAM,OAD1B6/D,GAAmBA,EAAax1C,EACD,QAEA,GAE/BA,EAASy1C,EACF,QAEA,KAGhBzgK,KAAKm8J,EAAS99J,cAIjB+hF,IAAID,OAAO,gBAAgB,CAAC,UAAU,UAAU,SAAS,cAAc,gBAAgB,gCAAgC,kCAAkC,4BAA4B,SAASP,EAAU/wE,EAAS+f,OAG7Mi7D,EAAMjK,EAAS,cACfq+C,EAAWr+C,EAAS,UAAUyuC,KAC9BiyC,EAAqB1gF,EAAS,0BAA0B0gF,mBACxDf,EAAuB3/E,EAAS,4BAA4B2/E,qBAC5DpD,EAAWv8E,EAAS,oBAAoBu8E,SAExC9tC,EAAO,gBACFrI,eAAiBs6C,OACjBF,SAAW,IAAIb,OACfp8B,aAAe,IAAIg5B,OACnBnrC,WAAa12H,KAAKg0H,qBAEvBhlC,SAAS+kC,EAAM4P,GAElB,gBAEQ5S,iBAAmB,CAAC,IAAK,WAEzB+E,kBAAoB,SAAS1xH,EAAOq5G,EAAMsY,OACvCrF,EAAS1wH,KAAKywH,WAAWhT,GAEhB,SAATr5G,IACYq5G,EAAKr1G,MAAM,wBAET2tH,WAIXrF,QAGNsF,aAAe,SAAS5xH,EAAOq5G,EAAMjtD,UAC/BxwD,KAAK8lK,SAAS9vC,aAAavY,EAAMjtD,SAGvCylE,YAAc,SAAS7xH,EAAOunF,EAAK0a,QAC/By/D,SAAS7vC,YAAYtqC,EAAK0a,SAI9B4wB,IAAM,iBACZvxH,KAAKquH,EAAKhwH,aAELgwH,KAAOA,oCCrRE,SAASnvC,OAEZwhF,EAAmB,cAGMC,MAIzBD,EAAiBC,UACZD,EAAiBC,GAAU9xJ,YAG/BqxE,EAASwgF,EAAiBC,GAAY,CACzC9xJ,QAAS,GACTd,GAAI4yJ,EACJC,QAAQ,YAIDD,GAAU3gK,KAAKkgF,EAAOrxE,QAASqxE,EAAQA,EAAOrxE,QAASgyJ,KAGxDD,QAAS,EAGT1gF,EAAOrxE,iBAKKvP,EAAI4/E,IAGJ/jF,EAAIulK,IAGJniK,EAAI,GAGjBsiK,EAAoB,GAxCpB,CA2CP,CAEJ,SAAS3gF,EAAQxpE,EAASmqJ,UA0BxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDokK,EAAoBD,EAAoB,GACxCE,EAAeF,EAAoB,GACnCG,EAAWH,EAAoB,GAC/BI,EAAcJ,EAAoB,eACvBngH,EAAMn0C,EAAS20J,OACtBC,EAAiB,KACjBC,EAAgB,SAAUr8J,EAAMs8J,GAC5BH,KACSn8J,EAAMs8J,GAEfF,KACeG,MAAMv8J,EAAMs8J,IAG/BE,EAAsC,mBAAbL,EAA2BE,EAAgB,KACpEI,GAAiB,KACjBj1J,EAAS,GACoC,kBAApBA,EAAQkjD,SAAyBljD,EAAQkjD,YAC9DgyG,EAAkD,kBAA1Bl1J,EAAQk1J,eAA+Bl1J,EAAQk1J,eACvED,GAAkBC,QACD,IAAIX,EAAkBY,gBACxB3tD,OAAS0tD,IAChBhyG,SAAU,IACD2xG,OAOrBO,EAJAC,GAAW,EACXr1J,GAAyC,iBAAvBA,EAAQs1J,eACS,WAAvBt1J,EAAQs1J,cAGpBt1J,GAAkC,kBAAhBA,EAAQu1J,KAAqBv1J,EAAQu1J,IAC9C,IAAIf,EAAagB,UAAUrhH,EAAMn0C,EAASg1J,GAG1C,IAAIP,EAASgB,OAAOthH,EAAMn0C,EAASg1J,OAG5CU,EADUL,EAAWD,EAAOO,cAAgBP,EAAOQ,qBAEnDX,GAAkBL,MACdiB,SAAWjB,EAAeiB,UAE9BT,EAAOzxJ,OAAOq1G,WACVA,OAASo8C,EAAOp8C,QAEpBo8C,EAAOzxJ,OAAOmyJ,aACVx3J,OAAS82J,EAAOW,aAAaz3J,QAE9Bo3J,IAEH7zJ,MAAQm0J,IAMRL,qBALaxhH,EAAMn0C,EAAS20J,OAC5BsB,EAAiBj2J,GAAW,YACjBs1J,WAAa,SACrBU,EAAM7hH,EAAM8hH,EAAgBtB,MAQ/BiB,qBALazhH,EAAMn0C,EAAS20J,OAC5BsB,EAAiBj2J,GAAW,YACjBs1J,WAAa,SACrBU,EAAM7hH,EAAM8hH,EAAgBtB,MA2B/BuB,kBAxBU/hH,EAAMn0C,EAAS20J,OAEzB18C,EADA6Q,EAAY,IAAI4rC,EAAYz7C,UAAU9kE,EAAMn0C,KAEvC,cAEQ,KACLq3G,EAAQyR,EAAUqtC,mBACjB9+C,QAGDs9C,MACQA,EAASt9C,MAEdxqH,KAAKwqH,UAGbpoH,KACO8mK,aAAaK,SAASnnK,UAEhC65H,EAAUitC,aAAaD,aAChBx3J,OAASwqH,EAAUxqH,UAEvB25G,OAGPo+C,EAAW/B,EAAoB,KAC3BgC,OAASD,EAASC,SAElBzD,QAAU,SAKb,SAASl/E,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDkmK,EAAW/B,EAAoB,GAC/Ba,EAAkB,6BAET3tD,QAAS,OACTquD,SAAW,QACX39C,MAAQ,QACRq+C,QAAU,QACVC,SAAW,YAEL1kK,UAAU2kK,oBAAsB,SAAUj+J,EAAMs8J,MAGvDt8J,EAAKvL,OAASopK,EAASC,OAAOI,gBAAuC,IAArBl+J,EAAKgjF,KAAK5uF,OAAc,SACpE+pK,EAAgB,GACX/qK,EAAImC,KAAKwoK,QAAQ3pK,OAAS,EAAGhB,GAAK,IAAKA,EAAG,KAC3CgrK,EAAQ7oK,KAAKwoK,QAAQ3qK,GACrBkpK,EAAS73J,IAAIY,QAAU+4J,EAAMl6J,UACfq8G,QAAQ69C,EAAM1zG,cACvBqzG,QAAQrhK,OAAOtJ,EAAG,QAClB4qK,SAASthK,OAAOtJ,EAAG,IAG5B+qK,EAAc/pK,WACT+pK,cAAgBA,OAIlB7kK,UAAU+kK,qBAAuB,SAAU/B,OAClDgC,EAAmB,MACnB/oK,KAAKyoK,SAAS5pK,OAAS,EAAG,SACjBhB,EAAImC,KAAKyoK,SAAS5pK,OAAS,EAAGhB,GAAK,IAAKA,EAAG,KAC5CmrK,EAAUhpK,KAAKyoK,SAAS5qK,GACxBmrK,EAAQr6J,OAASo4J,EAAS73J,IAAIY,UACbk7G,QAAQg+C,EAAQ7zG,qBAGpCszG,SAAS5pK,OAAS,EAChBkqK,MAEPF,EAAQ7oK,KAAKmqH,MAAMnqH,KAAKmqH,MAAMtrH,OAAS,MACvCgqK,GAASA,EAAMp+J,KAAKs+J,iBAAkB,KAClCE,EAAeJ,EAAMp+J,KAAKs+J,iBAAiB,GAC3CE,GAAgBA,EAAat3H,MAAM,IAAMo1H,EAAS73J,IAAIY,WACnC+4J,EAAMp+J,KAAKs+J,wBACvBF,EAAMp+J,KAAKs+J,yBAGnBA,KAEIhlK,UAAUmlK,oBAAsB,SAAUnC,WAEjDn8J,EADAu+J,EAAkB,GAEfnpK,KAAKmqH,MAAMtrH,OAAS,IACnBgqK,EAAQ7oK,KAAKmqH,MAAMnqH,KAAKmqH,MAAMtrH,OAAS,KAC9BgqK,EAAMl6J,OAASo4J,EAASp4J,MAAMmB,UAC9B+4J,EAAMp+J,UACV0/G,MAAMr7G,SAMflE,EAAQ,SAEC/M,GADG+M,EAAOu+J,gBAAkBv+J,EAAOu+J,gBAAgBtqK,OAAS,GAChD,EAAGhB,GAAK,IAAKA,EAAG,KAC7Bs3D,EAAUvqD,EAAOu+J,gBAAgBtrK,GACjCs3D,EAAQxjB,MAAM,IAAMo1H,EAASp4J,MAAMmB,WACnBk7G,QAAQ71D,KACjBg0G,gBAAgBhiK,OAAOtJ,EAAG,WAGrC+M,EAAOu+J,iBAAqD,IAAlCv+J,EAAOu+J,gBAAgBtqK,eAC1C+L,EAAOu+J,gBAEXA,MAEFtrK,EAAImC,KAAKwoK,QAAQ3pK,OAAS,EAAGhB,GAAK,IAAKA,EAAG,KAC3CgrK,GAAAA,EAAQ7oK,KAAKwoK,QAAQ3qK,IACf8Q,OAASo4J,EAASp4J,MAAMmB,WACdk7G,QAAQ69C,EAAM1zG,cACzBqzG,QAAQrhK,OAAOtJ,EAAG,WAGxBsrK,KAEIplK,UAAUqlK,UAAY,SAAU3+J,EAAMs8J,QAC7Ct8J,EAAKvL,OAASopK,EAASC,OAAOc,SAAW5+J,EAAKgjF,KAAK5uF,OAAS,SAG3D6pK,oBAAoBj+J,EAAMs8J,OAC3BgC,EAAmB/oK,KAAK8oK,qBAAqB/B,GAC7CoC,EAAkBnpK,KAAKkpK,oBAAoBnC,GAC3CoC,EAAgBtqK,OAAS,MACpBsqK,gBAAkBA,GAEvBJ,EAAiBlqK,OAAS,MACrBkqK,iBAAmBA,QAEvB5+C,MAAMrrH,KAAK,CACZ2L,KAAAA,EACAkE,MAAOo4J,EAASp4J,MAAMmB,aAGf/L,UAAUulK,aAAe,SAAU7+J,EAAMs8J,OAChD18J,EAAyB,MAAjBI,EAAKvL,KAAK,GAAc,OAAS,QACzCi2D,EAAU,CACVj2D,KAAMmL,EACNjI,MAAOqI,EAAKrI,UAEZqI,EAAKknC,UACGA,MAAQlnC,EAAKknC,OAErBlnC,EAAK8+J,QACGA,IAAM9+J,EAAK8+J,UAElBzB,SAAShpK,KAAKq2D,GACfn1D,KAAKy5G,OAAQ,KACTovD,EAAQ,CACR1zG,QAAS,CACLj2D,KAAMmL,EACNjI,MAAOqI,EAAKrI,MACZuvC,MAAO,CAACo1H,EAASp4J,MAAMmB,OAAQi3J,EAAS73J,IAAIY,SAEhDnB,MAAOo4J,EAASp4J,MAAMmB,QAEtBrF,EAAK8+J,QACCp0G,QAAQo0G,IAAM9+J,EAAK8+J,OAExBrqK,KAAOmL,OACPm+J,QAAQ1pK,KAAK+pK,QACbJ,SAAS3pK,KAAK+pK,OAGZ9kK,UAAUijK,MAAQ,SAAUv8J,EAAMs8J,GAC3B,gBAAdt8J,EAAKvL,MAGc,iBAAduL,EAAKvL,UAFLoqK,aAAa7+J,EAAMs8J,GAKnB/mK,KAAKy5G,aACL2vD,UAAU3+J,EAAMs8J,IAGtByC,EA/IW,KAiJdpC,eAAiBA,GAKpB,SAASxhF,EAAQxpE,UAGf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAC9CmmK,OAAS,CACbkB,qBAAsB,uBACtBC,kBAAmB,oBACnBC,gBAAiB,kBACjBC,aAAc,eACdC,wBAAyB,0BACzBC,gBAAiB,kBACjBnB,eAAgB,iBAChBoB,iBAAkB,mBAClBC,eAAgB,iBAChBC,eAAgB,iBAChBC,YAAa,cACbC,UAAW,YACXC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,sBAAuB,wBACvBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,eAAgB,iBAChBC,qBAAsB,uBACtBC,yBAA0B,2BAC1BC,uBAAwB,yBACxBC,gBAAiB,kBACjBC,oBAAqB,sBACrBC,aAAc,eACdC,eAAgB,iBAChBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,WAAY,aACZC,YAAa,cACbC,kBAAmB,oBACnBC,uBAAwB,yBACxBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,QAAS,UACTC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,aAAc,eACdC,iBAAkB,mBAClBC,cAAe,gBACfC,iBAAkB,mBAClBC,cAAe,gBACf9C,QAAS,UACT+C,SAAU,WACVC,YAAa,cACbC,gBAAiB,kBACjBC,mBAAoB,qBACpBC,cAAe,gBACfC,MAAO,QACPC,WAAY,aACZC,gBAAiB,kBACjBC,yBAA0B,2BAC1BC,gBAAiB,kBACjBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,eAAgB,iBAChBC,aAAc,eACdC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,eAAgB,iBAChBC,cAAe,gBACfC,gBAAiB,oBAMhB,SAAS5nF,EAAQxpE,EAASmqJ,OAKvBkH,EADJC,EAAa1tK,MAAQA,KAAK0tK,YACtBD,EAAgBthK,OAAOwhK,gBACtB,CAAEzhK,UAAW,cAAgBnK,OAAS,SAAU2B,EAAGhC,KAAOwK,UAAYxK,IACvE,SAAUgC,EAAGhC,WAAcH,KAAKG,EAAOA,EAAE2a,eAAe9a,OAAMA,GAAKG,EAAEH,KAClE,SAAUmC,EAAGhC,qBAEK7B,YAAc6D,IADrBA,EAAGhC,KAEfqC,UAAkB,OAANrC,EAAayK,OAAOC,OAAO1K,MAASqC,UAAYrC,EAAEqC,UAAW,IAAIxE,YAGhFkP,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDwrK,EAAcrH,EAAoB,GAClCsH,EAAUtH,EAAoB,GAC9BuH,EAAevH,EAAoB,GACnCwH,EAAOxH,EAAoB,GAC3BG,EAAWH,EAAoB,GAC/ByH,EAAUzH,EAAoB,IAC9B0H,EAAmB1H,EAAoB,eAIV2H,OACzBC,SACID,EAAYhvK,WACX4uK,EAAaM,UAAUC,gBACfH,EACUpoK,gBAElBgoK,EAAaM,UAAUE,sBACpBtpF,EAAKkpF,IACOK,EAAwBvpF,EAAGwpF,WAAa,IACpDD,EAAwBvpF,EAAGl/E,iBAE9BgoK,EAAaM,UAAUK,wBACpBC,EAAOR,IACKK,EAAwBG,EAAKl0J,QAAU,IACnD+zJ,EAAwBG,EAAK9yH,iBAMlCuyH,IAxBHQ,UAAU,KAAwB,kBAClCA,UAAU,KAAkB,cAyBhClH,EAAa,SAAUmH,cAEJxoH,EAAMn0C,EAAS20J,UACvBgI,EAAOlpK,KAAK1F,KAAMomD,EAAMn0C,EAAS20J,IAAa5mK,cAF/C6uK,EAAWD,KAIX7qK,UAAU+qK,uBAAyB,kBAClC9uK,KAAKoI,MAAM,KAAOpI,KAAK+uK,eAAiBH,EAAO7qK,UAAU+qK,uBAAuBppK,KAAK1F,SAEtF+D,UAAUirK,SAAW,gBAEtBC,QAAQ3lK,MAAQtJ,KAAKkvK,YAAY5lK,WACjC2lK,QAAQxsB,WAAaziJ,KAAKkvK,YAAYzxD,UACtCwxD,QAAQE,UAAYnvK,KAAKkvK,YAAY5lK,MAAQtJ,KAAKkvK,YAAY3oE,UAE7DxiG,UAAUqrK,UAAY,gBAEvBC,eAECtrK,UAAUurK,WAAa,gBACxBN,gBACAO,UAAU,KAEXvvK,KAAK4V,OAAOq1G,aACPA,OAAOn8G,SAGV/K,UAAUyrK,cAAgB,uBAC3BC,kBACE,CACHnmK,MAAOtJ,KAAKivK,QAAQ3lK,MACpBm0G,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,cAGxCprK,UAAU2rK,mBAAqB,iBAC9B,CACHpmK,MAAOtJ,KAAKivK,QAAQ3lK,MACpBm0G,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,cAGxCprK,UAAU4rK,gBAAkB,SAAU3+C,WACxCl/F,EAAS,IACT89I,GAAQ,EACRC,GAAa,EACbC,GAAU,EACV5vG,GAAM,GACFlgE,KAAKivK,QAAQc,OAASH,IAAUC,GAAY,KAC5Ct0D,EAAKv7G,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,UACtCiyG,IAAOyV,aAGU,MAAPzV,KACJA,IACRv7G,KAAKivK,QAAQ3lK,OACVumK,SACO/9I,EAAOjzB,aACN,IAEiB,MAAP08G,aAEV,EACGu0D,SAEc,MAAPv0D,IACQqyD,EAAYoC,UAAUC,eAAe10D,EAAGhmD,WAAW,MACxDu6G,IAAY5vG,sBAIlB0vG,SAAuBhC,EAAYoC,UAAUC,eAAe10D,EAAGhmD,WAAW,aACvDq4G,EAAYoC,UAAUE,WAAW30D,EAAGhmD,WAAW,SAKtFq6G,GAASC,GAAc/9I,EAAOjzB,OAAS,EAAG,KAEtCkS,EAAM+gB,EAAOzgB,OAAO,EAAGygB,EAAOjzB,OAAS,GACvCixK,GAAW/+J,EAAIlS,OAAS,IACf2M,OAAOkrD,aAAatgD,SAASrF,EAAIM,OAAO,GAAI,KAEhD6uD,GAAOnvD,EAAIlS,OAAS,IAChB2M,OAAOkrD,aAAatgD,SAAS,IAAMrF,EAAIM,OAAO,GAAI,KAErDy+J,GAAY5vG,IAAO+tG,EAAiBkC,cAAcp/J,OAC/Ck9J,EAAiBkC,cAAcp/J,WAGzC+gB,KAGD/tB,UAAUqsK,OAAS,eACrBC,EAAKrwK,KAAKivK,QAAQ9/I,OAAOomC,WAAWv1D,KAAKivK,QAAQ3lK,UAE1C,KAAP+mK,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,MAAPA,GAAqB,MAAPA,QAExE,CACHnxK,KAAM,EACNkD,MAHAA,EAAQpC,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,SAIzCm5I,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAO3O,KAAKivK,QAAQ3lK,MAAQ,EAC5B4F,IAAKlP,KAAKivK,QAAQ3lK,UAIf,KAAP+mK,GAAoB,KAAPA,EAAW,SACpB1hK,EAAQ3O,KAAKivK,QAAQ3lK,MACrB0nH,EAAQhxH,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,SACzCyH,EAAM,IACF/Q,KAAKivK,QAAQc,QACbx0D,EAAKv7G,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,YAC/B0nH,MAGK,MAAPzV,EACEv7G,KAAK2vK,gBAAgB3+C,GAGrBzV,QAGR,CACHr8G,KAAM,EACNkD,MAAO2O,EACP0xI,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAAA,EACAO,IAAKlP,KAAKivK,QAAQ3lK,UAIf,KAAP+mK,EAAW,KACPC,EAAKtwK,KAAKivK,QAAQ9/I,OAAOomC,WAAWv1D,KAAKivK,QAAQ3lK,MAAQ,GACzDnL,EAAK6B,KAAKivK,QAAQ9/I,OAAOomC,WAAWv1D,KAAKivK,QAAQ3lK,MAAQ,GACzDlH,EAAgB,KAAPkuK,GAAoB,KAAPnyK,EAAa,MAAQ,WAC3CwQ,EAAQ3O,KAAKivK,QAAQ3lK,WACpB2lK,QAAQ3lK,OAASlH,EAAMvD,OACrB,CACHK,KAAM,EACNkD,MAAAA,EACAqgJ,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAAA,EACAO,IAAKlP,KAAKivK,QAAQ3lK,UAIf,KAAP+mK,QAEO,CACHnxK,KAAM,GACNkD,MAAO,GACPqgJ,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAO3O,KAAKivK,QAAQ3lK,MACpB4F,IAAKlP,KAAKivK,QAAQ3lK,UAItBskK,EAAYoC,UAAUO,kBAAkBF,IAAe,KAAPA,EAAY,KACxD1hK,EAAQ3O,KAAKivK,QAAQ3lK,QACvBtJ,KAAKivK,QAAQ3lK,OACPtJ,KAAKivK,QAAQc,OAAO,KACpBx0D,EAAKv7G,KAAKivK,QAAQ9/I,OAAOomC,WAAWv1D,KAAKivK,QAAQ3lK,UACjDskK,EAAYoC,UAAUQ,iBAAiBj1D,IAAe,KAAPA,IAC7Cv7G,KAAKivK,QAAQ3lK,cAEH,KAAPiyG,UAEHv7G,KAAKivK,QAAQ3lK,aAOhB,CACHpK,KAAM,IACNkD,MAHKpC,KAAKivK,QAAQ9/I,OAAOnsB,MAAM2L,EAAO3O,KAAKivK,QAAQ3lK,OAInDm5I,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAAA,EACAO,IAAKlP,KAAKivK,QAAQ3lK,cAGnBtJ,KAAKivK,QAAQwB,SAEd1sK,UAAU2sK,aAAe,gBAC1BjB,uBACAP,YAAY5lK,MAAQtJ,KAAKivK,QAAQ3lK,WACjC4lK,YAAYzxD,KAAOz9G,KAAKivK,QAAQxsB,gBAChCysB,YAAY3oE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,cACxD7lD,EAAQtpH,KAAKowK,qBACZO,WAAWrnK,MAAQtJ,KAAKivK,QAAQ3lK,WAChCqnK,WAAWlzD,KAAOz9G,KAAKivK,QAAQxsB,gBAC/BkuB,WAAWpqE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,UACvDnvK,KAAK4V,OAAOq1G,aACPA,OAAOnsH,KAAKkB,KAAK4wK,aAAatnD,IAEhCA,KAEDvlH,UAAU8sK,YAAc,gBACzB3B,YAAY5lK,MAAQtJ,KAAKivK,QAAQ3lK,WACjC4lK,YAAYzxD,KAAOz9G,KAAKivK,QAAQxsB,gBAChCysB,YAAY3oE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,kBACxDxgK,EAAQ3O,KAAKivK,QAAQ3lK,MACrBypB,EAAO,IACH/yB,KAAKivK,QAAQc,OAAO,KACpBx0D,EAAKv7G,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,UAC/B,MAAPiyG,GAAqB,MAAPA,UAGhBv7G,KAAKivK,QAAQ3lK,SACPiyG,EACJqyD,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,QACnDv1D,KAAKivK,QAAQxsB,WACJ,OAAPlnC,GAA2D,OAA5Cv7G,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,UAC9CtJ,KAAKivK,QAAQ3lK,WAEd2lK,QAAQE,UAAYnvK,KAAKivK,QAAQ3lK,YAGzCqnK,WAAWrnK,MAAQtJ,KAAKivK,QAAQ3lK,WAChCqnK,WAAWlzD,KAAOz9G,KAAKivK,QAAQxsB,gBAC/BkuB,WAAWpqE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,cACvD7lD,EAAQ,CACRpqH,KAAM,IACNkD,MAAO2wB,EACP0vH,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAWnvK,KAAKivK,QAAQE,UACxBxgK,MAAAA,EACAO,IAAKlP,KAAKivK,QAAQ3lK,cAEjBypB,EAAKl0B,OAAS,GAAMmB,KAAK4V,OAAOq1G,aAC5BA,OAAOnsH,KAAKkB,KAAK4wK,aAAatnD,IAEhCA,KAEDvlH,UAAUgtK,aAAe,eAC3B3sK,EAAQpE,KAAKivK,QAAQ+B,iBACpB/B,QAAQgC,mBACTh7G,EAAOj2D,KAAKowK,qBACXnB,QAAQiC,aAAa9sK,GACnB6xD,KAIDlyD,UAAUwrK,UAAY,SAAUntK,OAClCknH,EAAQtpH,KAAK0wK,eACE,IAAfpnD,EAAMpqH,MAA+BoqH,EAAMlnH,QAAUA,QAChD+uK,qBAAqB7nD,MAIxBvlH,UAAUqtK,SAAW,SAAUhvK,OACjC6zD,EAAOj2D,KAAK+wK,sBACK,IAAd96G,EAAK/2D,MAA+B+2D,EAAK7zD,QAAUA,KAEpD2B,UAAUstK,mBAAqB,eACjC5mK,EAAOzK,KAAKwvK,gBACZlmD,EAAQtpH,KAAK0wK,sBACE,MAAfpnD,EAAMpqH,WACDiyK,qBAAqB7nD,GAEvBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQQ,cAAc/kD,EAAMlnH,WAErD2B,UAAUwtK,oBAAsB,eAClC9mK,EAAOzK,KAAKwvK,gBACZtB,EAAcluK,KAAKqxK,wBACnBrxK,KAAKoxK,SAAS,KAAM,KAChB5C,EAAYN,OACXqB,UAAU,SACXiC,EAASxxK,KAAKqxK,uBACJrxK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQS,kBAAkBE,EAAWgD,YAEtExxK,KAAKoxK,SAAS,UACZpxK,KAAKoxK,SAAS,MAAM,KACnB52J,EAAS0zJ,OACRqB,UAAU,SACX3zH,EAAW57C,KAAKqxK,uBACNrxK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQY,oBAAoBj0J,EAAQohC,WAG3EsyH,KAEDnqK,UAAU0tK,sBAAwB,eAEpCC,EADAjnK,EAAOzK,KAAKwvK,gBAEZmC,EAAa3xK,KAAKqxK,wBAClBrxK,KAAKoxK,SAAS,KAAM,KAChB5C,EAAYmD,OACXpC,UAAU,SACXqC,EAAS5xK,KAAKqxK,uBACFrxK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQS,kBAAkBE,EAAWoD,WAG7DD,SAEbD,KAED3tK,UAAU8tK,+BAAiC,eAC7CpnK,EAAOzK,KAAKwvK,gBACZlmD,EAAQtpH,KAAK0wK,eACE,IAAfpnD,EAAMpqH,WACDiyK,qBAAqB7nD,OAE1BnxD,EAAMn4D,KAAK8xK,YAAYxoD,UACpBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAQriD,EAAMlnH,MAAO+1D,OAEnDp0D,UAAUguK,4BAA8B,eAC1CtnK,EAAOzK,KAAKwvK,qBACXD,UAAU,UACVH,YACDpvK,KAAKoI,MAAM,WACN4pK,cAAc,mEAEnBC,EAAajyK,KAAKkyK,wCACjB5C,aACEtvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQsE,uBAAuBF,OAExDluK,UAAUquK,uBAAyB,kBAClCpyK,KAAKoxK,SAAS,KAAOpxK,KAAK+xK,8BAC7B/xK,KAAKoxK,SAAS,KAAOpxK,KAAKqyK,kBAAoBryK,KAAK6xK,oCAEjD9tK,UAAUuuK,2BAA6B,eACzC7nK,EAAOzK,KAAKwvK,gBACZ1pK,EAAO9F,KAAKyxK,wBACZrvK,EAAQ,YACRpC,KAAKoxK,SAAS,YACT7B,UAAU,OACPvvK,KAAKoyK,0BAEVpyK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQ0E,aAAazsK,EAAM1D,OAEpD2B,UAAUyuK,wBAA0B,eACtC/nK,EAAOzK,KAAKwvK,qBACXD,UAAU,UACVA,UAAU,YACVH,gBACDqD,EAAWzyK,KAAKkyK,wCACf5C,aACEtvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQ6E,mBAAmBD,OAEpD1uK,UAAU4uK,mBAAqB,mBACjC9sK,EAAa,IACT7F,KAAKoxK,SAAS,OAASpxK,KAAKoxK,SAAS,MAAM,KAC3ClgJ,EAAYlxB,KAAKoxK,SAAS,KAAOpxK,KAAKwyK,0BACtCxyK,KAAKsyK,+BACExzK,KAAKoyB,UAEbrrB,KAED9B,UAAU6uK,uBAAyB,eACrCnoK,EAAOzK,KAAKwvK,qBACXD,UAAU,SACXzpK,EAAO9F,KAAKuxK,sBACZ1rK,EAAa7F,KAAK2yK,qBAClBE,EAAc7yK,KAAKoxK,SAAS,YAC5ByB,QACKtD,UAAU,UAEdA,UAAU,KACRvvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQiF,kBAAkBhtK,EAAM+sK,EAAahtK,OAEtE9B,UAAUgvK,wBAA0B,eACtCtoK,EAAOzK,KAAKwvK,wBACXD,UAAU,KACXvvK,KAAKoxK,SAAS,KAAM,MACf7B,UAAU,SACXyD,EAAShzK,KAAKuxK,kCACbhC,UAAU,KACRvvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQoF,kBAAkBD,QAEzDltK,EAAO9F,KAAKuxK,sBACZ1rK,EAAa7F,KAAK2yK,qBAClBE,EAAc7yK,KAAKoxK,SAAS,YAC5ByB,QACKtD,UAAU,UAEdA,UAAU,KACRvvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQiF,kBAAkBhtK,EAAM+sK,EAAahtK,OAEtE9B,UAAUmvK,wBAA0B,eACtCzoK,EAAOzK,KAAK0vK,iCACXD,uBACAkB,WAAWrnK,MAAQtJ,KAAKivK,QAAQ3lK,WAChCqnK,WAAWlzD,KAAOz9G,KAAKivK,QAAQxsB,gBAC/BkuB,WAAWpqE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,UACpDnvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQsF,uBAEjCpvK,UAAUqvK,4BAA8B,eAG1CnB,EAFAxnK,EAAOzK,KAAKwvK,4BACXD,UAAU,KAEXvvK,KAAKoxK,SAAS,QACDpxK,KAAKkzK,+BACb3D,UAAU,YAGVH,cACQpvK,KAAKkyK,iCACb5C,cAEFtvK,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQsE,uBAAuBF,OAExDluK,UAAUsvK,iBAAmB,mBAC/Bt0K,EAAW,IACPiB,KAAKivK,QAAQc,OAAO,KACpBtlK,EAAOzK,KAAK0vK,qBACZpmD,EAAQtpH,KAAK6wK,iBACbvnD,EAAM36G,MAAQ26G,EAAMp6G,IAAK,KACrBipD,EAAMn4D,KAAK8xK,YAAYxoD,GACvB1iG,EAAQ5mB,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQyF,QAAQhqD,EAAMlnH,MAAO+1D,MACxDr5D,KAAK8nB,MAE8B,MAA5C5mB,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,iBAC7Bg7F,EAAYtkG,KAAKozK,gCACZt0K,KAAKwlG,UAMfvlG,KAEDgF,UAAUwvK,uBAAyB,SAAUxnF,WAC/Co+B,EAAQ,IACJnqH,KAAKivK,QAAQc,OAAO,GACrBhxK,SAAWgtF,EAAGhtF,SAAS4X,OAAO3W,KAAKqzK,wBAClC5oK,EAAOzK,KAAK0vK,qBACZtgK,EAAUpP,KAAK+yK,6BACf3jK,EAAQlQ,OAAS4uK,EAAaM,UAAU0E,kBAAmB,KACvDvjD,EAAUngH,KACVmgH,EAAQsjD,YAAa,KACjBjsJ,EAAQ5mB,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQ2F,WAAWjkD,EAAS,GAAI,SACjExwH,SAASD,KAAK8nB,UAGX9nB,KAAKitF,KACN,CAAEthF,KAAAA,EAAY8kH,QAAAA,EAAkBC,QAAS,KAAMzwH,SAAU,OAGlEqQ,EAAQlQ,OAAS4uK,EAAaM,UAAU6E,kBAAmB,GACxDzjD,QAAUpgH,MACTqkK,EAASlF,EAAwBxiF,EAAGwjC,QAAQzpH,SAE5C2tK,IADUlF,EAAwBxiF,EAAGyjC,QAAQ1pH,YAExCksK,cAAc,gDAAiDyB,KAEpEtpD,EAAMtrH,OAAS,SACX+nB,EAAQ5mB,KAAKsxK,SAASvlF,EAAGthF,KAAM,IAAIojK,EAAQ2F,WAAWznF,EAAGwjC,QAASxjC,EAAGhtF,SAAUgtF,EAAGyjC,aACjFrF,EAAMA,EAAMtrH,OAAS,IACvBE,SAASD,KAAK8nB,KACX9X,cAOXi9E,KAEDhoF,UAAUsuK,gBAAkB,eAC9B5nK,EAAOzK,KAAKwvK,gBACZjgD,EAAUvvH,KAAK4yK,yBACf7zK,EAAW,GACXywH,EAAU,SACTD,EAAQsjD,YAAa,KAClB9mF,EAAK/rF,KAAKuzK,uBAAuB,CAAE9oK,KAAAA,EAAY8kH,QAAAA,EAAkBC,QAAAA,EAAkBzwH,SAAAA,MAC5EgtF,EAAGhtF,WACJgtF,EAAGyjC,eAEVxvH,KAAKsxK,SAAS7mK,EAAM,IAAIojK,EAAQ2F,WAAWjkD,EAASxwH,EAAUywH,OAE/DzrH,UAAUgrK,aAAe,WAE3B/uK,KAAK4V,OAAOq1G,aACPA,OAAOn8G,WAEXkgK,eACD5/J,EAAUpP,KAAKqyK,8BACdjD,YACEhgK,KAEDrL,UAAU2vK,oBAAsB,kBAC/B9E,EAAO7qK,UAAU2vK,oBAAoBhuK,KAAK1F,OAASA,KAAKoI,MAAM,MAElEymK,EAzeM,CA0efnI,EAASgB,UACHD,UAAYA,GAKf,SAAS7hF,EAAQxpE,UAGf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAElDuxK,EAAQ,CAERC,wBAAyB,u/MAEzBC,uBAAwB,8yPAEpB7D,UAAY,CAEhB8D,cAAe,SAAUzD,UACbA,EAAK,MAAW7kK,OAAOkrD,aAAa25G,GACxC7kK,OAAOkrD,aAAa,SAAgB,OAAY,KAC5ClrD,OAAOkrD,aAAa,SAAgB,MAAW,QAG3Dq9G,aAAc,SAAU1D,UACL,KAAPA,GAAwB,IAAPA,GAAwB,KAAPA,GAAwB,KAAPA,GAAwB,MAAPA,GACvEA,GAAM,MAAU,CAAC,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,OAAQlwK,QAAQkwK,IAAO,GAGzKS,iBAAkB,SAAUT,UACT,KAAPA,GAAwB,KAAPA,GAAwB,OAAPA,GAA0B,OAAPA,GAGjEE,kBAAmB,SAAUF,UACV,KAAPA,GAAwB,KAAPA,GACpBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KACb,KAAPA,GACCA,GAAM,KAASsD,EAAMC,wBAAwBlxK,KAAK0Z,EAAQ4zJ,UAAU8D,cAAczD,KAE5FG,iBAAkB,SAAUH,UACT,KAAPA,GAAwB,KAAPA,GACpBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KACpBA,GAAM,IAAQA,GAAM,IACb,KAAPA,GACCA,GAAM,KAASsD,EAAME,uBAAuBnxK,KAAK0Z,EAAQ4zJ,UAAU8D,cAAczD,KAG3FJ,eAAgB,SAAUI,UACdA,GAAM,IAAQA,GAAM,IAEhCH,WAAY,SAAUG,UACVA,GAAM,IAAQA,GAAM,IACvBA,GAAM,IAAQA,GAAM,IACpBA,GAAM,IAAQA,GAAM,KAE7B2D,aAAc,SAAU3D,UACZA,GAAM,IAAQA,GAAM,MAO/B,SAASzqF,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClD0rK,EAAevH,EAAoB,GAEnC0M,WAC2BntK,QAClB5G,KAAO4uK,EAAaM,UAAU6E,uBAC9BntK,KAAOA,KAIZmtK,kBAAoBA,MACxBO,WACoBS,EAAgBl1K,EAAUm1K,QACrCh1K,KAAO4uK,EAAaM,UAAUoF,gBAC9BS,eAAiBA,OACjBl1K,SAAWA,OACXm1K,eAAiBA,KAItBV,WAAaA,MACjBL,kBAESj0K,KAAO4uK,EAAaM,UAAU+E,sBAInCA,mBAAqBA,MACzBhB,WACgCF,QACvB/yK,KAAO4uK,EAAaM,UAAU+D,4BAC9BF,WAAaA,KAIlBE,uBAAyBA,MAC7B9D,WACuBvoK,QACd5G,KAAO4uK,EAAaM,UAAUC,mBAC9BvoK,KAAOA,KAIZuoK,cAAgBA,MACpBI,WAC6Bj0J,EAAQohC,QAC5B18C,KAAO4uK,EAAaM,UAAUK,yBAC9Bj0J,OAASA,OACTohC,SAAWA,KAIhB6yH,oBAAsBA,MAC1B8D,WACsBzsK,EAAM1D,QACnBlD,KAAO4uK,EAAaM,UAAUmE,kBAC9BzsK,KAAOA,OACP1D,MAAQA,KAIbmwK,aAAeA,MACnBjE,WAC2BE,EAAW1oK,QAC7B5G,KAAO4uK,EAAaM,UAAUE,uBAC9BE,UAAYA,OACZ1oK,KAAOA,KAIZwoK,kBAAoBA,MACxBwE,WAC2BhtK,EAAM+sK,EAAahtK,QACrC3G,KAAO4uK,EAAaM,UAAU0E,uBAC9BhtK,KAAOA,OACP+sK,YAAcA,OACdhtK,WAAaA,KAIlBitK,kBAAoBA,MACxBJ,WAC4BD,QACnBvzK,KAAO4uK,EAAaM,UAAUsE,wBAC9BD,SAAWA,KAIhBC,mBAAqBA,MACzBY,WACiBlxK,EAAO+1D,QACfj5D,KAAO4uK,EAAaM,UAAUkF,aAC9BlxK,MAAQA,OACR+1D,IAAMA,KAIXm7G,QAAUA,GAKb,SAAS1tF,EAAQxpE,UAGf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAC9CgsK,UAAY,CAChBmE,aAAc,eACdU,kBAAmB,oBACnBO,WAAY,aACZL,mBAAoB,qBACpBhB,uBAAwB,yBACxB9D,cAAe,gBACfI,oBAAqB,sBACrBH,kBAAmB,oBACnBwE,kBAAmB,oBACnBJ,mBAAoB,qBACpBY,QAAS,YAMR,SAAS1tF,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDkmK,EAAW/B,EAAoB,GAE/BoD,WACyBt/I,QAChBnrB,KAAOopK,EAASC,OAAOoB,qBACvBt/I,SAAWA,KAIhBs/I,gBAAkBA,MACtBC,WACsBv/I,QACbnrB,KAAOopK,EAASC,OAAOqB,kBACvBv/I,SAAWA,KAIhBu/I,aAAeA,MACnBC,WACiCp5J,EAAQg9E,EAAMwkF,QACtC/yK,KAAOopK,EAASC,OAAOsB,6BACvBp2J,GAAK,UACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,WAAY,OACZi3I,WAAaA,OACb5uF,OAAQ,KAIbwmF,wBAA0BA,MAC9BJ,WAC8B0K,EAAU94G,EAAMgqC,QACrCnmG,KAAOopK,EAASC,OAAOkB,0BACvB0K,SAAWA,OACX94G,KAAOA,OACPgqC,MAAQA,KAIbokE,qBAAuBA,MAC3BC,WAC2BruG,EAAMgqC,QACxBnmG,KAAOopK,EAASC,OAAOmB,uBACvBruG,KAAOA,OACPgqC,MAAQA,KAIbqkE,kBAAoBA,MACxB0K,WACsC3jK,EAAQg9E,EAAMwkF,QAC3C/yK,KAAOopK,EAASC,OAAOsB,6BACvBp2J,GAAK,UACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,WAAY,OACZi3I,WAAaA,OACb5uF,OAAQ,KAIb+wF,6BAA+BA,MACnCC,WACkC5gK,EAAIhD,EAAQg9E,QACrCvuF,KAAOopK,EAASC,OAAO4C,yBACvB13J,GAAKA,OACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,WAAY,OACZi3I,YAAa,OACb5uF,OAAQ,KAIbgxF,yBAA2BA,MAC/BC,WACiC7gK,EAAIhD,EAAQg9E,QACpCvuF,KAAOopK,EAASC,OAAO6C,wBACvB33J,GAAKA,OACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,WAAY,OACZi3I,YAAa,OACb5uF,OAAQ,KAIbixF,wBAA0BA,MAC9BxK,WACyB2I,QAChBvzK,KAAOopK,EAASC,OAAOuB,qBACvB2I,SAAWA,KAIhB3I,gBAAkBA,MACtBC,WAC0BoK,EAAU94G,EAAMgqC,OAClCkvE,EAAwB,OAAbJ,GAAkC,OAAbA,OAC/Bj1K,KAAOq1K,EAAUjM,EAASC,OAAOsD,kBAAoBvD,EAASC,OAAOwB,sBACrEoK,SAAWA,OACX94G,KAAOA,OACPgqC,MAAQA,KAIb0kE,iBAAmBA,MACvBpB,WACwBl7E,QACfvuF,KAAOopK,EAASC,OAAOI,oBACvBl7E,KAAOA,KAIZk7E,eAAiBA,MACrBqB,WACwBwK,QACft1K,KAAOopK,EAASC,OAAOyB,oBACvBwK,MAAQA,KAIbxK,eAAiBA,MACrBC,WACwBwK,EAAQz/J,QACvB9V,KAAOopK,EAASC,OAAO0B,oBACvBwK,OAASA,OACT91K,UAAYqW,KAIjBi1J,eAAiBA,MACrBC,WACqBphK,EAAO2kF,QACnBvuF,KAAOopK,EAASC,OAAO2B,iBACvBphK,MAAQA,OACR2kF,KAAOA,KAIZy8E,YAAcA,MAClBC,WACmB18E,QACVvuF,KAAOopK,EAASC,OAAO4B,eACvB18E,KAAOA,KAIZ08E,UAAYA,MAChBC,WAC0B32J,EAAIihK,EAAYjnF,QACjCvuF,KAAOopK,EAASC,OAAO6B,sBACvB32J,GAAKA,OACLihK,WAAaA,OACbjnF,KAAOA,KAIZ28E,iBAAmBA,MACvBC,WACyB52J,EAAIihK,EAAYjnF,QAChCvuF,KAAOopK,EAASC,OAAO8B,qBACvB52J,GAAKA,OACLihK,WAAaA,OACbjnF,KAAOA,KAIZ48E,gBAAkBA,MACtBsK,WACkCn6J,EAAQohC,QACjC18C,KAAOopK,EAASC,OAAOuD,sBACvB8I,UAAW,OACXp6J,OAASA,OACTohC,SAAWA,KAIhB+4H,yBAA2BA,MAC/BrK,WAC+B5nK,EAAMmyK,EAAYC,QACxC51K,KAAOopK,EAASC,OAAO+B,2BACvB5nK,KAAOA,OACPmyK,WAAaA,OACbC,UAAYA,KAIjBxK,sBAAwBA,MAC5BC,WAC2BiK,QAClBt1K,KAAOopK,EAASC,OAAOgC,uBACvBiK,MAAQA,KAIbjK,kBAAoBA,MACxBE,kBAESvrK,KAAOopK,EAASC,OAAOkC,qBAI5BA,kBAAoBA,MACxBsK,WACmB9C,EAAY+C,QACtB91K,KAAOopK,EAASC,OAAOwC,yBACvBkH,WAAaA,OACb+C,UAAYA,KAIjBD,UAAYA,MAChBvK,WAC0B/8E,EAAM/qF,QACvBxD,KAAOopK,EAASC,OAAOiC,sBACvB/8E,KAAOA,OACP/qF,KAAOA,KAIZ8nK,iBAAmBA,MACvBE,kBAESxrK,KAAOopK,EAASC,OAAOmC,kBAI5BA,eAAiBA,MACrBC,WAC8Bx7I,QACrBjwB,KAAOopK,EAASC,OAAOoC,0BACvBx7I,OAASA,KAIdw7I,qBAAuBA,MAC3BC,WACkCqK,QACzB/1K,KAAOopK,EAASC,OAAOqC,8BACvBqK,YAAcA,KAInBrK,yBAA2BA,MAC/BC,WACgCoK,EAAaC,EAAY/lJ,QAChDjwB,KAAOopK,EAASC,OAAOsC,4BACvBoK,YAAcA,OACdC,WAAaA,OACb/lJ,OAASA,KAId07I,uBAAyBA,MAC7BC,WACyBqK,EAAOC,QACvBl2K,KAAOopK,EAASC,OAAOuC,qBACvBsK,SAAWA,OACXD,MAAQA,KAIbrK,gBAAkBA,MACtBC,WAC6BkH,QACpB/yK,KAAOopK,EAASC,OAAOwC,yBACvBkH,WAAaA,KAIlBlH,oBAAsBA,MAC1BG,WACwB7vG,EAAMgqC,EAAO5X,QAC5BvuF,KAAOopK,EAASC,OAAO2C,oBACvB7vG,KAAOA,OACPgqC,MAAQA,OACR5X,KAAOA,OACP4nF,MAAO,KAIZnK,eAAiBA,MACrBD,WACwB5vG,EAAMgqC,EAAO5X,QAC5BvuF,KAAOopK,EAASC,OAAO0C,oBACvB5vG,KAAOA,OACPgqC,MAAQA,OACR5X,KAAOA,KAIZw9E,eAAiBA,MACrBD,WACsB10D,EAAM5zG,EAAMwS,EAAQu4E,QACjCvuF,KAAOopK,EAASC,OAAOyC,kBACvB30D,KAAOC,OACP5zG,KAAOA,OACPwS,OAASA,OACTu4E,KAAOA,KAIZu9E,aAAeA,MACnBG,WAC6B13J,EAAIhD,EAAQg9E,EAAMzyD,QACtC97B,KAAOopK,EAASC,OAAO4C,yBACvB13J,GAAKA,OACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,UAAYA,OACZi3I,YAAa,OACb5uF,OAAQ,KAIb8nF,oBAAsBA,MAC1BC,WAC4B33J,EAAIhD,EAAQg9E,EAAMzyD,QACrC97B,KAAOopK,EAASC,OAAO6C,wBACvB33J,GAAKA,OACLhD,OAASA,OACTg9E,KAAOA,OACPzyD,UAAYA,OACZi3I,YAAa,OACb5uF,OAAQ,KAIb+nF,mBAAqBA,MACzBC,WACoBvlK,QACX5G,KAAOopK,EAASC,OAAO8C,gBACvBvlK,KAAOA,KAIZulK,WAAaA,MACjBC,WACqB5oK,EAAMmyK,EAAYC,QAC9B51K,KAAOopK,EAASC,OAAO+C,iBACvB5oK,KAAOA,OACPmyK,WAAaA,OACbC,UAAYA,KAIjBxJ,YAAcA,MAClBC,WAC2B2J,EAAY/lJ,QAC9BjwB,KAAOopK,EAASC,OAAOgD,uBACvB2J,WAAaA,OACb/lJ,OAASA,KAIdo8I,kBAAoBA,MACxBC,WACgC2J,QACvBj2K,KAAOopK,EAASC,OAAOiD,4BACvB2J,MAAQA,KAIb3J,uBAAyBA,MAC7BC,WACkC0J,QACzBj2K,KAAOopK,EAASC,OAAOkD,8BACvB0J,MAAQA,KAIb1J,yBAA2BA,MAC/BC,WACyByJ,EAAOG,QACvBp2K,KAAOopK,EAASC,OAAOmD,qBACvByJ,MAAQA,OACRG,SAAWA,KAIhB5J,gBAAkBA,MACtBE,WAC0B4I,EAAO/mF,QACxBvuF,KAAOopK,EAASC,OAAOqD,sBACvB4I,MAAQA,OACR/mF,KAAOA,KAIZm+E,iBAAmBA,MACvBD,WACiBvpK,EAAO+1D,QACfj5D,KAAOopK,EAASC,OAAOoD,aACvBvpK,MAAQA,OACR+1D,IAAMA,KAIXwzG,QAAUA,MACdI,WACsBwJ,EAAM35H,QACnB18C,KAAOopK,EAASC,OAAOwD,kBACvB77E,KAAOqlF,OACP35H,SAAWA,KAIhBmwH,aAAeA,MACnBC,WAC0B5sK,EAAKw1K,EAAUxyK,EAAO66H,EAAMu4C,QAC7Ct2K,KAAOopK,EAASC,OAAOyD,sBACvB5sK,IAAMA,OACNw1K,SAAWA,OACXxyK,MAAQA,OACR66H,KAAOA,OACP3wH,OAASkpK,KAIdxJ,iBAAmBA,MACvByJ,WACgBhoF,QACPvuF,KAAOopK,EAASC,OAAOc,aACvB57E,KAAOA,OACP85E,WAAa,YAIlBkO,OAASA,MACbxJ,WACuBwI,EAAQz/J,QACtB9V,KAAOopK,EAASC,OAAO0D,mBACvBwI,OAASA,OACT91K,UAAYqW,KAIjBi3J,cAAgBA,MACpBC,WAC0B3sJ,QACjBrgB,KAAOopK,EAASC,OAAO2D,sBACvB3sJ,WAAaA,KAIlB2sJ,iBAAmBA,MACvBC,WACuB5sJ,QACdrgB,KAAOopK,EAASC,OAAO4D,mBACvB5sJ,WAAaA,KAIlB4sJ,cAAgBA,MACpBC,WACkBnvC,EAAM79H,EAAKw1K,EAAUxyK,EAAO2xD,EAAQ2hH,QAC7Cx2K,KAAOopK,EAASC,OAAO6D,cACvBhtK,IAAMA,OACNw1K,SAAWA,OACXxyK,MAAQA,OACR66H,KAAOA,OACPlpE,OAASA,OACT2hH,UAAYA,KAIjBtJ,SAAWA,MACfuJ,WACsBvzK,EAAO+1D,EAAKtmC,EAAS9oB,QAClC7J,KAAOopK,EAASC,OAAOoD,aACvBvpK,MAAQA,OACR+1D,IAAMA,OACNiuB,MAAQ,CAAEv0D,QAAAA,EAAkB9oB,MAAAA,MAIjC4sK,aAAeA,MACnBtJ,YACqBoG,QACZvzK,KAAOopK,EAASC,OAAO8D,iBACvBoG,SAAWA,KAIhBpG,YAAcA,OAClBC,YACyBmG,QAChBvzK,KAAOopK,EAASC,OAAO+D,qBACvBmG,SAAWA,KAIhBnG,gBAAkBA,OACtBsJ,YACgBnoF,QACPvuF,KAAOopK,EAASC,OAAOc,aACvB57E,KAAOA,OACP85E,WAAa,YAIlBqO,OAASA,OACbrJ,YAC4BsJ,QACnB32K,KAAOopK,EAASC,OAAOgE,wBACvBsJ,YAAcA,KAInBtJ,mBAAqBA,OACzBC,YACuBiG,QACdvzK,KAAOopK,EAASC,OAAOiE,mBACvBiG,SAAWA,KAIhBjG,cAAgBA,OACpBsJ,YACgCt7J,EAAQohC,QAC/B18C,KAAOopK,EAASC,OAAOuD,sBACvB8I,UAAW,OACXp6J,OAASA,OACTohC,SAAWA,KAIhBk6H,uBAAyBA,OAC7BrJ,mBAESvtK,KAAOopK,EAASC,OAAOkE,SAI5BA,MAAQA,OACZC,YACoBhqK,EAAMmyK,QACjB31K,KAAOopK,EAASC,OAAOmE,gBACvBhqK,KAAOA,OACPmyK,WAAaA,KAIlBnI,WAAaA,OACjBC,YACyBoJ,EAAct/J,QAC9BvX,KAAOopK,EAASC,OAAOoE,qBACvBoJ,aAAeA,OACft/J,MAAQA,KAIbk2J,gBAAkBA,OACtBC,YACkCprJ,EAAKw0J,QAC9B92K,KAAOopK,EAASC,OAAOqE,8BACvBprJ,IAAMA,OACNw0J,MAAQA,KAIbpJ,yBAA2BA,OAC/BC,YACyBzqK,EAAOi9D,QACvBngE,KAAOopK,EAASC,OAAOsE,qBACvBzqK,MAAQA,OACRi9D,KAAOA,KAIZwtG,gBAAkBA,OACtBC,YACyBmJ,EAAQJ,QACxB32K,KAAOopK,EAASC,OAAOuE,qBACvBmJ,OAASA,OACTJ,YAAcA,KAInB/I,gBAAkBA,OACtBC,mBAES7tK,KAAOopK,EAASC,OAAOwE,kBAI5BA,eAAiBA,OACrBC,YACwByF,QACfvzK,KAAOopK,EAASC,OAAOyE,oBACvByF,SAAWA,KAIhBzF,eAAiBA,OACrBC,YACsBiJ,EAAOn9B,EAASo9B,QAC7Bj3K,KAAOopK,EAASC,OAAO0E,kBACvB3tJ,MAAQ42J,OACRn9B,QAAUA,OACVo9B,UAAYA,KAIjBlJ,aAAeA,OACnBC,YACyBiH,EAAU1B,QAC1BvzK,KAAOopK,EAASC,OAAO2E,qBACvBiH,SAAWA,OACX1B,SAAWA,OACXnnD,QAAS,KAId4hD,gBAAkBA,OACtBC,YAC0BgH,EAAU1B,EAAUnnD,QACrCpsH,KAAOopK,EAASC,OAAO4E,sBACvBgH,SAAWA,OACX1B,SAAWA,OACXnnD,OAASA,KAId6hD,iBAAmBA,OACvBC,YAC6BgJ,EAAcn5C,QAClC/9H,KAAOopK,EAASC,OAAO6E,yBACvBgJ,aAAeA,OACfn5C,KAAOA,KAIZmwC,oBAAsBA,OAC1BC,YAC4B55J,EAAI6iG,QACvBp3G,KAAOopK,EAASC,OAAO8E,wBACvB55J,GAAKA,OACL4iG,KAAOC,KAIZ+2D,mBAAqBA,OACzBC,YACwB5qK,EAAM+qF,QACrBvuF,KAAOopK,EAASC,OAAO+E,oBACvB5qK,KAAOA,OACP+qF,KAAOA,KAIZ6/E,eAAiBA,OACrBC,YACuB/yJ,EAAQizE,QACtBvuF,KAAOopK,EAASC,OAAOgF,mBACvB/yJ,OAASA,OACTizE,KAAOA,KAIZ8/E,cAAgBA,OACpBC,YACyBiF,EAAU7L,QAC1B1nK,KAAOopK,EAASC,OAAOiF,qBACvBiF,SAAWA,OACX7L,SAAWA,KAIhB4G,gBAAkBA,IAKrB,SAAS5nF,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDi0K,EAAW9P,EAAoB,GAC/B+P,EAAkB/P,EAAoB,IACtCgQ,EAAahQ,EAAoB,IACjCwH,EAAOxH,EAAoB,GAC3BiQ,EAAYjQ,EAAoB,IAChC+B,EAAW/B,EAAoB,GAC/ByH,EAAUzH,EAAoB,IAC9BkQ,EAA4B,4BAC5BC,EAAU,sBACMtwH,EAAMn0C,EAAS20J,QACX,IAAZ30J,MAAgC,SAC/B2D,OAAS,CACV+7B,MAAiC,kBAAlB1/B,EAAQ0/B,OAAwB1/B,EAAQ0/B,MACvD43H,IAA6B,kBAAhBt3J,EAAQs3J,KAAsBt3J,EAAQs3J,IACnDp6I,OAAQ,KACR87F,OAAmC,kBAAnBh5G,EAAQg5G,QAAyBh5G,EAAQg5G,OACzD91D,QAAqC,kBAApBljD,EAAQkjD,SAA0BljD,EAAQkjD,QAC3D4yG,SAAuC,kBAArB91J,EAAQ81J,UAA2B91J,EAAQ81J,UAE7D/nK,KAAK4V,OAAO2zJ,KAAOt3J,EAAQkd,QAA6B,OAAnBld,EAAQkd,cACxCvZ,OAAOuZ,OAAS3jB,OAAOyG,EAAQkd,cAEnCy3I,SAAWA,OACXoB,aAAe,IAAIsO,EAAgBK,kBACnC3O,aAAaD,SAAW/nK,KAAK4V,OAAOmyJ,cACpCkH,QAAU,IAAIuH,EAAUI,QAAQxwH,EAAMpmD,KAAKgoK,mBAC3CiH,QAAQ4H,aAAe72K,KAAK4V,OAAOu/C,aACnC2hH,mBAAqB,CACtB9zC,IAAK,EACL+zC,IAAK,EACLC,IAAK,EACLC,IAAK,EACL/zC,IAAK,EACLg0C,KAAM,EACNC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,IAAK,EACLC,IAAK,GACLC,IAAK,GACLC,IAAK,SAEJzmH,UAAY,CACb3yD,KAAM,EACNkD,MAAO,GACPqgJ,WAAYziJ,KAAKivK,QAAQxsB,WACzB0sB,UAAW,EACXxgK,MAAO,EACPO,IAAK,QAEJqpK,mBAAoB,OACpBt4K,QAAU,CACXqnK,UAAU,EACVkR,OAAO,EACPC,SAAS,EACTC,sBAAsB,EACtBC,YAAY,EACZC,+BAAgC,KAChCC,oBAAoB,EACpBC,kBAAkB,EAClBC,gBAAgB,EAChBC,aAAa,EACbC,UAAU,EACVC,SAAU,GACVC,QAAQ,QAEPluD,OAAS,QACTikD,YAAc,CACf5lK,MAAO,EACPm0G,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQ,QAEPoqE,WAAa,CACdrnK,MAAO,EACPm0G,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQ,QAEP8oE,iBACAsB,WAAa,CACdrnK,MAAOtJ,KAAKivK,QAAQ3lK,MACpBm0G,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,oBAG3CprK,UAAUq1K,WAAa,SAAUC,WAChC9gK,EAAS,GACJ+gK,EAAK,EAAGA,EAAK36K,UAAUE,OAAQy6K,MAC7BA,EAAK,GAAK36K,UAAU26K,OAE3BtkK,EAAOjT,MAAMgC,UAAUf,MAAM0C,KAAK/G,UAAW,GAC7C0wD,EAAMgqH,EAAcv2K,QAAQ,UAAU,SAAUy2K,EAAO/7C,YAC9Cg8C,OAAOh8C,EAAMxoH,EAAKnW,OAAQ,sCAC5BmW,EAAKwoH,MAEZj0H,EAAQvJ,KAAK2wK,WAAWrnK,MACxBm0G,EAAOz9G,KAAK2wK,WAAWlzD,KACvBlX,EAASvmG,KAAK2wK,WAAWpqE,OAAS,QAChCvmG,KAAKgoK,aAAayR,YAAYlwK,EAAOk0G,EAAMlX,EAAQl3C,MAEtDtrD,UAAUiuK,cAAgB,SAAUqH,WACnC9gK,EAAS,GACJ+gK,EAAK,EAAGA,EAAK36K,UAAUE,OAAQy6K,MAC7BA,EAAK,GAAK36K,UAAU26K,OAE3BtkK,EAAOjT,MAAMgC,UAAUf,MAAM0C,KAAK/G,UAAW,GAC7C0wD,EAAMgqH,EAAcv2K,QAAQ,UAAU,SAAUy2K,EAAO/7C,YAC9Cg8C,OAAOh8C,EAAMxoH,EAAKnW,OAAQ,sCAC5BmW,EAAKwoH,MAEZj0H,EAAQvJ,KAAK2wK,WAAWrnK,MACxBm0G,EAAOz9G,KAAKivK,QAAQxsB,WACpBl8C,EAASvmG,KAAK2wK,WAAWpqE,OAAS,OACjCyhE,aAAagK,cAAczoK,EAAOk0G,EAAMlX,EAAQl3C,MAGlDtrD,UAAU21K,qBAAuB,SAAUpwD,EAAO5nD,OAEjDt/D,EADAitD,EAAMqS,GAAW60G,EAAWoD,SAASC,mBAErCtwD,GACK5nD,MACqB,IAAf4nD,EAAMpqH,KAAwBq3K,EAAWoD,SAASE,cACrC,IAAfvwD,EAAMpqH,KAA+Bq3K,EAAWoD,SAASG,qBACtC,IAAfxwD,EAAMpqH,KAAmCq3K,EAAWoD,SAASI,iBAC1C,IAAfzwD,EAAMpqH,KAAkCq3K,EAAWoD,SAASK,iBACzC,KAAf1wD,EAAMpqH,KAA8Bq3K,EAAWoD,SAASM,mBACrD1D,EAAWoD,SAASC,gBACrB,IAAftwD,EAAMpqH,OACFc,KAAKivK,QAAQiL,qBAAqB5wD,EAAMlnH,SAClCm0K,EAAWoD,SAASQ,mBAErBn6K,KAAKC,QAAQk5K,QAAUn5K,KAAKivK,QAAQmL,yBAAyB9wD,EAAMlnH,WAClEm0K,EAAWoD,SAASU,wBAI9B/wD,EAAMlnH,SAGN,YAENitD,EAAIvsD,QAAQ,KAAMV,GACpBknH,GAAqC,iBAArBA,EAAMm5B,WAAyB,KAC3Cl5I,EAAQ+/G,EAAM36G,MACd8uG,EAAO6L,EAAMm5B,WACb63B,EAAsBt6K,KAAK2wK,WAAWrnK,MAAQtJ,KAAK2wK,WAAWpqE,OAC9DA,EAAS+iB,EAAM36G,MAAQ2rK,EAAsB,SAC1Ct6K,KAAKgoK,aAAayR,YAAYlwK,EAAOk0G,EAAMlX,EAAQl3C,UAGtD9lD,EAAQvJ,KAAK2wK,WAAWrnK,MACxBm0G,EAAOz9G,KAAK2wK,WAAWlzD,KACvBlX,EAASvmG,KAAK2wK,WAAWpqE,OAAS,EAC/BvmG,KAAKgoK,aAAayR,YAAYlwK,EAAOk0G,EAAMlX,EAAQl3C,MAG3DtrD,UAAUotK,qBAAuB,SAAU7nD,EAAO5nD,SAC/C1hE,KAAK05K,qBAAqBpwD,EAAO5nD,MAEpC39D,UAAUw2K,wBAA0B,SAAUjxD,EAAO5nD,QACnDsmG,aAAaK,SAASroK,KAAK05K,qBAAqBpwD,EAAO5nD,OAEzD39D,UAAU0rK,gBAAkB,cAC1BzvK,KAAK4V,OAAOu/C,QAGZ,KACG2yG,EAAW9nK,KAAKivK,QAAQgC,kBACxBnJ,EAASjpK,OAAS,GAAKmB,KAAK4mK,iBACnB/oK,EAAI,EAAGA,EAAIiqK,EAASjpK,SAAUhB,EAAG,KAClCqD,EAAI4mK,EAASjqK,GACb4M,OAAO,IACJ,CACHvL,KAAMgC,EAAEs5K,UAAY,eAAiB,cACrCp4K,MAAOpC,KAAKivK,QAAQ9/I,OAAOnsB,MAAM9B,EAAE8B,MAAM,GAAI9B,EAAE8B,MAAM,KAErDhD,KAAK4V,OAAO+7B,UACPA,MAAQzwC,EAAEywC,OAEf3xC,KAAK4V,OAAO2zJ,QACPA,IAAMroK,EAAEqoK,SAEbxC,EAAW,CACXp4J,MAAO,CACH8uG,KAAMv8G,EAAEqoK,IAAI56J,MAAM8uG,KAClBlX,OAAQrlG,EAAEqoK,IAAI56J,MAAM43F,OACpBz2F,OAAQ5O,EAAEywC,MAAM,IAEpBziC,IAAK,CACDuuG,KAAMv8G,EAAEqoK,IAAIr6J,IAAIuuG,KAChBlX,OAAQrlG,EAAEqoK,IAAIr6J,IAAIq3F,OAClBz2F,OAAQ5O,EAAEywC,MAAM,UAGnBi1H,SAASn8J,EAAMs8J,cA9BvBkI,QAAQgC,kBAoCdltK,UAAU+tK,YAAc,SAAUxoD,UAC9BtpH,KAAKivK,QAAQ9/I,OAAOnsB,MAAMsmH,EAAM36G,MAAO26G,EAAMp6G,QAEjDnL,UAAU6sK,aAAe,SAAUtnD,OAClC9qH,EAAI,CACJU,KAAM8uK,EAAQW,UAAUrlD,EAAMpqH,MAC9BkD,MAAOpC,KAAK8xK,YAAYxoD,OAExBtpH,KAAK4V,OAAO+7B,UACVA,MAAQ,CAAC23E,EAAM36G,MAAO26G,EAAMp6G,MAE9BlP,KAAK4V,OAAO2zJ,QACVA,IAAM,CACJ56J,MAAO,CACH8uG,KAAMz9G,KAAKkvK,YAAYzxD,KACvBlX,OAAQvmG,KAAKkvK,YAAY3oE,QAE7Br3F,IAAK,CACDuuG,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,aAInC,IAAf7lD,EAAMpqH,KAAoC,KACtC2yB,EAAUy3F,EAAMz3F,QAChB9oB,EAAQugH,EAAMvgH,QAChBq9E,MAAQ,CAAEv0D,QAAAA,EAAkB9oB,MAAAA,UAE3BvK,KAEJuF,UAAUsrK,UAAY,eACrB/lD,EAAQtpH,KAAK6xD,eACZ8+G,WAAWrnK,MAAQtJ,KAAKivK,QAAQ3lK,WAChCqnK,WAAWlzD,KAAOz9G,KAAKivK,QAAQxsB,gBAC/BkuB,WAAWpqE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,eACtDM,kBACDzvK,KAAKivK,QAAQ3lK,QAAUtJ,KAAKkvK,YAAY5lK,aACnC4lK,YAAY5lK,MAAQtJ,KAAKivK,QAAQ3lK,WACjC4lK,YAAYzxD,KAAOz9G,KAAKivK,QAAQxsB,gBAChCysB,YAAY3oE,OAASvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,eAE5Dl5G,EAAOj2D,KAAKivK,QAAQwB,kBACnB8H,kBAAqBjvD,EAAMm5B,aAAexsF,EAAKwsF,WAChDxsF,GAAQj2D,KAAKC,QAAQk5K,QAAwB,IAAdljH,EAAK/2D,MAChCc,KAAKivK,QAAQmL,yBAAyBnkH,EAAK7zD,WACtClD,KAAO,QAGf2yD,UAAYoE,EACbj2D,KAAK4V,OAAOq1G,QAAwB,IAAdh1D,EAAK/2D,WACtB+rH,OAAOnsH,KAAKkB,KAAK4wK,aAAa36G,IAEhCqzD,KAEJvlH,UAAU02K,eAAiB,gBACzBhL,sBACDnmD,EAAQtpH,KAAKivK,QAAQyL,oBACrB16K,KAAK4V,OAAOq1G,cAGPA,OAAOn8G,WACPm8G,OAAOnsH,KAAKkB,KAAK4wK,aAAatnD,UAGlCz3D,UAAYy3D,OACZ+lD,YACE/lD,KAEJvlH,UAAU42K,WAAa,iBACnB,CACHrxK,MAAOtJ,KAAKkvK,YAAY5lK,MACxBm0G,KAAMz9G,KAAKkvK,YAAYzxD,KACvBlX,OAAQvmG,KAAKkvK,YAAY3oE,WAG1BxiG,UAAU62K,UAAY,SAAUtxD,EAAOuxD,QACpB,IAAlBA,MAA4C,OAC5Ct0E,EAAS+iB,EAAM36G,MAAQ26G,EAAM6lD,UAC7B1xD,EAAO6L,EAAMm5B,kBACbl8C,EAAS,OACCs0E,OAGP,CACHvxK,MAAOggH,EAAM36G,MACb8uG,KAAAA,EACAlX,OAAAA,MAGDxiG,UAAUutK,SAAW,SAAUpqC,EAAQz8H,MACtCzK,KAAK4V,OAAO+7B,UACPA,MAAQ,CAACu1F,EAAO59H,MAAOtJ,KAAK2wK,WAAWrnK,QAE5CtJ,KAAK4V,OAAO2zJ,QACPA,IAAM,CACP56J,MAAO,CACH8uG,KAAMypB,EAAOzpB,KACblX,OAAQ2gC,EAAO3gC,QAEnBr3F,IAAK,CACDuuG,KAAMz9G,KAAK2wK,WAAWlzD,KACtBlX,OAAQvmG,KAAK2wK,WAAWpqE,SAG5BvmG,KAAK4V,OAAOuZ,WACPo6I,IAAIp6I,OAASnvB,KAAK4V,OAAOuZ,SAGlCnvB,KAAK4mK,SAAU,KACXG,EAAW,CACXp4J,MAAO,CACH8uG,KAAMypB,EAAOzpB,KACblX,OAAQ2gC,EAAO3gC,OACfz2F,OAAQo3H,EAAO59H,OAEnB4F,IAAK,CACDuuG,KAAMz9G,KAAK2wK,WAAWlzD,KACtBlX,OAAQvmG,KAAK2wK,WAAWpqE,OACxBz2F,OAAQ9P,KAAK2wK,WAAWrnK,aAG3Bs9J,SAASn8J,EAAMs8J,UAEjBt8J,KAIJ1G,UAAU+2K,OAAS,SAAU14K,OAC5BknH,EAAQtpH,KAAKqvK,YACE,IAAf/lD,EAAMpqH,MAA+BoqH,EAAMlnH,QAAUA,QAChD+uK,qBAAqB7nD,MAI3BvlH,UAAUg3K,qBAAuB,cAChC/6K,KAAK4V,OAAOmyJ,SAAU,KAClBz+C,EAAQtpH,KAAK6xD,UACE,IAAfy3D,EAAMpqH,MAA+C,MAAhBoqH,EAAMlnH,WACtCitK,YAEe,IAAf/lD,EAAMpqH,MAA+C,MAAhBoqH,EAAMlnH,YAC3CitK,iBACAkL,wBAAwBjxD,SAGxBixD,wBAAwBjxD,EAAOitD,EAAWoD,SAASC,2BAIvDkB,OAAO,QAKb/2K,UAAUi3K,cAAgB,SAAUC,OACnC3xD,EAAQtpH,KAAKqvK,YACE,IAAf/lD,EAAMpqH,MAA4BoqH,EAAMlnH,QAAU64K,QAC7C9J,qBAAqB7nD,MAI3BvlH,UAAUqE,MAAQ,SAAUhG,UACA,IAAxBpC,KAAK6xD,UAAU3yD,MAA+Bc,KAAK6xD,UAAUzvD,QAAUA,KAG3E2B,UAAUm3K,aAAe,SAAUD,UACP,IAAxBj7K,KAAK6xD,UAAU3yD,MAA4Bc,KAAK6xD,UAAUzvD,QAAU64K,KAIxEl3K,UAAUo3K,uBAAyB,SAAUF,UACjB,IAAxBj7K,KAAK6xD,UAAU3yD,MAA+Bc,KAAK6xD,UAAUzvD,QAAU64K,KAG3El3K,UAAUq3K,YAAc,cACC,IAAxBp7K,KAAK6xD,UAAU3yD,YACR,MAEPqwB,EAAKvvB,KAAK6xD,UAAUzvD,YACV,MAAPmtB,GACI,OAAPA,GACO,QAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,GACO,QAAPA,GACO,QAAPA,GACO,SAAPA,GACO,OAAPA,GACO,OAAPA,GACO,OAAPA,KAiCDxrB,UAAUs3K,oBAAsB,SAAUC,OACzCC,EAA2Bv7K,KAAKC,QAAQ64K,iBACxC0C,EAA6Bx7K,KAAKC,QAAQ44K,mBAC1C4C,EAAyCz7K,KAAKC,QAAQ24K,oCACrD34K,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ24K,+BAAiC,SAC1C9mJ,EAASwpJ,EAAc51K,KAAK1F,aACoB,OAAhDA,KAAKC,QAAQ24K,qCACRzH,qBAAqBnxK,KAAKC,QAAQ24K,qCAEtC34K,QAAQ64K,iBAAmByC,OAC3Bt7K,QAAQ44K,mBAAqB2C,OAC7Bv7K,QAAQ24K,+BAAiC6C,EACvC3pJ,KAEJ/tB,UAAU23K,oBAAsB,SAAUJ,OACzCC,EAA2Bv7K,KAAKC,QAAQ64K,iBACxC0C,EAA6Bx7K,KAAKC,QAAQ44K,mBAC1C4C,EAAyCz7K,KAAKC,QAAQ24K,oCACrD34K,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ24K,+BAAiC,SAC1C9mJ,EAASwpJ,EAAc51K,KAAK1F,kBAC3BC,QAAQ64K,iBAAmB94K,KAAKC,QAAQ64K,kBAAoByC,OAC5Dt7K,QAAQ44K,mBAAqB74K,KAAKC,QAAQ44K,oBAAsB2C,OAChEv7K,QAAQ24K,+BAAiC6C,GAA0Cz7K,KAAKC,QAAQ24K,+BAC9F9mJ,KAEJ/tB,UAAU43K,iBAAmB,WAC5B37K,KAAKoI,MAAM,UACNinK,YAECrvK,KAAKu4K,oBACiB,IAAxBv4K,KAAK6xD,UAAU3yD,MAAyBc,KAAKoI,MAAM,WAC9C+oK,qBAAqBnxK,KAAK6xD,gBAE9B8+G,WAAWrnK,MAAQtJ,KAAKkvK,YAAY5lK,WACpCqnK,WAAWlzD,KAAOz9G,KAAKkvK,YAAYzxD,UACnCkzD,WAAWpqE,OAASvmG,KAAKkvK,YAAY3oE,WAI3CxiG,UAAU+qK,uBAAyB,eAElCJ,EACAplD,EAAOnxD,EAFP1tD,EAAOzK,KAAK26K,oBAGR36K,KAAK6xD,UAAU3yD,WACd,QACSe,QAAQqnK,UAAYtnK,KAAKC,QAAQu4K,QAAmC,UAAzBx4K,KAAK6xD,UAAUzvD,YAC3Dm4K,wBAAwBv6K,KAAK6xD,aAE/B7xD,KAAK47K,qBAAuB57K,KAAK67K,0BAA4B77K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAWrrK,KAAKqvK,YAAYjtK,mBAE5H,OACA,EACGpC,KAAKC,QAAQk5K,QAAUn5K,KAAK6xD,UAAUiqH,YACjCvB,wBAAwBv6K,KAAK6xD,UAAW0kH,EAAWoD,SAASoC,yBAEhE97K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,IACxB94K,KAAKqvK,cACPrvK,KAAK8xK,YAAYxoD,KAChBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAQriD,EAAMlnH,MAAO+1D,eAExD,OACIl4D,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,IACxB94K,KAAKqvK,cACPrvK,KAAK8xK,YAAYxoD,KAChBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAwB,SAAhBriD,EAAMlnH,MAAkB+1D,eAEnE,OACIl4D,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,IACxB94K,KAAKqvK,cACPrvK,KAAK8xK,YAAYxoD,KAChBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAQ,KAAMxzG,eAEjD,KACMn4D,KAAKg8K,kCAEX,SACOh8K,KAAK6xD,UAAUzvD,WACd,SACInC,QAAQ64K,kBAAmB,IACzB94K,KAAK07K,oBAAoB17K,KAAKi8K,gCAEpC,MACMj8K,KAAK07K,oBAAoB17K,KAAKk8K,iCAEpC,MACMl8K,KAAK07K,oBAAoB17K,KAAKm8K,kCAEpC,QACA,UACIl8K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,OAC3B7J,QAAQ3lK,MAAQtJ,KAAKkvK,YAAY5lK,QAC9BtJ,KAAKy6K,mBACPz6K,KAAK8xK,YAAYxoD,KAChBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK4H,aAAarsD,EAAMljC,MAAOjuB,EAAKmxD,EAAMz3F,QAASy3F,EAAMvgH,wBAGjF/I,KAAKmxK,qBAAqBnxK,KAAKqvK,wBAG7C,GACIrvK,KAAKC,QAAQk5K,QAAUn5K,KAAKC,QAAQ04K,YAAc34K,KAAKk7K,aAAa,WAC9Dl7K,KAAKo8K,uBAENp8K,KAAKC,QAAQk5K,QAAUn5K,KAAKk7K,aAAa,SACxCl7K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAWrrK,KAAKqvK,YAAYjtK,cAG3DnC,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,EAC5B94K,KAAKk7K,aAAa,cACXl7K,KAAK67K,0BAEP77K,KAAKk7K,aAAa,cAClB7L,cACErvK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKhB,mBAE/B/sK,KAAKk7K,aAAa,SAChBl7K,KAAKq8K,uBAGLr8K,KAAKmxK,qBAAqBnxK,KAAKqvK,8BAKvCrvK,KAAKmxK,qBAAqBnxK,KAAKqvK,oBAEvCX,KAGJ3qK,UAAUu4K,mBAAqB,eAC9B7xK,EAAOzK,KAAK26K,kBACXG,OAAO,WACRp9F,EAAM19E,KAAK07K,oBAAoB17K,KAAKkyK,kCACjClyK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKvB,cAAc9uF,OAE/C35E,UAAUm4K,sBAAwB,eACjCzxK,EAAOzK,KAAK26K,aACZtwJ,EAAW,YACVywJ,OAAO,MACJ96K,KAAKoI,MAAM,SACXpI,KAAKoI,MAAM,UACNinK,cACIvwK,KAAK,cAETkB,KAAKoI,MAAM,OAAQ,KACpBgH,EAAUpP,KAAKs8K,qBACdt8K,KAAKoI,MAAM,YACPnI,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,OAC3BgC,OAAO,QAEPh8K,KAAKsQ,UAGLtQ,KAAKkB,KAAK07K,oBAAoB17K,KAAKkyK,4BACvClyK,KAAKoI,MAAM,WACP0yK,OAAO,iBAInBA,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpE,gBAAgBt/I,OAGjDtmB,UAAUw4K,oBAAsB,SAAU9rK,QACxCxQ,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,MAC5B0D,EAAiBx8K,KAAKC,QAAQk5K,OAC9BsD,EAA+Bz8K,KAAKC,QAAQy4K,0BAC3Cz4K,QAAQy4K,qBAAuBjoK,EAAOisK,WACvCjvF,EAAOztF,KAAKq7K,oBAAoBr7K,KAAK28K,oCACrC38K,KAAKC,QAAQk5K,QAAU1oK,EAAOmsK,sBACzBrC,wBAAwB9pK,EAAOmsK,gBAAiBnsK,EAAOixD,SAE5D1hE,KAAKC,QAAQk5K,QAAU1oK,EAAOosK,eACzBtC,wBAAwB9pK,EAAOosK,SAAUpsK,EAAOixD,cAEpDzhE,QAAQk5K,OAASqD,OACjBv8K,QAAQy4K,qBAAuB+D,EAC7BhvF,KAEJ1pF,UAAU+4K,4BAA8B,eAEvCryK,EAAOzK,KAAK26K,aACZoC,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,MACtBloK,EAASzQ,KAAKg9K,wBACdjpH,EAAS/zD,KAAKu8K,oBAAoB9rK,eACjCxQ,QAAQ04K,WAAaoE,EACnB/8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3C,mBAAmB,KAAM36J,EAAOA,OAAQsjD,GAP1D,OASfhwD,UAAUk5K,iCAAmC,eAC5CxyK,EAAOzK,KAAK26K,aACZoC,EAAqB/8K,KAAKC,QAAQ04K,WAClCuE,EAAgBl9K,KAAKC,QAAQu4K,WAC5Bv4K,QAAQ04K,YAAa,OACrB14K,QAAQu4K,OAAQ,MACjB/nK,EAASzQ,KAAKg9K,wBACdjpH,EAAS/zD,KAAKu8K,oBAAoB9rK,eACjCxQ,QAAQ04K,WAAaoE,OACrB98K,QAAQu4K,MAAQ0E,EACdl9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKuG,wBAAwB,KAAM7jK,EAAOA,OAAQsjD,OAE9EhwD,UAAUo5K,uBAAyB,eAGlC/9K,EAFAqL,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAKqvK,mBAET/lD,EAAMpqH,WACL,OACA,EACGc,KAAKC,QAAQk5K,QAAU7vD,EAAMwyD,YACxBvB,wBAAwBjxD,EAAOitD,EAAWoD,SAASoC,wBAExD5jH,EAAMn4D,KAAK8xK,YAAYxoD,KACrBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAQriD,EAAMlnH,MAAO+1D,eAEvD,OACA,OACA,OACA,IACKn4D,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAW/hD,EAAMlnH,mBAEnD,EACmB,MAAhBknH,EAAMlnH,SACApC,KAAKq7K,oBAAoBr7K,KAAKkyK,gCAC/B4I,OAAO,QAGN96K,KAAKmxK,qBAAqB7nD,mBAI9BtpH,KAAKmxK,qBAAqB7nD,UAEjClqH,KAEJ2E,UAAUq5K,cAAgB,SAAUh+K,EAAKgD,UACpChD,EAAIF,OAASopK,EAASC,OAAO8C,YAAcjsK,EAAI0G,OAAS1D,GAC3DhD,EAAIF,OAASopK,EAASC,OAAOoD,SAAWvsK,EAAIgD,QAAUA,KAExD2B,UAAUs5K,oBAAsB,SAAUC,OAGzCrgD,EAFAxyH,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAK6xD,UAEbzyD,EAAM,KACNgD,EAAQ,KACRwyK,GAAW,EACX7gH,GAAS,EACT2hH,GAAY,EACZ6H,GAAU,KACK,IAAfj0D,EAAMpqH,KAA6B,KAC/BuU,EAAK61G,EAAMlnH,WACVitK,cACMrvK,KAAKoI,MAAM,YACXpI,KAAKu4K,mBAA6B,UAAP9kK,GACjCzT,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,OAC5DpI,KAAKm9K,yBAA2Bn9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAW53J,SAEnFzT,KAAKoI,MAAM,UACXinK,eAGMrvK,KAAKoI,MAAM,OAChBpI,KAAKm9K,8BAEXK,EAAuBx9K,KAAKy9K,sBAAsBz9K,KAAK6xD,cACxC,IAAfy3D,EAAMpqH,OAAgCq+K,GAA2B,QAAhBj0D,EAAMlnH,OAAmBo7K,IACnE,QACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,8BACNl9K,QAAQ04K,YAAa,IAClB34K,KAAK09K,4BAEO,IAAfp0D,EAAMpqH,OAAgCq+K,GAA2B,QAAhBj0D,EAAMlnH,OAAmBo7K,IACxE,QACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,2BACHn9K,KAAK29K,4BAEO,IAAfr0D,EAAMpqH,MAA+C,MAAhBoqH,EAAMlnH,OAAiBo7K,IAC1D,SACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,2BACHn9K,KAAK49K,0BACJ,UAGJx+K,QACI+xK,qBAAqBnxK,KAAK6xD,aAE5B,OACH7xD,KAAKoI,MAAM,OAASm1K,GACf3I,GAAY50K,KAAKo9K,cAAch+K,EAAK,eACjCk+K,EAASl7K,YACJ4vK,cAAcuE,EAAWoD,SAASkE,0BAElCz7K,OAAQ,QAEhBitK,cACGrvK,KAAK07K,oBAAoB17K,KAAKkyK,mCAEjClyK,KAAKoI,MAAM,OACRm1K,EAAUv9K,KAAKi9K,mCAAqCj9K,KAAK88K,iCACxD,UAEW,IAAfxzD,EAAMpqH,QACPuU,EAAKzT,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAW/hD,EAAMlnH,QACnDpC,KAAKoI,MAAM,KAAM,MACZnI,QAAQ24K,+BAAiC54K,KAAK6xD,eAC9Cw9G,eACO,MACR/4D,EAAOt2G,KAAKq7K,oBAAoBr7K,KAAKkyK,6BACjClyK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKrE,kBAAkBj2J,EAAI6iG,YAG/C,IACJ7iG,YAIP09J,qBAAqBnxK,KAAKqvK,oBAGhCrvK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3B,SAASnvC,EAAM79H,EAAKw1K,EAAUxyK,EAAO2xD,EAAQ2hH,OAE9E3xK,UAAUo4K,uBAAyB,eAClC1xK,EAAOzK,KAAK26K,kBACXG,OAAO,aACRv7J,EAAa,GACb+9J,EAAW,CAAEl7K,OAAO,IAChBpC,KAAKoI,MAAM,QACJtJ,KAAKkB,KAAKq9K,oBAAoBC,IACpCt9K,KAAKoI,MAAM,WACP2yK,mCAGRD,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK7B,iBAAiB3sJ,OAGlDxb,UAAU+5K,kBAAoB,aACxBtE,OAAOx5K,KAAK6xD,UAAUO,KAAM,wDACjC3nD,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAKqvK,YACbl3G,EAAMmxD,EAAMlnH,MACZ27K,EAASz0D,EAAMy0D,cACZ/9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlB,gBAAgB,CAAE10G,IAAAA,EAAU4lH,OAAAA,GAAkBz0D,EAAMjqD,UAErFt7D,UAAUi6K,qBAAuB,WACR,KAAxBh+K,KAAK6xD,UAAU3yD,WACViyK,2BAEL1mK,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAKqvK,YACbl3G,EAAMmxD,EAAMlnH,MACZ27K,EAASz0D,EAAMy0D,cACZ/9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlB,gBAAgB,CAAE10G,IAAAA,EAAU4lH,OAAAA,GAAkBz0D,EAAMjqD,UAErFt7D,UAAUi4K,qBAAuB,eAChCvxK,EAAOzK,KAAK26K,aACZ9E,EAAc,GACdI,EAAS,GACTD,EAAQh2K,KAAK89K,0BACVh/K,KAAKk3K,IACJA,EAAM32G,QACEvgE,KAAKkB,KAAKi+K,qBACdj+K,KAAKg+K,yBACNl/K,KAAKk3K,UAETh2K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKjB,gBAAgBmJ,EAAQJ,OAGzD9xK,UAAUm6K,+BAAiC,SAAUxP,UAChDA,EAAKxvK,WACJopK,EAASC,OAAO8C,gBAChB/C,EAASC,OAAOuD,sBAChBxD,EAASC,OAAO8D,iBAChB/D,EAASC,OAAOmB,6BAEhBpB,EAASC,OAAOiE,gBACZttK,KAAOopK,EAASC,OAAO8D,iBACvB6R,+BAA+BxP,EAAK+D,qBAExCnK,EAASC,OAAOoB,kBACZzqK,KAAOopK,EAASC,OAAOqB,qBACnB/rK,EAAI,EAAGA,EAAI6wK,EAAKrkJ,SAASxrB,OAAQhB,IACb,OAArB6wK,EAAKrkJ,SAASxsB,SACTqgL,+BAA+BxP,EAAKrkJ,SAASxsB,eAIzDyqK,EAASC,OAAO2D,uBACZhtK,KAAOopK,EAASC,OAAO4D,cACnBtuK,EAAI,EAAGA,EAAI6wK,EAAKnvJ,WAAW1gB,OAAQhB,SACnCqgL,+BAA+BxP,EAAKnvJ,WAAW1hB,GAAGuE,kBAG1DkmK,EAASC,OAAOkB,uBACZvqK,KAAOopK,EAASC,OAAOmB,yBACrBgF,EAAKyF,cACP+J,+BAA+BxP,EAAKrzG,UAO9Ct3D,UAAUk4K,qBAAuB,eAChCvN,UACCoM,OAAO,KACR96K,KAAKoI,MAAM,UACNinK,YACArvK,KAAKoI,MAAM,YACP0yK,OAAO,QAET,CACH57K,KAAMu3K,EACNhmK,OAAQ,GACR4yE,OAAO,OAGV,KACG86F,EAAan+K,KAAK6xD,UAClBphD,EAAS,MACTzQ,KAAKoI,MAAM,SACJpI,KAAKo+K,iBAAiB3tK,QACxBqqK,OAAO,KACP96K,KAAKoI,MAAM,YACP0yK,OAAO,QAET,CACH57K,KAAMu3K,EACNhmK,OAAQ,CAACi+J,GACTrrF,OAAO,OAGV,KACG+gF,GAAQ,UACPnkK,QAAQ64K,kBAAmB,IACzB94K,KAAK07K,oBAAoB17K,KAAKkyK,2BACjClyK,KAAKoI,MAAM,KAAM,KACbytK,EAAc,YACb51K,QAAQ44K,oBAAqB,IACtB/5K,KAAK4vK,GACc,IAAxB1uK,KAAK6xD,UAAU3yD,MACbc,KAAKoI,MAAM,MADwB,SAInCinK,YACDrvK,KAAKoI,MAAM,KAAM,MACZinK,oBACIxxK,EAAI,EAAGA,EAAIg4K,EAAYh3K,OAAQhB,SAC/BqgL,+BAA+BrI,EAAYh4K,OAE5C,IACD,CACHqB,KAAMu3K,EACNhmK,OAAQolK,EACRxyF,OAAO,WAGNrjF,KAAKoI,MAAM,OAAQ,KACnBpI,KAAKC,QAAQ64K,uBACT3H,qBAAqBnxK,KAAK6xD,aAEvB/yD,KAAKkB,KAAKo+K,iBAAiB3tK,SAClCqqK,OAAO,KACP96K,KAAKoI,MAAM,YACP0yK,OAAO,WAEX76K,QAAQ64K,kBAAmB,EACvBj7K,EAAI,EAAGA,EAAIg4K,EAAYh3K,OAAQhB,SAC/BqgL,+BAA+BrI,EAAYh4K,OAE5C,IACD,CACHqB,KAAMu3K,EACNhmK,OAAQolK,EACRxyF,OAAO,UAICvkF,KAAKkB,KAAK07K,oBAAoB17K,KAAKkyK,+BAE/C9N,QAIHA,MACMpkK,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKxB,mBAAmBsJ,SAGhFzR,EAAO,SACH0W,OAAO,KACR96K,KAAKoI,MAAM,QACPsmK,EAAKxvK,OAASopK,EAASC,OAAO8C,YAA4B,UAAdqD,EAAK5oK,UACzC,IACD,CACH5G,KAAMu3K,EACNhmK,OAAQ,CAACi+J,GACTrrF,OAAO,KAGV+gF,GAAO,IACHpkK,KAAKC,QAAQ64K,uBACT3H,qBAAqBnxK,KAAK6xD,WAE/B68G,EAAKxvK,OAASopK,EAASC,OAAOgE,uBACrB1uK,EAAI,EAAGA,EAAI6wK,EAAKmH,YAAYh3K,OAAQhB,SACpCqgL,+BAA+BxP,EAAKmH,YAAYh4K,cAIpDqgL,+BAA+BxP,OAEpC5/I,EAAc4/I,EAAKxvK,OAASopK,EAASC,OAAOgE,mBAAqBmC,EAAKmH,YAAc,CAACnH,KAClF,CACHxvK,KAAMu3K,EACNhmK,OAAQqe,EACRu0D,OAAO,QAIdpjF,QAAQ64K,kBAAmB,WAIrCpK,KAGJ3qK,UAAUs6K,eAAiB,gBACzBvD,OAAO,SACR9lK,EAAO,OACNhV,KAAKoI,MAAM,YACC,KACLsmK,EAAO1uK,KAAKoI,MAAM,OAASpI,KAAKs8K,qBAChCt8K,KAAKq7K,oBAAoBr7K,KAAKkyK,gCAC7BpzK,KAAK4vK,GACN1uK,KAAKoI,MAAM,mBAGV2yK,uBACD/6K,KAAKoI,MAAM,uBAKlB0yK,OAAO,KACL9lK,KAEJjR,UAAUu6K,iBAAmB,SAAUh1D,UACpB,IAAfA,EAAMpqH,MACM,IAAfoqH,EAAMpqH,MACS,IAAfoqH,EAAMpqH,MACS,IAAfoqH,EAAMpqH,QAEP6E,UAAUq4K,oBAAsB,eAC/B3xK,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAKqvK,mBACZrvK,KAAKs+K,iBAAiBh1D,SAClB6nD,qBAAqB7nD,GAEvBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAW/hD,EAAMlnH,WAElD2B,UAAUw6K,mBAAqB,eAI9B7P,EAHAjkK,EAAOzK,KAAK26K,aACZlnK,EAAKzT,KAAKo8K,2BACL5C,OAAmB,QAAZ/lK,EAAG3N,KAAgB,wCAE/B9F,KAAKoI,MAAM,aACNinK,YACuB,IAAxBrvK,KAAK6xD,UAAU3yD,MAA+Bc,KAAKC,QAAQ84K,gBAA2C,WAAzB/4K,KAAK6xD,UAAUzvD,MAAoB,KAC5Gw5C,EAAW57C,KAAKo8K,wBACb,IAAIrO,EAAKhC,aAAat4J,EAAImoC,aAG5Bu1H,qBAAqBnxK,KAAK6xD,eAGlC,KACG4iH,EAASz0K,KAAKq7K,oBAAoBr7K,KAAKw+K,6BACvCxpK,EAAOhV,KAAKoI,MAAM,KAAOpI,KAAKq+K,iBAAmB,KAC9C,IAAItQ,EAAK9B,cAAcwI,EAAQz/J,QACjC/U,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,SAE7B94K,KAAKsxK,SAAS7mK,EAAMikK,MAExB3qK,UAAU06K,mBAAqB,eAC9B/gG,EAAM19E,KAAKkyK,wCACVjyK,QAAQ24K,+BAAiC,KACvCl7F,KAEJ35E,UAAU26K,oBAAsB,gBAC9B5D,OAAO,SACR9lK,EAAO,OACNhV,KAAKoI,MAAM,YACC,KACLsmK,EAAO1uK,KAAKoI,MAAM,OAASpI,KAAKs8K,qBAChCt8K,KAAKq7K,oBAAoBr7K,KAAKy+K,yBAC7B3/K,KAAK4vK,GACN1uK,KAAKoI,MAAM,mBAGV2yK,uBACD/6K,KAAKoI,MAAM,uBAKlB0yK,OAAO,KACL9lK,KAEJjR,UAAU46K,qCAAuC,eAKhDjQ,EAJAyP,EAAan+K,KAAK6xD,UAClB+sH,EAAa5+K,KAAKm7K,uBAAuB,SACzC0D,EAAkB7+K,KAAKC,QAAQw4K,iBAC9Bx4K,QAAQw4K,SAAU,EAEnBz4K,KAAKk7K,aAAa,UAAYl7K,KAAKC,QAAQ84K,kBACpC/4K,KAAK26K,kBACPtL,cACErvK,KAAKsxK,SAAS5C,EAAM,IAAIX,EAAKtB,OAC/BzsK,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,WAC/C+oK,qBAAqBnxK,KAAK6xD,cAI5B7xD,KAAK07K,oBAAoB17K,KAAKk7K,aAAa,OAASl7K,KAAKu+K,mBAAqBv+K,KAAK8uK,6BAGtF9uK,KAAKoI,MAAM,KAAM,MACZnI,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7BiC,OAAO,SACRl/H,EAAW57C,KAAKo8K,wBACbp8K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAK+H,uBAAuBpH,EAAM9yH,YAElF57C,KAAKoI,MAAM,KAAM,KAClB02K,EAAaF,GAAeT,EAAW17B,aAAeziJ,KAAK6xD,UAAU4wF,gBACpExiJ,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,MAC9B7jK,EAAO8pK,EAAa9+K,KAAK0+K,sBAAwB1+K,KAAKq+K,sBACnDr+K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAK9D,eAAeyE,EAAM15J,IAC3E8pK,GAAc9+K,KAAKoI,MAAM,MAAO,SACvBvK,EAAI,EAAGA,EAAImX,EAAKnW,SAAUhB,OAC1BqgL,+BAA+BlpK,EAAKnX,MAEtC,CACHqB,KAAMu3K,EACNhmK,OAAQuE,EACRquE,OAAO,YAIVrjF,KAAKoI,MAAM,UACXnI,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7BiC,OAAO,KACRl/H,EAAW57C,KAAKq7K,oBAAoBr7K,KAAKi+K,sBACxCnD,OAAO,OACL96K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAK4G,yBAAyBjG,EAAM9yH,YAE5D,KAAxB57C,KAAK6xD,UAAU3yD,OAA8Bc,KAAK6xD,UAAUO,eAC7D4jH,EAAQh2K,KAAKg8K,yBACVh8K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKnB,yBAAyB8B,EAAMsH,gBAM5F/1K,QAAQw4K,QAAUoG,EAChBnQ,KAEJ3qK,UAAUg7K,WAAa,eACtBt0K,EAAOzK,KAAK26K,yBACXK,cAAc,SACdh7K,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,WAC3B+oK,qBAAqBnxK,KAAK6xD,WAE5B7xD,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKtB,UAEjC1oK,UAAUy6K,4BAA8B,aAClChF,OAAOx5K,KAAKC,QAAQw4K,QAAS,6DAClChuK,EAAOzK,KAAK46K,UAAU56K,KAAK6xD,WAC3B68G,EAAQ1uK,KAAKk7K,aAAa,UAAYl7K,KAAKC,QAAQ84K,eAAkB/4K,KAAK++K,aAC1E/+K,KAAK07K,oBAAoB17K,KAAKk7K,aAAa,OAASl7K,KAAKu+K,mBAAqBv+K,KAAK8uK,6BAE/E9uK,KAAKoI,MAAM,KAAM,MACZnI,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7BiC,OAAO,SACRl/H,EAAW57C,KAAKq7K,oBAAoBr7K,KAAKi+K,sBACxCnD,OAAO,OACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK4G,yBAAyBjG,EAAM9yH,YAE9D57C,KAAKoI,MAAM,UACXnI,QAAQ64K,kBAAmB,OAC3B74K,QAAQ44K,oBAAqB,OAC7BiC,OAAO,KACRl/H,EAAW57C,KAAKo8K,wBACbp8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK+H,uBAAuBpH,EAAM9yH,YAEpC,KAAxB57C,KAAK6xD,UAAU3yD,OAA8Bc,KAAK6xD,UAAUO,eAC7D4jH,EAAQh2K,KAAKg8K,yBACVh8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnB,yBAAyB8B,EAAMsH,WAMpEtH,KAGJ3qK,UAAUi7K,sBAAwB,eACjCtQ,EACAyP,EAAan+K,KAAK6xD,aAClB7xD,KAAKoI,MAAM,OAASpI,KAAKoI,MAAM,MAAO,KAClCqC,EAAOzK,KAAK46K,UAAUuD,GACtB70D,EAAQtpH,KAAKqvK,cACVrvK,KAAK07K,oBAAoB17K,KAAKi/K,sBACjCj/K,KAAKC,QAAQk5K,QAAUzK,EAAKxvK,OAASopK,EAASC,OAAO8C,YAAcrrK,KAAKivK,QAAQiQ,iBAAiBxQ,EAAK5oK,YACjGksK,cAAcuE,EAAWoD,SAASwF,iBAEtCn/K,KAAKC,QAAQ44K,yBACT7G,cAAcuE,EAAWoD,SAASyF,4BAEvC9zD,GAAS,IACNtrH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKZ,iBAAiB7jD,EAAMlnH,MAAOssK,EAAMpjD,SACnErrH,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,YAGzB94K,KAAK07K,oBAAoB17K,KAAK2+K,uCAChC3+K,KAAKu4K,mBAA6C,IAAxBv4K,KAAK6xD,UAAU3yD,OACtCc,KAAKoI,MAAM,OAASpI,KAAKoI,MAAM,OAAO,CAClCpI,KAAKC,QAAQk5K,QAAUzK,EAAKxvK,OAASopK,EAASC,OAAO8C,YAAcrrK,KAAKivK,QAAQiQ,iBAAiBxQ,EAAK5oK,YACjGksK,cAAcuE,EAAWoD,SAAS0F,kBAEtCr/K,KAAKC,QAAQ44K,yBACT7G,cAAcuE,EAAWoD,SAASyF,6BAEtCn/K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,MAC5B3E,EAAWn0K,KAAKqvK,YAAYjtK,MAC5BkpH,GAAS,IACNtrH,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKZ,iBAAiBgH,EAAUzF,EAAMpjD,WAIhGojD,KAGJ3qK,UAAUu7K,qBAAuB,eAChC70K,EAAOzK,KAAK26K,kBACXtL,gBACDoD,EAAWzyK,KAAKi/K,8BACbj/K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKjE,gBAAgB2I,OAEjD1uK,UAAUk7K,qBAAuB,eAChCvQ,KACA1uK,KAAKoI,MAAM,MAAQpI,KAAKoI,MAAM,MAAQpI,KAAKoI,MAAM,MAAQpI,KAAKoI,MAAM,MACpEpI,KAAKk7K,aAAa,WAAal7K,KAAKk7K,aAAa,SAAWl7K,KAAKk7K,aAAa,UAAW,KACrFzwK,EAAOzK,KAAK46K,UAAU56K,KAAK6xD,WAC3By3D,EAAQtpH,KAAKqvK,cACVrvK,KAAK07K,oBAAoB17K,KAAKi/K,wBAC9Bj/K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKb,gBAAgB5jD,EAAMlnH,MAAOssK,IAC7D1uK,KAAKC,QAAQk5K,QAA4B,WAAlBzK,EAAKyF,UAAyBzF,EAAK+D,SAASvzK,OAASopK,EAASC,OAAO8C,iBACvF2G,cAAcuE,EAAWoD,SAAS4F,mBAEtCt/K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,SAE3B94K,KAAKC,QAAQu4K,OAASx4K,KAAKm7K,uBAAuB,SAChDn7K,KAAKs/K,uBAGLt/K,KAAKg/K,+BAETtQ,KAEJ3qK,UAAUy7K,8BAAgC,eACzCrB,EAAan+K,KAAK6xD,UAClB68G,EAAO1uK,KAAK07K,oBAAoB17K,KAAKi/K,yBACrCvQ,EAAKxvK,OAASopK,EAASC,OAAO2E,iBAAmBltK,KAAKoI,MAAM,MAAO,MAC9DinK,iBACApvK,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,MAC5Bz9G,EAAOqzG,EACPrpE,EAAQrlG,KAAKq7K,oBAAoBr7K,KAAKw/K,iCACnCx/K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKhE,iBAAiB,KAAM1uG,EAAMgqC,WAEpFqpE,KAUJ3qK,UAAU07K,iBAAmB,SAAUn2D,OACtC/5F,EAAK+5F,EAAMlnH,aAEI,IAAfknH,EAAMpqH,KACOc,KAAK82K,mBAAmBvnJ,IAAO,EAExB,IAAf+5F,EAAMpqH,OACU,eAAPqwB,GAAwBvvB,KAAKC,QAAQw4K,SAAkB,OAAPlpJ,GAAgB,EAGjE,KAIdxrB,UAAU27K,sBAAwB,eACjCvB,EAAan+K,KAAK6xD,UAClB68G,EAAO1uK,KAAK07K,oBAAoB17K,KAAKw/K,+BACrCl2D,EAAQtpH,KAAK6xD,UACb8tH,EAAO3/K,KAAKy/K,iBAAiBn2D,MAC7Bq2D,EAAO,EAAG,MACLtQ,iBACApvK,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,UAC5BzxC,EAAU,CAAC82C,EAAYn+K,KAAK6xD,WAC5BwJ,EAAOqzG,EACPrpE,EAAQrlG,KAAKq7K,oBAAoBr7K,KAAKw/K,+BACtCr1D,EAAQ,CAAC9uD,EAAMiuD,EAAMlnH,MAAOijG,GAC5Bu6E,EAAc,CAACD,QAER3/K,KAAKy/K,iBAAiBz/K,KAAK6xD,aACtB,IAFH,MAMDs4D,EAAMtrH,OAAS,GAAO8gL,GAAQC,EAAYA,EAAY/gL,OAAS,IAAK,GAChEsrH,EAAMr7G,UACVqlK,EAAWhqD,EAAMr7G,QACTA,QACLq7G,EAAMr7G,QACLA,UACJrE,EAAOzK,KAAK46K,UAAUvzC,EAAQA,EAAQxoI,OAAS,MAC7CC,KAAKkB,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKhE,iBAAiBoK,EAAU94G,EAAMgqC,OAGvEvmG,KAAKkB,KAAKqvK,YAAYjtK,SAChBtD,KAAK6gL,KACT7gL,KAAKkB,KAAK6xD,aACZ/yD,KAAKkB,KAAKq7K,oBAAoBr7K,KAAKw/K,oCAGzC3hL,EAAIssH,EAAMtrH,OAAS,IAChBsrH,EAAMtsH,WACT8yK,EAAatpC,EAAQv4H,MAClBjR,EAAI,GAAG,KACNqpI,EAASG,EAAQv4H,MACjB+rK,EAAgBlK,GAAcA,EAAWxB,UACzC1kK,EAAOzK,KAAK46K,UAAU1zC,EAAQ2zC,GAC9B1G,EAAWhqD,EAAMtsH,EAAI,KAClBmC,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKhE,iBAAiBoK,EAAUhqD,EAAMtsH,EAAI,GAAI6wK,OACxE,IACQxnC,UAGdwnC,KAGJ3qK,UAAU87K,2BAA6B,eACtC1B,EAAan+K,KAAK6xD,UAClB68G,EAAO1uK,KAAK07K,oBAAoB17K,KAAK0/K,0BACrC1/K,KAAKoI,MAAM,KAAM,MACZinK,gBACDwP,EAAkB7+K,KAAKC,QAAQw4K,aAC9Bx4K,QAAQw4K,SAAU,MACnB5D,EAAa70K,KAAKq7K,oBAAoBr7K,KAAKkyK,gCAC1CjyK,QAAQw4K,QAAUoG,OAClB/D,OAAO,SACRhG,EAAY90K,KAAKq7K,oBAAoBr7K,KAAKkyK,6BACvClyK,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKzD,sBAAsBoE,EAAMmG,EAAYC,SAC7F70K,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,SAE7BpK,KAGJ3qK,UAAU+7K,kBAAoB,SAAU7tK,EAASnJ,UAC5CA,EAAM5J,WACLopK,EAASC,OAAO8C,gBACZ0U,cAAc9tK,EAASnJ,EAAOA,EAAMhD,iBAExCwiK,EAASC,OAAO8D,iBACZyT,kBAAkB7tK,EAASnJ,EAAM2pK,qBAErCnK,EAASC,OAAOmB,uBACZoW,kBAAkB7tK,EAASnJ,EAAMuyD,iBAErCitG,EAASC,OAAOqB,qBACR/rK,EAAI,EAAGA,EAAIiL,EAAMuhB,SAASxrB,OAAQhB,IACb,OAAtBiL,EAAMuhB,SAASxsB,SACViiL,kBAAkB7tK,EAASnJ,EAAMuhB,SAASxsB,eAItDyqK,EAASC,OAAO4D,kBACRtuK,EAAI,EAAGA,EAAIiL,EAAMyW,WAAW1gB,OAAQhB,SACpCiiL,kBAAkB7tK,EAASnJ,EAAMyW,WAAW1hB,GAAGuE,SAMxDs6K,OAASzqK,EAAQyqK,QAAW5zK,aAAiBilK,EAAK1C,cAEvDtnK,UAAUi8K,8BAAgC,SAAUtR,OAEnDz8J,EADAxB,EAAS,CAACi+J,GAEVoQ,GAAa,SACTpQ,EAAKxvK,WACJopK,EAASC,OAAO8C,sBAEhBoL,IACQ/H,EAAKj+J,SACDi+J,EAAKrrF,2BAGX,OAEL,CACNq5F,QAAQ,EACRuD,SAAU,YAELpiL,EAAI,EAAGA,EAAI4S,EAAO5R,SAAUhB,GAC7BiL,EAAQ2H,EAAO5S,IACTqB,OAASopK,EAASC,OAAOmB,kBAC3B5gK,EAAMu8F,MAAMnmG,OAASopK,EAASC,OAAOiF,kBACjC1kK,EAAMu8F,MAAMotE,eACPtB,qBAAqBnxK,KAAK6xD,aAE7BwzC,MAAMnmG,KAAOopK,EAASC,OAAO8C,aAC7BhmE,MAAMv/F,KAAO,eACZgD,EAAMu8F,MAAMotE,gBACZ3pK,EAAMu8F,MAAMuhE,UAGlBkY,GAAch2K,EAAM5J,OAASopK,EAASC,OAAO8C,YAA6B,UAAfviK,EAAMhD,WACjEqrK,qBAAqBnxK,KAAK6xD,gBAE9BiuH,kBAAkB7tK,EAASnJ,KACzBjL,GAAKiL,KAEZ9I,KAAKC,QAAQk5K,SAAWn5K,KAAKC,QAAQ04K,eAC5B96K,EAAI,EAAGA,EAAI4S,EAAO5R,SAAUhB,EAAG,KAChCiL,GAAAA,EAAQ2H,EAAO5S,IACTqB,OAASopK,EAASC,OAAOiF,sBAC1B2D,qBAAqBnxK,KAAK6xD,cAIvC5/C,EAAQyvD,UAAY60G,EAAWoD,SAASuG,gBAAiB,KACrD52D,EAAQtpH,KAAKC,QAAQk5K,OAASlnK,EAAQ4qK,SAAW5qK,EAAQ2qK,qBACxDzL,qBAAqB7nD,EAAOr3G,EAAQyvD,eAEtC,CACHg7G,OAAQzqK,EAAQyqK,OAChBjsK,OAAAA,EACAosK,SAAU5qK,EAAQ4qK,SAClBD,gBAAiB3qK,EAAQ2qK,gBACzBl7G,QAASzvD,EAAQyvD,YAGlB39D,UAAUmuK,0BAA4B,eACrCxD,MACC1uK,KAAKC,QAAQ04K,YAAc34K,KAAKk7K,aAAa,WACvCl7K,KAAKmgL,2BAEX,KACGhC,EAAan+K,KAAK6xD,UAClBy3D,EAAQ60D,OACLn+K,KAAK6/K,6BACO,IAAfv2D,EAAMpqH,MAAgCoqH,EAAMm5B,aAAeziJ,KAAK6xD,UAAU4wF,YAA+B,UAAhBn5B,EAAMlnH,QACnE,IAAxBpC,KAAK6xD,UAAU3yD,MAA+Bc,KAAKk7K,aAAa,UAAU,KACtEx9F,EAAM19E,KAAK8uK,8BACVoP,+BAA+BxgG,KAC7B,CACHx+E,KAAMu3K,EACNhmK,OAAQ,CAACitE,GACT2F,OAAO,MAIfqrF,EAAKxvK,OAASu3K,GAA6Bz2K,KAAKoI,MAAM,MAAO,MAExDnI,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,MAC5ByE,EAAU7O,EAAKrrF,MACf9sE,EAAOvW,KAAKggL,8BAA8BtR,MAC1Cn4J,EAAM,CACFvW,KAAKu4K,wBACAgC,wBAAwBv6K,KAAK6xD,gBAEjC5xD,QAAQ24K,+BAAiC,SAC1C4D,EAAiBx8K,KAAKC,QAAQk5K,OAC9BsD,EAA+Bz8K,KAAKC,QAAQy4K,0BAC3Cz4K,QAAQy4K,qBAAuBniK,EAAKmmK,WACrCK,EAAqB/8K,KAAKC,QAAQ04K,WAClCuE,EAAgBl9K,KAAKC,QAAQu4K,WAC5Bv4K,QAAQ04K,YAAa,OACrB14K,QAAQu4K,MAAQ+E,MACjB9yK,EAAOzK,KAAK46K,UAAUuD,QACrBrD,OAAO,UACRrtF,OAAO,KACPztF,KAAKoI,MAAM,KAAM,KACby2K,EAAkB7+K,KAAKC,QAAQw4K,aAC9Bx4K,QAAQw4K,SAAU,IAChBz4K,KAAK28K,mCACP18K,QAAQw4K,QAAUoG,SAGhB7+K,KAAKq7K,oBAAoBr7K,KAAKkyK,+BAErCD,EAAaxkF,EAAKvuF,OAASopK,EAASC,OAAOI,eAC3C3oK,KAAKC,QAAQk5K,QAAU5iK,EAAKqmK,sBACvBzL,qBAAqB56J,EAAKqmK,gBAAiBrmK,EAAKmrD,SAErD1hE,KAAKC,QAAQk5K,QAAU5iK,EAAKsmK,eACvBtC,wBAAwBhkK,EAAKsmK,SAAUtmK,EAAKmrD,WAE9C67G,EAAUv9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKqG,6BAA6B79J,EAAK9F,OAAQg9E,EAAMwkF,IAC1FjyK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlE,wBAAwBtzJ,EAAK9F,OAAQg9E,EAAMwkF,SACvEhyK,QAAQk5K,OAASqD,OACjBv8K,QAAQy4K,qBAAuB+D,OAC/Bx8K,QAAQ04K,WAAaoE,OACrB98K,QAAQu4K,MAAQ0E,WAIrBl9K,KAAKo7K,cAAe,IACfp7K,KAAKC,QAAQ44K,yBACT7G,cAAcuE,EAAWoD,SAASyF,wBAEvCp/K,KAAKC,QAAQk5K,QAAUzK,EAAKxvK,OAASopK,EAASC,OAAO8C,WAAY,KAC7D53J,EAAKi7J,EACL1uK,KAAKivK,QAAQiQ,iBAAiBzrK,EAAG3N,YAC5By0K,wBAAwBjxD,EAAOitD,EAAWoD,SAASyG,qBAExDpgL,KAAKivK,QAAQmL,yBAAyB3mK,EAAG3N,YACpCy0K,wBAAwBjxD,EAAOitD,EAAWoD,SAASU,oBAG3Dr6K,KAAKoI,MAAM,UAKP81K,+BAA+BxP,SAJ/BzuK,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,OAMhC3E,KADIn0K,KAAKqvK,aACQjtK,MACjBijG,EAAQrlG,KAAKq7K,oBAAoBr7K,KAAKkyK,6BACnClyK,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKtE,qBAAqB0K,EAAUzF,EAAMrpE,SAC1FplG,QAAQ24K,+BAAiC,aAInDlK,KAGJ3qK,UAAUk6K,gBAAkB,eAC3BE,EAAan+K,KAAK6xD,UAClB68G,EAAO1uK,KAAKq7K,oBAAoBr7K,KAAKkyK,8BACrClyK,KAAKoI,MAAM,KAAM,KACbytK,EAAc,SACN/2K,KAAK4vK,GACc,IAAxB1uK,KAAK6xD,UAAU3yD,MACbc,KAAKoI,MAAM,WAGXinK,cACOvwK,KAAKkB,KAAKq7K,oBAAoBr7K,KAAKkyK,8BAE5ClyK,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKxB,mBAAmBsJ,WAE1EnH,KAGJ3qK,UAAUs8K,uBAAyB,eAClCC,UACCrgL,QAAQ44K,oBAAqB,OAC7B54K,QAAQ64K,kBAAmB,EACJ,IAAxB94K,KAAK6xD,UAAU3yD,YACPc,KAAK6xD,UAAUzvD,WACd,SACIpC,KAAKC,QAAQqnK,eACTiT,wBAAwBv6K,KAAK6xD,UAAW0kH,EAAWoD,SAAS4G,4BAEzDvgL,KAAKwgL,mCAEhB,SACIxgL,KAAKC,QAAQqnK,eACTiT,wBAAwBv6K,KAAK6xD,UAAW0kH,EAAWoD,SAAS8G,4BAEzDzgL,KAAK0gL,mCAEhB,UACW1gL,KAAK2gL,wBAAwB,CAAEC,OAAO,cAEjD,aACW5gL,KAAK6gL,qCAEhB,UACW7gL,KAAK8gL,kCAEhB,QACW9gL,KAAK+gL,uBAAyB/gL,KAAK2gL,wBAAwB,CAAEC,OAAO,IAAW5gL,KAAKghL,iCAGpFhhL,KAAKghL,wBAKbhhL,KAAKghL,wBAEdV,KAEJv8K,UAAUk9K,WAAa,eACtBx2K,EAAOzK,KAAK26K,kBACXG,OAAO,aACR5E,EAAQ,IAEJl2K,KAAKoI,MAAM,QAGTtJ,KAAKkB,KAAKqgL,sCAEfvF,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpF,eAAeuN,OAGhDnyK,UAAUm9K,oBAAsB,SAAUjkD,EAAMhrH,OAC/CxH,EAAOzK,KAAK26K,aAEZlnK,EAAKzT,KAAKmhL,aADD,GACsBlkD,GAC/Bj9H,KAAKC,QAAQk5K,QAAU1lK,EAAGvU,OAASopK,EAASC,OAAO8C,YAC/CrrK,KAAKivK,QAAQiQ,iBAAiBzrK,EAAG3N,YAC5BksK,cAAcuE,EAAWoD,SAASyH,mBAG3C9qE,EAAO,WACE,UAAT2mB,EACKj9H,KAAKk7K,aAAa,OAAUl7K,KAAKm7K,uBAAuB,QACrDn7K,KAAKoI,MAAM,WACNinK,cACErvK,KAAKq7K,oBAAoBr7K,KAAKkyK,iCAGhCkH,WAAW7C,EAAWoD,SAAS0H,8BAA+B,YAIpEpvK,EAAQ2uK,OAASntK,EAAGvU,OAASopK,EAASC,OAAO8C,YAAerrK,KAAKoI,MAAM,aACzE0yK,OAAO,OACL96K,KAAKq7K,oBAAoBr7K,KAAKkyK,4BAElClyK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKV,mBAAmB55J,EAAI6iG,OAExDvyG,UAAUu9K,iBAAmB,SAAUrkD,EAAMhrH,WAC5CsE,EAAO,CAACvW,KAAKkhL,oBAAoBjkD,EAAMhrH,IACpCjS,KAAKoI,MAAM,WACTinK,cACAvwK,KAAKkB,KAAKkhL,oBAAoBjkD,EAAMhrH,WAEtCsE,KAEJxS,UAAUg9K,qBAAuB,eAChC38K,EAAQpE,KAAKivK,QAAQ+B,iBACpB/B,QAAQgC,mBACTh7G,EAAOj2D,KAAKivK,QAAQwB,kBACnBxB,QAAQiC,aAAa9sK,GACJ,IAAd6xD,EAAK/2D,MACM,IAAd+2D,EAAK/2D,MAA8C,MAAf+2D,EAAK7zD,OAC3B,IAAd6zD,EAAK/2D,MAA8C,MAAf+2D,EAAK7zD,OAC3B,IAAd6zD,EAAK/2D,MAA2C,QAAf+2D,EAAK7zD,OACxB,IAAd6zD,EAAK/2D,MAA2C,UAAf+2D,EAAK7zD,SAExC2B,UAAU48K,wBAA0B,SAAU1uK,OAC7CxH,EAAOzK,KAAK26K,aACZ19C,EAAOj9H,KAAKqvK,YAAYjtK,QACnBo3K,OAAgB,QAATv8C,GAA2B,UAATA,EAAkB,uDAChDm5C,EAAep2K,KAAKshL,iBAAiBrkD,EAAMhrH,eAC1C0pK,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKX,oBAAoBgJ,EAAcn5C,OAGnEl5H,UAAUw9K,wBAA0B,SAAU9wK,EAAQwsH,OACrDxyH,EAAOzK,KAAK26K,kBACXG,OAAO,WACRp9F,EAAM19E,KAAKmhL,aAAa1wK,EAAQwsH,UAC7Bj9H,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1B,YAAY3uF,OAE7C35E,UAAUy9K,kBAAoB,SAAU/wK,EAAQwsH,OAC/CxyH,EAAOzK,KAAK26K,kBACXG,OAAO,aACRzwJ,EAAW,IACPrqB,KAAKoI,MAAM,SACXpI,KAAKoI,MAAM,UACNinK,cACIvwK,KAAK,UAEb,IACGkB,KAAKoI,MAAM,OAAQ,GACVtJ,KAAKkB,KAAKuhL,wBAAwB9wK,EAAQwsH,YAI1Cn+H,KAAKkB,KAAKyhL,wBAAwBhxK,EAAQwsH,IAElDj9H,KAAKoI,MAAM,WACP0yK,OAAO,iBAInBA,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnE,aAAav/I,OAE9CtmB,UAAU29K,qBAAuB,SAAUjxK,EAAQwsH,OAKlD79H,EACAgD,EALAqI,EAAOzK,KAAK26K,aACZ/F,GAAW,EACXc,GAAY,KAIY,IAAxB11K,KAAK6xD,UAAU3yD,KAA6B,KACxCyiL,EAAW3hL,KAAK6xD,YACd7xD,KAAK4hL,8BACPtrE,EAAOt2G,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAWsW,EAASv/K,WACxDpC,KAAKoI,MAAM,KAAM,GACVtJ,KAAK6iL,MACA,OACPtS,gBACDX,EAAO1uK,KAAKkyK,8BACRlyK,KAAKsxK,SAAStxK,KAAK46K,UAAU+G,GAAW,IAAI5T,EAAKrE,kBAAkBpzD,EAAMo4D,SAE3E1uK,KAAKoI,MAAM,WAMZ0yK,OAAO,OACJ96K,KAAKyhL,wBAAwBhxK,EAAQwsH,OANtCn+H,KAAK6iL,MACA,IACJrrE,UAQDt2G,KAAKoI,MAAM,OAChBpI,KAAKm9K,8BACNrC,OAAO,OACJ96K,KAAKyhL,wBAAwBhxK,EAAQwsH,UAE1Cj9H,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3B,SAAS,OAAQhtK,EAAKw1K,EAAUxyK,GA9BvD,EA8BsEszK,OAEhF3xK,UAAU89K,mBAAqB,SAAUpxK,EAAQwsH,OAChDxyH,EAAOzK,KAAK26K,aACZp7J,EAAa,YACZu7J,OAAO,MACJ96K,KAAKoI,MAAM,QACJtJ,KAAKkB,KAAK0hL,qBAAqBjxK,EAAQwsH,IAC7Cj9H,KAAKoI,MAAM,WACP0yK,OAAO,iBAGfA,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK5B,cAAc5sJ,OAE/Cxb,UAAUo9K,aAAe,SAAU1wK,EAAQwsH,OAC1CprG,SACA7xB,KAAKoI,MAAM,OACDpI,KAAKwhL,kBAAkB/wK,EAAQwsH,GAEpCj9H,KAAKoI,MAAM,OACNpI,KAAK6hL,mBAAmBpxK,EAAQwsH,KAGtCj9H,KAAKk7K,aAAa,QAAoB,aAAoB,QAATj+C,QAC5Cs9C,wBAAwBv6K,KAAK6xD,UAAW0kH,EAAWoD,SAASmI,uBAE9DhjL,KAAKkB,KAAK6xD,aACP7xD,KAAK4hL,wBAAwB3kD,IAEpCprG,KAEJ9tB,UAAU09K,wBAA0B,SAAUhxK,EAAQwsH,OACrDkhD,EAAan+K,KAAK6xD,UAClBhgC,EAAU7xB,KAAKmhL,aAAa1wK,EAAQwsH,MACpCj9H,KAAKoI,MAAM,KAAM,MACZinK,gBACD0N,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,MACtBtzE,EAAQrlG,KAAKq7K,oBAAoBr7K,KAAKkyK,gCACrCjyK,QAAQ04K,WAAaoE,IAChB/8K,KAAKsxK,SAAStxK,KAAK46K,UAAUuD,GAAa,IAAIpQ,EAAKrE,kBAAkB73I,EAASwzE,WAErFxzE,KAGJ9tB,UAAU69K,wBAA0B,SAAU3kD,OAC7CxyH,EAAOzK,KAAK26K,aACZrxD,EAAQtpH,KAAKqvK,mBACE,IAAf/lD,EAAMpqH,MAA4C,UAAhBoqH,EAAMlnH,MACpCpC,KAAKC,QAAQk5K,YACRoB,wBAAwBjxD,EAAOitD,EAAWoD,SAASU,oBAElDr6K,KAAKC,QAAQ04K,iBACdxH,qBAAqB7nD,GAGV,IAAfA,EAAMpqH,KACPc,KAAKC,QAAQk5K,QAAyB,IAAf7vD,EAAMpqH,MAA4Bc,KAAKivK,QAAQmL,yBAAyB9wD,EAAMlnH,YAChGm4K,wBAAwBjxD,EAAOitD,EAAWoD,SAASU,qBAGpDr6K,KAAKC,QAAQk5K,QAA0B,QAAhB7vD,EAAMlnH,OAA4B,QAAT66H,SAC3Ck0C,qBAAqB7nD,SAIvBrpH,QAAQqnK,UAAYtnK,KAAKC,QAAQu4K,QAAyB,IAAflvD,EAAMpqH,MAA+C,UAAhBoqH,EAAMlnH,YAC5Fm4K,wBAAwBjxD,GAE1BtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1C,WAAW/hD,EAAMlnH,WAElD2B,UAAUg+K,yBAA2B,SAAU9vK,OAC9CxH,EAAOzK,KAAK26K,aAEZlnK,EAAKzT,KAAKmhL,aADD,GACsB,OAC/BnhL,KAAKC,QAAQk5K,QAAU1lK,EAAGvU,OAASopK,EAASC,OAAO8C,YAC/CrrK,KAAKivK,QAAQiQ,iBAAiBzrK,EAAG3N,YAC5BksK,cAAcuE,EAAWoD,SAASyH,mBAG3C9qE,EAAO,YACPt2G,KAAKoI,MAAM,WACNinK,cACErvK,KAAKq7K,oBAAoBr7K,KAAKkyK,4BAEhCz+J,EAAGvU,OAASopK,EAASC,OAAO8C,YAAep5J,EAAQ2uK,YACnD9F,OAAO,KAET96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKV,mBAAmB55J,EAAI6iG,OAExDvyG,UAAUi+K,6BAA+B,SAAU/vK,OAClDimD,EAAM,CAAE0oH,MAAO3uK,EAAQ2uK,OACvBrqK,EAAO,SACNzX,KAAKkB,KAAK+hL,yBAAyB7pH,IACjCl4D,KAAKoI,MAAM,WACTinK,cACAvwK,KAAKkB,KAAK+hL,yBAAyB7pH,WAErC3hD,KAEJxS,UAAUk+K,uBAAyB,eAClCx3K,EAAOzK,KAAK26K,kBACXK,cAAc,WACf5E,EAAep2K,KAAKgiL,6BAA6B,CAAEpB,OAAO,gBACzDjF,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKX,oBAAoBgJ,EAAc,WAGnEryK,UAAUm+K,oBAAsB,eAC/Bz3K,EAAOzK,KAAK26K,yBACXG,OAAO,KACL96K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKrD,mBAGjC3mK,UAAUo+K,yBAA2B,eACpC13K,EAAOzK,KAAK26K,aACZjM,EAAO1uK,KAAKi+K,8BACXtC,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKhD,oBAAoB2D,OAGrD3qK,UAAUq+K,cAAgB,kBACzBpiL,KAAKC,QAAQk5K,QAAUn5K,KAAKk7K,aAAa,kBACpClJ,cAAcuE,EAAWoD,SAAS0I,gBAEpCriL,KAAKghL,oBAETj9K,UAAUu+K,iBAAmB,eAE5BzN,EADApqK,EAAOzK,KAAK26K,aAEZ7F,EAAY,UACXkG,cAAc,WACdF,OAAO,SACRp4K,EAAO1C,KAAKi+K,yBACXj+K,KAAKoI,MAAM,MAAQpI,KAAK4V,OAAOmyJ,eAC3BwS,wBAAwBv6K,KAAKqvK,eACrBrvK,KAAKsxK,SAAStxK,KAAK26K,aAAc,IAAI5M,EAAKrD,uBAGlDoQ,OAAO,OACC96K,KAAKoiL,gBACdpiL,KAAKk7K,aAAa,eACb7L,cACOrvK,KAAKoiL,kBAGlBpiL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKzC,YAAY5oK,EAAMmyK,EAAYC,OAG/D/wK,UAAUw+K,sBAAwB,eACjC93K,EAAOzK,KAAK26K,kBACXK,cAAc,UACfwH,EAAsBxiL,KAAKC,QAAQ+4K,iBAClC/4K,QAAQ+4K,aAAc,MACvBvrF,EAAOztF,KAAKghL,sBACX/gL,QAAQ+4K,YAAcwJ,OACtBxH,cAAc,cACdF,OAAO,SACRp4K,EAAO1C,KAAKi+K,yBACXj+K,KAAKoI,MAAM,MAAQpI,KAAK4V,OAAOmyJ,cAC3BwS,wBAAwBv6K,KAAKqvK,mBAG7ByL,OAAO,KACR96K,KAAKoI,MAAM,WACNinK,aAGNrvK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKvD,iBAAiB/8E,EAAM/qF,OAGxDqB,UAAU0+K,oBAAsB,eAE/Bh1F,EADAhjF,EAAOzK,KAAK26K,kBAEXK,cAAc,cACdF,OAAO,SACRp4K,EAAO1C,KAAKi+K,sBACXj+K,KAAKoI,MAAM,MAAQpI,KAAK4V,OAAOmyJ,cAC3BwS,wBAAwBv6K,KAAKqvK,eAC3BrvK,KAAKsxK,SAAStxK,KAAK26K,aAAc,IAAI5M,EAAKrD,oBAEhD,MACIoQ,OAAO,SACR0H,EAAsBxiL,KAAKC,QAAQ+4K,iBAClC/4K,QAAQ+4K,aAAc,IACpBh5K,KAAKghL,sBACP/gL,QAAQ+4K,YAAcwJ,SAExBxiL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKT,eAAe5qK,EAAM+qF,OAItD1pF,UAAU2+K,kBAAoB,eAK7BrnH,EAAMgqC,EA4HN5X,EAhIA6oB,EAAO,KACP5zG,EAAO,KACPwS,EAAS,KACTytK,GAAQ,EAERl4K,EAAOzK,KAAK26K,qBACXK,cAAc,YACdF,OAAO,KACR96K,KAAKoI,MAAM,UACNinK,oBAGDrvK,KAAKk7K,aAAa,OAAQ,GACnBl7K,KAAK26K,kBACPtL,gBACDwP,EAAkB7+K,KAAKC,QAAQw4K,aAC9Bx4K,QAAQw4K,SAAU,MACnBrC,EAAep2K,KAAKgiL,6BAA6B,CAAEpB,OAAO,YACzD3gL,QAAQw4K,QAAUoG,EACK,IAAxBzI,EAAav3K,QAAgBmB,KAAKk7K,aAAa,MAAO,KAClD0H,EAAOxM,EAAa,GACpBwM,EAAKvsE,SAAc5iG,GAAGvU,OAASopK,EAASC,OAAOqB,cAAgBgZ,EAAKnvK,GAAGvU,OAASopK,EAASC,OAAO4D,eAAiBnsK,KAAKC,QAAQk5K,cACzHnH,cAAcuE,EAAWoD,SAASkJ,uBAAwB,YAE5D7iL,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAc,aACjE/G,cACE/4D,IACCt2G,KAAKi+K,oBACN,UAEsB,IAAxB7H,EAAav3K,QAAyC,OAAzBu3K,EAAa,GAAG//D,MAAiBr2G,KAAKm7K,uBAAuB,SACxFn7K,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAc,aACjE/G,cACE/4D,IACCt2G,KAAKkyK,8BACN,QACC,MAGDlyK,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAc,aACjE0E,OAAO,cAGX96K,KAAKk7K,aAAa,UAAYl7K,KAAKk7K,aAAa,OAAQ,GACtDl7K,KAAK26K,iBACR19C,EAAOj9H,KAAKqvK,YAAYjtK,MACvBpC,KAAKC,QAAQk5K,QAAmC,OAAzBn5K,KAAK6xD,UAAUzvD,OAQnCy8K,EAAkB7+K,KAAKC,QAAQw4K,aAC9Bx4K,QAAQw4K,SAAU,EACnBrC,EAAep2K,KAAKshL,iBAAiBrkD,EAAM,CAAE2jD,OAAO,SACnD3gL,QAAQw4K,QAAUoG,EACK,IAAxBzI,EAAav3K,QAAyC,OAAzBu3K,EAAa,GAAG//D,MAAiBr2G,KAAKk7K,aAAa,SACzEl7K,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAcn5C,SACjEoyC,cACE/4D,IACCt2G,KAAKi+K,oBACN,MAEsB,IAAxB7H,EAAav3K,QAAyC,OAAzBu3K,EAAa,GAAG//D,MAAiBr2G,KAAKm7K,uBAAuB,SACxFn7K,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAcn5C,SACjEoyC,cACE/4D,IACCt2G,KAAKkyK,8BACN,QACC,SAGHyJ,qBACE37K,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAKX,oBAAoBgJ,EAAcn5C,SA5BnEj9H,KAAKsxK,SAASh7D,EAAM,IAAIy3D,EAAK1C,WAAWpuC,SAC1CoyC,cACE/4D,IACCt2G,KAAKi+K,oBACN,UA4BV,KACG6E,EAAiB9iL,KAAK6xD,aACtBgtH,EAAkB7+K,KAAKC,QAAQw4K,aAC9Bx4K,QAAQw4K,SAAU,IAChBz4K,KAAK07K,oBAAoB17K,KAAKkyK,gCAChCjyK,QAAQw4K,QAAUoG,EACnB7+K,KAAKk7K,aAAa,MACbl7K,KAAKC,QAAQ44K,oBAAsBviE,EAAKp3G,OAASopK,EAASC,OAAOkB,2BAC7DuI,cAAcuE,EAAWoD,SAASoJ,wBAEtC1T,iBACA6O,+BAA+B5nE,KAC7BA,IACCt2G,KAAKi+K,oBACN,aAEFj+K,KAAKm7K,uBAAuB,MAC5Bn7K,KAAKC,QAAQ44K,oBAAsBviE,EAAKp3G,OAASopK,EAASC,OAAOkB,2BAC7DuI,cAAcuE,EAAWoD,SAASqJ,0BAEtC3T,iBACA6O,+BAA+B5nE,KAC7BA,IACCt2G,KAAKkyK,8BACN,QACC,MAEP,IACGlyK,KAAKoI,MAAM,KAAM,SACb66K,EAAU,CAAC3sE,GACRt2G,KAAKoI,MAAM,WACTinK,cACGvwK,KAAKkB,KAAKq7K,oBAAoBr7K,KAAKkyK,8BAExClyK,KAAKsxK,SAAStxK,KAAK46K,UAAUkI,GAAiB,IAAI/U,EAAKxB,mBAAmB0W,SAEhFnI,OAAO,cAIJ,IAATz/G,IACFr7D,KAAKoI,MAAM,SACLpI,KAAKi+K,wBAEXnD,OAAO,KACP96K,KAAKoI,MAAM,SACHpI,KAAKi+K,qBAIjBj+K,KAAKoI,MAAM,MAAQpI,KAAK4V,OAAOmyJ,cAC3BwS,wBAAwBv6K,KAAKqvK,eAC3BrvK,KAAKsxK,SAAStxK,KAAK26K,aAAc,IAAI5M,EAAKrD,oBAEhD,MACIoQ,OAAO,SACR0H,EAAsBxiL,KAAKC,QAAQ+4K,iBAClC/4K,QAAQ+4K,aAAc,IACpBh5K,KAAKq7K,oBAAoBr7K,KAAKghL,qBAChC/gL,QAAQ+4K,YAAcwJ,cAEP,IAATnnH,EACXr7D,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK/C,aAAa10D,EAAM5zG,EAAMwS,EAAQu4E,IAC9Dk1F,EAAQ3iL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK7C,eAAe7vG,EAAMgqC,EAAO5X,IAC7DztF,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK9C,eAAe5vG,EAAMgqC,EAAO5X,OAG9D1pF,UAAUm/K,uBAAyB,eAClCz4K,EAAOzK,KAAK26K,kBACXK,cAAc,gBACfxG,EAAQ,QACgB,IAAxBx0K,KAAK6xD,UAAU3yD,OAAgCc,KAAKu4K,kBAAmB,KACnE9kK,EAAKzT,KAAK4hL,4BACNnuK,MACJrU,EAAM,IAAMqU,EAAG3N,KACdqG,OAAOpI,UAAUsY,eAAe3W,KAAK1F,KAAKC,QAAQi5K,SAAU95K,SACxDg6K,WAAW7C,EAAWoD,SAASwJ,aAAc1vK,EAAG3N,kBAGxD61K,mBACS,OAAVnH,GAAmBx0K,KAAKC,QAAQ+4K,kBAC3BI,WAAW7C,EAAWoD,SAASyJ,iBAEjCpjL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKxD,kBAAkBiK,OAGnDzwK,UAAUs/K,oBAAsB,eAC/B54K,EAAOzK,KAAK26K,kBACXK,cAAc,aACfxG,EAAQ,QACgB,IAAxBx0K,KAAK6xD,UAAU3yD,OAAgCc,KAAKu4K,kBAAmB,KACnE9kK,EAAKzT,KAAK4hL,0BACVxiL,EAAM,IAAMqU,EAAG3N,KACdqG,OAAOpI,UAAUsY,eAAe3W,KAAK1F,KAAKC,QAAQi5K,SAAU95K,SACxDg6K,WAAW7C,EAAWoD,SAASwJ,aAAc1vK,EAAG3N,QAEjD2N,cAEPkoK,mBACS,OAAVnH,GAAmBx0K,KAAKC,QAAQ+4K,aAAgBh5K,KAAKC,QAAQg5K,eACxDG,WAAW7C,EAAWoD,SAAS2J,cAEjCtjL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK/D,eAAewK,OAGhDzwK,UAAUw/K,qBAAuB,WAC/BvjL,KAAKC,QAAQ84K,qBACT/G,cAAcuE,EAAWoD,SAAS6J,mBAEvC/4K,EAAOzK,KAAK26K,kBACXK,cAAc,cAKfvI,GAJgBzyK,KAAKoI,MAAM,MAASpI,KAAKoI,MAAM,MAC9CpI,KAAKu4K,mBAA6C,IAAxBv4K,KAAK6xD,UAAU3yD,OAClB,IAAxBc,KAAK6xD,UAAU3yD,MACS,KAAxBc,KAAK6xD,UAAU3yD,KACmC,KAAzBc,KAAKi+K,8BAC7BtC,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKzB,gBAAgBmG,OAGjD1uK,UAAU0/K,mBAAqB,WAC9BzjL,KAAKC,QAAQk5K,aACRnH,cAAcuE,EAAWoD,SAAS+J,oBAGvCj2F,EADAhjF,EAAOzK,KAAK26K,kBAEXK,cAAc,aACdF,OAAO,SACRtgK,EAASxa,KAAKi+K,yBACbj+K,KAAKoI,MAAM,MAAQpI,KAAK4V,OAAOmyJ,eAC3BwS,wBAAwBv6K,KAAKqvK,eAC3BrvK,KAAKsxK,SAAStxK,KAAK26K,aAAc,IAAI5M,EAAKrD,uBAG5CoQ,OAAO,OACL96K,KAAKghL,kBAEThhL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKR,cAAc/yJ,EAAQizE,OAGvD1pF,UAAU4/K,gBAAkB,eAE3BjhL,EADA+H,EAAOzK,KAAK26K,aAEZ36K,KAAKk7K,aAAa,iBACb7L,cACE,YAGF2L,cAAc,UACZh7K,KAAKi+K,wBAEXnD,OAAO,aACRjG,EAAa,KAET70K,KAAKoI,MAAM,MAAQpI,KAAKk7K,aAAa,YAAcl7K,KAAKk7K,aAAa,YAG9Dp8K,KAAKkB,KAAKqgL,iCAElBrgL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKrB,WAAWhqK,EAAMmyK,OAElD9wK,UAAU6/K,qBAAuB,eAChCn5K,EAAOzK,KAAK26K,kBACXK,cAAc,eACdF,OAAO,SACR/E,EAAe/1K,KAAKi+K,uBACnBnD,OAAO,SACR+I,EAAmB7jL,KAAKC,QAAQg5K,cAC/Bh5K,QAAQg5K,UAAW,MACpBxiK,EAAQ,GACRqtK,GAAe,WACdhJ,OAAO,MAEJ96K,KAAKoI,MAAM,MADN,KAIL27K,EAAS/jL,KAAK2jL,kBACE,OAAhBI,EAAOrhL,OACHohL,QACK1K,WAAW7C,EAAWoD,SAASqK,6BAEzB,KAEbllL,KAAKilL,eAEVjJ,OAAO,UACP76K,QAAQg5K,SAAW4K,EACjB7jL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpB,gBAAgBoJ,EAAct/J,OAG/D1S,UAAUkgL,uBAAyB,eAGlC3D,EAFA71K,EAAOzK,KAAK26K,aACZjM,EAAO1uK,KAAKi+K,qBAEXvP,EAAKxvK,OAASopK,EAASC,OAAO8C,YAAerrK,KAAKoI,MAAM,KAAM,MAC1DinK,gBACD57J,EAAKi7J,EACLtvK,EAAM,IAAMqU,EAAG3N,KACfqG,OAAOpI,UAAUsY,eAAe3W,KAAK1F,KAAKC,QAAQi5K,SAAU95K,SACvDg6K,WAAW7C,EAAWoD,SAASuK,cAAe,QAASzwK,EAAG3N,WAE9D7F,QAAQi5K,SAAS95K,IAAO,MACzBquF,OAAO,KACPztF,KAAKk7K,aAAa,cACbX,wBAAwBv6K,KAAK6xD,aAC3B7xD,KAAK8gL,gCAEP9gL,KAAKk7K,aAAa,YAAa,KAChC5xD,EAAQtpH,KAAK6xD,UACbojH,EAAcj1K,KAAK6gL,2BACnB7gL,KAAKC,QAAQk5K,YACRoB,wBAAwBjxD,EAAOitD,EAAWoD,SAAS0I,gBAEnDpN,EAAYj6I,gBACZu/I,wBAAwBjxD,EAAOitD,EAAWoD,SAASwK,4BAErDlP,SAGAj1K,KAAKghL,wBAEThhL,KAAKC,QAAQi5K,SAAS95K,KACjB,IAAI2uK,EAAKnC,iBAAiBn4J,EAAIg6E,aAGrCkuF,qBACO,IAAI5N,EAAKhD,oBAAoB2D,UAEtC1uK,KAAKsxK,SAAS7mK,EAAM61K,MAGxBv8K,UAAUqgL,oBAAsB,eAC/B35K,EAAOzK,KAAK26K,kBACXK,cAAc,SACfh7K,KAAKu4K,wBACAa,WAAW7C,EAAWoD,SAAS0K,uBAEpC5R,EAAWzyK,KAAKi+K,8BACftC,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKf,eAAeyF,OAGhD1uK,UAAUugL,iBAAmB,eAC5B75K,EAAOzK,KAAK26K,kBACXK,cAAc,cACdF,OAAO,KACR96K,KAAKoI,MAAM,WACN+oK,qBAAqBnxK,KAAK6xD,mBAE/BphD,EAAS,GACT3H,EAAQ9I,KAAKmhL,aAAa1wK,GAC1B8zK,EAAW,GACN1mL,EAAI,EAAGA,EAAI4S,EAAO5R,OAAQhB,IAAK,KAChCuB,EAAM,IAAMqR,EAAO5S,GAAGuE,MACtB+J,OAAOpI,UAAUsY,eAAe3W,KAAK6+K,EAAUnlL,SAC1C4yK,cAAcuE,EAAWoD,SAAS6K,iBAAkB/zK,EAAO5S,GAAGuE,SAE9DhD,IAAO,EAEhBY,KAAKC,QAAQk5K,QAAUrwK,EAAM5J,OAASopK,EAASC,OAAO8C,YAClDrrK,KAAKivK,QAAQiQ,iBAAiBp2K,EAAMhD,YAC/BksK,cAAcuE,EAAWoD,SAAS8K,0BAG1C3J,OAAO,SACRrtF,EAAOztF,KAAKihL,oBACTjhL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK7D,YAAYphK,EAAO2kF,OAEpD1pF,UAAU2gL,mBAAqB,uBAC7B1J,cAAc,WACZh7K,KAAKihL,gBAETl9K,UAAU4gL,kBAAoB,eAC7Bl6K,EAAOzK,KAAK26K,kBACXK,cAAc,WACf9E,EAAQl2K,KAAKihL,aACbloC,EAAU/4I,KAAKk7K,aAAa,SAAWl7K,KAAKskL,mBAAqB,KACjEnO,EAAYn2K,KAAKk7K,aAAa,WAAal7K,KAAK0kL,qBAAuB,YACtE3rC,GAAYo9B,QACRiD,WAAW7C,EAAWoD,SAASiL,kBAEjC5kL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKd,aAAaiJ,EAAOn9B,EAASo9B,OAG9DpyK,UAAU8gL,uBAAyB,eAClCp6K,EAAOzK,KAAK26K,yBACXK,cAAc,iBACdW,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKtD,sBAGjC1mK,UAAUi9K,eAAiB,eAC1BV,SACItgL,KAAK6xD,UAAU3yD,WACd,OACA,OACA,OACA,OACA,QACA,IACWc,KAAKmiL,sCAEhB,MACG//K,EAAQpC,KAAK6xD,UAAUzvD,QACb,MAAVA,EACYpC,KAAKihL,aAEF,MAAV7+K,EACOpC,KAAKmiL,2BAEF,MAAV//K,EACOpC,KAAKkiL,sBAGLliL,KAAKmiL,sCAGpB,IACWniL,KAAK47K,qBAAuB57K,KAAK6gL,2BAA6B7gL,KAAKikL,oCAE9E,SACOjkL,KAAK6xD,UAAUzvD,WACd,UACWpC,KAAKqjL,gCAEhB,aACWrjL,KAAKkjL,mCAEhB,aACWljL,KAAK6kL,mCAEhB,OACW7kL,KAAKuiL,kCAEhB,QACWviL,KAAK0iL,8BAEhB,aACW1iL,KAAK6gL,qCAEhB,OACW7gL,KAAKsiL,6BAEhB,WACWtiL,KAAKujL,iCAEhB,WACWvjL,KAAK4jL,iCAEhB,UACW5jL,KAAKokL,gCAEhB,QACWpkL,KAAK2kL,8BAEhB,QACW3kL,KAAKiiL,mCAEhB,UACWjiL,KAAKyiL,gCAEhB,SACWziL,KAAKyjL,qCAGLzjL,KAAKmiL,2CAKbniL,KAAKmxK,qBAAqBnxK,KAAK6xD,kBAE5CyuH,KAGJv8K,UAAU44K,4BAA8B,eACvClyK,EAAOzK,KAAK26K,kBACXG,OAAO,SACRrtF,EAAOztF,KAAK8kL,0BACZC,EAAmB/kL,KAAKC,QAAQi5K,SAChCsJ,EAAsBxiL,KAAKC,QAAQ+4K,YACnC6K,EAAmB7jL,KAAKC,QAAQg5K,SAChC+L,EAAyBhlL,KAAKC,QAAQ84K,wBACrC94K,QAAQi5K,SAAW,QACnBj5K,QAAQ+4K,aAAc,OACtB/4K,QAAQg5K,UAAW,OACnBh5K,QAAQ84K,gBAAiB,EACC,IAAxB/4K,KAAK6xD,UAAU3yD,OACdc,KAAKoI,MAAM,QAGVtJ,KAAKkB,KAAKqgL,sCAEdvF,OAAO,UACP76K,QAAQi5K,SAAW6L,OACnB9kL,QAAQ+4K,YAAcwJ,OACtBviL,QAAQg5K,SAAW4K,OACnB5jL,QAAQ84K,eAAiBiM,EACvBhlL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpF,eAAel7E,OAEhD1pF,UAAUg8K,cAAgB,SAAU9tK,EAASnJ,EAAOhD,OACnD1G,EAAM,IAAM0G,EACZ9F,KAAKC,QAAQk5K,QACTn5K,KAAKivK,QAAQiQ,iBAAiBp5K,OACtB+2K,SAAW/zK,IACX44D,QAAU60G,EAAWoD,SAASsL,iBAEtC94K,OAAOpI,UAAUsY,eAAe3W,KAAKuM,EAAQguK,SAAU7gL,OAC/Cy9K,SAAW/zK,IACX44D,QAAU60G,EAAWoD,SAASuG,kBAGpCjuK,EAAQ2qK,kBACV58K,KAAKivK,QAAQiQ,iBAAiBp5K,MACtB82K,gBAAkB9zK,IAClB44D,QAAU60G,EAAWoD,SAASsL,iBAEjCjlL,KAAKivK,QAAQmL,yBAAyBt0K,MACnC82K,gBAAkB9zK,IAClB44D,QAAU60G,EAAWoD,SAASU,oBAEjCluK,OAAOpI,UAAUsY,eAAe3W,KAAKuM,EAAQguK,SAAU7gL,OACpDy9K,SAAW/zK,IACX44D,QAAU60G,EAAWoD,SAASuG,kBAIT,mBAA1B/zK,OAAOsC,sBACPA,eAAewD,EAAQguK,SAAU7gL,EAAK,CAAEgD,OAAO,EAAM8Z,YAAY,EAAMkzE,UAAU,EAAM3F,cAAc,MAGpGw2F,SAAS7gL,IAAO,KAGzB2E,UAAUq6K,iBAAmB,SAAU3tK,OACtChG,EAAOzK,KAAK26K,kBACXG,OAAO,WACRp9F,EAAM19E,KAAKmhL,aAAa1wK,UACxBzQ,KAAKoI,MAAM,WACNgxK,WAAW7C,EAAWoD,SAASuL,sBAEnCllL,KAAKoI,MAAM,WACPgxK,WAAW7C,EAAWoD,SAASwL,6BAEjCnlL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1B,YAAY3uF,OAE7C35E,UAAUqhL,qBAAuB,SAAUnzK,WAC1CxB,EAAS,GACT3H,EAAQ9I,KAAKoI,MAAM,OAASpI,KAAKo+K,iBAAiB3tK,GAAUzQ,KAAKyhL,wBAAwBhxK,GACpF5S,EAAI,EAAGA,EAAI4S,EAAO5R,OAAQhB,SAC1BkiL,cAAc9tK,EAASxB,EAAO5S,GAAI4S,EAAO5S,GAAGuE,SAE7Cs6K,OAASzqK,EAAQyqK,QAAW5zK,aAAiBilK,EAAK1C,aAClD56J,OAAO3R,KAAKgK,MAEjB/E,UAAUi5K,sBAAwB,SAAUJ,OAC3C3qK,OACM,CACNyqK,QAAQ,EACRjsK,OAAQ,GACRmsK,gBAAAA,QAEC9B,OAAO,MACP96K,KAAKoI,MAAM,WACJ63K,SAAW,GACY,IAAxBjgL,KAAK6xD,UAAU3yD,YACbkmL,qBAAqBnzK,IACtBjS,KAAKoI,MAAM,aAGV0yK,OAAO,MACR96K,KAAKoI,MAAM,oBAKlB0yK,OAAO,KACL,CACH4B,OAAQzqK,EAAQyqK,OAChBjsK,OAAQwB,EAAQxB,OAChBosK,SAAU5qK,EAAQ4qK,SAClBD,gBAAiB3qK,EAAQ2qK,gBACzBl7G,QAASzvD,EAAQyvD,YAGlB39D,UAAU63K,mBAAqB,eAC9BxzK,EAAQpI,KAAKm7K,uBAAuB,YACpC/yK,EAAO,KACHhE,EAAQpE,KAAKivK,QAAQ+B,iBACpB/B,QAAQgC,mBACTh7G,EAAOj2D,KAAKivK,QAAQwB,WACnBxB,QAAQiC,aAAa9sK,KACjBA,EAAMq+I,aAAexsF,EAAKwsF,YAA8B,IAAdxsF,EAAK/2D,MAA6C,aAAf+2D,EAAK7zD,aAExFgG,KAEJrE,UAAU88K,yBAA2B,SAAUwE,OAC9C56K,EAAOzK,KAAK26K,aACZ4C,EAAUv9K,KAAKm7K,uBAAuB,SACtCoC,QACKlO,iBAEJ2L,cAAc,gBAKft5G,EAJA4jH,GAAc/H,GAAkBv9K,KAAKoI,MAAM,KAC3Ck9K,QACKjW,gBAGL57J,EAAK,KACLmpK,EAAkB,SACjByI,IAAyBrlL,KAAKoI,MAAM,KAAM,KACvCkhH,EAAQtpH,KAAK6xD,YACZ7xD,KAAK4hL,0BACN5hL,KAAKC,QAAQk5K,OACTn5K,KAAKivK,QAAQiQ,iBAAiB51D,EAAMlnH,aAC/Bm4K,wBAAwBjxD,EAAOitD,EAAWoD,SAAS4L,oBAIxDvlL,KAAKivK,QAAQiQ,iBAAiB51D,EAAMlnH,UAClBknH,IACRitD,EAAWoD,SAAS4L,oBAEzBvlL,KAAKivK,QAAQmL,yBAAyB9wD,EAAMlnH,WAC/BknH,IACRitD,EAAWoD,SAASU,wBAItCmL,EAAqBxlL,KAAKC,QAAQu4K,MAClCuE,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQu4K,MAAQ+E,OAChBt9K,QAAQ04K,YAAc2M,MACvBG,EAAmBzlL,KAAKg9K,sBAAsBJ,GAC9CnsK,EAASg1K,EAAiBh1K,OAC1BosK,EAAW4I,EAAiB5I,WACd4I,EAAiB7I,gBAC/B6I,EAAiB/jH,YACP+jH,EAAiB/jH,aAE3B86G,EAAiBx8K,KAAKC,QAAQk5K,OAC9BsD,EAA+Bz8K,KAAKC,QAAQy4K,0BAC3Cz4K,QAAQy4K,qBAAuB+M,EAAiB/I,WACjDjvF,EAAOztF,KAAK28K,qCACZ38K,KAAKC,QAAQk5K,QAAUyD,QAClBzL,qBAAqByL,EAAiBl7G,GAE3C1hE,KAAKC,QAAQk5K,QAAU0D,QAClBtC,wBAAwBsC,EAAUn7G,QAEtCzhE,QAAQk5K,OAASqD,OACjBv8K,QAAQy4K,qBAAuB+D,OAC/Bx8K,QAAQu4K,MAAQgN,OAChBvlL,QAAQ04K,WAAaoE,EACnBQ,EAAUv9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKsG,yBAAyB5gK,EAAIhD,EAAQg9E,IAC/EztF,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK5C,oBAAoB13J,EAAIhD,EAAQg9E,EAAM63F,OAEpEvhL,UAAU83K,wBAA0B,eACnCpxK,EAAOzK,KAAK26K,aACZ4C,EAAUv9K,KAAKm7K,uBAAuB,SACtCoC,QACKlO,iBAEJ2L,cAAc,gBAKft5G,EAJA4jH,GAAc/H,GAAkBv9K,KAAKoI,MAAM,KAC3Ck9K,QACKjW,gBAILuN,EADAnpK,EAAK,KAEL+xK,EAAqBxlL,KAAKC,QAAQu4K,MAClCuE,EAAqB/8K,KAAKC,QAAQ04K,mBACjC14K,QAAQu4K,MAAQ+E,OAChBt9K,QAAQ04K,YAAc2M,GACtBtlL,KAAKoI,MAAM,KAAM,KACdkhH,EAAQtpH,KAAK6xD,YACV7xD,KAAKC,QAAQk5K,QAAWmM,IAAetlL,KAAKk7K,aAAa,SAAyCl7K,KAAK4hL,0BAAlC5hL,KAAKo8K,sBAC7Ep8K,KAAKC,QAAQk5K,OACTn5K,KAAKivK,QAAQiQ,iBAAiB51D,EAAMlnH,aAC/Bm4K,wBAAwBjxD,EAAOitD,EAAWoD,SAAS4L,oBAIxDvlL,KAAKivK,QAAQiQ,iBAAiB51D,EAAMlnH,UAClBknH,IACRitD,EAAWoD,SAAS4L,oBAEzBvlL,KAAKivK,QAAQmL,yBAAyB9wD,EAAMlnH,WAC/BknH,IACRitD,EAAWoD,SAASU,wBAItCoL,EAAmBzlL,KAAKg9K,sBAAsBJ,GAC9CnsK,EAASg1K,EAAiBh1K,OAC1BosK,EAAW4I,EAAiB5I,WACd4I,EAAiB7I,gBAC/B6I,EAAiB/jH,YACP+jH,EAAiB/jH,aAE3B86G,EAAiBx8K,KAAKC,QAAQk5K,OAC9BsD,EAA+Bz8K,KAAKC,QAAQy4K,0BAC3Cz4K,QAAQy4K,qBAAuB+M,EAAiB/I,WACjDjvF,EAAOztF,KAAK28K,qCACZ38K,KAAKC,QAAQk5K,QAAUyD,QAClBzL,qBAAqByL,EAAiBl7G,GAE3C1hE,KAAKC,QAAQk5K,QAAU0D,QAClBtC,wBAAwBsC,EAAUn7G,QAEtCzhE,QAAQk5K,OAASqD,OACjBv8K,QAAQy4K,qBAAuB+D,OAC/Bx8K,QAAQu4K,MAAQgN,OAChBvlL,QAAQ04K,WAAaoE,EACnBQ,EAAUv9K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKuG,wBAAwB7gK,EAAIhD,EAAQg9E,IAC9EztF,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3C,mBAAmB33J,EAAIhD,EAAQg9E,EAAM63F,OAGnEvhL,UAAU2hL,eAAiB,eAC1Bp8D,EAAQtpH,KAAK6xD,UACbpnD,EAAOzK,KAAK26K,aACZjM,EAAO1uK,KAAKi+K,kBACZjJ,EAAatG,EAAKxvK,OAASopK,EAASC,OAAOoD,QAAW3rK,KAAK8xK,YAAYxoD,GAAOtmH,MAAM,MAAS,iBAC5F24K,mBACE37K,KAAKsxK,SAAS7mK,EAAMuqK,EAAY,IAAIjH,EAAKgH,UAAUrG,EAAMsG,GAAa,IAAIjH,EAAKhD,oBAAoB2D,OAEvG3qK,UAAU+gL,wBAA0B,mBACnClI,EAAkB,KAClBnvF,EAAO,KACE,KACL67B,EAAQtpH,KAAK6xD,aACE,IAAfy3D,EAAMpqH,eAGNohL,EAAYtgL,KAAK0lL,mBAChB5mL,KAAKwhL,OACNtL,EAAYsL,EAAUtL,aACD,iBAAdA,QAGO,eAAdA,QACK/0K,QAAQk5K,QAAS,EAClByD,QACKrC,wBAAwBqC,EAAiBrG,EAAWoD,SAASoC,oBAEjE/7K,KAAKC,QAAQy4K,2BACT6B,wBAAwBjxD,EAAOitD,EAAWoD,SAASgM,gCAIvD/I,GAAmBtzD,EAAMwyD,UACRxyD,UAIvB77B,KAGJ1pF,UAAU05K,sBAAwB,SAAUn0D,UACvCA,EAAMpqH,WACL,OACA,OACA,OACA,OACA,OACA,SACM,OACN,QACsB,MAAhBoqH,EAAMlnH,aAId,KAEJ2B,UAAU25K,kBAAoB,eAC7BjzK,EAAOzK,KAAK26K,aAEZoC,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,MACtB8M,EAAmBzlL,KAAKg9K,wBACxByI,EAAiBh1K,OAAO5R,OAAS,QAC5BmzK,cAAcuE,EAAWoD,SAASiM,oBAEvC7xH,EAAS/zD,KAAKu8K,oBAAoBkJ,eACjCxlL,QAAQ04K,WAAaoE,EACnB/8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3C,mBAAmB,KAAMqa,EAAiBh1K,OAAQsjD,GATpE,OAWfhwD,UAAU45K,kBAAoB,eAC7BlzK,EAAOzK,KAAK26K,aAEZoC,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,MACtB8M,EAAmBzlL,KAAKg9K,wBACW,IAAnCyI,EAAiBh1K,OAAO5R,YACnBmzK,cAAcuE,EAAWoD,SAASkM,gBAElCJ,EAAiBh1K,OAAO,aAAcs9J,EAAK1B,kBAC3C2F,cAAcuE,EAAWoD,SAASmM,4BAEvC/xH,EAAS/zD,KAAKu8K,oBAAoBkJ,eACjCxlL,QAAQ04K,WAAaoE,EACnB/8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3C,mBAAmB,KAAMqa,EAAiBh1K,OAAQsjD,GAZpE,OAcfhwD,UAAU65K,qBAAuB,eAChCnzK,EAAOzK,KAAK26K,aAEZoC,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,MACtBloK,EAASzQ,KAAKg9K,6BACb/8K,QAAQ04K,YAAa,MACtB5kH,EAAS/zD,KAAKu8K,oBAAoB9rK,eACjCxQ,QAAQ04K,WAAaoE,EACnB/8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3C,mBAAmB,KAAM36J,EAAOA,OAAQsjD,GAP1D,OAUfhwD,UAAU2vK,oBAAsB,eAC/B/kK,GAAQ,EACRvM,EAAQpC,KAAK6xD,UAAUzvD,aACnBpC,KAAK6xD,UAAU3yD,WACd,IACkB,MAAVkD,GAA6B,MAAVA,GAA6B,MAAVA,GAChC,MAAVA,GAA6B,MAAVA,GACT,MAAVA,GAA6B,MAAVA,GACT,OAAVA,GAA8B,OAAVA,GACV,MAAVA,GAA6B,OAAVA,aAEvB,IACkB,UAAVA,GAAiC,WAAVA,GACjB,aAAVA,GAAoC,QAAVA,GAA+B,QAAVA,GACrC,UAAVA,GAAiC,SAAVA,GAAgC,WAAVA,GACnC,SAAVA,GAAgC,UAAVA,SAK5BuM,KAEJ5K,UAAUo8K,qBAAuB,eAChC11K,EAAOzK,KAAK26K,kBACXK,cAAc,aACfvI,EAAW,KACX7L,GAAW,MACV5mK,KAAKu4K,kBAAmB,KACrBwE,EAAqB/8K,KAAKC,QAAQ04K,gBACjC14K,QAAQ04K,YAAa,KACf34K,KAAKoI,MAAM,YAEbinK,cACMrvK,KAAKkyK,6BAEXlyK,KAAK0zK,0BACC1zK,KAAKkyK,kCAEfjyK,QAAQ04K,WAAaoE,SAEvB/8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKP,gBAAgBiF,EAAU7L,OAG3D7iK,UAAUgiL,kBAAoB,SAAUC,OACvC18D,EAAQtpH,KAAK6xD,UACbpnD,EAAOzK,KAAK26K,aACZ19C,EAAO,GACP79H,EAAM,KACNgD,EAAQ,KACRwyK,GAAW,EACX7gH,GAAS,EACTyhH,GAAW,EACX+H,GAAU,KACVv9K,KAAKoI,MAAM,UACNinK,sBAGMrvK,KAAKoI,MAAM,KAGN,cAFVpI,KAAKm9K,0BAEJr3K,YAA2B23K,sBAAsBz9K,KAAK6xD,YAAc7xD,KAAKoI,MAAM,UAC1EpI,KAAK6xD,aACF,IACA7xD,KAAKoI,MAAM,KAClBpI,KAAKoI,MAAM,UACNinK,cAGCrvK,KAAKm9K,0BAGC,IAAf7zD,EAAMpqH,OAAiCc,KAAKu4K,mBAAsC,UAAhBjvD,EAAMlnH,MAAoB,KACzF6jL,EAAajmL,KAAK6xD,UAAUzvD,MACb,MAAf6jL,GAAqC,MAAfA,GAAqC,MAAfA,OAClC,IACFjmL,KAAK6xD,YACP7xD,KAAKm9K,yBACQ,IAAf7zD,EAAMpqH,MAA+C,gBAAhBoqH,EAAMlnH,YACtCm4K,wBAAwBjxD,EAAOitD,EAAWoD,SAASuM,yBAKpE1I,EAAuBx9K,KAAKy9K,sBAAsBz9K,KAAK6xD,kBACxC,IAAfy3D,EAAMpqH,KACc,QAAhBoqH,EAAMlnH,OAAmBo7K,KAClB,QACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,8BACNl9K,QAAQ04K,YAAa,IAClB34K,KAAK09K,qBAEQ,QAAhBp0D,EAAMlnH,OAAmBo7K,MACvB,QACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,2BACHn9K,KAAK29K,qBAGG,IAAfr0D,EAAMpqH,MAA+C,MAAhBoqH,EAAMlnH,OAAiBo7K,MAC1D,SACIx9K,KAAKoI,MAAM,OAChBpI,KAAKm9K,2BACHn9K,KAAK49K,0BACJ,IAER3gD,GAAQ79H,GAAOY,KAAKoI,MAAM,SACpB,SACCm1K,EAAUv9K,KAAKi9K,mCAAqCj9K,KAAK88K,iCACxD,GAER7/C,QACIk0C,qBAAqBnxK,KAAK6xD,WAEtB,SAATorE,MACO,UAEN23C,IACGY,GAAYx1K,KAAKo9K,cAAch+K,EAAK,mBAC/B+xK,qBAAqB7nD,EAAOitD,EAAWoD,SAASwM,kBAEpD3Q,GAAYx1K,KAAKo9K,cAAch+K,EAAK,kBACxB,WAAT69H,IAAsBlpE,GAAW3xD,GAASA,EAAM44B,iBAC3Cm2I,qBAAqB7nD,EAAOitD,EAAWoD,SAASyM,0BAErDJ,EAAe5jL,WACV+uK,qBAAqB7nD,EAAOitD,EAAWoD,SAAS0M,wBAGtCjkL,OAAQ,IAEpB,gBAGRpC,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK/B,iBAAiB5sK,EAAKw1K,EAAUxyK,EAAO66H,EAAMu4C,OAE9EzxK,UAAUuiL,sBAAwB,eACjC74F,EAAO,GACPu4F,EAAiB,CAAE5jL,OAAO,YACzB04K,OAAO,MACJ96K,KAAKoI,MAAM,MACXpI,KAAKoI,MAAM,UACNinK,cAGAvwK,KAAKkB,KAAK+lL,kBAAkBC,gBAGpClL,OAAO,KACLrtF,KAEJ1pF,UAAUwiL,eAAiB,eAC1B97K,EAAOzK,KAAK26K,aACZ6L,EAAcxmL,KAAKsmL,+BAChBtmL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK5D,UAAUqc,OAE3CziL,UAAU+8K,sBAAwB,SAAUuE,OAC3C56K,EAAOzK,KAAK26K,aACZ6B,EAAiBx8K,KAAKC,QAAQk5K,YAC7Bl5K,QAAQk5K,QAAS,OACjB6B,cAAc,aACfvnK,EAAM4xK,GAAiD,IAAxBrlL,KAAK6xD,UAAU3yD,KAAgC,KAAOc,KAAK4hL,0BAC1FlN,EAAa,KACb10K,KAAKk7K,aAAa,kBACb7L,cACQrvK,KAAKq7K,oBAAoBr7K,KAAK2+K,2CAE3C8H,EAAYzmL,KAAKumL,6BAChBtmL,QAAQk5K,OAASqD,EACfx8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK3D,iBAAiB32J,EAAIihK,EAAY+R,OAElE1iL,UAAUs4K,qBAAuB,eAChC5xK,EAAOzK,KAAK26K,aACZ6B,EAAiBx8K,KAAKC,QAAQk5K,YAC7Bl5K,QAAQk5K,QAAS,OACjB6B,cAAc,aACfvnK,EAA8B,IAAxBzT,KAAK6xD,UAAU3yD,KAA+Bc,KAAK4hL,0BAA4B,KACrFlN,EAAa,KACb10K,KAAKk7K,aAAa,kBACb7L,cACQrvK,KAAKq7K,oBAAoBr7K,KAAK2+K,2CAE3C8H,EAAYzmL,KAAKumL,6BAChBtmL,QAAQk5K,OAASqD,EACfx8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK1D,gBAAgB52J,EAAIihK,EAAY+R,OAIjE1iL,UAAU6jK,YAAc,gBACtB3nK,QAAQk5K,QAAS,OACjBl5K,QAAQqnK,UAAW,OACnB2H,QAAQ3H,UAAW,UACpB78J,EAAOzK,KAAK26K,aACZltF,EAAOztF,KAAK8kL,0BACe,IAAxB9kL,KAAK6xD,UAAU3yD,QACbJ,KAAKkB,KAAKqgL,iCAEZrgL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK0H,OAAOhoF,OAExC1pF,UAAU8jK,YAAc,mBACvBp9J,EAAOzK,KAAK26K,aACZltF,EAAOztF,KAAK8kL,0BACe,IAAxB9kL,KAAK6xD,UAAU3yD,QACbJ,KAAKkB,KAAKqgL,iCAEZrgL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAK6H,OAAOnoF,OAGxC1pF,UAAU2iL,qBAAuB,eAChCj8K,EAAOzK,KAAK26K,aACY,IAAxB36K,KAAK6xD,UAAU3yD,WACVk6K,WAAW7C,EAAWoD,SAASgN,4BAEpCr9D,EAAQtpH,KAAKqvK,YACbl3G,EAAMn4D,KAAK8xK,YAAYxoD,UACpBtpH,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpC,QAAQriD,EAAMlnH,MAAO+1D,OAGtDp0D,UAAU6iL,qBAAuB,eAEhCtR,EACAH,EAFA1qK,EAAOzK,KAAK26K,oBAGY,IAAxB36K,KAAK6xD,UAAU3yD,UACJc,KAAK4hL,0BAEZ5hL,KAAKm7K,uBAAuB,aACvB9L,cACGrvK,KAAK4hL,iCAIN5hL,KAAKo8K,sBAEZp8K,KAAKm7K,uBAAuB,YACvB9L,cACGrvK,KAAK4hL,gCAGRzQ,qBAAqBnxK,KAAKqvK,cAGhCrvK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKrC,gBAAgByJ,EAAOG,OAGxDvxK,UAAU8iL,kBAAoB,gBAC5B/L,OAAO,aACR5F,EAAa,IACTl1K,KAAKoI,MAAM,QACJtJ,KAAKkB,KAAK4mL,wBAChB5mL,KAAKoI,MAAM,WACP0yK,OAAO,iBAGfA,OAAO,KACL5F,KAGJnxK,UAAU+iL,4BAA8B,eACvCr8K,EAAOzK,KAAK26K,aACZxF,EAAQn1K,KAAKo8K,6BACVp8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKvC,uBAAuB2J,OAGxDpxK,UAAUgjL,8BAAgC,eACzCt8K,EAAOzK,KAAK26K,kBACXG,OAAO,KACP96K,KAAKm7K,uBAAuB,YACxB/B,WAAW7C,EAAWoD,SAASqN,+BAEnC3X,gBACD8F,EAAQn1K,KAAKo8K,6BACVp8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKtC,yBAAyB0J,OAE1DpxK,UAAU28K,uBAAyB,WAClC1gL,KAAKC,QAAQ84K,qBACRK,WAAW7C,EAAWoD,SAAS8G,8BAIpC1iH,EAFAtzD,EAAOzK,KAAK26K,kBACXK,cAAc,cAEf9F,EAAa,MACW,IAAxBl1K,KAAK6xD,UAAU3yD,OAETc,KAAK0mL,2BAEV,IACG1mL,KAAKoI,MAAM,OAEE8sK,EAAWv+J,OAAO3W,KAAK6mL,qBAE/B7mL,KAAKoI,MAAM,OAELtJ,KAAKkB,KAAK+mL,iCAEhB/mL,KAAKs+K,iBAAiBt+K,KAAK6xD,aAAe7xD,KAAKk7K,aAAa,cAEtDp8K,KAAKkB,KAAK8mL,+BACjB9mL,KAAKoI,MAAM,YACNinK,YACDrvK,KAAKoI,MAAM,OAEAtJ,KAAKkB,KAAK+mL,iCAEhB/mL,KAAKoI,MAAM,OAEH8sK,EAAWv+J,OAAO3W,KAAK6mL,0BAG/B1V,qBAAqBnxK,KAAK6xD,kBAKlCs/G,qBAAqBnxK,KAAKqvK,cAE9BrvK,KAAKm7K,uBAAuB,QAAS,KAClCz5G,EAAU1hE,KAAK6xD,UAAUzvD,MAAQm0K,EAAWoD,SAASC,gBAAkBrD,EAAWoD,SAASsN,uBAC1F7N,WAAW13G,EAAS1hE,KAAK6xD,UAAUzvD,YAEvCitK,cACCrvK,KAAK0mL,mCAEV/K,mBACE37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKxC,kBAAkB2J,EAAYn3G,OAG/Dh6D,UAAUmjL,qBAAuB,eAChCz8K,EAAOzK,KAAK26K,aACZxF,EAAQn1K,KAAKo8K,sBACbhH,EAAWD,SACXn1K,KAAKm7K,uBAAuB,aACvB9L,cACMrvK,KAAKo8K,uBAEbp8K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKjD,gBAAgBqK,EAAOC,OAExDrxK,UAAUy8K,uBAAyB,WAClCxgL,KAAKC,QAAQ84K,qBACRK,WAAW7C,EAAWoD,SAAS4G,8BAIpC4G,EAFA18K,EAAOzK,KAAK26K,qBACXK,cAAc,UAEfh7K,KAAKk7K,aAAa,mBAEb7L,YACDrvK,KAAKk7K,aAAa,YAAa,KAG3BjG,EAAcj1K,KAAK6gL,0BAAyB,KAC5B7gL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnD,yBAAyBqK,SAErEj1K,KAAKk7K,aAAa,UAEnBjG,EAAcj1K,KAAK8gL,uBAAsB,KACzB9gL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnD,yBAAyBqK,KAErEj1K,KAAKm7K,uBAAuB,UAI7BlG,EAAcj1K,KAAK47K,qBAAuB57K,KAAK6gL,0BAAyB,GAAQ7gL,KAAKkyK,8BACrElyK,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnD,yBAAyBqK,MAGtEj1K,KAAKm7K,uBAAuB,cACvB/B,WAAW7C,EAAWoD,SAASC,gBAAiB55K,KAAK6xD,UAAUzvD,OAKpE6yK,EAAcj1K,KAAKoI,MAAM,KAAOpI,KAAKm8K,yBACrCn8K,KAAKoI,MAAM,KAAOpI,KAAKk8K,wBAA0Bl8K,KAAKkyK,iCACrDyJ,qBACe37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKnD,yBAAyBqK,aAGzEj1K,KAAKoI,MAAM,KAAM,SAEjBinK,aACArvK,KAAKm7K,uBAAuB,QAAS,KAClCz5G,EAAU1hE,KAAK6xD,UAAUzvD,MAAQm0K,EAAWoD,SAASC,gBAAkBrD,EAAWoD,SAASsN,uBAC1F7N,WAAW13G,EAAS1hE,KAAK6xD,UAAUzvD,YAEvCitK,gBACDtxG,EAAM/9D,KAAK0mL,4BACV/K,qBACe37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKpD,qBAAqB5sG,YAEzC,IAAxB/9D,KAAK6xD,UAAU3yD,KAA0B,QAE1C+1K,OAAc,EACVj1K,KAAK6xD,UAAUzvD,WACd,UACA,UACapC,KAAK2gL,wBAAwB,CAAEC,OAAO,cAEnD,UACA,YACA,aACa5gL,KAAKqgL,4CAGdlP,qBAAqBnxK,KAAK6xD,aAEnB7xD,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlD,uBAAuBoK,EAAa,GAAI,eAEpFj1K,KAAK47K,qBACN3G,EAAcj1K,KAAK6gL,6BACH7gL,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlD,uBAAuBoK,EAAa,GAAI,WAExF,KACGC,EAAa,GACb/lJ,EAAS,KACTi4J,GAAyB,WACxBtM,OAAO,MACJ96K,KAAKoI,MAAM,QACUg/K,GAA0BpnL,KAAKk7K,aAAa,aAC1Dp8K,KAAKkB,KAAKknL,wBAChBlnL,KAAKoI,MAAM,WACP0yK,OAAO,UAGfA,OAAO,KACR96K,KAAKm7K,uBAAuB,cAGvB9L,cACIrvK,KAAK0mL,4BACT/K,oBAEAyL,GAED1lH,EAAU1hE,KAAK6xD,UAAUzvD,MAAQm0K,EAAWoD,SAASC,gBAAkBrD,EAAWoD,SAASsN,uBAC1F7N,WAAW13G,EAAS1hE,KAAK6xD,UAAUzvD,aAInCu5K,qBAEW37K,KAAKsxK,SAAS7mK,EAAM,IAAIsjK,EAAKlD,uBAAuB,KAAMqK,EAAY/lJ,WAEvFg4J,GAEJE,EA1jGG,KA4jGN3f,OAASgP,GAKZ,SAAS9wF,EAAQxpE,UAOf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAO9Co3K,gBANQltJ,EAAWo1C,OAElBp1C,QACK,IAAIgsC,MAAM,WAAaoJ,KAQhC,SAASkkB,EAAQxpE,UAIf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDu0K,EAAgB,6BAEPpmK,OAAS,QACTw3J,UAAW,WAEPhkK,UAAUujL,YAAc,SAAU92K,QACtCD,OAAOzR,KAAK0R,MAERzM,UAAUskK,SAAW,SAAU73J,OACpCxQ,KAAK+nK,eAICv3J,OAHD82K,YAAY92K,MAMZzM,UAAUwjL,eAAiB,SAAUl4H,EAAKk3C,OAC/C/1F,EAAQ,IAAI8nD,MAAMjJ,aAEZ7+C,QAEHpQ,GAEC+L,OAAOC,QAAUD,OAAOsC,mBAChBtC,OAAOC,OAAOhM,UACfqO,eAAe+B,EAAO,SAAU,CAAEpO,MAAOmkG,YAIjD/1F,KAEEzM,UAAU01K,YAAc,SAAUlwK,EAAOk0G,EAAMsC,EAAKv6F,OACzD6pC,EAAM,QAAUouD,EAAO,KAAOj4F,EAC9BhV,EAAQxQ,KAAKunL,eAAel4H,EAAK0wD,YAC/Bz2G,MAAQC,IACRk5I,WAAahlC,IACbj4F,YAAcA,EACbhV,KAEEzM,UAAUq1K,WAAa,SAAU7vK,EAAOk0G,EAAMsC,EAAKv6F,SACtDxlB,KAAKy5K,YAAYlwK,EAAOk0G,EAAMsC,EAAKv6F,MAEhCzhB,UAAUiuK,cAAgB,SAAUzoK,EAAOk0G,EAAMsC,EAAKv6F,OAC3DhV,EAAQxQ,KAAKy5K,YAAYlwK,EAAOk0G,EAAMsC,EAAKv6F,OAC3CxlB,KAAK+nK,eAICv3J,OAHD82K,YAAY92K,IAMlBg3K,EAnDS,KAqDZ7Q,aAAeA,GAKlB,SAAS/wF,EAAQxpE,UAGf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAE9Cu3K,SAAW,CACfiM,eAAgB,6CAChBC,eAAgB,gDAChBC,uBAAwB,wDACxBI,mBAAoB,+CACpBE,yBAA0B,2CAC1B/E,8BAA+B,wCAC/B6D,qBAAsB,qBACtBV,iBAAkB,uBAClB6B,qBAAsB,wCACtBxI,uBAAwB,gEACxBgF,uBAAwB,2DACxBsB,yBAA0B,4DAC1Bb,aAAc,0BACdF,gBAAiB,6BACjB7C,yBAA0B,mBAC1BE,yBAA0B,mBAC1BkF,6BAA8B,4EAC9BnC,cAAe,2BACfiE,2BAA4B,8CAC5BC,yBAA0B,sCAC1BtI,uBAAwB,uCACxB2D,kBAAmB,mCACnBC,oBAAqB,qCACrB2D,uBAAwB,mBACxBgB,cAAe,6BACf7F,oBAAqB,8CACrBmF,kBAAmB,mBACnBjD,yBAA0B,mDAC1BK,kBAAmB,8BACnB2C,yBAA0B,mBAC1BpC,iBAAkB,qCAClBO,4BAA6B,+CAC7BjB,cAAe,oCACfiC,gBAAiB,uDACjB1B,oBAAqB,6DACrBlF,aAAc,sDACd8C,eAAgB,qFAChBkD,mBAAoB,4DACpBnF,oBAAqB,gEACrBf,iBAAkB,oFAClBF,gBAAiB,mFACjBuE,eAAgB,oDAChB3H,mBAAoB,iDACpBmE,gBAAiB,8DACjB+E,gBAAiB,iEACjB5K,mBAAoB,6CACpB+G,cAAe,4DACfwG,qBAAsB,sDACtB/N,cAAe,0BACfC,qBAAsB,wBACtBC,iBAAkB,oBAClBI,mBAAoB,2BACpBH,iBAAkB,oBAClBC,mBAAoB,sBACpBL,gBAAiB,sBACjBiO,uBAAwB,2BACxB1E,aAAc,uBACd2E,mBAAoB,0CAMnB,SAASliG,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDi0K,EAAW9P,EAAoB,GAC/BqH,EAAcrH,EAAoB,GAClCgQ,EAAahQ,EAAoB,eACnBhrD,SACP,mBAAmBp7G,QAAQo7G,EAAGx4G,0BAErBw4G,SACT,WAAWp7G,QAAQo7G,OAE1Bq7D,EAAW,sBACMxwH,EAAM2yF,QACd5pH,OAASi3B,OACT4hH,aAAejvB,OACf89B,cAAe,OACfvP,UAAW,OACXzoK,OAASunD,EAAKvnD,YACdyK,MAAQ,OACRm5I,WAAcr8F,EAAKvnD,OAAS,EAAK,EAAI,OACrCswK,UAAY,OACZ4Y,WAAa,YAEdhkL,UAAUitK,UAAY,iBACnB,CACH1nK,MAAOtJ,KAAKsJ,MACZm5I,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,cAGhBprK,UAAUmtK,aAAe,SAAU9sK,QAClCkF,MAAQlF,EAAMkF,WACdm5I,WAAar+I,EAAMq+I,gBACnB0sB,UAAY/qK,EAAM+qK,aAEnBprK,UAAUgsK,IAAM,kBACb/vK,KAAKsJ,OAAStJ,KAAKnB,UAEtBkF,UAAUotK,qBAAuB,SAAUzvG,eAC/B,IAAZA,MAAgC60G,EAAWoD,SAASkO,wBACjD7nL,KAAKgoK,aAAaoR,WAAWp5K,KAAKsJ,MAAOtJ,KAAKyiJ,WAAYziJ,KAAKsJ,MAAQtJ,KAAKmvK,UAAY,EAAGztG,MAE9F39D,UAAUw2K,wBAA0B,SAAU74G,QAClC,IAAZA,MAAgC60G,EAAWoD,SAASkO,6BACnD7f,aAAagK,cAAchyK,KAAKsJ,MAAOtJ,KAAKyiJ,WAAYziJ,KAAKsJ,MAAQtJ,KAAKmvK,UAAY,EAAGztG,MAG1F39D,UAAUikL,sBAAwB,SAAUl4K,OAE5CnB,EAAO46J,EADPzB,EAAW,OAEX9nK,KAAK62K,iBACM,KACH72K,KAAKsJ,MAAQwG,IACf,CACFnB,MAAO,CACH8uG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,UAAYr/J,GAE1CZ,IAAK,MAGLlP,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YACnCtJ,KAAKsJ,MACHskK,EAAYoC,UAAUc,iBAAiBv1D,GAAK,IACxCv7G,KAAK62K,aAAc,GACf3nK,IAAM,CACNuuG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,UAAY,OAEtCtG,EAAQ,CACR2R,WAAW,EACXx3K,MAAO,CAAC2L,EAAQmB,EAAQ9P,KAAKsJ,MAAQ,GACrCqoC,MAAO,CAAChjC,EAAO3O,KAAKsJ,MAAQ,GAC5BigK,IAAAA,KAEKzqK,KAAK+pK,UAEP,KAAPttD,GAAoD,KAAvCv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,UACvCtJ,KAAKsJ,QAETtJ,KAAKyiJ,gBACF0sB,UAAYnvK,KAAKsJ,MACfw+J,UAGX9nK,KAAK62K,iBACD3nK,IAAM,CACNuuG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,WAE1BtG,EAAQ,CACR2R,WAAW,EACXx3K,MAAO,CAAC2L,EAAQmB,EAAQ9P,KAAKsJ,OAC7BqoC,MAAO,CAAChjC,EAAO3O,KAAKsJ,OACpBigK,IAAAA,KAEKzqK,KAAK+pK,IAEXf,KAEH/jK,UAAUkkL,qBAAuB,eAEjCt5K,EAAO46J,EADPzB,EAAW,OAEX9nK,KAAK62K,iBACM,KACH72K,KAAKsJ,MAAQ,IACf,CACFqF,MAAO,CACH8uG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,UAAY,GAE1CjgK,IAAK,MAGLlP,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,UACjCskK,EAAYoC,UAAUc,iBAAiBv1D,GAC5B,KAAPA,GAA0D,KAA3Cv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,MACjDtJ,KAAKsJ,QAETtJ,KAAKyiJ,aACLziJ,KAAKsJ,WACF6lK,UAAYnvK,KAAKsJ,cAEV,KAAPiyG,EAAa,IAE6B,KAA3Cv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,GAAa,SAC5CA,OAAS,EACVtJ,KAAK62K,aAAc,GACf3nK,IAAM,CACNuuG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,eAE1BtG,EAAQ,CACR2R,WAAW,EACXx3K,MAAO,CAAC2L,EAAQ,EAAG3O,KAAKsJ,MAAQ,GAChCqoC,MAAO,CAAChjC,EAAO3O,KAAKsJ,OACpBigK,IAAAA,KAEKzqK,KAAK+pK,UAEXf,IAET9nK,KAAKsJ,YAGLtJ,KAAKsJ,aAIXtJ,KAAK62K,iBACD3nK,IAAM,CACNuuG,KAAMz9G,KAAKyiJ,WACXl8C,OAAQvmG,KAAKsJ,MAAQtJ,KAAKmvK,WAE1BtG,EAAQ,CACR2R,WAAW,EACXx3K,MAAO,CAAC2L,EAAQ,EAAG3O,KAAKsJ,OACxBqoC,MAAO,CAAChjC,EAAO3O,KAAKsJ,OACpBigK,IAAAA,KAEKzqK,KAAK+pK,SAEb0R,0BACEzS,KAEH/jK,UAAUktK,aAAe,eACzBnJ,EACA9nK,KAAK62K,iBACM,YAEXloK,EAAwB,IAAf3O,KAAKsJ,OACVtJ,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,UACjCskK,EAAYoC,UAAU+D,aAAax4D,KACjCv7G,KAAKsJ,cAEFskK,EAAYoC,UAAUc,iBAAiBv1D,KAC1Cv7G,KAAKsJ,MACI,KAAPiyG,GAAsD,KAAvCv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,UACzCtJ,KAAKsJ,QAETtJ,KAAKyiJ,gBACF0sB,UAAYnvK,KAAKsJ,SACd,UAEI,KAAPiyG,KAEM,QADNv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,IACxB,MACRA,OAAS,MACV6rD,EAAUn1D,KAAKgoL,sBAAsB,GACrChoL,KAAK62K,iBACM/O,EAASnxJ,OAAOw+C,OAEvB,UAEI,KAAPomD,aACAjyG,OAAS,EACV6rD,EAAUn1D,KAAKioL,uBACfjoL,KAAK62K,iBACM/O,EAASnxJ,OAAOw+C,YAO9BxmD,GAAgB,KAAP4sG,EAAa,IAEqB,KAA3Cv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,IAA4D,KAA3CtJ,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,cAErFA,OAAS,EACV6rD,EAAUn1D,KAAKgoL,sBAAsB,GACrChoL,KAAK62K,iBACM/O,EAASnxJ,OAAOw+C,YAOvB,KAAPomD,GAAgBv7G,KAAKsnK,kBACgC,QAAtDtnK,KAAKmvB,OAAOnsB,MAAMhD,KAAKsJ,MAAQ,EAAGtJ,KAAKsJ,MAAQ,cAC1CA,OAAS,EACV6rD,EAAUn1D,KAAKgoL,sBAAsB,GACrChoL,KAAK62K,iBACM/O,EAASnxJ,OAAOw+C,YAWpC2yG,KAGH/jK,UAAUm2K,qBAAuB,SAAUzmK,UACvCA,OACC,WACA,aACA,aACA,eACM,iBAEA,MAGX1P,UAAUq2K,yBAA2B,SAAU3mK,UAC3CA,OACC,iBACA,gBACA,cACA,cACA,gBACA,aACA,aACA,YACA,aACM,iBAEA,MAGX1P,UAAUm7K,iBAAmB,SAAUzrK,SAC7B,SAAPA,GAAwB,cAAPA,KAGpB1P,UAAUmkL,UAAY,SAAUz0K,UAC5BA,EAAG5U,aACF,QACc,OAAP4U,GAAwB,OAAPA,GAAwB,OAAPA,OACzC,QACc,QAAPA,GAAyB,QAAPA,GAAyB,QAAPA,GAChC,QAAPA,GAAyB,QAAPA,OACtB,QACc,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,GAClC,SAAPA,GAA0B,SAAPA,GAA0B,SAAPA,OAC1C,QACc,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACpC,UAAPA,GAA2B,UAAPA,GAA2B,UAAPA,GACjC,UAAPA,GAA2B,UAAPA,OACxB,QACc,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,GACtC,WAAPA,GAA4B,WAAPA,GAA4B,WAAPA,OAC9C,QACc,YAAPA,GAA6B,YAAPA,GAA6B,YAAPA,OACnD,QACc,aAAPA,GAA8B,aAAPA,GAA8B,aAAPA,OACrD,SACc,eAAPA,iBAED,MAGX1P,UAAUokL,YAAc,SAAUtqL,OAClCwyK,EAAKrwK,KAAKmvB,OAAOomC,WAAW13D,MAC5BwyK,GAAM,OAAUA,GAAM,MAAQ,KAC1BnlG,EAASlrE,KAAKmvB,OAAOomC,WAAW13D,EAAI,GACpCqtE,GAAU,OAAUA,GAAU,UAEN,MADZmlG,EACE,OAAkBnlG,EAAS,MAAS,cAGnDmlG,KAEHtsK,UAAUqkL,cAAgB,SAAU98D,WACpCvnE,EAAkB,MAAXunE,EAAkB,EAAI,EAC7BllE,EAAO,EACFvoD,EAAI,EAAGA,EAAIkmD,IAAOlmD,EAAG,IACrBmC,KAAK+vK,QAASnC,EAAYoC,UAAUE,WAAWlwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,eAIrE,OAHO,GAAP88C,EAAYiiI,EAASroL,KAAKmvB,OAAOnvB,KAAKsJ,iBAM9CkC,OAAOkrD,aAAatQ,MAEvBriD,UAAUukL,2BAA6B,eACvC/sE,EAAKv7G,KAAKmvB,OAAOnvB,KAAKsJ,OACtB88C,EAAO,MAEA,MAAPm1D,QACK41D,wBAEDnxK,KAAK+vK,UACJ/vK,KAAKmvB,OAAOnvB,KAAKsJ,SACjBskK,EAAYoC,UAAUE,WAAW30D,EAAGhmD,WAAW,QAGtC,GAAPnP,EAAYiiI,EAAS9sE,UAE5Bn1D,EAAO,SAAmB,MAAPm1D,SACd41D,uBAEFvD,EAAYoC,UAAU8D,cAAc1tH,MAEvCriD,UAAUwkL,cAAgB,mBAC1B55K,EAAQ3O,KAAKsJ,SACTtJ,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,UAC1B,KAAPiyG,cAEKjyG,MAAQqF,EACN3O,KAAKwoL,0BAEPjtE,GAAM,OAAUA,EAAK,kBAErBjyG,MAAQqF,EACN3O,KAAKwoL,2BAEZ5a,EAAYoC,UAAUQ,iBAAiBj1D,WACrCv7G,KAAKsJ,aAMRtJ,KAAKmvB,OAAOnsB,MAAM2L,EAAO3O,KAAKsJ,UAEjCvF,UAAUykL,qBAAuB,eAKjCjtE,EAJA80D,EAAKrwK,KAAKmoL,YAAYnoL,KAAKsJ,OAC3BmK,EAAKm6J,EAAYoC,UAAU8D,cAAczD,YACxC/mK,OAASmK,EAAG5U,OAGN,KAAPwxK,IAC2C,MAAvCrwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,aACvB6nK,yBAEPnxK,KAAKsJ,MACyB,MAA5BtJ,KAAKmvB,OAAOnvB,KAAKsJ,UACftJ,KAAKsJ,QACFtJ,KAAKsoL,8BAIC,UADNtoL,KAAKooL,cAAc,OACE,OAAP7sE,GAAgBqyD,EAAYoC,UAAUO,kBAAkBh1D,EAAGhmD,WAAW,UAChF47G,yBAGR51D,IAEDv7G,KAAK+vK,UACJ/vK,KAAKmoL,YAAYnoL,KAAKsJ,OACtBskK,EAAYoC,UAAUQ,iBAAiBH,UAGvCzC,EAAYoC,UAAU8D,cAAczD,QAEpC/mK,OAASiyG,EAAG18G,OAEN,KAAPwxK,MACK58J,EAAGpC,OAAO,EAAGoC,EAAG5U,OAAS,GACa,MAAvCmB,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,aACvB6nK,yBAEPnxK,KAAKsJ,MACyB,MAA5BtJ,KAAKmvB,OAAOnvB,KAAKsJ,UACftJ,KAAKsJ,QACFtJ,KAAKsoL,8BAIC,UADNtoL,KAAKooL,cAAc,OACE,OAAP7sE,GAAgBqyD,EAAYoC,UAAUQ,iBAAiBj1D,EAAGhmD,WAAW,UAC/E47G,0BAGP51D,UAGP9nG,KAEH1P,UAAU0kL,eAAiB,SAAUltE,OAErCugE,EAAgB,MAAPvgE,EACTn1D,EAAOsiI,EAAWntE,UACjBv7G,KAAK+vK,OAASnC,EAAYoC,UAAUgE,aAAah0K,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,aACtE,IACM,EAAP88C,EAAWsiI,EAAW1oL,KAAKmvB,OAAOnvB,KAAKsJ,UAG1C,OAAOnJ,QAAQo7G,IAAO,IAAMv7G,KAAK+vK,OAASnC,EAAYoC,UAAUgE,aAAah0K,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAC3F,EAAP88C,EAAWsiI,EAAW1oL,KAAKmvB,OAAOnvB,KAAKsJ,YAG/C,CACHq/K,KAAMviI,EACN01H,MAAAA,MAIA/3K,UAAU6kL,eAAiB,eAC3Bv+K,EACAsE,EAAQ3O,KAAKsJ,MAEbmK,EAAwC,KAAlCzT,KAAKmvB,OAAOomC,WAAW5mD,GAAmB3O,KAAKwoL,uBAAyBxoL,KAAKuoL,mBAkB1E,MAfK,IAAd90K,EAAG5U,OACI,EAEFmB,KAAKkoL,UAAUz0K,GACb,EAEK,SAAPA,EACE,EAEK,SAAPA,GAAwB,UAAPA,EACf,EAGA,IAEyB9E,EAAQ8E,EAAG5U,SAAWmB,KAAKsJ,MAAQ,KAC/Du/K,EAAU7oL,KAAKsJ,WACdA,MAAQqF,OACR4rK,wBAAwBhE,EAAWoD,SAAS8N,iCAC5Cn+K,MAAQu/K,QAEV,CACH3pL,KAAMmL,EACNjI,MAAOqR,EACPgvI,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAIVvF,UAAU+kL,eAAiB,eAC3Bn6K,EAAQ3O,KAAKsJ,MAEbyH,EAAM/Q,KAAKmvB,OAAOnvB,KAAKsJ,cACnByH,OACC,QACA,IACW,MAARA,QACKg3K,WAAWjpL,KAAK,OAEvBkB,KAAKsJ,gBAEN,MACCtJ,KAAKsJ,MACyB,MAA5BtJ,KAAKmvB,OAAOnvB,KAAKsJ,QAAkD,MAAhCtJ,KAAKmvB,OAAOnvB,KAAKsJ,MAAQ,UAEvDA,OAAS,IACR,iBAGT,MACCtJ,KAAKsJ,WACFy+K,WAAWj5K,gBAEf,QACA,QACA,QACA,QACA,QACA,QACA,QACA,MACC9O,KAAKsJ,oBAKK,YADNtJ,KAAKmvB,OAAO9d,OAAOrR,KAAKsJ,MAAO,SAE5BA,OAAS,EAKF,WADNyH,EAAIM,OAAO,EAAG,KACS,QAARN,GAAyB,QAARA,GAC1B,QAARA,GAAyB,QAARA,GAAyB,QAARA,OAC7BzH,OAAS,EAKF,UADNyH,EAAIM,OAAO,EAAG,KACQ,OAARN,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,GACxC,OAARA,GAAwB,OAARA,GAAwB,OAARA,GAAwB,OAARA,OAC3CzH,OAAS,KAIRtJ,KAAKmvB,OAAOnvB,KAAKsJ,OACnB,eAAenJ,QAAQ4Q,IAAQ,KAC7B/Q,KAAKsJ,cAM3BtJ,KAAKsJ,QAAUqF,QACVwiK,uBAEF,CACHjyK,KAAM,EACNkD,MAAO2O,EACP0xI,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAIVvF,UAAUglL,eAAiB,SAAUp6K,WACrCq6K,EAAM,IACFhpL,KAAK+vK,OACJnC,EAAYoC,UAAUE,WAAWlwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAG3DtJ,KAAKmvB,OAAOnvB,KAAKsJ,gBAET,IAAf0/K,EAAInqL,aACCsyK,uBAELvD,EAAYoC,UAAUO,kBAAkBvwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,cAC/D6nK,uBAEF,CACHjyK,KAAM,EACNkD,MAAOgU,SAAS,KAAO4yK,EAAK,IAC5BvmC,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAGVvF,UAAUklL,kBAAoB,SAAUt6K,WAExC4sG,EADAytE,EAAM,IAEFhpL,KAAK+vK,QAEE,SADN/vK,KAAKmvB,OAAOnvB,KAAKsJ,SACG,MAAPiyG,OAGXv7G,KAAKmvB,OAAOnvB,KAAKsJ,gBAET,IAAf0/K,EAAInqL,aAECsyK,uBAEJnxK,KAAK+vK,UACD/vK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,QAE7BskK,EAAYoC,UAAUO,kBAAkBh1D,IAAOqyD,EAAYoC,UAAUC,eAAe10D,UAC/E41D,wBAGN,CACHjyK,KAAM,EACNkD,MAAOgU,SAAS4yK,EAAK,GACrBvmC,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAGVvF,UAAUmlL,iBAAmB,SAAU59D,EAAQ38G,OAC/Cq6K,EAAM,GACNlN,GAAQ,MACRlO,EAAYoC,UAAUgE,aAAa1oD,EAAO/1D,WAAW,QAC7C,IACF,IAAMv1D,KAAKmvB,OAAOnvB,KAAKsJ,YAG3BtJ,KAAKsJ,OAEHtJ,KAAK+vK,OACJnC,EAAYoC,UAAUgE,aAAah0K,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAG7DtJ,KAAKmvB,OAAOnvB,KAAKsJ,gBAEvBwyK,GAAwB,IAAfkN,EAAInqL,aAETsyK,wBAELvD,EAAYoC,UAAUO,kBAAkBvwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,SAAWskK,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,eAC3I6nK,uBAEF,CACHjyK,KAAM,EACNkD,MAAOgU,SAAS4yK,EAAK,GACrBlN,MAAAA,EACAr5B,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAGVvF,UAAUolL,uBAAyB,mBAG9BtrL,EAAImC,KAAKsJ,MAAQ,EAAGzL,EAAImC,KAAKnB,SAAUhB,EAAG,KAC3C09G,EAAKv7G,KAAKmvB,OAAOtxB,MACV,MAAP09G,GAAqB,MAAPA,SACP,MAENqyD,EAAYoC,UAAUgE,aAAaz4D,EAAGhmD,WAAW,WAC3C,SAGR,KAEHxxD,UAAUqlL,mBAAqB,eAC/Bz6K,EAAQ3O,KAAKsJ,MACbiyG,EAAKv7G,KAAKmvB,OAAOxgB,KACZ6qK,OAAO5L,EAAYoC,UAAUC,eAAe10D,EAAGhmD,WAAW,KAAe,MAAPgmD,EAAa,0EACpFytE,EAAM,MACC,MAAPztE,EAAY,MACNv7G,KAAKmvB,OAAOnvB,KAAKsJ,WAClBtJ,KAAKmvB,OAAOnvB,KAAKsJ,OAKV,MAAR0/K,EAAa,IACF,MAAPztE,GAAqB,MAAPA,UACZv7G,KAAKsJ,MACAtJ,KAAK+oL,eAAep6K,MAEpB,MAAP4sG,GAAqB,MAAPA,UACZv7G,KAAKsJ,MACAtJ,KAAKipL,kBAAkBt6K,MAEvB,MAAP4sG,GAAqB,MAAPA,SACPv7G,KAAKkpL,iBAAiB3tE,EAAI5sG,MAEjC4sG,GAAMqyD,EAAYoC,UAAUgE,aAAaz4D,EAAGhmD,WAAW,KACnDv1D,KAAKmpL,gCACEnpL,KAAKkpL,iBAAiB3tE,EAAI5sG,QAItCi/J,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAC7DtJ,KAAKmvB,OAAOnvB,KAAKsJ,WAEvBtJ,KAAKmvB,OAAOnvB,KAAKsJ,UAEf,MAAPiyG,EAAY,QACLv7G,KAAKmvB,OAAOnvB,KAAKsJ,SACjBskK,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAC7DtJ,KAAKmvB,OAAOnvB,KAAKsJ,WAEvBtJ,KAAKmvB,OAAOnvB,KAAKsJ,UAEf,MAAPiyG,GAAqB,MAAPA,QACPv7G,KAAKmvB,OAAOnvB,KAAKsJ,SAEb,SADNtJ,KAAKmvB,OAAOnvB,KAAKsJ,SACG,MAAPiyG,OACPv7G,KAAKmvB,OAAOnvB,KAAKsJ,UAExBskK,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,aAC1DskK,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,YAC7DtJ,KAAKmvB,OAAOnvB,KAAKsJ,mBAIvB6nK,8BAGTvD,EAAYoC,UAAUO,kBAAkBvwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,cAC/D6nK,uBAEF,CACHjyK,KAAM,EACNkD,MAAO4wB,WAAWg2J,GAClBvmC,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAIVvF,UAAUslL,kBAAoB,eAC9B16K,EAAQ3O,KAAKsJ,MACb0nH,EAAQhxH,KAAKmvB,OAAOxgB,KACf6qK,OAAkB,MAAVxoD,GAA4B,MAAVA,EAAgB,6CACjDhxH,KAAKsJ,cACHwyK,GAAQ,EACR/qK,EAAM,IACF/Q,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOnvB,KAAKsJ,YACtBiyG,IAAOyV,EAAO,GACN,YAGI,OAAPzV,QACAv7G,KAAKmvB,OAAOnvB,KAAKsJ,WACVskK,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,MA0D3Dv1D,KAAKyiJ,WACI,OAAPlnC,GAA2C,OAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,UAC9BtJ,KAAKsJ,WAEN6lK,UAAYnvK,KAAKsJ,kBA7DdiyG,OACC,OAC+B,MAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,SACftJ,KAAKsJ,SACAtJ,KAAKsoL,iCAEX,KACGgB,EAActpL,KAAKooL,cAAc7sE,GACjB,OAAhB+tE,QACKnY,0BAEFmY,YAGV,QACGC,EAAYvpL,KAAKooL,cAAc7sE,GACjB,OAAdguE,QACKpY,qBAAqBoF,EAAWoD,SAAS+N,6BAE3C6B,YAEN,OACM,eAEN,OACM,eAEN,OACM,eAEN,OACM,eAEN,OACM,eAEN,OACM,eAEN,QACA,OACMhuE,OACFg/D,2CAGDh/D,GAAMqyD,EAAYoC,UAAUgE,aAAaz4D,EAAGhmD,WAAW,IAAK,KACxDi0H,EAAWxpL,KAAKyoL,eAAeltE,KAC3BiuE,EAAS1N,OAASA,KACnBtwK,OAAOkrD,aAAa8yH,EAASb,cAG7BptE,UAalBqyD,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,aAInDgmD,SAGD,KAAVyV,SACK1nH,MAAQqF,OACRwiK,wBAEF,CACHjyK,KAAM,EACNkD,MAAO2O,EACP+qK,MAAAA,EACAr5B,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAIVvF,UAAU0lL,aAAe,eACzB1L,EAAS,GACTlO,GAAa,EACblhK,EAAQ3O,KAAKsJ,MACb8oD,EAA+B,MAAvBpyD,KAAKmvB,OAAOxgB,GACpB0wD,GAAO,EACPqqH,EAAY,QACd1pL,KAAKsJ,OACCtJ,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOnvB,KAAKsJ,YACf,MAAPiyG,EAAY,GACA,KACL,KACM,WAGD,MAAPA,EAAY,IACe,MAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,OAAgB,MAC5By+K,WAAWjpL,KAAK,QACnBkB,KAAKsJ,SACM,WAGPiyG,UAEE,OAAPA,OACAv7G,KAAKmvB,OAAOnvB,KAAKsJ,SACjBskK,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,MA+DpDv1D,KAAKyiJ,WACI,OAAPlnC,GAA2C,OAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,UAC9BtJ,KAAKsJ,WAEN6lK,UAAYnvK,KAAKsJ,kBAlEdiyG,OACC,OACS,eAET,OACS,eAET,OACS,eAET,OAC+B,MAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,SACftJ,KAAKsJ,SACGtJ,KAAKsoL,iCAEd,KACGO,EAAU7oL,KAAKsJ,MACfqgL,EAAc3pL,KAAKooL,cAAc7sE,GACjB,OAAhBouE,KACUA,QAGLrgL,MAAQu/K,KACHttE,aAIjB,QACGguE,EAAYvpL,KAAKooL,cAAc7sE,GACjB,OAAdguE,QACKpY,qBAAqBoF,EAAWoD,SAAS+N,6BAExC6B,YAET,OACS,eAET,OACS,eAET,OACS,mBAGC,MAAPhuE,GACIqyD,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,cAE5D6nK,qBAAqBoF,EAAWoD,SAASiO,yBAExC,MAELha,EAAYoC,UAAUgE,aAAaz4D,EAAGhmD,WAAW,SAEjD47G,qBAAqBoF,EAAWoD,SAASiO,yBAGpCrsE,OAarBqyD,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,OACxDv1D,KAAKyiJ,WACI,OAAPlnC,GAA2C,OAA5Bv7G,KAAKmvB,OAAOnvB,KAAKsJ,UAC9BtJ,KAAKsJ,WAEN6lK,UAAYnvK,KAAKsJ,SACZ,SAGAiyG,SAGbs0D,QACIsB,uBAEJ/+G,QACI21H,WAAWj5K,MAEb,CACH5P,KAAM,GACNkD,MAAOpC,KAAKmvB,OAAOnsB,MAAM2L,EAAQ,EAAG3O,KAAKsJ,MAAQogL,GACjD3L,OAAAA,EACA3rH,KAAAA,EACAiN,KAAAA,EACAojF,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAIVvF,UAAU6lL,WAAa,SAAU/3J,EAAS9oB,OAQ1CiyG,EAAMnpF,EACNm3D,EAAOhpF,KACP+I,EAAM5I,QAAQ,MAAQ,MAChB66G,EACDl4G,QAAQ,8CAA8C,SAAU+mL,EAAIC,EAAIC,OACrEj4D,EAAY17G,SAAS0zK,GAAMC,EAAI,WAC/Bj4D,EAAY,WACPq/C,qBAAqBoF,EAAWoD,SAASgO,eAE9C71D,GAAa,MACNtmH,OAAOkrD,aAAao7D,GAXhB,OAedhvH,QAAQ,kCAfM,iBAmBZk4G,SAEJ95G,QACEiwK,qBAAqBoF,EAAWoD,SAASgO,0BAMvC,IAAI3hG,OAAOn0D,EAAS9oB,SAExBmhF,UAEI,SAGPnmF,UAAUimL,eAAiB,eAC3BzuE,EAAKv7G,KAAKmvB,OAAOnvB,KAAKsJ,SACjBkwK,OAAc,MAAPj+D,EAAY,8DACxBxqG,EAAM/Q,KAAKmvB,OAAOnvB,KAAKsJ,SACvB2gL,GAAc,EACdpa,GAAa,GACT7vK,KAAK+vK,eACJ/vK,KAAKmvB,OAAOnvB,KAAKsJ,SAEX,OAAPiyG,IACKv7G,KAAKmvB,OAAOnvB,KAAKsJ,SAElBskK,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,UAChD47G,qBAAqBoF,EAAWoD,SAASmO,uBAE3CvsE,UAEFqyD,EAAYoC,UAAUc,iBAAiBv1D,EAAGhmD,WAAW,SACrD47G,qBAAqBoF,EAAWoD,SAASmO,4BAEzCmC,EACM,MAAP1uE,OACc,OAGjB,IACU,MAAPA,EAAY,IACC,QAGD,MAAPA,OACS,UAIrBs0D,QACIsB,qBAAqBoF,EAAWoD,SAASmO,oBAG3C/2K,EAAIM,OAAO,EAAGN,EAAIlS,OAAS,MAE9BkF,UAAUmmL,gBAAkB,mBAE5BnhL,EAAQ,IACJ/I,KAAK+vK,OAAO,KACZx0D,EAAKv7G,KAAKmvB,OAAOnvB,KAAKsJ,WACrBskK,EAAYoC,UAAUQ,iBAAiBj1D,EAAGhmD,WAAW,eAGxDv1D,KAAKsJ,MACI,OAAPiyG,GAAgBv7G,KAAK+vK,SAyBZx0D,UAvBE,SADNv7G,KAAKmvB,OAAOnvB,KAAKsJ,QACN,GACVtJ,KAAKsJ,UACHu/K,EAAU7oL,KAAKsJ,MACf6gL,EAAOnqL,KAAKooL,cAAc,QACjB,OAAT+B,SACSA,EACUtB,EAAU7oL,KAAKsJ,QAASu/K,EAChC7oL,KAAKmvB,OAAO05J,aAIlBv/K,MAAQu/K,KACJ,SAGRtO,oCAIAA,iCAQVxxK,KAEHhF,UAAU22K,WAAa,eACvB/rK,EAAQ3O,KAAKsJ,MACbuoB,EAAU7xB,KAAKgqL,iBACfjhL,EAAQ/I,KAAKkqL,wBAEV,CACHhrL,KAAM,EACNkD,MAAO,GACPyvB,QAAAA,EACA9oB,MAAAA,EACAq9E,MANQpmF,KAAK4pL,WAAW/3J,EAAS9oB,GAOjC05I,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAAA,EACAO,IAAKlP,KAAKsJ,UAGVvF,UAAU0sK,IAAM,cAChBzwK,KAAK+vK,YACE,CACH7wK,KAAM,EACNkD,MAAO,GACPqgJ,WAAYziJ,KAAKyiJ,WACjB0sB,UAAWnvK,KAAKmvK,UAChBxgK,MAAO3O,KAAKsJ,MACZ4F,IAAKlP,KAAKsJ,WAGd+mK,EAAKrwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,cACjCskK,EAAYoC,UAAUO,kBAAkBF,GACjCrwK,KAAK4oL,iBAGL,KAAPvY,GAAsB,KAAPA,GAAsB,KAAPA,EACvBrwK,KAAK8oL,iBAGL,KAAPzY,GAAsB,KAAPA,EACRrwK,KAAKqpL,oBAIL,KAAPhZ,EACIzC,EAAYoC,UAAUC,eAAejwK,KAAKmvB,OAAOomC,WAAWv1D,KAAKsJ,MAAQ,IAClEtJ,KAAKopL,qBAETppL,KAAK8oL,iBAEZlb,EAAYoC,UAAUC,eAAeI,GAC9BrwK,KAAKopL,qBAIL,KAAP/Y,GAAuB,MAAPA,GAA+D,OAAhDrwK,KAAK+nL,WAAW/nL,KAAK+nL,WAAWlpL,OAAS,GACjEmB,KAAKypL,eAGZpZ,GAAM,OAAUA,EAAK,OACjBzC,EAAYoC,UAAUO,kBAAkBvwK,KAAKmoL,YAAYnoL,KAAKsJ,QACvDtJ,KAAK4oL,iBAGb5oL,KAAK8oL,kBAETsB,EA3mCI,KA6mCPxT,QAAUA,GAKb,SAAShxF,EAAQxpE,UAGf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAC9CusK,UAAY,KACZA,UAAU,GAA0B,YACpCA,UAAU,GAAe,UACzBA,UAAU,GAAsB,eAChCA,UAAU,GAAmB,YAC7BA,UAAU,GAAuB,SACjCA,UAAU,GAA0B,YACpCA,UAAU,GAAsB,eAChCA,UAAU,GAAyB,WACnCA,UAAU,GAA6B,sBACvCA,UAAU,IAAqB,YAKlC,SAAS/oF,EAAQxpE,UAIf3N,eAAe2N,EAAS,aAAc,CAAEha,OAAO,MAC9C+tK,cAAgB,CACpBka,KAAM,IACNC,IAAK,IACLC,KAAM,IACNC,GAAI,IACJC,KAAM,IACNC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,IAAK,IACL17K,KAAM,IACN27K,KAAM,IACNC,MAAO,IACPtwG,IAAK,IACLuwG,IAAK,IACLjjL,IAAK,IACLkjL,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNl5C,MAAO,IACPm5C,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,IAAK,IACLC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,QAAS,IACTC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,QAAS,IACT9+D,GAAI,IACJ++D,IAAK,IACLC,MAAO,IACPC,IAAK,IACLC,QAAS,IACTC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACP9pK,MAAO,IACP+pK,QAAS,IACTC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,QAAS,IACTC,GAAI,IACJC,IAAK,IACLC,OAAQ,IACRC,MAAO,IACPC,IAAK,IACLC,QAAS,IACTC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,SAAU,IACVC,MAAO,IACPC,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,OAAQ,IACRC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,KAAM,IACNC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,MAAO,IACPC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACR5vG,KAAM,IACN6vG,MAAO,IACPC,QAAS,IACTC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPxuK,MAAO,IACPyuK,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,GAAI,IACJC,KAAM,IACNC,IAAK,IACLC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPC,KAAM,IACNC,MAAO,IACPC,IAAK,IACLC,IAAK,IACLC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,OAAQ,IACRC,IAAK,IACLC,KAAM,IACNC,MAAO,IACPC,GAAI,IACJC,MAAO,IACPC,GAAI,IACJC,GAAI,IACJj0L,IAAK,IACLk0L,IAAK,IACLC,KAAM,IACNC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,OAAQ,IACRC,OAAQ,IACRC,IAAK,IACLC,OAAQ,IACRC,MAAO,IACPC,OAAQ,IACRC,MAAO,IACPn6F,KAAM,IACNo6F,KAAM,MAML,SAAS1zG,EAAQxpE,EAASmqJ,UAGxB93J,eAAe2N,EAAS,aAAc,CAAEha,OAAO,QAClDk0K,EAAkB/P,EAAoB,IACtCiQ,EAAYjQ,EAAoB,IAChCyH,EAAUzH,EAAoB,IAC9BgzB,EAAU,6BAEDhhL,OAAS,QACTihL,MAAQx5L,KAAKy5L,kBAGf11L,UAAU21L,yBAA2B,SAAUl7L,SAC3C,CAAC,IAAK,IAAK,IAAK,KAAM,SAAU,aAAc,MACjD,SAAU,OAAQ,SAAU,QAAS,OAErC,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,MAAO,OACxD,KAAM,KAAM,KAAM,IAElB,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,IAC9D,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,MAAO,KAAM,KACvD,KAAM,IAAK,IAAK,KAAM,OAAO2B,QAAQ3B,IAAM,KAI5CuF,UAAU41L,aAAe,eACxBjsL,EAAW1N,KAAKuY,OAAOvY,KAAKuY,OAAO1Z,OAAS,GAC5CunF,EAAsB,OAAb14E,SACLA,OACC,WACA,OACO,YAEP,QACGutK,EAAUj7K,KAAKuY,OAAOvY,KAAKy5L,MAAQ,KAClB,OAAZxe,GAAgC,UAAZA,GAAmC,QAAZA,GAAiC,SAAZA,YAExE,UAGO,EAC4B,aAAhCj7K,KAAKuY,OAAOvY,KAAKw5L,MAAQ,QAErBh9H,EAAQx8D,KAAKuY,OAAOvY,KAAKw5L,MAAQ,MACpBx5L,KAAK05L,yBAAyBl9H,WAEV,aAAhCx8D,KAAKuY,OAAOvY,KAAKw5L,MAAQ,GAAmB,KAE7Ch9H,MAAAA,EAAQx8D,KAAKuY,OAAOvY,KAAKw5L,MAAQ,MACpBx5L,KAAK05L,yBAAyBl9H,WAMpD4pB,KAEJriF,UAAUjF,KAAO,SAAUwqH,GACX,IAAfA,EAAMpqH,MAA8C,IAAfoqH,EAAMpqH,MACvB,MAAhBoqH,EAAMlnH,WACDo3L,MAAQx5L,KAAKuY,OAAO1Z,OAEJ,MAAhByqH,EAAMlnH,aACNq3L,MAAQz5L,KAAKuY,OAAO1Z,aAExB0Z,OAAOzZ,KAAKwqH,EAAMlnH,aAGlBmW,OAAOzZ,KAAK,OAGlB86L,EAjEG,GAmEVlxE,EAAa,sBACMtiE,EAAMxwC,QAChBoyJ,aAAe,IAAIsO,EAAgBK,kBACnC3O,aAAaD,WAAWnyJ,GAAqC,kBAApBA,EAAOmyJ,UAA0BnyJ,EAAOmyJ,cACjFkH,QAAU,IAAIuH,EAAUI,QAAQxwH,EAAMpmD,KAAKgoK,mBAC3CiH,QAAQ4H,eAAejhK,GAAoC,kBAAnBA,EAAOu/C,SAAyBv/C,EAAOu/C,aAC/E0kI,aAAajkL,GAAkC,kBAAjBA,EAAO+7B,OAAuB/7B,EAAO+7B,WACnEmoJ,WAAWlkL,GAAgC,kBAAfA,EAAO2zJ,KAAqB3zJ,EAAO2zJ,SAC/DprJ,OAAS,QACT47K,OAAS,IAAIR,WAEZx1L,UAAUwM,OAAS,kBAClBvQ,KAAKgoK,aAAaz3J,UAEnBxM,UAAUqkK,aAAe,cACJ,IAAvBpoK,KAAKme,OAAOtf,OAAc,KACtBipK,EAAW9nK,KAAKivK,QAAQgC,kBACxBjxK,KAAKivK,QAAQ4H,qBACJh5K,EAAI,EAAGA,EAAIiqK,EAASjpK,SAAUhB,EAAG,KAClCqD,EAAI4mK,EAASjqK,GACbuE,EAAQpC,KAAKivK,QAAQ9/I,OAAOnsB,MAAM9B,EAAE8B,MAAM,GAAI9B,EAAE8B,MAAM,IACtDmyD,EAAU,CACVj2D,KAAMgC,EAAEs5K,UAAY,eAAiB,cACrCp4K,MAAAA,GAEApC,KAAK65L,eACGloJ,MAAQzwC,EAAEywC,OAElB3xC,KAAK85L,aACGvwB,IAAMroK,EAAEqoK,UAEfprJ,OAAOrf,KAAKq2D,OAGpBn1D,KAAKivK,QAAQc,MAAO,KACjBxG,OAAM,EACNvpK,KAAK85L,aACC,CACFnrL,MAAO,CACH8uG,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,WAE9CjgK,IAAK,SAITo6G,EAD0D,MAA5CtpH,KAAKivK,QAAQ9/I,OAAOnvB,KAAKivK,QAAQ3lK,QAAmBtJ,KAAK+5L,OAAOJ,eACzD35L,KAAKivK,QAAQyL,aAAe16K,KAAKivK,QAAQwB,WAC7DspB,OAAOj7L,KAAKwqH,OACbu/C,EAAQ,CACR3pK,KAAM8uK,EAAQW,UAAUrlD,EAAMpqH,MAC9BkD,MAAOpC,KAAKivK,QAAQ9/I,OAAOnsB,MAAMsmH,EAAM36G,MAAO26G,EAAMp6G,SAEpDlP,KAAK65L,eACCloJ,MAAQ,CAAC23E,EAAM36G,MAAO26G,EAAMp6G,MAElClP,KAAK85L,aACD5qL,IAAM,CACNuuG,KAAMz9G,KAAKivK,QAAQxsB,WACnBl8C,OAAQvmG,KAAKivK,QAAQ3lK,MAAQtJ,KAAKivK,QAAQE,aAExC5F,IAAMA,GAEG,IAAfjgD,EAAMpqH,KAAoC,KACtC2yB,EAAUy3F,EAAMz3F,QAChB9oB,EAAQugH,EAAMvgH,QACZq9E,MAAQ,CAAEv0D,QAAAA,EAAkB9oB,MAAAA,QAEjCoV,OAAOrf,KAAK+pK,WAGlB7oK,KAAKme,OAAO9N,SAEhB2pL,EAxEM,KA0ET9uE,UAAYxC,KCniNrB,mCA8BA,SAAqBuxE,OACfz/H,EAAO0/H,GAAQD,GACfE,EAAW3/H,EAAK,GAChB4/H,EAAkB5/H,EAAK,UACY,KAAnB4/H,GAAuB,EAAKA,eAOlD,SAAsBH,OAChBj/E,EAcAn9G,EAbA28D,EAAO0/H,GAAQD,GACfE,EAAW3/H,EAAK,GAChB4/H,EAAkB5/H,EAAK,GAEvBlpD,EAAM,IAAI+oL,GAVhB,SAAsBJ,EAAKE,EAAUC,UACI,KAAnBA,GAAuB,EAAKA,EAS9BE,CAAYL,EAAKE,EAAUC,IAEzCG,EAAU,EAGVx2I,EAAMq2I,EAAkB,EACxBD,EAAW,EACXA,MAGCt8L,EAAI,EAAGA,EAAIkmD,EAAKlmD,GAAK,IAErB28L,GAAUP,EAAI1kI,WAAW13D,KAAO,GAChC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,KAAO,GACpC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,KAAO,EACrC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,MAC3B08L,KAAcv/E,GAAO,GAAM,MAC3Bu/E,KAAcv/E,GAAO,EAAK,MAC1Bu/E,KAAmB,IAANv/E,EAGK,IAApBo/E,MAECI,GAAUP,EAAI1kI,WAAW13D,KAAO,EAChC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,KAAO,IACnC08L,KAAmB,IAANv/E,GAGK,IAApBo/E,MAECI,GAAUP,EAAI1kI,WAAW13D,KAAO,GAChC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,KAAO,EACpC28L,GAAUP,EAAI1kI,WAAW13D,EAAI,KAAO,IACnC08L,KAAcv/E,GAAO,EAAK,MAC1Bu/E,KAAmB,IAANv/E,UAGZ1pG,iBAuBT,SAAwBmpL,WAClBz/E,EACAj3D,EAAM02I,EAAM57L,OACZ67L,EAAa32I,EAAM,EACnB0xD,EAAQ,GACRklF,EAAiB,MAGZ98L,EAAI,EAAGmhF,EAAOj7B,EAAM22I,EAAY78L,EAAImhF,EAAMnhF,GAAK88L,IAChD77L,KAAK87L,GAAYH,EAAO58L,EAAIA,EAAI88L,EAAkB37G,EAAOA,EAAQnhF,EAAI88L,IAI1D,IAAfD,KACID,EAAM12I,EAAM,KACZjlD,KACJ+7L,GAAO7/E,GAAO,GACd6/E,GAAQ7/E,GAAO,EAAK,IACpB,OAEsB,IAAf0/E,SACI32I,EAAM,IAAM,GAAK02I,EAAM12I,EAAM,KACpCjlD,KACJ+7L,GAAO7/E,GAAO,IACd6/E,GAAQ7/E,GAAO,EAAK,IACpB6/E,GAAQ7/E,GAAO,EAAK,IACpB,aAIGvF,EAAMjtG,KAAK,MA9IhBqyL,GAAS,GACTL,GAAY,GACZH,GAA4B,oBAAf9oL,WAA6BA,WAAaxP,MAEvD4mL,GAAO,mEACF9qL,GAAI,EAAGkmD,GAAM4kI,GAAK9pL,OAAQhB,GAAIkmD,KAAOlmD,MACrCA,IAAK8qL,GAAK9qL,OACP8qL,GAAKpzH,WAAW13D,KAAMA,GAQlC,YAAkBo8L,OACZl2I,EAAMk2I,EAAIp7L,UAEVklD,EAAM,EAAI,QACN,IAAIuU,MAAM,sDAKd6hI,EAAWF,EAAI95L,QAAQ,gBACvBg6L,MAA4Bp2I,GAMzB,CAACo2I,EAJcA,IAAap2I,EAC/B,EACA,EAAKo2I,EAAW,GAsEtB,YAAsBM,EAAO9rL,EAAOO,WAC9B8rG,EARoBguE,EASpBn5H,EAAS,GACJhyD,EAAI8Q,EAAO9Q,EAAIqR,EAAKrR,GAAK,OAEtBA,IAAM,GAAM,aACZA,EAAI,IAAM,EAAK,QACP,MAATA,EAAI,MACNiB,KAdF+7L,IADiB7R,EAeMhuE,IAdT,GAAK,IACxB6/E,GAAO7R,GAAO,GAAK,IACnB6R,GAAO7R,GAAO,EAAI,IAClB6R,GAAa,GAAN7R,WAaFn5H,EAAOrnD,KAAK,IAjGrBgyL,GAAU,IAAIjlI,WAAW,IAAM,GAC/BilI,GAAU,IAAIjlI,WAAW,IAAM;yFCqF/B,YAAwB92D,UACf0N,OAAOpI,UAAUqN,SAAS1L,KAAKjH,WCxGzB,SAAUq8L,EAAQhrL,EAAQirL,EAAMC,EAAMC,OAC/C/5L,EAAGS,EACHu5L,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,MAAaD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,KACAx9L,EAAIk9L,EAAQE,EAAS,EAAK,EAC1Bv3L,EAAIq3L,KAAY,EAChB35L,EAAI05L,EAAOhrL,EAASjS,UAEnB6F,IAEDtC,OAAai6L,GAAU,OACnBA,KACCH,EACFG,EAAQ,EAAGn6L,EAAS,IAAJA,EAAW45L,EAAOhrL,EAASjS,GAAIA,GAAK6F,EAAG23L,GAAS,SAEnEn6L,OAAam6L,GAAU,OACnBA,KACCL,EACFK,EAAQ,EAAG15L,EAAS,IAAJA,EAAWm5L,EAAOhrL,EAASjS,GAAIA,GAAK6F,EAAG23L,GAAS,MAE7D,IAANn6L,IACE,EAAIk6L,UACCl6L,IAAMi6L,SACRx5L,EAAI4kJ,IAAsBvwI,EAAAA,QAAL,MAEpBrN,KAAK83D,IAAI,EAAGu6H,MACZI,cAEO,GAAKz5L,EAAIgH,KAAK83D,IAAI,EAAGv/D,EAAI85L,aAG5B,SAAUF,EAAQ14L,EAAO0N,EAAQirL,EAAMC,EAAMC,OACvD/5L,EAAGS,EAAGR,EACN+5L,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,MAAaD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATN,EAAcryL,KAAK83D,IAAI,OAAU93D,KAAK83D,IAAI,OAAU,EAC1D5iE,EAAIk9L,EAAO,EAAKE,EAAS,EACzBv3L,EAAIq3L,EAAO,KACX35L,EAAIgB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,QAElDuG,KAAKwkE,IAAI/qE,GAEbuR,MAAMvR,IAAUA,IAAU4T,EAAAA,KACxBrC,MAAMvR,GAAS,EAAI,IACnB+4L,MAEAxyL,KAAK2zB,MAAM3zB,KAAKkL,IAAIzR,GAASuG,KAAK4yL,KAClCn5L,KAAauG,KAAK83D,IAAI,GAAIv/D,IAAM,WAE7B,OAEHA,EAAIk6L,GAAS,EACNE,EAAKn6L,EAELm6L,EAAK3yL,KAAK83D,IAAI,EAAG,EAAI26H,IAEpBj6L,GAAK,WAEV,GAGHD,EAAIk6L,GAASD,KACX,IACAA,GACKj6L,EAAIk6L,GAAS,QACRj6L,EAAK,GAAKwH,KAAK83D,IAAI,EAAGu6H,MAC5BI,MAEJh5L,EAAQuG,KAAK83D,IAAI,EAAG26H,EAAQ,GAAKzyL,KAAK83D,IAAI,EAAGu6H,KAC7C,IAIDA,GAAQ,EAAGF,EAAOhrL,EAASjS,GAAS,IAAJ8D,EAAU9D,GAAK6F,EAAG/B,GAAK,IAAKq5L,GAAQ,SAEtE95L,GAAK85L,EAAQr5L,KACVq5L,EACDE,EAAO,EAAGJ,EAAOhrL,EAASjS,GAAS,IAAJqD,EAAUrD,GAAK6F,EAAGxC,GAAK,IAAKg6L,GAAQ,KAEnEprL,EAASjS,EAAI6F,IAAU,IAAJtC;;;;;;;kBCzEtBi/D,EAASzuD,GACT4pL,EAAU3pL,GACV4pL,EACe,mBAAX7qL,QAAkD,mBAAlBA,WACpCA,WAAc,8BACd,cAEW8qL,wBA0TI78L,IACdA,GAAUA,MACJ,UAEJ68L,EAAOC,OAAO98L,wBA5TK,SAEtB+8L,EAAe,sBAwDE/8L,MACjBA,EAAS+8L,QACL,IAAIC,WAAW,cAAgBh9L,EAAS,wCAG1CilD,EAAM,IAAIvyC,WAAW1S,iBACpB8uK,eAAe7pH,EAAK43I,EAAO33L,WAC3B+/C,aAaQ45B,EAAKo+G,EAAkBj9L,MAEnB,iBAAR6+E,EAAkB,IACK,iBAArBo+G,QACH,IAAIxlI,UACR,6EAGGylI,EAAYr+G,UAEdhsE,EAAKgsE,EAAKo+G,EAAkBj9L,cAKtBuD,EAAO05L,EAAkBj9L,MACjB,iBAAVuD,kBAsHQsZ,EAAQimD,GACH,iBAAbA,GAAsC,KAAbA,MACvB,YAGR+5H,EAAOM,WAAWr6H,SACf,IAAIrL,UAAU,qBAAuBqL,SAGvC9iE,EAAwC,EAA/Bo9L,EAAWvgL,EAAQimD,OAC9B7d,EAAMo4I,EAAar9L,SAEjBs9L,EAASr4I,EAAIs4I,MAAM1gL,EAAQimD,GAE7Bw6H,IAAWt9L,MAIPilD,EAAI9gD,MAAM,EAAGm5L,WAGdr4I,EA1IEu4I,CAAWj6L,EAAO05L,MAGvBl+K,YAAYC,OAAOzb,mBAmJDk6L,MAClBC,EAAWD,EAAW/qL,YAAa,OAC/BhC,EAAO,IAAIgC,WAAW+qL,UACrBE,EAAgBjtL,EAAK4O,OAAQ5O,EAAK6O,WAAY7O,EAAKktL,mBAErDC,EAAcJ,GAvJZK,CAAcv6L,MAGV,MAATA,QACI,IAAIk0D,UACR,yHACiDl0D,MAIjDm6L,EAAWn6L,EAAOwb,cACjBxb,GAASm6L,EAAWn6L,EAAM+b,OAAQP,oBAC9B4+K,EAAgBp6L,EAAO05L,EAAkBj9L,MAGjB,oBAAtB+9L,sBACKx6L,EAAOw6L,oBAClBx6L,GAASm6L,EAAWn6L,EAAM+b,OAAQy+K,2BAC9BJ,EAAgBp6L,EAAO05L,EAAkBj9L,MAG7B,iBAAVuD,QACH,IAAIk0D,UACR,+EAIEyzB,EAAU3nF,EAAM2nF,SAAW3nF,EAAM2nF,aACxB,MAAXA,GAAmBA,IAAY3nF,SAC1Bs5L,EAAOhqL,KAAKq4E,EAAS+xG,EAAkBj9L,SAG1C6C,WAkJaoG,MACf4zL,EAAOr6H,SAASv5D,GAAM,OAClBi8C,EAA4B,EAAtB19C,EAAQyB,EAAIjJ,QAClBilD,EAAMo4I,EAAan4I,UAEN,IAAfD,EAAIjlD,UAIJ0Q,KAAKu0C,EAAK,EAAG,EAAGC,GAHXD,UAOQ,IAAfh8C,EAAIjJ,aACoB,iBAAfiJ,EAAIjJ,QAAuBg+L,EAAY/0L,EAAIjJ,QAC7Cq9L,EAAa,GAEfQ,EAAc50L,MAGN,WAAbA,EAAI5I,MAAqB6C,MAAMC,QAAQ8F,EAAIrC,aACtCi3L,EAAc50L,EAAIrC,MAvKjBq3L,CAAW16L,MACjBV,SAAUA,KAEQ,oBAAXkP,QAAgD,MAAtBA,OAAOmsL,aACH,mBAA9B36L,EAAMwO,OAAOmsL,oBACfrB,EAAOhqL,KAAKtP,EAAMwO,OAAOmsL,aAAa,UAAWjB,EAAkBj9L,SAGtE,IAAIy3D,UACR,yHACiDl0D,cAqBhC02B,MACC,iBAATA,QACH,IAAIw9B,UAAU,6CACXx9B,EAAO,QACV,IAAI+iK,WAAW,cAAgB/iK,EAAO,6CA4B1BA,YACTA,GACJojK,EAAapjK,EAAO,EAAI,EAAoB,EAAhBzyB,EAAQyyB,eAwCrB4tD,SAChB7nF,EAAS6nF,EAAM7nF,OAAS,EAAI,EAA4B,EAAxBwH,EAAQqgF,EAAM7nF,QAC9CilD,EAAMo4I,EAAar9L,WAChBhB,EAAI,EAAGA,EAAIgB,EAAQhB,GAAK,IAC3BA,GAAgB,IAAX6oF,EAAM7oF,UAEVimD,aAWiB4iC,EAAOtoE,EAAYvf,MACvCuf,EAAa,GAAKsoE,EAAM+1G,WAAar+K,QACjC,IAAIy9K,WAAW,2CAGnBn1G,EAAM+1G,WAAar+K,MAAwB,SACvC,IAAIy9K,WAAW,4CAGnB/3I,gBACe,IAAf1lC,QAAuC,IAAXvf,EACxB,IAAI0S,WAAWm1E,QACD,IAAX7nF,EACH,IAAI0S,WAAWm1E,EAAOtoE,GAEtB,IAAI7M,WAAWm1E,EAAOtoE,EAAYvf,UAInC8uK,eAAe7pH,EAAK43I,EAAO33L,WAE3B+/C,aA4BSjlD,MAGZA,GAAU+8L,QACN,IAAIC,WAAW,0DACaD,EAAaxqL,SAAS,IAAM,iBAEhD,EAATvS,aAuGY6c,EAAQimD,MACvB+5H,EAAOr6H,SAAS3lD,UACXA,EAAO7c,UAEZ+e,YAAYC,OAAOnC,IAAW6gL,EAAW7gL,EAAQkC,oBAC5ClC,EAAO+gL,cAEM,iBAAX/gL,QACH,IAAI46C,UACR,kGAC0B56C,SAIxBqoC,EAAMroC,EAAO7c,OACbm+L,EAAar+L,UAAUE,OAAS,IAAsB,IAAjBF,UAAU,OAChDq+L,GAAqB,IAARj5I,SAAkB,MAGhCk5I,GAAc,gBAERt7H,OACD,YACA,aACA,gBACI5d,MACJ,WACA,eACIm5I,EAAYxhL,GAAQ7c,WACxB,WACA,YACA,cACA,kBACU,EAANklD,MACJ,aACIA,IAAQ,MACZ,gBACIwc,EAAc7kD,GAAQ7c,kBAEzBo+L,SACKD,KAAiBE,EAAYxhL,GAAQ7c,aAE7B8iE,GAAU5+D,iBACb,cAMC4+D,EAAUhzD,EAAOO,OAClC+tL,GAAc,WASJ,IAAVtuL,GAAuBA,EAAQ,OACzB,GAINA,EAAQ3O,KAAKnB,aACR,YAGG,IAARqQ,GAAqBA,EAAMlP,KAAKnB,YAC5BmB,KAAKnB,QAGTqQ,GAAO,QACF,YAIA,UACE,SAGF,OAGJyyD,MAAqB,iBAGhBA,OACD,aACIw7H,EAASn9L,KAAM2O,EAAOO,OAE1B,WACA,eACIkuL,EAAUp9L,KAAM2O,EAAOO,OAE3B,eACImuL,EAAWr9L,KAAM2O,EAAOO,OAE5B,aACA,gBACIouL,EAAYt9L,KAAM2O,EAAOO,OAE7B,gBACIquL,EAAYv9L,KAAM2O,EAAOO,OAE7B,WACA,YACA,cACA,kBACIsuL,EAAax9L,KAAM2O,EAAOO,cAG7B+tL,QAAmB,IAAI3mI,UAAU,qBAAuBqL,QACrC,IAAI5+D,iBACb,cAaPrB,EAAGvD,EAAGwD,SACb9D,EAAI6D,EAAEvD,KACVA,GAAKuD,EAAEC,KACPA,GAAK9D,aA4IsBi9L,EAAQ5xL,EAAKkV,EAAYujD,EAAUs4C,MAE1C,IAAlB6gF,EAAOj8L,mBAGe,iBAAfuf,KACEA,IACE,GACJA,EAAa,aACT,WACJA,+BAIPy+K,KADUz+K,OAGC67F,EAAM,EAAK6gF,EAAOj8L,OAAS,GAItCuf,EAAa,MAAgB08K,EAAOj8L,OAASuf,GAC7CA,GAAc08K,EAAOj8L,OAAQ,IAC3Bo7G,aACc6gF,EAAOj8L,OAAS,UACzBuf,EAAa,EAAG,KACrB67F,aAAkB,KAKL,iBAAR/wG,MACHwyL,EAAOhqL,KAAKxI,EAAKy4D,IAIrB+5H,EAAOr6H,SAASn4D,UAEC,IAAfA,EAAIrK,UAGD4+L,EAAa3C,EAAQ5xL,EAAKkV,EAAYujD,EAAUs4C,MAC/B,iBAAR/wG,YACJ,IACgC,mBAAjCqI,WAAWxN,UAAU5D,QAC1B85G,EACK1oG,WAAWxN,UAAU5D,QAAQuF,KAAKo1L,EAAQ5xL,EAAKkV,GAE/C7M,WAAWxN,UAAUslF,YAAY3jF,KAAKo1L,EAAQ5xL,EAAKkV,GAGvDq/K,EAAa3C,EAAQ,CAAC5xL,GAAMkV,EAAYujD,EAAUs4C,SAGrD,IAAI3jD,UAAU,mDAGChlD,EAAKpI,EAAKkV,EAAYujD,EAAUs4C,OA2BjDp8G,EA1BA6/L,EAAY,EACZC,EAAYrsL,EAAIzS,OAChB++L,EAAY10L,EAAIrK,eAEH,IAAb8iE,IAEe,YADNn2D,OAAOm2D,GAAU5+D,gBACY,UAAb4+D,GACV,YAAbA,GAAuC,aAAbA,GAAyB,IACjDrwD,EAAIzS,OAAS,GAAKqK,EAAIrK,OAAS,aAGvB,KACC,KACA,KACC,aAIHilD,EAAK4lB,UACA,IAAdg0H,EACK55I,EAAI4lB,GAEJ5lB,EAAI+5I,aAAan0H,EAAIg0H,MAK5BzjF,EAAK,KACH6jF,SACCjgM,EAAIugB,EAAYvgB,EAAI8/L,EAAW9/L,OAC9BkgM,EAAKzsL,EAAKzT,KAAOkgM,EAAK70L,OAAK40L,EAAoB,EAAIjgM,EAAIigM,YACrDA,MAAgCjgM,GAChCA,EAAIigM,EAAa,IAAMF,SAAkBE,EAAaJ,WAEtDI,OAAwBjgM,EAAIigM,iBAKhC1/K,EAAaw/K,EAAYD,MAAwBA,EAAYC,GAC5D//L,EAAIugB,EAAYvgB,GAAK,EAAGA,IAAK,KAC5B0kJ,GAAQ,UACH96F,EAAI,EAAGA,EAAIm2I,EAAWn2I,OACzBs2I,EAAKzsL,EAAKzT,EAAI4pD,KAAOs2I,EAAK70L,EAAKu+C,GAAI,IAC7B,WAIR86F,SAAc1kJ,sBAmBLimD,EAAKpoC,EAAQ5L,EAAQjR,KAC7BuZ,OAAOtI,IAAW,QACrBkuL,EAAYl6I,EAAIjlD,OAASiR,EAC1BjR,KAGMuZ,OAAOvZ,IACHm/L,MACFA,KAJFA,QAQLC,EAASviL,EAAO7c,WAKlBhB,MAHAgB,EAASo/L,EAAS,MACXA,EAAS,GAGfpgM,EAAI,EAAGA,EAAIgB,IAAUhB,EAAG,OACrBqgM,EAAS9nL,SAASsF,EAAOrK,OAAW,EAAJxT,EAAO,GAAI,OAC7Cg/L,EAAYqB,UAAgBrgM,IAC5BiS,EAASjS,GAAKqgM,SAEbrgM,aAGWimD,EAAKpoC,EAAQ5L,EAAQjR,UAChCs/L,EAAWjB,EAAYxhL,EAAQooC,EAAIjlD,OAASiR,GAASg0C,EAAKh0C,EAAQjR,cAGtDilD,EAAKpoC,EAAQ5L,EAAQjR,UACjCs/L,WAypCcptL,SACfqtL,EAAY,WACTvgM,EAAI,EAAGA,EAAIkT,EAAIlS,SAAUhB,IAEtBiB,KAAyB,IAApBiS,EAAIwkD,WAAW13D,WAEzBugM,EA/pCWC,CAAa3iL,GAASooC,EAAKh0C,EAAQjR,cAGjCilD,EAAKpoC,EAAQ5L,EAAQjR,UAClCs/L,EAAW59H,EAAc7kD,GAASooC,EAAKh0C,EAAQjR,cAGpCilD,EAAKpoC,EAAQ5L,EAAQjR,UAChCs/L,WA0pCgBptL,EAAKutL,OACxBn9L,EAAG45G,EAAID,QACLsjF,EAAY,WACTvgM,EAAI,EAAGA,EAAIkT,EAAIlS,cACR,GAAK,KADahB,IAG5BkT,EAAIwkD,WAAW13D,KACdsD,GAAK,IACLA,EAAI,MACCrC,KAAKg8G,KACLh8G,KAAKi8G,UAGVqjF,EAvqCWG,CAAe7iL,EAAQooC,EAAIjlD,OAASiR,GAASg0C,EAAKh0C,EAAQjR,cA+ExDilD,EAAKn1C,EAAOO,UAClB,IAAVP,GAAeO,IAAQ40C,EAAIjlD,OACtBwhE,EAAOm+H,cAAc16I,GAErBuc,EAAOm+H,cAAc16I,EAAI9gD,MAAM2L,EAAOO,eAI7B40C,EAAKn1C,EAAOO,KACxBvG,KAAKkN,IAAIiuC,EAAIjlD,OAAQqQ,SACrBiF,EAAM,OAERtW,EAAI8Q,OACD9Q,EAAIqR,GAAK,OACRuvL,EAAY36I,EAAIjmD,OAClBi0H,EAAY,KACZ4sE,EAAoBD,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,KAER5gM,EAAI6gM,GAAoBxvL,EAAK,KAC3ByvL,EAAYC,EAAWC,EAAYC,SAE/BJ,QACD,EACCD,EAAY,QACFA,cAGX,IACU36I,EAAIjmD,EAAI,GACO,MAAV,YACa,OAAS,EAAoB,GAAb8gM,EACzCG,EAAgB,QACNA,eAIb,IACUh7I,EAAIjmD,EAAI,KACTimD,EAAIjmD,EAAI,GACQ,MAAV,QAAyC,MAAV,YAClB,OAAQ,IAAoB,OAAS,EAAmB,GAAZ+gM,EACrEE,EAAgB,SAA0B,OAAUA,EAAgB,WAC1DA,eAIb,IACUh7I,EAAIjmD,EAAI,KACTimD,EAAIjmD,EAAI,KACPimD,EAAIjmD,EAAI,GACO,MAAV,QAAyC,MAAV,QAA0C,MAAV,YAClD,OAAQ,IAAqB,OAAS,IAAmB,OAAS,EAAoB,GAAbghM,EAClGC,EAAgB,OAAUA,EAAgB,YAChCA,KAMJ,OAAdhtE,KAGU,QACO,GACVA,EAAY,WAER,QACThzH,KAAKgzH,IAAc,GAAK,KAAQ,SACxB,MAAqB,KAAZA,KAGnBhzH,KAAKgzH,MACJ4sE,kBAWuBK,SACxBh7I,EAAMg7I,EAAWlgM,UACnBklD,GAAOi7I,SACFxzL,OAAOkrD,aAAahrC,MAAMlgB,OAAQuzL,OAIvC5qL,EAAM,GACNtW,EAAI,OACDA,EAAIkmD,MACFv4C,OAAOkrD,aAAahrC,MACzBlgB,OACAuzL,EAAW/7L,MAAMnF,EAAGA,GAAKmhM,WAGtB7qL,EAvBA8qL,CAAsB9qL,gBA1+BVynL,IAgBdsD,yCAaG5tL,EAAM,IAAIC,WAAW,GACrB8L,EAAQ,CAAE8hL,IAAK,kBAAqB,mBACnCxxB,eAAetwJ,EAAO9L,WAAWxN,kBACjC4pK,eAAer8J,EAAK+L,GACN,KAAd/L,EAAI6tL,YACJj+L,UACA,GAnBkBk+L,GAExB1D,EAAOwD,qBAA0C,oBAAZrrF,SACb,mBAAlBA,QAAQrjG,eACTA,MACN,wJAkBG/B,eAAeitL,EAAO33L,UAAW,SAAU,CAChDmY,YAAY,EACZhM,IAAK,cACEwrL,EAAOr6H,SAASrhE,aACdA,KAAKme,iBAIT1P,eAAeitL,EAAO33L,UAAW,SAAU,CAChDmY,YAAY,EACZhM,IAAK,cACEwrL,EAAOr6H,SAASrhE,aACdA,KAAKoe,gBAqCTihL,SAAW,OA8DX3tL,KAAO,SAAUtP,EAAO05L,EAAkBj9L,UACxC6S,EAAKtP,EAAO05L,EAAkBj9L,WAKhC8uK,eAAe+tB,EAAO33L,UAAWwN,WAAWxN,kBAC5C4pK,eAAe+tB,EAAQnqL,cA8BvBoqL,MAAQ,SAAU7iK,EAAMgiC,EAAM6G,mBApBrB7oC,EAAMgiC,EAAM6G,YACf7oC,GACPA,GAAQ,EACHojK,EAAapjK,QAET,IAATgiC,EAIyB,iBAAb6G,EACVu6H,EAAapjK,GAAMgiC,KAAKA,EAAM6G,GAC9Bu6H,EAAapjK,GAAMgiC,KAAKA,GAEvBohI,EAAapjK,GAQb6iK,CAAM7iK,EAAMgiC,EAAM6G,MAWpBo6H,YAAc,SAAUjjK,UACtBijK,EAAYjjK,MAKdwmK,gBAAkB,SAAUxmK,UAC1BijK,EAAYjjK,MA8GduoC,SAAW,SAAmB3/D,UACvB,MAALA,IAA6B,IAAhBA,EAAE6/D,WACpB7/D,IAAMg6L,EAAO33L,aAGVo9G,QAAU,SAAkB9/G,EAAGK,MAChC66L,EAAWl7L,EAAGkQ,gBAAiBmqL,EAAOhqL,KAAKrQ,EAAGA,EAAEyO,OAAQzO,EAAEo7L,aAC1DF,EAAW76L,EAAG6P,gBAAiBmqL,EAAOhqL,KAAKhQ,EAAGA,EAAEoO,OAAQpO,EAAE+6L,cACzDf,EAAOr6H,SAAShgE,KAAOq6L,EAAOr6H,SAAS3/D,SACpC,IAAI40D,UACR,4EAIAj1D,IAAMK,SAAU,MAEhBkC,EAAIvC,EAAExC,OACNoG,EAAIvD,EAAE7C,eAEDhB,EAAI,EAAGkmD,EAAMp7C,KAAKkN,IAAIjS,EAAGqB,GAAIpH,EAAIkmD,IAAOlmD,KAC3CwD,EAAExD,KAAO6D,EAAE7D,GAAI,GACbwD,EAAExD,KACF6D,EAAE7D,gBAKN+F,EAAIqB,KACJA,EAAIrB,EAAU,EACX,KAGFo4L,WAAa,SAAqBr6H,UAC/Bn2D,OAAOm2D,GAAU5+D,mBAClB,UACA,WACA,YACA,YACA,aACA,aACA,aACA,WACA,YACA,cACA,kBACI,iBAEA,MAIN4T,OAAS,SAAiBJ,EAAM1X,OAChCkD,MAAMC,QAAQuU,SACX,IAAI+/C,UAAU,kDAGF,IAAhB//C,EAAK1X,cACA68L,EAAOC,MAAM,OAGlB99L,UACW,IAAXgB,QACO,EACJhB,EAAI,EAAGA,EAAI0Y,EAAK1X,SAAUhB,KACnB0Y,EAAK1Y,GAAGgB,aAIhBi8L,EAASY,EAAOK,YAAYl9L,OAC9B2sD,EAAM,MACL3tD,EAAI,EAAGA,EAAI0Y,EAAK1X,SAAUhB,EAAG,KAC5BimD,EAAMvtC,EAAK1Y,MACX0+L,EAAWz4I,EAAKvyC,YACdi6C,EAAM1H,EAAIjlD,OAASi8L,EAAOj8L,QACvB68L,EAAOr6H,SAASvd,OAAY43I,EAAOhqL,KAAKoyC,MACzCv0C,KAAKurL,EAAQtvI,eAENznD,UAAUoM,IAAIzK,KACvBo1L,EACAh3I,EACA0H,YAGMkwI,EAAOr6H,SAASvd,SACpB,IAAIwS,UAAU,iDAEhB/mD,KAAKurL,EAAQtvI,MAEZ1H,EAAIjlD,cAENi8L,KAkDF2B,WAAaR,IA8Ebl4L,UAAUw9D,WAAY,IAQtBx9D,UAAUw7L,OAAS,iBAClBx7I,EAAM/jD,KAAKnB,UACbklD,EAAM,GAAM,QACR,IAAI83I,WAAW,qDAEdh+L,EAAI,EAAGA,EAAIkmD,EAAKlmD,GAAK,IACvBmC,KAAMnC,EAAGA,EAAI,UAEbmC,QAGF+D,UAAUy7L,OAAS,iBAClBz7I,EAAM/jD,KAAKnB,UACbklD,EAAM,GAAM,QACR,IAAI83I,WAAW,qDAEdh+L,EAAI,EAAGA,EAAIkmD,EAAKlmD,GAAK,IACvBmC,KAAMnC,EAAGA,EAAI,KACbmC,KAAMnC,EAAI,EAAGA,EAAI,UAEjBmC,QAGF+D,UAAU07L,OAAS,iBAClB17I,EAAM/jD,KAAKnB,UACbklD,EAAM,GAAM,QACR,IAAI83I,WAAW,qDAEdh+L,EAAI,EAAGA,EAAIkmD,EAAKlmD,GAAK,IACvBmC,KAAMnC,EAAGA,EAAI,KACbmC,KAAMnC,EAAI,EAAGA,EAAI,KACjBmC,KAAMnC,EAAI,EAAGA,EAAI,KACjBmC,KAAMnC,EAAI,EAAGA,EAAI,UAEjBmC,QAGF+D,UAAUqN,SAAW,iBACpBvS,EAASmB,KAAKnB,cACL,IAAXA,EAAqB,GACA,IAArBF,UAAUE,OAAqBu+L,EAAUp9L,KAAM,EAAGnB,GAC/C6gM,EAAah0K,MAAM1rB,KAAMrB,cAG3BoF,UAAU+lF,eAAiB4xG,EAAO33L,UAAUqN,WAE5CrN,UAAU4M,OAAS,SAAiBjP,OACpCg6L,EAAOr6H,SAAS3/D,SAAU,IAAI40D,UAAU,oCACzCt2D,OAAS0B,GACsB,IAA5Bg6L,EAAOv6E,QAAQnhH,KAAM0B,MAGvBqC,UAAU47L,QAAU,eACrB5uL,EAAM,SACJrI,EAAM6L,EAAQqrL,2BACd5/L,KAAKoR,SAAS,MAAO,EAAG1I,GAAK5F,QAAQ,UAAW,OAAOyoF,OACzDvrF,KAAKnB,OAAS6J,OAAY,SACvB,WAAaqI,EAAM,KAExB0qL,MACK13L,UAAU03L,GAAuBC,EAAO33L,UAAU47L,WAGpD57L,UAAUo9G,QAAU,SAAkBv2G,EAAQ+D,EAAOO,EAAK2wL,EAAWC,MACtEvD,EAAW3xL,EAAQ2G,gBACZmqL,EAAOhqL,KAAK9G,EAAQA,EAAOkF,OAAQlF,EAAO6xL,cAEhDf,EAAOr6H,SAASz2D,SACb,IAAI0rD,UACR,wFAC2B1rD,WAIjB,IAAV+D,MACM,QAEE,IAARO,MACItE,EAASA,EAAO/L,OAAS,QAEf,IAAdghM,MACU,QAEE,IAAZC,MACQ9/L,KAAKnB,QAGb8P,EAAQ,GAAKO,EAAMtE,EAAO/L,QAAUghM,EAAY,GAAKC,EAAU9/L,KAAKnB,aAChE,IAAIg9L,WAAW,yBAGnBgE,GAAaC,GAAWnxL,GAASO,SAC5B,KAEL2wL,GAAaC,cAGbnxL,GAASO,SACJ,KAQLlP,OAAS4K,SAAe,MAExBhH,QAJS,SADE,GAMXqB,QAPK,SADE,SASL8+C,EAAMp7C,KAAKkN,IAAIjS,EAAGqB,GAElB86L,EAAW//L,KAAKgD,MAAM68L,EAAWC,GACjCE,EAAap1L,EAAO5H,MAAM2L,EAAOO,WAE9BrR,EAAI,EAAGA,EAAIkmD,IAAOlmD,KACrBkiM,EAASliM,KAAOmiM,EAAWniM,GAAI,GAC7BkiM,EAASliM,KACTmiM,EAAWniM,gBAKf+F,EAAIqB,KACJA,EAAIrB,EAAU,EACX,KA4HFG,UAAU0U,SAAW,SAAmBvP,EAAKkV,EAAYujD,cACvD3hE,KAAKG,QAAQ+I,EAAKkV,EAAYujD,MAGhC59D,UAAU5D,QAAU,SAAkB+I,EAAKkV,EAAYujD,UACrDs+H,EAAqBjgM,KAAMkJ,EAAKkV,EAAYujD,GAAU,MAGxD59D,UAAUslF,YAAc,SAAsBngF,EAAKkV,EAAYujD,UAC7Ds+H,EAAqBjgM,KAAMkJ,EAAKkV,EAAYujD,GAAU,MA6CxD59D,UAAUq4L,MAAQ,SAAgB1gL,EAAQ5L,EAAQjR,EAAQ8iE,WAEhD,IAAX7xD,IACS,SACF9P,KAAKnB,SACL,eAEW,IAAXA,GAA0C,iBAAXiR,IAC7BA,IACF9P,KAAKnB,SACL,WAEAo0B,SAASnjB,SAUZ,IAAIwoD,MACR,gFAVkB,EAChBrlC,SAASp0B,SACS,OACH,IAAb8iE,MAAmC,YAE5B9iE,SACF,SAQPm/L,EAAYh+L,KAAKnB,OAASiR,WACjB,IAAXjR,GAAwBA,EAASm/L,OAAoBA,GAEpDtiL,EAAO7c,OAAS,MAAe,GAAKiR,EAAS,IAAOA,EAAS9P,KAAKnB,aAC/D,IAAIg9L,WAAW,0CAGlBl6H,MAAqB,YAEtBs7H,GAAc,gBAERt7H,OACD,aACIu+H,EAASlgM,KAAM0b,EAAQ5L,EAAQjR,OAEnC,WACA,eACIshM,EAAUngM,KAAM0b,EAAQ5L,EAAQjR,OAEpC,YACA,aACA,gBACIuhM,EAAWpgM,KAAM0b,EAAQ5L,EAAQjR,OAErC,gBAEIwhM,EAAYrgM,KAAM0b,EAAQ5L,EAAQjR,OAEtC,WACA,YACA,cACA,kBACIyhM,EAAUtgM,KAAM0b,EAAQ5L,EAAQjR,cAGnCo+L,QAAmB,IAAI3mI,UAAU,qBAAuBqL,SAC3CA,GAAU5+D,iBACb,MAKfgB,UAAUmkH,OAAS,iBACjB,CACLhpH,KAAM,SACNuG,KAAM1D,MAAMgC,UAAUf,MAAM0C,KAAK1F,KAAKugM,MAAQvgM,KAAM,WA2FlDg/L,EAAuB,gBAoBRl7I,EAAKn1C,EAAOO,OAC3BhH,EAAM,KACJS,KAAKkN,IAAIiuC,EAAIjlD,OAAQqQ,WAElBrR,EAAI8Q,EAAO9Q,EAAIqR,IAAOrR,KACtB2N,OAAOkrD,aAAsB,IAAT5S,EAAIjmD,WAE1BqK,aAGa47C,EAAKn1C,EAAOO,OAC5BhH,EAAM,KACJS,KAAKkN,IAAIiuC,EAAIjlD,OAAQqQ,WAElBrR,EAAI8Q,EAAO9Q,EAAIqR,IAAOrR,KACtB2N,OAAOkrD,aAAa5S,EAAIjmD,WAE1BqK,aAGU47C,EAAKn1C,EAAOO,SACvB60C,EAAMD,EAAIjlD,SAEX8P,GAASA,EAAQ,OAAW,KAC5BO,GAAOA,EAAM,GAAKA,EAAM60C,OAAWA,OAEpCuT,EAAM,WACDz5D,EAAI8Q,EAAO9Q,EAAIqR,IAAOrR,KACtB2iM,EAAoB18I,EAAIjmD,WAE1By5D,aAGcxT,EAAKn1C,EAAOO,SAC3B2wD,EAAQ/b,EAAI9gD,MAAM2L,EAAOO,OAC3BiF,EAAM,WAEDtW,EAAI,EAAGA,EAAIgiE,EAAMhhE,OAAS,EAAGhB,GAAK,KAClC2N,OAAOkrD,aAAamJ,EAAMhiE,GAAqB,IAAfgiE,EAAMhiE,EAAI,WAE5CsW,aAkCarE,EAAQ2wL,EAAK5hM,MAC5BiR,EAAS,GAAO,GAAKA,EAAS,QAAS,IAAI+rL,WAAW,yBACvD/rL,EAAS2wL,EAAM5hM,QAAc,IAAIg9L,WAAW,oDA0Q/B/3I,EAAK1hD,EAAO0N,EAAQ2wL,EAAK/3L,EAAKmN,OAC1C6lL,EAAOr6H,SAASvd,SAAY,IAAIwS,UAAU,kDAC3Cl0D,EAAQsG,GAAOtG,EAAQyT,QAAW,IAAIgmL,WAAW,wCACjD/rL,EAAS2wL,EAAM38I,EAAIjlD,aAAc,IAAIg9L,WAAW,iCAgG7B/3I,EAAK1hD,EAAO0N,EAAQ+F,EAAKnN,KACrCtG,EAAOyT,EAAKnN,EAAKo7C,EAAKh0C,EAAQ,OAErCgrG,EAAK1iG,OAAOhW,EAAQ+jE,OAAO,eAC3Br2D,KAAYgrG,MACL,IACPhrG,KAAYgrG,MACL,IACPhrG,KAAYgrG,MACL,IACPhrG,KAAYgrG,MACZC,EAAK3iG,OAAOhW,GAAS+jE,OAAO,IAAMA,OAAO,sBACzCr2D,KAAYirG,MACL,IACPjrG,KAAYirG,MACL,IACPjrG,KAAYirG,MACL,IACPjrG,KAAYirG,EACTjrG,aAGgBg0C,EAAK1hD,EAAO0N,EAAQ+F,EAAKnN,KACrCtG,EAAOyT,EAAKnN,EAAKo7C,EAAKh0C,EAAQ,OAErCgrG,EAAK1iG,OAAOhW,EAAQ+jE,OAAO,eAC3Br2D,EAAS,GAAKgrG,MACP,IACPhrG,EAAS,GAAKgrG,MACP,IACPhrG,EAAS,GAAKgrG,MACP,IACPhrG,EAAS,GAAKgrG,MACdC,EAAK3iG,OAAOhW,GAAS+jE,OAAO,IAAMA,OAAO,sBACzCr2D,EAAS,GAAKirG,MACP,IACPjrG,EAAS,GAAKirG,MACP,IACPjrG,EAAS,GAAKirG,MACP,IACPjrG,GAAUirG,EACPjrG,EAAS,aAmHKg0C,EAAK1hD,EAAO0N,EAAQ2wL,EAAK/3L,EAAKmN,MAC/C/F,EAAS2wL,EAAM38I,EAAIjlD,aAAc,IAAIg9L,WAAW,yBAChD/rL,EAAS,QAAS,IAAI+rL,WAAW,iCAGlB/3I,EAAK1hD,EAAO0N,EAAQ4wL,EAAcC,aAC5Cv+L,OACW,EACfu+L,KACU78I,EAAK1hD,EAAO0N,EAAQ,KAE3BssL,MAAMt4I,EAAK1hD,EAAO0N,EAAQ4wL,EAAc,GAAI,GAC7C5wL,EAAS,aAWIg0C,EAAK1hD,EAAO0N,EAAQ4wL,EAAcC,aAC7Cv+L,OACW,EACfu+L,KACU78I,EAAK1hD,EAAO0N,EAAQ,KAE3BssL,MAAMt4I,EAAK1hD,EAAO0N,EAAQ4wL,EAAc,GAAI,GAC7C5wL,EAAS,IAxkBX/L,UAAUf,MAAQ,SAAgB2L,EAAOO,SACxC60C,EAAM/jD,KAAKnB,YACP8P,GAGE,MACDo1C,GACG,MAAW,GACdp1C,EAAQo1C,MACTA,WANI,IAAR70C,EAAoB60C,IAAQ70C,GASxB,MACD60C,GACG,MAAS,GACV70C,EAAM60C,MACTA,GAGJ70C,EAAMP,MAAaA,SAEjBiyL,EAAS5gM,KAAKwpD,SAAS76C,EAAOO,iBAE7By+J,eAAeizB,EAAQlF,EAAO33L,WAE9B68L,KAWF78L,UAAU88L,WACjBnF,EAAO33L,UAAU+8L,WAAa,SAAqBhxL,EAAQixL,EAAYJ,QACjD,OACQ,EACvBA,KAAsB7wL,EAAQixL,EAAY/gM,KAAKnB,YAEhDqK,EAAMlJ,KAAK8P,GACXkxL,EAAM,EACNnjM,EAAI,SACCA,EAAIkjM,OAAsB,SAC1B/gM,KAAK8P,EAASjS,GAAKmjM,SAGrB93L,KAGFnF,UAAUk9L,WACjBvF,EAAO33L,UAAUm9L,WAAa,SAAqBpxL,EAAQixL,EAAYJ,QACjD,OACQ,EACvBA,KACS7wL,EAAQixL,EAAY/gM,KAAKnB,YAGnCqK,EAAMlJ,KAAK8P,IAAWixL,GACtBC,EAAM,OACHD,EAAa,OAAa,SACxB/gM,KAAK8P,IAAWixL,GAAcC,SAGhC93L,KAGFnF,UAAUo9L,UACjBzF,EAAO33L,UAAUq9L,UAAY,SAAoBtxL,EAAQ6wL,eACnC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpCmB,KAAK8P,MAGP/L,UAAUs9L,aACjB3F,EAAO33L,UAAUu9L,aAAe,SAAuBxxL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpCmB,KAAK8P,GAAW9P,KAAK8P,EAAS,IAAM,KAGtC/L,UAAUw9L,aACjB7F,EAAO33L,UAAU85L,aAAe,SAAuB/tL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACnCmB,KAAK8P,IAAW,EAAK9P,KAAK8P,EAAS,MAGtC/L,UAAUy9L,aACjB9F,EAAO33L,UAAU09L,aAAe,SAAuB3xL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,cAE7BiR,GACT9P,KAAK8P,EAAS,IAAM,EACpB9P,KAAK8P,EAAS,IAAM,IACD,SAAnB9P,KAAK8P,EAAS,MAGd/L,UAAU29L,aACjBhG,EAAO33L,UAAU49L,aAAe,SAAuB7xL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QAEpB,SAAfmB,KAAK8P,SACJA,EAAS,IAAM,GACrB9P,KAAK8P,EAAS,IAAM,EACrB9P,KAAK8P,EAAS,OAGX/L,UAAU69L,gBAAkBC,GAAmB,SAA0B/xL,UAC1D,EACG,gBACjBm7D,EAAQjrE,KAAK8P,GACbu5C,EAAOrpD,KAAK8P,EAAS,QACb,IAAVm7D,QAAgC,IAAT5hB,KACbv5C,EAAQ9P,KAAKnB,OAAS,SAG9Bi8G,EAAK7vC,EACQ,IAAjBjrE,OAAO8P,GACU,MAAjB9P,OAAO8P,GACP9P,OAAO8P,GAAU,GAAK,GAElBirG,EAAK/6G,OAAO8P,GACC,IAAjB9P,OAAO8P,GACU,MAAjB9P,OAAO8P,GACPu5C,EAAO,GAAK,UAEP8c,OAAO20C,WAAcC,IAAO50C,OAAO,UAGrCpiE,UAAU+9L,gBAAkBD,GAAmB,SAA0B/xL,UAC1D,EACG,gBACjBm7D,EAAQjrE,KAAK8P,GACbu5C,EAAOrpD,KAAK8P,EAAS,QACb,IAAVm7D,QAAgC,IAAT5hB,KACbv5C,EAAQ9P,KAAKnB,OAAS,SAG9Bk8G,EAAK9vC,EAAQ,GAAK,GACL,MAAjBjrE,OAAO8P,GACU,IAAjB9P,OAAO8P,GACP9P,OAAO8P,GAEHgrG,EAAK96G,OAAO8P,GAAU,GAAK,GACd,MAAjB9P,OAAO8P,GACU,IAAjB9P,OAAO8P,GACPu5C,gBAEa0xD,IAAO50C,OAAO,KAAOA,OAAO20C,QAGtC/2G,UAAUg+L,UAAY,SAAoBjyL,EAAQixL,EAAYJ,QAC/C,OACQ,EACvBA,KAAsB7wL,EAAQixL,EAAY/gM,KAAKnB,YAEhDqK,EAAMlJ,KAAK8P,GACXkxL,EAAM,EACNnjM,EAAI,SACCA,EAAIkjM,OAAsB,SAC1B/gM,KAAK8P,EAASjS,GAAKmjM,YAErB,IAEH93L,GAAO83L,OAAYr4L,KAAK83D,IAAI,EAAG,EAAIsgI,IAEhC73L,KAGFnF,UAAUi+L,UAAY,SAAoBlyL,EAAQixL,EAAYJ,QAC/C,OACQ,EACvBA,KAAsB7wL,EAAQixL,EAAY/gM,KAAKnB,YAEhDhB,EAAIkjM,EACJC,EAAM,EACN93L,EAAMlJ,KAAK8P,IAAWjS,QACnBA,EAAI,OAAa,SACfmC,KAAK8P,IAAWjS,GAAKmjM,YAEvB,IAEH93L,GAAO83L,OAAYr4L,KAAK83D,IAAI,EAAG,EAAIsgI,IAEhC73L,KAGFnF,UAAUk+L,SAAW,SAAmBnyL,EAAQ6wL,eACjC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACtB,SAAViR,WACK9P,KAAK8P,GAAU,GADK9P,KAAK8P,MAIpC/L,UAAUm+L,YAAc,SAAsBpyL,EAAQ6wL,QACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,cACrCqK,EAAMlJ,KAAK8P,GAAW9P,KAAK8P,EAAS,IAAM,SAClC,MAAN5G,EAAsB,WAANA,EAAmBA,KAGtCnF,UAAUo+L,YAAc,SAAsBryL,EAAQ6wL,QACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,cACrCqK,EAAMlJ,KAAK8P,EAAS,GAAM9P,KAAK8P,IAAW,SAClC,MAAN5G,EAAsB,WAANA,EAAmBA,KAGtCnF,UAAUq+L,YAAc,SAAsBtyL,EAAQ6wL,eACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QAEnCmB,KAAK8P,GACV9P,KAAK8P,EAAS,IAAM,EACpB9P,KAAK8P,EAAS,IAAM,GACpB9P,KAAK8P,EAAS,IAAM,MAGlB/L,UAAUs+L,YAAc,SAAsBvyL,EAAQ6wL,eACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QAEnCmB,KAAK8P,IAAW,GACrB9P,KAAK8P,EAAS,IAAM,GACpB9P,KAAK8P,EAAS,IAAM,EACpB9P,KAAK8P,EAAS,MAGZ/L,UAAUu+L,eAAiBT,GAAmB,SAAyB/xL,UACxD,EACG,gBACjBm7D,EAAQjrE,KAAK8P,GACbu5C,EAAOrpD,KAAK8P,EAAS,QACb,IAAVm7D,QAAgC,IAAT5hB,KACbv5C,EAAQ9P,KAAKnB,OAAS,SAG9BqK,EAAMlJ,KAAK8P,EAAS,GACL,IAAnB9P,KAAK8P,EAAS,GACK,MAAnB9P,KAAK8P,EAAS,OACL,kBAEI5G,IAAQi9D,OAAO,KAC5BA,OAAO8E,EACU,IAAjBjrE,OAAO8P,GACU,MAAjB9P,OAAO8P,GACP9P,OAAO8P,GAAU,GAAK,SAGnB/L,UAAUw+L,eAAiBV,GAAmB,SAAyB/xL,UACxD,EACG,gBACjBm7D,EAAQjrE,KAAK8P,GACbu5C,EAAOrpD,KAAK8P,EAAS,QACb,IAAVm7D,QAAgC,IAAT5hB,KACbv5C,EAAQ9P,KAAKnB,OAAS,SAG9BqK,MAAgB,IACH,MAAjBlJ,OAAO8P,GACU,IAAjB9P,OAAO8P,GACP9P,OAAO8P,iBAEM5G,IAAQi9D,OAAO,KAC5BA,OAAOnmE,OAAO8P,GAAU,GAAK,GACZ,MAAjB9P,OAAO8P,GACU,IAAjB9P,OAAO8P,GACPu5C,QAGGtlD,UAAUq9D,YAAc,SAAsBtxD,EAAQ6wL,eACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpC28L,EAAQuC,KAAK/9L,KAAM8P,GAAQ,EAAM,GAAI,MAGvC/L,UAAUy+L,YAAc,SAAsB1yL,EAAQ6wL,eACvC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpC28L,EAAQuC,KAAK/9L,KAAM8P,GAAQ,EAAO,GAAI,MAGxC/L,UAAU0+L,aAAe,SAAuB3yL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpC28L,EAAQuC,KAAK/9L,KAAM8P,GAAQ,EAAM,GAAI,MAGvC/L,UAAU2+L,aAAe,SAAuB5yL,EAAQ6wL,eACzC,EACfA,KAAsB7wL,EAAQ,EAAG9P,KAAKnB,QACpC28L,EAAQuC,KAAK/9L,KAAM8P,GAAQ,EAAO,GAAI,MASxC/L,UAAU4+L,YACjBjH,EAAO33L,UAAU6+L,YAAc,SAAsBxgM,EAAO0N,EAAQixL,EAAYJ,SACrEv+L,OACW,OACQ,GACvBu+L,EAAU,GAEJ3gM,KAAMoC,EAAO0N,EAAQixL,EADbp4L,KAAK83D,IAAI,EAAG,EAAIsgI,GAAc,EACK,OAGlDC,EAAM,EACNnjM,EAAI,WACHiS,GAAkB,IAAR1N,IACNvE,EAAIkjM,OAAsB,WAC5BjxL,EAASjS,GAAMuE,EAAQ4+L,EAAO,WAG9BlxL,EAASixL,KAGXh9L,UAAU8+L,YACjBnH,EAAO33L,UAAU++L,YAAc,SAAsB1gM,EAAO0N,EAAQixL,EAAYJ,SACrEv+L,OACW,OACQ,GACvBu+L,EAAU,GAEJ3gM,KAAMoC,EAAO0N,EAAQixL,EADbp4L,KAAK83D,IAAI,EAAG,EAAIsgI,GAAc,EACK,OAGlDljM,EAAIkjM,EAAa,EACjBC,EAAM,WACLlxL,EAASjS,GAAa,IAARuE,IACVvE,GAAK,OAAa,WACpBiS,EAASjS,GAAMuE,EAAQ4+L,EAAO,WAG9BlxL,EAASixL,KAGXh9L,UAAUg/L,WACjBrH,EAAO33L,UAAUi/L,WAAa,SAAqB5gM,EAAO0N,EAAQ6wL,aACvDv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,IAAM,QACjDA,GAAmB,IAAR1N,EACT0N,EAAS,KAGX/L,UAAUk/L,cACjBvH,EAAO33L,UAAUm/L,cAAgB,SAAwB9gM,EAAO0N,EAAQ6wL,aAC7Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,MAAQ,QACnDA,GAAmB,IAAR1N,OACX0N,EAAS,GAAM1N,IAAU,EACvB0N,EAAS,KAGX/L,UAAUo/L,cACjBzH,EAAO33L,UAAUq/L,cAAgB,SAAwBhhM,EAAO0N,EAAQ6wL,aAC7Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,MAAQ,QACnDA,GAAW1N,IAAU,OACrB0N,EAAS,GAAc,IAAR1N,EACb0N,EAAS,KAGX/L,UAAUs/L,cACjB3H,EAAO33L,UAAUu/L,cAAgB,SAAwBlhM,EAAO0N,EAAQ6wL,aAC7Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,WAAY,QACvDA,EAAS,GAAM1N,IAAU,QACzB0N,EAAS,GAAM1N,IAAU,QACzB0N,EAAS,GAAM1N,IAAU,OACzB0N,GAAmB,IAAR1N,EACT0N,EAAS,KAGX/L,UAAUw/L,cACjB7H,EAAO33L,UAAUy/L,cAAgB,SAAwBphM,EAAO0N,EAAQ6wL,aAC7Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,WAAY,QACvDA,GAAW1N,IAAU,QACrB0N,EAAS,GAAM1N,IAAU,QACzB0N,EAAS,GAAM1N,IAAU,OACzB0N,EAAS,GAAc,IAAR1N,EACb0N,EAAS,KA+CX/L,UAAU0/L,iBAAmB5B,GAAmB,SAA2Bz/L,EAAO0N,EAAS,UACzF4zL,EAAe1jM,KAAMoC,EAAO0N,EAAQq2D,OAAO,GAAIA,OAAO,4BAGxDpiE,UAAU4/L,iBAAmB9B,GAAmB,SAA2Bz/L,EAAO0N,EAAS,UACzF8zL,EAAe5jM,KAAMoC,EAAO0N,EAAQq2D,OAAO,GAAIA,OAAO,4BAGxDpiE,UAAU8/L,WAAa,SAAqBzhM,EAAO0N,EAAQixL,EAAYJ,SACnEv+L,OACW,GACfu+L,EAAU,OACPvwK,EAAQznB,KAAK83D,IAAI,EAAI,EAAIsgI,EAAc,KAEpC/gM,KAAMoC,EAAO0N,EAAQixL,EAAY3wK,EAAQ,GAAIA,OAGpDvyB,EAAI,EACJmjM,EAAM,EACN78L,EAAM,WACL2L,GAAkB,IAAR1N,IACNvE,EAAIkjM,OAAsB,MAC7B3+L,EAAQ,GAAa,IAAR+B,GAAsC,IAAzBnE,KAAK8P,EAASjS,EAAI,OACxC,QAEHiS,EAASjS,MAAemjM,GAAQ,GAAK78L,EAAM,WAG3C2L,EAASixL,KAGXh9L,UAAU+/L,WAAa,SAAqB1hM,EAAO0N,EAAQixL,EAAYJ,SACnEv+L,OACW,GACfu+L,EAAU,OACPvwK,EAAQznB,KAAK83D,IAAI,EAAI,EAAIsgI,EAAc,KAEpC/gM,KAAMoC,EAAO0N,EAAQixL,EAAY3wK,EAAQ,GAAIA,OAGpDvyB,EAAIkjM,EAAa,EACjBC,EAAM,EACN78L,EAAM,WACL2L,EAASjS,GAAa,IAARuE,IACVvE,GAAK,OAAa,MACrBuE,EAAQ,GAAa,IAAR+B,GAAsC,IAAzBnE,KAAK8P,EAASjS,EAAI,OACxC,QAEHiS,EAASjS,MAAemjM,GAAQ,GAAK78L,EAAM,WAG3C2L,EAASixL,KAGXh9L,UAAUggM,UAAY,SAAoB3hM,EAAO0N,EAAQ6wL,aACrDv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,UAC5C1N,EAAQ,MAAW,IAAOA,EAAQ,QACjC0N,GAAmB,IAAR1N,EACT0N,EAAS,KAGX/L,UAAUigM,aAAe,SAAuB5hM,EAAO0N,EAAQ6wL,aAC3Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,mBAC3CA,GAAmB,IAAR1N,OACX0N,EAAS,GAAM1N,IAAU,EACvB0N,EAAS,KAGX/L,UAAUkgM,aAAe,SAAuB7hM,EAAO0N,EAAQ6wL,aAC3Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,mBAC3CA,GAAW1N,IAAU,OACrB0N,EAAS,GAAc,IAAR1N,EACb0N,EAAS,KAGX/L,UAAUmgM,aAAe,SAAuB9hM,EAAO0N,EAAQ6wL,aAC3Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,6BAC3CA,GAAmB,IAAR1N,OACX0N,EAAS,GAAM1N,IAAU,OACzB0N,EAAS,GAAM1N,IAAU,QACzB0N,EAAS,GAAM1N,IAAU,GACvB0N,EAAS,KAGX/L,UAAUogM,aAAe,SAAuB/hM,EAAO0N,EAAQ6wL,aAC3Dv+L,OACW,EACfu+L,KAAmB3gM,KAAMoC,EAAO0N,EAAQ,EAAG,wBAC5C1N,EAAQ,MAAW,WAAaA,EAAQ,QACvC0N,GAAW1N,IAAU,QACrB0N,EAAS,GAAM1N,IAAU,QACzB0N,EAAS,GAAM1N,IAAU,OACzB0N,EAAS,GAAc,IAAR1N,EACb0N,EAAS,KAGX/L,UAAUqgM,gBAAkBvC,GAAmB,SAA0Bz/L,EAAO0N,EAAS,UACvF4zL,EAAe1jM,KAAMoC,EAAO0N,GAASq2D,OAAO,sBAAuBA,OAAO,4BAG5EpiE,UAAUsgM,gBAAkBxC,GAAmB,SAA0Bz/L,EAAO0N,EAAS,UACvF8zL,EAAe5jM,KAAMoC,EAAO0N,GAASq2D,OAAO,sBAAuBA,OAAO,4BAkB5EpiE,UAAUugM,aAAe,SAAuBliM,EAAO0N,EAAQ6wL,UAC7D4D,EAAWvkM,KAAMoC,EAAO0N,GAAQ,EAAM6wL,MAGxC58L,UAAUygM,aAAe,SAAuBpiM,EAAO0N,EAAQ6wL,UAC7D4D,EAAWvkM,KAAMoC,EAAO0N,GAAQ,EAAO6wL,MAazC58L,UAAU0gM,cAAgB,SAAwBriM,EAAO0N,EAAQ6wL,UAC/D+D,EAAY1kM,KAAMoC,EAAO0N,GAAQ,EAAM6wL,MAGzC58L,UAAU4gM,cAAgB,SAAwBviM,EAAO0N,EAAQ6wL,UAC/D+D,EAAY1kM,KAAMoC,EAAO0N,GAAQ,EAAO6wL,MAI1C58L,UAAUwL,KAAO,SAAe3E,EAAQg6L,EAAaj2L,EAAOO,OAC5DwsL,EAAOr6H,SAASz2D,SAAe,IAAI0rD,UAAU,kCAC7C3nD,MAAe,GACfO,GAAe,IAARA,MAAiBlP,KAAKnB,QAC9B+lM,GAAeh6L,EAAO/L,WAAsB+L,EAAO/L,QAClD+lM,MAA2B,GAC5B11L,EAAM,GAAKA,EAAMP,MAAaA,GAG9BO,IAAQP,SAAc,KACJ,IAAlB/D,EAAO/L,QAAgC,IAAhBmB,KAAKnB,cAAqB,KAGjD+lM,EAAc,QACV,IAAI/I,WAAW,gCAEnBltL,EAAQ,GAAKA,GAAS3O,KAAKnB,aAAc,IAAIg9L,WAAW,yBACxD3sL,EAAM,QAAS,IAAI2sL,WAAW,2BAG9B3sL,EAAMlP,KAAKnB,WAAcmB,KAAKnB,QAC9B+L,EAAO/L,OAAS+lM,EAAc11L,EAAMP,MAChC/D,EAAO/L,OAAS+lM,EAAcj2L,SAGhCo1C,EAAM70C,EAAMP,SAEd3O,OAAS4K,GAAqD,mBAApC2G,WAAWxN,UAAU8gM,gBAE5CA,WAAWD,EAAaj2L,EAAOO,cAEzBnL,UAAUoM,IAAIzK,KACvBkF,EACA5K,KAAKwpD,SAAS76C,EAAOO,GACrB01L,GAIG7gJ,KAOFhgD,UAAU+2D,KAAO,SAAe5xD,EAAKyF,EAAOO,EAAKyyD,MAEnC,iBAARz4D,EAAkB,IACN,iBAAVyF,KACEA,IACH,IACF3O,KAAKnB,QACa,iBAARqQ,MACLA,IACLlP,KAAKnB,aAEI,IAAb8iE,GAA8C,iBAAbA,QAC7B,IAAIrL,UAAU,gCAEE,iBAAbqL,IAA0B+5H,EAAOM,WAAWr6H,SAC/C,IAAIrL,UAAU,qBAAuBqL,MAE1B,IAAfz4D,EAAIrK,OAAc,OACdunD,EAAOl9C,EAAIqsD,WAAW,IACV,SAAboM,GAAuBvb,EAAO,KAClB,WAAbub,OAEIvb,QAGc,iBAARl9C,KACJ,IACY,kBAARA,MACVkP,OAAOlP,OAIXyF,EAAQ,GAAK3O,KAAKnB,OAAS8P,GAAS3O,KAAKnB,OAASqQ,QAC9C,IAAI2sL,WAAW,yBAGnB3sL,GAAOP,SACF3O,SAQLnC,UALc,SACJ,IAARqR,EAAoBlP,KAAKnB,OAASqQ,IAAQ,EAE3ChG,MAAW,GAGG,iBAARA,MACJrL,EAAI8Q,EAAO9Q,EAAIqR,IAAOrR,OACpBA,GAAKqL,MAEP,OACC22D,EAAQ67H,EAAOr6H,SAASn4D,GAC1BA,EACAwyL,EAAOhqL,KAAKxI,EAAKy4D,GACf5d,EAAM8b,EAAMhhE,UACN,IAARklD,QACI,IAAIuS,UAAU,cAAgBptD,EAClC,yCAECrL,EAAI,EAAGA,EAAIqR,EAAMP,IAAS9Q,OACxBA,EAAI8Q,GAASkxD,EAAMhiE,EAAIkmD,UAIzB/jD,YAOHuQ,EAAS,cACH0qD,EAAK6pI,EAAYrvL,KACpBwlD,GAAO,cAAwBxlD,EACpC1G,6BAGSN,eAAezO,KAAM,UAAW,CACrCoC,MAAO0iM,EAAWp5K,MAAM1rB,KAAMrB,WAC9BywF,UAAU,EACV3F,cAAc,SAIX3jF,KAAO,GAAG9F,KAAK8F,SAASm1D,UAGxBkvD,aAEEnqH,KAAK8F,uBAILm1D,WAGC74D,UACDqM,eAAezO,KAAM,OAAQ,CAClCypF,cAAc,EACdvtE,YAAY,EACZ9Z,MAAAA,EACAgtF,UAAU,IAIdrgF,iBACS,GAAG/O,KAAK8F,SAASm1D,OAASj7D,KAAK0hE,uBAkCZx4D,OAC1BiL,EAAM,GACNtW,EAAIqL,EAAIrK,aACN8P,EAAmB,MAAXzF,EAAI,GAAa,EAAI,OAC5BrL,GAAK8Q,EAAQ,EAAG9Q,GAAK,IACpB,IAAIqL,EAAIlG,MAAMnF,EAAI,EAAGA,KAAKsW,UAE3B,GAAGjL,EAAIlG,MAAM,EAAGnF,KAAKsW,eAaT/R,EAAOyT,EAAKnN,EAAKo7C,EAAKh0C,EAAQixL,MAC7C3+L,EAAQsG,GAAOtG,EAAQyT,EAAK,OACxB1X,EAAmB,iBAAR0X,EAAmB,IAAM,OACtC87B,UACAovJ,EAAa,EACH,IAARlrL,GAAaA,IAAQswD,OAAO,GACtB,OAAOhoE,YAAYA,QAA2B,KAAL,KAASA,IAElD,SAASA,QAA2B,KAAL,GAAS,IAAIA,iBACtB,KAAL,GAAS,IAAIA,IAGhC,MAAM0X,IAAM1X,YAAYuK,IAAMvK,IAElC,IAAIoS,EAAOw0L,iBAAiB,QAASpzJ,EAAOvvC,aArBhC0hD,EAAKh0C,EAAQixL,KAClBjxL,EAAQ,eACH,IAAhBg0C,EAAIh0C,SAAsD,IAA7Bg0C,EAAIh0C,EAASixL,MAChCjxL,EAAQg0C,EAAIjlD,UAAuB,KAoBrCilD,EAAKh0C,EAAQixL,cAGF3+L,EAAO0D,MACT,iBAAV1D,QACH,IAAImO,EAAOy0L,qBAAqBl/L,EAAM,SAAU1D,cAIpCA,EAAOvD,EAAQwL,MAC/B1B,KAAK2zB,MAAMl6B,KAAWA,UACTA,EAAOiI,GAChB,IAAIkG,EAAOw0L,iBAAiB16L,GAAQ,SAAU,aAAcjI,MAGhEvD,EAAS,QACL,IAAI0R,EAAO00L,+BAGb,IAAI10L,EAAOw0L,iBAAiB16L,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAYxL,IAC7BuD,KAtFlC,4BACA,SAAU0D,UACJA,EACK,GAAGA,gCAGL,mDACN+1L,cACH,wBACA,SAAU/1L,EAAMq2L,SACP,QAAQr2L,4DAA+Dq2L,MAC7E7lI,aACH,oBACA,SAAUvlD,EAAK4gC,EAAO6e,OAChBnB,EAAM,iBAAiBt+C,sBACvBm0L,EAAW10I,SACXp4C,OAAOC,UAAUm4C,IAAU7nD,KAAKwkE,IAAI3c,GAAS,GAAK,KACzC20I,EAAsB35L,OAAOglD,IACd,iBAAVA,MACLhlD,OAAOglD,IACdA,EAAQ2V,OAAO,IAAMA,OAAO,KAAO3V,WAAiB,IAAM2V,OAAO,UACxDg/H,EAAsBD,OAEvB,QAEP,eAAevzJ,eAAmBuzJ,IAClC71I,IACNwsI,kBAiECuJ,EAAoB,+BAgBJ1pL,EAAQ4iL,OAExBxsE,IADIwsE,GAAStoL,EAAAA,QAEXnX,EAAS6c,EAAO7c,WAClBwmM,EAAgB,WACdxlI,EAAQ,WAELhiE,EAAI,EAAGA,EAAIgB,IAAUhB,EAAG,MACnB6d,EAAO65C,WAAW13D,GAG1Bi0H,EAAY,OAAUA,EAAY,MAAQ,KAEvCuzE,EAAe,IAEdvzE,EAAY,MAAQ,KAER,SAAehzH,KAAK,IAAM,IAAM,iBAErCjB,EAAI,IAAMgB,EAAQ,KAEb,SAAeC,KAAK,IAAM,IAAM,gBAKhCgzH,cAMdA,EAAY,MAAQ,KACR,SAAehzH,KAAK,IAAM,IAAM,OAC9BgzH,aAKgD,SAArC,OAAU,GAAKA,EAAY,YAC/CuzE,OAEK,SAAevmM,KAAK,IAAM,IAAM,UAGhC,KAGZgzH,EAAY,IAAM,QACN,GAAK,UACbhzH,KAAKgzH,WACFA,EAAY,KAAO,QACd,GAAK,UACbhzH,KACJgzH,GAAa,EAAM,IACP,GAAZA,EAAmB,aAEZA,EAAY,MAAS,QAChB,GAAK,UACbhzH,KACJgzH,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,eAEZA,EAAY,eASf,IAAIx5D,MAAM,6BARF,GAAK,UACbx5D,KACJgzH,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,aAOlBjyD,aA4Be9uD,UACfsvD,EAAOilI,qBAxHMv0L,YAEdA,EAAIzI,MAAM,KAAK,IAEXijF,OAAOzoF,QAAQsiM,EAAmB,KAEpCvmM,OAAS,QAAU,QAEpBkS,EAAIlS,OAAS,GAAM,MACZ,WAEPkS,EA6GmBw0L,CAAYx0L,eAGnBgtD,EAAKynI,EAAK11L,EAAQjR,OACjChB,MACCA,EAAI,EAAGA,EAAIgB,KACThB,EAAIiS,GAAU01L,EAAI3mM,QAAYhB,GAAKkgE,EAAIl/D,UADpBhB,IAEpBA,EAAIiS,GAAUiuD,EAAIlgE,UAEjBA,aAMYiK,EAAKuC,UACjBvC,aAAeuC,GACZ,MAAPvC,GAAkC,MAAnBA,EAAIjI,aAA+C,MAAxBiI,EAAIjI,YAAYiG,MACzDgC,EAAIjI,YAAYiG,OAASuE,EAAKvE,gBAEdgC,UAEbA,GAAQA,QAKX04L,EAAuB,iBACrBiF,EAAW,mBACX75I,EAAQ,IAAI7pD,MAAM,aACflE,EAAI,EAAGA,EAAI,KAAMA,EAAG,OACrB6nM,EAAU,GAAJ7nM,UACH4pD,EAAI,EAAGA,EAAI,KAAMA,IAClBi+I,EAAMj+I,GAAKg+I,EAAS5nM,GAAK4nM,EAASh+I,UAGrCmE,EAToB,cAaA77C,SACF,oBAAXo2D,OAAyBw/H,EAAyB51L,qBAI1D,IAAIuoD,MAAM,yCFhiElB,SAAiBolB,UACX37E,MAAMC,QACDD,MAAMC,QAAQ07E,GAEQ,mBAAxBkoH,GAAeloH,iBAIxB,SAAmBA,SACK,kBAARA,aAIhB,SAAgBA,UACC,OAARA,wBAIT,SAA2BA,UACX,MAAPA,eAIT,SAAkBA,SACM,iBAARA,eAIhB,SAAkBA,SACM,iBAARA,eAIhB,SAAkBA,SACM,iBAARA,kBAIhB,SAAqBA,eACJ,IAARA,eAIT,SAAkBi4B,SACc,oBAAvBiwF,GAAejwF,gBAIxB,SAAkBj4B,SACM,iBAARA,GAA4B,OAARA,aAIpC,SAAgBh6E,SACe,kBAAtBkiM,GAAeliM,eAIxB,SAAiBxC,SACe,mBAAtB0kM,GAAe1kM,IAA2BA,aAAao3D,qBAIjE,SAAoBolB,SACI,mBAARA,kBAIhB,SAAqBA,UACJ,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,iBAARA,QACQ,IAARA,eAIG9rE,GAAkBsM,OAAOmjD,SGnG5C,MAiBMwkI,GAAgB,CAAC,EAAK,GAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAEpE,IAAIC,GAQJ,MAAMC,MAAaniM,EAAI,IACnBA,EAAI,IACFA,EAAI,GACF,EACA,EACFA,EAAI,IACFA,EAAI,IACF,EACA,EACF,EACJA,EAAI,IACFA,EAAI,IACF,EACA,EACFA,EAAI,IACFA,EAAI,IACF,EACA,EACF,EAUR,YAA8BvC,EAAGK,MAC3BL,IAAMK,SACD,OAGDL,IAAMA,KAASK,IAAMA,EAAG,IACpB,IAANL,GAAiB,IAANK,SACNL,EAAIK,KAAU,KAGnBL,EAAI,GAAKK,EAAI,EAAG,IACdA,GAAK,cAILL,GAAK,SACA,KAGHA,KACAK,QAGFskM,EAAKD,GAAM1kM,GACX4kM,EAAKF,GAAMrkM,OAEblD,EAAI,SAEJwnM,EAAKC,MACFJ,GAAcI,EAAKD,EAAK,MACxB,SAEIA,EAAKC,OACTJ,GAAcG,EAAKC,EAAK,MACxB,KACD,GAGF5kM,IAAMK,EACDlD,EAGF6C,EAAIK,KAAU,QAGjBwkM,EAAO16L,OAAOnK,GACd8kM,EAAO36L,OAAO9J,UAEhBwkM,IAASC,EACJ,EAGFD,EAAOC,KAAa,EA8B7B,YAA2Bz/G,EAAOo0B,EAAIC,EAAIoG,OACpCilF,EAAQtrF,EAAK,KAEbsrF,IAAUrrF,SACL,KAILoG,EAAQz6B,EAAM0/G,KAAW1/G,EAAMo0B,IAAO,EAAG,MACpCsrF,EAAQrrF,GAAMoG,EAAQz6B,EAAM0/G,GAAQ1/G,EAAM0/G,EAAQ,IAAM,UAIpD1/G,EAAOo0B,EAAIsrF,MACXN,GAAShrF,EAAIsrF,aAGjBA,EAAQrrF,GAAMoG,EAAQz6B,EAAM0/G,GAAQ1/G,EAAM0/G,EAAQ,KAAO,cAK3DA,EAAQtrF,EAUjB,YAAqBp0B,EAAOo0B,EAAIC,WAGvBD,EAAKC,GAAI,OACRv8G,EAAIkoF,EAAMo0B,KACVA,KAASp0B,EAAMq0B,KACfA,KAASv8G,GAcnB,YAA8BkoF,EAAOo0B,EAAIC,EAAIpsG,EAAOwyG,OAC9CxyG,IAAUmsG,OAIPnsG,EAAQosG,EAAIpsG,IAAU,OACrB03L,EAAQ3/G,EAAM/3E,GACd23L,EAAaR,GAAQn3L,OAGvB0sD,EAAOy/C,EACPzV,EAAQ12F,OAML0sD,EAAOgqC,GAAO,OACbq/B,EAAOrpE,EAAOgqC,IAAW,EAE3B8b,EAAQklF,EAAO3/G,EAAMg+C,IAAQ,IACvBA,IAEDA,EAAM,MASbvmI,EAAIwQ,EAAQ0sD,SAERl9D,QACH,IACGk9D,EAAO,GAAKqrB,EAAMrrB,EAAO,MACvBA,EAAO,GAAKyqI,GAAQzqI,EAAO,QAEhC,IACGA,EAAO,GAAKqrB,EAAMrrB,EAAO,MACvBA,EAAO,GAAKyqI,GAAQzqI,EAAO,QAEhC,IACGA,EAAO,GAAKqrB,EAAMrrB,MAChBA,EAAO,GAAKyqI,GAAQzqI,sBAGrBl9D,EAAI,KACHk9D,EAAOl9D,GAAKuoF,EAAMrrB,EAAOl9D,EAAI,MAC3Bk9D,EAAOl9D,GAAK2nM,GAAQzqI,EAAOl9D,EAAI,SAKrCk9D,GAAQgrI,KACNhrI,GAAQirI,GAiBpB,YAAqBlkM,EAAOskF,EAAO/3E,EAAO9P,EAAQ0nM,EAAMplF,OAClDqlF,EAAa,EACbC,EAAY,EACZ32L,EAAS,KAETqxG,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,IAAS,EAAG,OAC/B1nM,EAAS0nM,EAGnBz2L,EAAS22L,GACNtlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,EAAOz2L,IAAW,KAErCA,IACY,MAAL,GAEhBA,GAAU,MACH22L,GAIT32L,EAAS22L,MACFA,MAIGF,KACJA,MAGL,OACOA,EAAO,EAEjBz2L,EAAS22L,GACNtlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,EAAOz2L,KAAY,KAEtCA,IACY,MAAL,GAEhBA,GAAU,MACH22L,GAGT32L,EAAS22L,MACFA,SAILzrF,EAAMwrF,IACCD,EAAOz2L,IACXy2L,EAAOvrF,UAUXwrF,EAAa12L,GAAQ,OACpBnO,EAAI6kM,KAAwBA,IAAgB,GAE9CrlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQhN,IAAM,IACxBA,EAAI,IAERA,SAGNmO,EAgBT,YAAsB1N,EAAOskF,EAAO/3E,EAAO9P,EAAQ0nM,EAAMplF,OACnDqlF,EAAa,EACbC,EAAY,EACZ32L,EAAS,KAETqxG,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,IAAS,EAAG,OAC/BA,EAAO,EAGjBz2L,EAAS22L,GACNtlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,EAAOz2L,IAAW,KAErCA,IACY,MAAL,GAEhBA,GAAU,MACH22L,GAIT32L,EAAS22L,MACFA,SAILzrF,EAAMwrF,IACCD,EAAOz2L,IACXy2L,EAAOvrF,MAGX,OACOn8G,EAAS0nM,EAGnBz2L,EAAS22L,GACNtlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQ43L,EAAOz2L,KAAY,KAEtCA,IACY,MAAL,GAEhBA,GAAU,MACH22L,GAIT32L,EAAS22L,MACFA,MAIGF,KACJA,UAWLC,EAAa12L,GAAQ,OACpBnO,EAAI6kM,KAAwBA,IAAgB,GAE9CrlF,EAAQ/+G,EAAOskF,EAAM/3E,EAAQhN,IAAM,IAC5BA,IAEIA,EAAI,SAIdmO,EAGT,SACEf,YAAa23E,EAAOy6B,QACbulF,MAAQhgH,OACRy6B,QAAUA,QAETtiH,OAACA,GAAU6nF,OAEZ7nF,OAASA,OACT8nM,UAxaqB,OA0arBC,iBAAmB/nM,EAAS,IAC7BA,IAAW,EAragB,SAwa1Bm8G,IAAM,IAAIj5G,MAAM/B,KAAK4mM,uBACrBC,SAAW,IAAI9kM,MAAM/B,KAAK4mM,uBAE1BE,YAAcjoM,EAAS,IACxB,EACAA,EAAS,KACP,GACAA,EAAS,OACP,GACA,QAEHkoM,SAAW,IAAIhlM,MAAM/B,KAAK8mM,kBAC1BE,UAAY,IAAIjlM,MAAM/B,KAAK8mM,kBAE3BG,UAAY,EASnBl4L,QAASg4L,EAAUC,QACZD,SAAS/mM,KAAKinM,WAAaF,OAC3BC,UAAUhnM,KAAKinM,WAAaD,OAC5BC,WAAa,EAQpBl4L,iBACS/O,KAAKinM,UAAY,GAAG,KACrB9oM,EAAI6B,KAAKinM,UAAY,KAIrB9oM,GAAK,GACF6B,KAAKgnM,UAAU7oM,EAAI,IAAM6B,KAAKgnM,UAAU7oM,GAAK6B,KAAKgnM,UAAU7oM,EAAI,IAGnEA,GAAK,GACF6B,KAAKgnM,UAAU7oM,EAAI,IAAM6B,KAAKgnM,UAAU7oM,GAAK6B,KAAKgnM,UAAU7oM,EAAI,GAGjE6B,KAAKgnM,UAAU7oM,EAAI,GAAK6B,KAAKgnM,UAAU7oM,EAAI,gBAGtC6B,KAAKgnM,UAAU7oM,GAAK6B,KAAKgnM,UAAU7oM,EAAI,cAG7C+oM,QAAQ/oM,IAOjB4Q,sBACS/O,KAAKinM,UAAY,GAAG,KACrB9oM,EAAI6B,KAAKinM,UAAY,EAErB9oM,EAAI,GAAK6B,KAAKgnM,UAAU7oM,EAAI,GAAK6B,KAAKgnM,UAAU7oM,EAAI,aAInD+oM,QAAQ/oM,IAUjB4Q,QAASlR,SACDsjH,QAACA,GAAWnhH,MACX0mM,SAAS1mM,SAEZmnM,EAASnnM,KAAK+mM,SAASlpM,GACvBupM,EAAUpnM,KAAKgnM,UAAUnpM,SACvBwpM,EAASrnM,KAAK+mM,SAASlpM,EAAI,OAC7BypM,EAAUtnM,KAAKgnM,UAAUnpM,EAAI,QAE5BmpM,UAAUnpM,GAAKupM,EAAUE,EAE1BzpM,IAAMmC,KAAKinM,UAAY,SACpBF,SAASlpM,EAAI,GAAKmC,KAAK+mM,SAASlpM,EAAI,QACpCmpM,UAAUnpM,EAAI,GAAKmC,KAAKgnM,UAAUnpM,EAAI,SAGxCopM,kBAMCxlM,EAAI8lM,GAAY7gH,EAAM2gH,GAAS3gH,EAAOygH,EAAQC,EAAS,EAAGjmF,MACtD1/G,KACCA,EAEK,IAAZ2lM,MAQMI,GACR9gH,EAAMygH,EAASC,EAAU,GACzB1gH,EACA2gH,EACAC,EACAA,EAAU,EACVnmF,GAGc,IAAZmmF,IAQAF,GAAWE,OACRG,SAASN,EAAQC,EAASC,EAAQC,QAElCI,UAAUP,EAAQC,EAASC,EAAQC,KAiB5Cv4L,SAAUo4L,EAAQC,EAASC,EAAQC,SAC3BnmF,QAACA,GAAWnhH,MACX0mM,SAAS1mM,MACVg7G,IAACA,GAAOh7G,MACR6mM,SAACA,GAAY7mM,SACfnC,EAAI,MAEHA,EAAI,EAAGA,EAAIupM,EAASvpM,MACnBA,GAAK6oF,EAAMygH,EAAStpM,KACfA,GAAKioM,GAAQqB,EAAStpM,OAG7B8pM,EAAU,EACV9pC,EAAUwpC,EACVO,EAAOT,OAELS,GAAQlhH,EAAMm3E,MACZ+pC,GAAQ9B,GAAQjoC,WAKL,KAAZypC,EAAe,KACfzpM,EAAI,EAAGA,EAAIupM,EAASvpM,MACjB+pM,EAAO/pM,GAAKm9G,EAAI2sF,EAAU9pM,MACxB+pM,EAAO/pM,GAAKgpM,EAASc,EAAU9pM,aAK3B,IAAZupM,EAAe,KACZvpM,EAAI,EAAGA,EAAIypM,EAASzpM,MACjB+pM,EAAO/pM,GAAK6oF,EAAMm3E,EAAUhgK,MAC1B+pM,EAAO/pM,GAAKioM,GAAQjoC,EAAUhgK,YAElC+pM,EAAON,GAAWtsF,EAAI2sF,WACpBC,EAAON,GAAWT,EAASc,QAIjChB,UAACA,GAAa3mM,YAEL,KACP6nM,EAAS,EACTC,EAAS,EACT7hK,GAAO,QAGLk7E,EAAQz6B,EAAMm3E,GAAU7iD,EAAI2sF,IAAY,QACpCC,GAAQlhH,EAAMm3E,MACZ+pC,GAAQ9B,GAAQjoC,iBAIf,EAEU,KAAZypC,EAAe,IACb,mBAIHM,GAAQ5sF,EAAI2sF,MACVC,GAAQf,EAASc,iBAIhB,EACU,KAAZP,EAAe,IACb,kBAIMU,GAAUnB,MAEzB1gK,UAID,MACQshK,GAAY7gH,EAAMm3E,GAAU7iD,EAAK2sF,EAASP,EAAS,EAAGjmF,GAEhD,IAAX0mF,EAAc,KACXhqM,EAAI,EAAGA,EAAIgqM,EAAQhqM,MAChB+pM,EAAO/pM,GAAKm9G,EAAI2sF,EAAU9pM,MACxB+pM,EAAO/pM,GAAKgpM,EAASc,EAAU9pM,SAGjCgqM,KACGA,MACAA,IACI,EAAG,IACT,cAKLD,GAAQlhH,EAAMm3E,MACZ+pC,GAAQ9B,GAAQjoC,WAKL,KAAZypC,EAAe,IACb,aAIAE,GAAWxsF,EAAI2sF,GAAUjhH,EAAOm3E,EAASypC,EAAS,EAAGnmF,GAE/C,IAAX2mF,EAAc,KACXjqM,EAAI,EAAGA,EAAIiqM,EAAQjqM,MAChB+pM,EAAO/pM,GAAK6oF,EAAMm3E,EAAUhgK,MAC1B+pM,EAAO/pM,GAAKioM,GAAQjoC,EAAUhgK,SAGhCiqM,KACGA,EAGK,QAFLA,GAEQ,IACV,cAILF,GAAQ5sF,EAAI2sF,MACVC,GAAQf,EAASc,WAIN,KAAZP,EAAe,IACb,kBAMTS,GA5sBsB,GA6sBnBC,GA7sBmB,MAgtBpB7hK,QAIA0gK,EAAY,MACF,MAGD,UAGVA,UAAYA,EAEbA,EAAY,SACTA,UAAY,GAGH,IAAZS,EAAe,KACZvpM,EAAI,EAAGA,EAAIypM,EAASzpM,MACjB+pM,EAAO/pM,GAAK6oF,EAAMm3E,EAAUhgK,MAC1B+pM,EAAO/pM,GAAKioM,GAAQjoC,EAAUhgK,KAElC+pM,EAAON,GAAWtsF,EAAI2sF,MACpBC,EAAON,GAAWT,EAASc,WACd,IAAZP,QACH,IAAI9uI,MAAM,iDAEXz6D,EAAI,EAAGA,EAAIupM,EAASvpM,MACjB+pM,EAAO/pM,GAAKm9G,EAAI2sF,EAAU9pM,MACxB+pM,EAAO/pM,GAAKgpM,EAASc,EAAU9pM,IAkB7CkR,UAAWo4L,EAAQC,EAASC,EAAQC,SAC5BnmF,QAACA,GAAWnhH,MACX0mM,SAAS1mM,MACVg7G,IAACA,GAAOh7G,MACR6mM,SAACA,GAAY7mM,SACfnC,EAAI,MAEHA,EAAI,EAAGA,EAAIypM,EAASzpM,MACnBA,GAAK6oF,EAAM2gH,EAASxpM,KACfA,GAAKioM,GAAQuB,EAASxpM,OAG7B8pM,EAAUR,EAASC,EAAU,EAC7BvpC,EAAUypC,EAAU,EACpBM,EAAOP,EAASC,EAAU,EAC1BS,EAAe,EACfC,EAAa,OAEXJ,GAAQlhH,EAAMihH,MACZC,GAAQ9B,GAAQ6B,WAKL,KAAZP,EAAe,OACLQ,KAAkB,GAE5B/pM,EAAI,EAAGA,EAAIypM,EAASzpM,MACjBkqM,EAAelqM,GAAKm9G,EAAIn9G,MACtBkqM,EAAelqM,GAAKgpM,EAAShpM,aAMzB,IAAZypM,EAAe,QACTF,KACGA,IACEQ,EAAO,IACLD,EAAU,EAEpB9pM,EAAIupM,EAAU,EAAGvpM,GAAK,EAAGA,MACtBmqM,EAAanqM,GAAK6oF,EAAMqhH,EAAelqM,MACrCmqM,EAAanqM,GAAKioM,GAAQiC,EAAelqM,YAG7C+pM,GAAQ5sF,EAAI6iD,WACV+pC,GAAQf,EAAShpC,QAIvB8oC,UAACA,GAAa3mM,YAEL,KACP6nM,EAAS,EACTC,EAAS,EACT7hK,GAAO,QAGLk7E,EAAQnG,EAAI6iD,GAAUn3E,EAAMihH,IAAY,QACpCC,GAAQlhH,EAAMihH,MACZC,GAAQ9B,GAAQ6B,iBAIf,EACU,KAAZP,EAAe,IACb,mBAIHQ,GAAQ5sF,EAAI6iD,MACV+pC,GAAQf,EAAShpC,iBAIhB,EACU,KAAZypC,EAAe,IACb,kBAIMQ,GAAUnB,MAEzB1gK,UAID,MACQmhK,EAAUG,GACjBvsF,EAAI6iD,GACJn3E,EACAygH,EACAC,EACAA,EAAU,EACVjmF,GAGa,IAAX0mF,EAAc,QACRA,KACGA,KACAA,IACED,EAAO,IACLD,EAAU,EAEpB9pM,EAAIgqM,EAAS,EAAGhqM,GAAK,EAAGA,MACrBmqM,EAAanqM,GAAK6oF,EAAMqhH,EAAelqM,MACrCmqM,EAAanqM,GAAKioM,GAAQiC,EAAelqM,MAGnC,IAAZupM,EAAe,IACV,cAKLQ,GAAQ5sF,EAAI6iD,MACV+pC,GAAQf,EAAShpC,WAIN,KAAZypC,EAAe,IACb,aAIAA,EAAUE,GACjB9gH,EAAMihH,GACN3sF,EACA,EACAssF,EACAA,EAAU,EACVnmF,GAGa,IAAX2mF,EAAc,QACRA,KACGA,KACAA,IACEF,EAAO,IACL/pC,EAAU,EAEpBhgK,EAAI,EAAGA,EAAIiqM,EAAQjqM,MAChBmqM,EAAanqM,GAAKm9G,EAAI+sF,EAAelqM,MACnCmqM,EAAanqM,GAAKgpM,EAASkB,EAAelqM,MAGhDypM,GAAW,EAAG,IACT,cAKLM,GAAQlhH,EAAMihH,MACZC,GAAQ9B,GAAQ6B,WAIL,KAAZP,EAAe,IACb,kBAMTS,GAp6BsB,GAq6BnBC,GAr6BmB,MAw6BpB7hK,QAIA0gK,EAAY,MACF,MAGD,UAGVA,UAAYA,EAEbA,EAAY,SACTA,UAAY,GAGH,IAAZW,EAAe,QACTF,KACGA,IACEQ,EAAO,IACLD,EAAU,EAEpB9pM,EAAIupM,EAAU,EAAGvpM,GAAK,EAAGA,MACtBmqM,EAAanqM,GAAK6oF,EAAMqhH,EAAelqM,MACrCmqM,EAAanqM,GAAKioM,GAAQiC,EAAelqM,KAG7C+pM,GAAQ5sF,EAAI6iD,MACV+pC,GAAQf,EAAShpC,WACJ,IAAZypC,QACH,IAAIhvI,MAAM,oDAEDsvI,KAAkB,GAC5B/pM,EAAI,EAAGA,EAAIypM,EAASzpM,MACjBkqM,EAAelqM,GAAKm9G,EAAIn9G,MACtBkqM,EAAelqM,GAAKgpM,EAAShpM,SAiG7CkvG,GAAiB,MAjFjB,SAAermB,EAAOy6B,EAASrG,EAAIC,OAC5Bh5G,MAAMC,QAAQ0kF,SACX,IAAIpwB,UACR,mDAAmDowB,QAI7C,SAEJ7nF,OAACA,GAAU6nF,MAEb7oF,EAAI,OAEDA,EAAIgB,MACDhB,GAAKA,IAOVsjH,EAEyB,mBAAZA,MACXrG,IACAqG,IACK8mF,MAJAA,GAOPntF,MACE,GAEFC,MACEl8G,OAGHm/L,EAAYjjF,EAAKD,KAGjBkjF,EAAY,SACP8H,OAGLkB,EAAY,KAEZhJ,EA9gCoB,YA+gCVkK,GAAiBxhH,EAAOo0B,EAAIC,EAAIoG,MACxBz6B,EAAOo0B,EAAIC,EAAID,EAAKksF,EAAW7lF,GAC5C2kF,SAGHjtG,EAAK,IAAIsvG,GAAQzhH,EAAOy6B,GAExBinF,EAn6BR,SAAuBjqM,OACjBO,EAAI,OAEDP,GAtHiB,OAuHZ,EAAJA,MACA,SAGDA,EAAIO,EA25BI2pM,CAAarK,KAEzB,MACWkK,GAAiBxhH,EAAOo0B,EAAIC,EAAIoG,GACxC6lF,EAAYoB,EAAQ,KAClBx+D,EAAQo0D,EACRp0D,EAAQw+D,MACFA,MAGU1hH,EAAOo0B,EAAIA,EAAK8uB,EAAO9uB,EAAKksF,EAAW7lF,KAC/CyoB,IAGX0+D,QAAQxtF,EAAIksF,KACZuB,eAGUvB,KACPA,QACe,IAAdhJ,YAGNwK,iBAEI1C,KCjjCT,MAAM2C,GAAat8L,OAAOpI,UAAUsY,eCDpC,MAAMA,GDGW,CAAC7B,EAAQohC,IAAa6sJ,GAAW/iM,KAAK8U,EAAQohC,aCFxD8sJ,WAAU1mM,IAAW6P,GAGtB82L,GAAgB,SAMhBC,GAAoB,aACpBC,GAAmB,YAUnBC,GAAkB,CACtBH,GAjBwB,aACC,cACA,cACN,SAqBfI,GAAuB,CAC3BJ,GACAC,GACAC,IACA1/L,IAAIyH,OAAOo4L,KAMPC,GAAS,CAAC39E,EAAQlsH,IAAQwR,OAAOo4L,IAAI19E,EAJ7B,IAI8ClsH,GAEtDymF,GAAS,CAACj7E,EAAQxL,EAAKgD,IAAU+J,OAAOsC,eAAe7D,EAAQxL,EAAK,CACxEgD,MAAAA,EACAgtF,UAAU,EACV3F,cAAc,IAGVy/G,GAAwB,CAC5Bt+L,EAAQukB,EAAQg6K,EAAYC,EAAY99E,EAAQ+9E,WAE1CC,EAAcL,GAAO39E,EAAQ89E,OAC9B/sL,GAAe8S,EAAQm6K,gBAItBC,EAAcJ,IAAeC,EAC/BE,EACAL,GAAO39E,EAAQ69E,MAEZv+L,EAAQ2+L,EAAap6K,EAAOm6K,IAE/BD,UACKl6K,EAAOm6K,IAIZE,GAAgB,CACpB5+L,EAAQukB,EAAQg6K,EAAYC,EAAYC,QAExB1kM,gBAEZiG,EAAQukB,EAAQg6K,EAAYC,EAAY99E,EAAQ+9E,OAyBhDI,GAA2B,CAAC7+L,EAAQukB,QACnBxqB,mBACbmjK,EAAW34I,EAAO/vB,GAEpB0oK,MACKl9J,EAAQxL,EAAK0oK,WAoB1B1xG,GAAiB,iBACf0yI,iBAEAH,qBAvHwB,gCACC,iCACA,2BACN,0BA0HnBC,oBACAC,gBAtHmB,kBACC,uBACK,wBACC,UAmBd,UAlBA,UAEA,UADA,aAkBI,iBA6GhBI,UACApjH,iBACA2jH,iBAvEoB,CAAC9iH,EAAOh1E,EAAMqV,KAC9BrV,IAASqV,MAIGpiB,mBACR4kM,EAAcN,GAAO39E,EAAQvkG,OAC9B1K,GAAeqqE,EAAO6iH,kBACH7iH,EAAOA,EAAO3/D,EAAIrV,EAAM45G,GAAQ,SAIlDw8C,EAAWphF,EAAM6iH,UAChB7iH,EAAM6iH,MAES7iH,EAAOA,EAAO3/D,EAAIrV,EAAM45G,GAAQ,MAC/C5kC,EAAOuiH,GAAO39E,EAAQ55G,GAAOo2J,gCAyDtC2hC,GAEA16L,OAAQnE,EAAQukB,EAAQvX,OACjB8wL,GAAS99L,SACN,IAAI0rD,UAAU,kDAGjBoyI,GAASv5K,UACLvkB,KAzHK,YA4HVgN,IACKzL,OAAOyL,KAAKuX,MAGMvkB,EAAQukB,YACvBntB,GAAQ4V,SACZ,IAAI0+C,UAAU,mCACK,IAAhB1+C,EAAK/Y,WAEW+L,EAAQukB,SA9DxB,EAACvkB,EAAQukB,EAAQvX,OACzBjT,aACE0X,GAAe8S,EAAQ/vB,OAIrBA,GAAO+vB,EAAO/vB,MACPwL,EAAQukB,EAAQ/vB,EAAKA,OAG9BwL,GAuDEmD,CAAOnD,EAAQukB,EAAQvX,KC5KlC,cAAO5V,IAAW4P,IACZnR,KAACA,IAAQoR,IAETi3L,gBACJA,aAEAY,UAEAT,iBACAO,iBACAG,IACE53L,GAaE63L,GAAe,CAACh/L,EAAQukB,EAAQtxB,EAAGiS,EAAQu4E,QACjCz9E,EAAQukB,EAAQtxB,EAAIiS,EAAQjS,EAAGwqF,IAGzCwhH,GAAgB,CAEpBj/L,EAEAukB,EAEAxgB,EAEA8S,EAEA3R,EAEAu4E,QAEIv4E,EAAS,EAAG,KACV45D,EAAIjoD,OAQDioD,KAAO,MACC9+D,EAAQukB,EAAQxgB,EAAQ+6D,EAAG55D,EAAQu4E,cAKhDxqF,EAAI,OAODA,EAAI4jB,GAAO,OACVypE,EAAKrtF,OACE+M,EAAQukB,EAAQxgB,EAAQu8E,EAAIp7E,EAAQu4E,KAI/CyhH,GAAkB,CAACpjH,EAAOtnF,QACduF,mBACR0yL,EAAO4R,GAAO39E,EAAQlsH,UACrBsnF,EAAM2wG,OAejB,iBAA2Bt1L,MAOzBgN,UAAWiG,SACHnW,OAACA,GAAUmB,KACXkI,EAAMkI,MAAMjJ,UAAU6N,OAYvB+0L,EAAO7hH,KAAgB5/D,GAAStT,EAEjC+0L,EAAQ,OACDlrM,KAGc,IAArBF,UAAUE,OACEA,EAASkrM,EAETphM,KAAKkN,IAAIhX,EAASkrM,EAAO7hH,SAIvCrpF,OAAQmrM,GACN1hL,EASE3Z,EAAQo7L,EAAQ7hH,YAGRloF,KAAMA,KAAM2O,EAFZ9P,EAAS8P,EAFRq7L,EAAc9hH,GAImB,GAEzChgF,EAGT6G,SAAUiG,SACFnW,OAACA,GAAUmB,KACX0mF,EAAQt2E,MAAMpN,SAASgS,OACxB0xE,EAAM7nF,cACF,IAAIorM,OAGRF,EAAO50E,GAAUngH,SAIlBmgH,IAAWu0E,KACJ7qM,EACAs2H,EAAS,OACRt2H,GAGRkrM,EAAQ,KACDlrM,EACAkrM,IAAUL,OACX,MAGIhjH,EAAO1mF,KAAM+pM,EAAO50E,EAAS40E,GAASA,GAE7CrjH,EAGT33E,WAAYuZ,SACJzpB,OAACA,GAAUmB,KACXkI,EAAMkI,MAAM46G,WAAW1iG,IAE3BzpB,OAAQqrM,GACN5hL,SAEA4hL,EAAe,MACHlqM,KAAMA,KAAM,EAAGnB,EAAQqrM,GAAc,GAG9ChiM,EAGT6G,cACQ7G,EAAMkI,MAAMC,SACZxR,OAACA,GAAUmB,eAEDA,KAAM,MACRA,KAAMA,KAAM,EAAGnB,MAAa,GAEnCqJ,EAGT6G,uBACQuuF,UAnLe,WACjBz+F,OAACA,GAAU6nF,MACb7oF,EAAI,QACF6K,EAAM7J,EAAS,OAEdhB,EAAI6K,EAAK7K,OACA6oF,EAAO7oF,EAAGgB,EAAShB,EAAI,KA+KpBmC,MAEVA,KAGT+O,YACQ7G,EAAMkI,MAAMtB,gBAGF9O,KAAMA,KAAKnB,QAEpBqJ,EAGT6G,UAAWuZ,OACLzpB,OAACA,GAAUmB,WACTkI,EAAMkI,MAAMuG,UAAU2R,UAEvBA,EAAMzpB,WAIGqJ,EAAKlI,KAAM,EAAGA,KAAKnB,OAAQ,KAEnC8F,mBACE6qD,EAAO3wD,KACHmD,GAAQuf,GACdA,EAAK1iB,OACL,eAEkBorM,OAIR/hM,EAAKqZ,EAAM,EAAGA,EAAK1iB,OAAQ2wD,MAGpCtnD,GAlBEA,EAqBX6G,QAASiG,SACD8c,EAASrxB,GACbT,QAEGgV,EAAKhS,MAAM,EAAG,IAwBb86F,EAAM3xF,OAAOC,OAAO,eAEnBzH,SAAQ,CAACwlM,EAAc5gM,QACxB4gM,IAAiB5gM,eAIf6gM,EAjMO,EAACtsG,EAAK1+F,SACnBirM,EAASjrM,OAENirM,KAAUvsG,KACNA,EAAIusG,UAGRA,GA0LuBC,CAAWxsG,EAAKqsG,GAEtCC,IAAsB7gM,MAMtBA,GAAS6gM,KAECpqM,KAAMuJ,EAAO6gM,OAGtBpqM,UAKX0mM,GAAiB,cACfuD,IC/RF,MAAMM,GAAU34L,yBAGdq4L,IACEp4L,kBAGF82L,qBACA6B,sBACAC,sBACAC,gBACAC,qBAEA/B,oBACAC,gBAEA+B,iBACAC,sBACAC,uBACAC,SAEAC,SACAC,SACAC,SACAnhM,aAEA2/L,UAEA7jH,4BACA4jH,IACE13L,GAEEo2J,MAAmBoiC,GAAQpiC,SAAS/hH,EAAM,CAC9C+O,SAAS,EACTo0G,KAAK,IAGD4hC,GAAiB,GACvB,IAAIC,GAAgB,KAChBC,GAAsB,KAE1B,MAAMC,GAAiB,GACvB,IAAIC,GAOAjiM,GALAwgM,IAAkB,EAClB0B,IAAS,EACTvgF,GAAS,KACTr3G,GAAO,KACPlN,GAAU,KAEV+kM,GAAU,KAEd,MAAMC,GAAQ,QACG7sM,OACfssM,GAAetsM,OAAS,KAEjB,QACK6qM,IAgBRiC,MAAsB/6L,OAAOo4L,IACjCuC,KAAc7B,GACVp+E,EAAS0/E,GAAQO,GACjBjgF,GAGA3wG,GAAY,CAAClZ,EAAGgC,IAAMgoM,GACxBA,GAAQhqM,EAAGgC,GACXA,EAEEmoM,GAAa,WACXp7L,EAAQ,IAAIq7L,YAAY,oBAAoBnlM,GAAQtE,MAAMY,MAAM,EAAG,mBAClE+K,OAAOyC,EAAO9J,GAAQ6iK,IAAI56J,OAE3B6B,GAGFs7L,GAAiB,WACft7L,EAAQ,IAAIq7L,YAAY,6CACvB99L,OAAOyC,EAAOoD,GACjBA,GAAK21J,IAAIr6J,IAET,CACAuuG,KAAM,EACNlX,OAAQ,IAGN/1F,GAIFusD,GAAO,WACLgvI,EAAY9gF,KAAU3hH,OACnB5C,IACJqlM,GACArlM,GAAQ6iK,IAAIr6J,IAAIuuG,OAASsuF,EAAUxiC,IAAI56J,MAAM8uG,OAC7C,KAEE/2G,MACGqlM,GAGN7sM,GAAO,KACNwH,SAImB,eAAjBA,GAAQxH,KACXwH,GAAQtE,MACRsE,GAAQxH,MAGRsG,MAAUtG,OAAWV,EAErBs8K,OACCt1K,GAAGnE,UAKJ2qM,UACWltM,KAAKssM,OACJa,GAGZC,GAAwB,QACZf,GAAer8L,OAG3Bq9L,GAAwB,SACvBd,gBAICe,EAAiB,aAEZj3I,KAAWk2I,GAAqB,KAErCl2I,EAAQq2I,eACK1sM,KAAKq2D,SAOlBt2D,OAACA,GAAUutM,EACZvtM,IAIDA,IAAWwsM,GAAoBxsM,UAEX,QAEFsI,OAAO,EAAGtI,MAGzBusM,GAAeO,GAAUhB,IAAeyB,KAG3CC,OACChB,QAIED,GAAeO,GAAUrgF,GAAS+/E,OAEnB,OAGlBiB,aACExkC,EAAW,QAGfphK,QAEK,gBACAlB,GAAG,kBAER,OACM2vD,EAAU7/C,OACX5O,IADW,QAEd8kM,OAIO1sM,KAAKq2D,QAKZ20I,IAIChiC,EAASjpK,SAIVysH,KACK8/E,GAAeO,GAAUrgF,GAASw8C,MAIrBA,IAGlBykC,GAAW,CAAClV,EAAMv4L,KAClBA,MACaA,KAAKysM,OAGVlU,GAGRmV,GAAe,QACPlB,GAAex8L,OA+H7B,kBACM29L,EAAKvtM,QAELutM,IAAO3B,eA/HQ,YACbhjM,EAAM,MACMA,MACT4hM,IAAW,OAGhB5jM,EADA4mM,GAAU,aAKNlnM,GAAGulM,KACL2B,OACchC,OAGTO,mBAYHzlM,GAAGulM,UAKC,KACH,YACAn4L,KAAKkB,MAAMpN,GAAQtE,UAEjB0D,MACO6iM,YAGD6B,OAERQ,YAGQP,MAEX3kM,GAAQ6U,GAAU7U,EAAM82H,kBAI1B8vE,MAGc/B,iBAKN,EAEP+B,MAEa/D,cAMX7gM,GA4DE6kM,MAGLF,IAAO7B,eA5DO,YACZlkH,EAAQ,IAAIujH,MACAvjH,MACTgjH,IAAW,OAEhBgD,GAAU,EACV7uM,EAAI,aAIA2H,GAAGqlM,KACL6B,OACchC,OACTO,mBAMHzlM,GAAGqlM,UAKC,KAEDhtM,MACO8qM,MAEV9qM,GAAK8c,GAAU9c,EAAG++H,sBAMtB8vE,MACc/B,iBAIN,EAEP+B,MACa/D,cAMXjiH,GAaEkmH,OAYLnpM,EATAopM,EAAW9iM,UAGX0iM,IAAOvB,YAEJhsM,OACMgsM,IAKLuB,OACH,aACA,cACA,WACA,mBACC/lM,GAAQtE,WAELwQ,KAAKkB,MAAM+4L,EAAWppM,QCxX7By4H,GDibJ4wE,GAAiB,OAlDH,CAAC1mJ,EAAM2mJ,EAAKC,aAIf7kC,GAAS/hH,MACR2mJ,KACQC,EAEb/hF,GAAOpsH,2BAOM,OAEH+pM,QAEX92K,EAAS8qG,KArBE,gBAuBAisE,IAEXniM,SAICsmM,GAA0B,OAAXl7K,MACJA,EA9BU3lB,OAAO8gM,KAAaA,MAoCjC,IAAI9gM,OAAO2lB,OAGGA,EAAQs5K,YAM1BzwL,GAAU,GAAImX,WAvXhBjzB,OAAS,KAGhBusM,GACAngF,GACAr3G,GACAlN,GACA+kM,GAAU,KAoXH35K,YAKPq2I,ICpbE+kC,GAAM,GAOVC,GAoBA,SAAgBp8L,EAAKi4K,MACA,iBAARj4K,QACH,IAAIulD,UAAU,wBAIV,IAAR0yH,SAAkBj4K,KACV,IAARi4K,SAAkBj4K,EAAMA,MAExBrI,EAAMqI,EAAIlS,OAASmqL,KACnB9sD,KAAUnrH,QAAwB,IAAVmrH,MAClBnrH,KACF,WACGm8L,GAAIruM,QAAU6J,SAChBwkM,GAAI77L,OAAO,EAAG3I,QAGhBA,EAAMwkM,GAAIruM,QAAUmqL,EAAM,GACrB,EAANA,QACKj4K,OAGD,KACDA,iBAGFA,GACGM,OAAO,EAAG3I;;;;;;GCnEtB,MAAM1G,QACJA,YAAS0mM,cAAU0E,YAAYC,YAAUC,IACvC17L,GACE27L,GAAS17L,IAET+2L,kBACJA,iBACAD,qBACA6B,sBACAC,sBACAC,gBACAC,oBACA9B,gBAEA+B,iBACAC,sBACAC,uBACAC,SACAC,SACAC,SACAlhM,aAEA2/L,IACE33L,GAGEy7L,GAAY,0HAQZC,MAAiB,GAAG9E,MAAiBtR,IAGrCqW,MAAsB,GAAGhD,MAAsBrT,IAC/CsW,MAAgB,GAAGhD,MAAgBtT,IAGnCnnG,GAAO,CACX09G,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,KAAM,MACNt/E,IAAK,MACLu/E,KAAM,QAqBFC,MAAkB,IAlBT,QACH/nH,UAAY,EAEjBqnH,GAAU9qM,KAAKgZ,GAIbA,EAAO5Y,QAAQ0qM,cACdrsM,EAAI+uF,GAAK7uF,SACK,iBAANF,EACVA,EACAE,KAPGqa,GAciBulD,CAAOvlD,MAO7ByyL,GAAmB,CAAC3uG,EAAM4uG,EAAYC,EAAYC,WAChDxmC,EAAWtoE,EAAK5uF,OAAOo4L,IAAIoF,QAC5BtmC,IAAaA,EAASjpK,cAClBkL,OAGLwkM,GAAkB,QAEhBx9L,EAAM+2J,EAASj5J,QAAO,CAAC2gD,GAC3Bg8I,SACAtsM,OACAkD,MAAAA,QAM2B,gBAATiI,EAEXmlD,GANWg/I,EA5DR,IACH,KA6DEH,GArBa,EAACjsM,EAAOq7G,IAASA,EACvC,KAAKr7G,IACL,KAAKA,MAuBqBqsM,CAAkBrsM,EAAOmsM,KAClDxkM,WAGIukM,GAEJC,EACCx9L,EAxEK,KAwEMs9L,EACXt9L,GAGN,IAAI29L,GAAW,KACX3vF,GAASh1G,GAEb,MAKMvB,GAAO,CAACmmM,EAAKC,EAAKC,IACtBF,EACIC,EAKED,EAAMC,EAAIrjH,OA3FP,KA2FqBsjH,EACxBF,EAAIG,YA5FD,KA4FoBD,EACzBD,EACEA,EAAIE,YA9FD,KA8FoBD,EACvB9kM,GAEFglM,GAAe,CAACptF,EAAQv/G,EAAOysM,WAC7B15I,EAAUg5I,GAAiB/rM,EAAOumM,GAAekG,EAAM9vF,IAAQ,UAE9Dv2G,GAAK2sD,EAASwsD,EAAQktF,IA0DzBG,GAAmB,CAAC5sM,EAAOysM,SAG1BzsM,QACI,aAGHisM,EAAaQ,EAAM9vF,OAGrB4C,EAAS53G,GACTklM,EAAcllM,GACdkhE,GAAQ,SAECjpE,GAAQ0sM,IACjBA,GACAviM,OAAOyL,KAAKxV,IAqCXuC,mBAjCGuqM,EAAKr8L,GAAUzT,EAAKgD,EAAOisM,MAG7Ba,IAAOxF,UAKNz+H,OACOggI,OAGJ,QAEF91E,EAAS3sH,GACbymM,EACAd,GAAiB/rM,EAAOqrM,GAAOruM,GAAMivM,GACrCA,MAGQl5E,GAtMH,KAsMmBk5E,KAEhBH,GAAM9uM,GACd+uM,GAAiB/rM,EApMI,GAAGooM,MAoMWprM,IAAMivM,GACzCrD,GACAmD,GAAiB/rM,EArMH,IAAQ,GAAGqoM,MAAsBpT,IAqMvB8X,CAAY/vM,GAAMivM,GA5MlC,IA8MRa,EACAf,GAAiB/rM,EAAOsrM,GAAYtuM,GAAMivM,KAE9BF,GAAiB/rM,EAAOurM,GAAMvuM,GAAMivM,SAS1C7lM,GACRymM,EACAd,GAAiB/rM,EAAOuoM,GAAc0D,GACtCA,GAGKvD,GACLiE,GAAaptF,EAAQv/G,EAAOysM,GAC5B9D,IAQJ,YAAoB3rM,EAAKgwM,EAAQP,OAC3BzsM,EAAQgtM,EAAOhwM,UAGfspM,GAAStmM,IAAUgrM,GAAWhrM,EAAM8lH,YAC9B9lH,EAAM8lH,OAAO9oH,IAKnBguM,GAAWsB,QACLA,GAAShpM,KAAK0pM,EAAQhwM,EAAKgD,WAGtBA,OACV,gBACI8rM,GAAM9rM,OAEV,gBAEIgW,OAAO6a,SAAS7wB,GAASoJ,OAAOpJ,GA5P1B,WA8PV,cACA,cAKIoJ,OAAOpJ,OAIX,gBACIJ,GAAQI,GA7JK,EAACA,EAAOysM,WACxBR,EAAaQ,EAAM9vF,IAEnBlgH,OAACA,GAAUuD,MAGbu/G,EAAS53G,GACTklM,EAAcllM,WAITlM,EAAI,EAAGA,EAAIgB,EAAQhB,IAChB,IAANA,OACQotM,OAGGziM,GACbymM,EACAd,GAAiB/rM,EAAOqrM,GAAO5vM,GAAIwwM,GACnCA,IAhIK,KAmImBA,KAGhBx7L,GAAUhV,EAAGuE,EAAOisM,IArIjB,UAuIHF,GAAiB/rM,EAAOsrM,GAAY7vM,GAAIwwM,KAEpCF,GAAiB/rM,EAAOurM,GAAM9vM,GAAIwwM,aAGxC7lM,GACRymM,EACAd,GAAiB/rM,EAAOuoM,GAAc0D,GACtCA,GAGKzD,GACJmE,GAAaptF,EAAQv/G,EAAOysM,GAC5BhE,IAsHGwE,CAAgBjtM,EAAOysM,GACvBG,GAAiB5sM,EAAOysM,IAShC,MAOMz9L,SAACA,IAAYjF,OAAOpI,UACpBurM,GAAyB,CAC7B,kBACA,kBACA,oBC9TF,MAAMx7L,MAACA,YAAOq0J,IAAYv2J,GACpBiB,GD2UW,CAACzQ,EAAOmtM,EAAWriI,WAS5BsiI,EAlCW,IAASlC,GAASpgI,GAEjCA,EACAmgI,GAASngI,GACPqgI,GA1RQ,IA0RMrgI,GACdnjE,GA6BY0lM,CAAWviI,OAEtBsiI,SACI58L,KAAKC,UAAUzQ,EAAOmtM,GAI1BnC,GAAWmC,IAAevtM,GAAQutM,OACzB,SAGHA,KACFC,QAEHz+L,EAlCoB,QACH,iBAAZk8L,SACF,QAGHl8L,EAAMK,GAAS1L,KAAKunM,UACnBqC,GAAuB72L,SAAS1H,IA4B3B2+L,CAAoBttM,GAC5BwQ,KAAKC,UAAUzQ,GACfyQ,GAAU,GAAI,CAAC,GAAIzQ,GAAQ2H,cAvPpB,QACFA,GA0PF2+L,GAAStmM,GACZ+rM,GAAiB/rM,EAAOwmM,GAAmB7+L,IAAO4lM,WAChD5+L,EACAo9L,GAAiB/rM,EAAOymM,GAAkB9+L,IAAO+kM,YACnD/9L,IC3WAk5L,aAACA,IAAgBl4L,IACjBhE,OAACA,IAAU8K,OAEjBk0F,GAAiB,CACfj5F,MAAAA,GACAjB,UAAAA,GACAs1J,SAAAA,GAEA8hC,aAAAA,GACAl8L,OAAAA,sBCRF,YAAmBk/L,UACT,MAAOA,ECAjB,YAAuB2C,EAAQC,SAEvBnqM,KAAK1F,WAEN8F,KAAO,qBACP8pM,OAASA,OACTE,KAAOD,OACPnuI,cAAgBkuI,QAAU,0BAA4BE,KAAO,IAAM9vM,KAAK8vM,KAAK1+L,WAAa,IAG3FknD,MAAMy3I,wBAEFA,kBAAkB/vM,KAAMA,KAAKH,kBAG9BsqH,OAAS,IAAI7xD,OAAS6xD,OAAS,gBDkCR6lF,eA7ChC,SAAkB/C,SACW,iBAAZA,GAAsC,OAAZA,cAI3C,SAAiB7vJ,UACXr7C,MAAMC,QAAQo7C,GAAkBA,EAC3B4yJ,GAAU5yJ,GAAkB,GAE9B,CAAEA,cAoBX,SAAgB1hC,EAAQ+F,OACLwuL,EAAbn+K,EAAS,OAERm+K,EAAQ,EAAGA,EAAQxuL,EAAOwuL,GAAS,KAC5Bv0L,SAGLoW,qBAIT,SAAwBxZ,UACH,IAAXA,GAAkBF,OAAO83L,oBAAsB,EAAI53L,aA5B7D,SAAgB1N,EAAQukB,OAClB5lB,EAAO1K,EAAQO,EAAK+wM,KAEpBhhL,MAGG5lB,EAAQ,EAAG1K,KAFHsN,OAAOyL,KAAKuX,IAEWtwB,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,MAC7D4mM,EAAW5mM,IACH4lB,EAAO/vB,UAIlBwL,GCRTwlM,GAAcrsM,UAAYoI,OAAOC,OAAOksD,MAAMv0D,WAC9CqsM,GAAcrsM,UAAUlE,YAAcuwM,GAGtCA,GAAcrsM,UAAUqN,SAAW,SAAkBi/L,OAC/Cv+K,EAAS9xB,KAAK8F,KAAO,eAEf9F,KAAK4vM,QAAU,oBAEpBS,GAAWrwM,KAAK8vM,UACT,IAAM9vM,KAAK8vM,KAAK1+L,YAGrB0gB,OAITw+K,GAAiBF,GCvCbh6I,GAASxkD,GAGb,YAAc9L,EAAMg1L,EAAQ94K,EAAUy7F,EAAMlX,QACrCzgG,KAAWA,OACXqY,OAAW28K,OACX94K,SAAWA,OACXy7F,KAAWA,OACXlX,OAAWA,EAIlBgqG,GAAKxsM,UAAUysM,WAAa,SAAoB9/E,EAAQ36G,OAClDq8C,EAAMzjD,EAAO0wD,EAAMnwD,EAAKuhM,MAEvBzwM,KAAKme,cAAe,WAEhBuyG,GAAU,IACP36G,GAAa,KAElB,KACC/V,KAAKgiB,SAENrT,EAAQ,QAAK,sBAA2BxO,QAAQH,KAAKme,OAAOtV,OAAO8F,EAAQ,WACvE,EACL3O,KAAKgiB,SAAWrT,EAASoH,EAAY,EAAI,EAAI,GACxC,WACE,cAKN,KACD/V,KAAKgiB,SAEJ9S,EAAMlP,KAAKme,OAAOtf,aAAU,sBAA2BsB,QAAQH,KAAKme,OAAOtV,OAAOqG,YAChF,GACGlP,KAAKgiB,SAAYjM,EAAY,EAAI,EAAI,GACtC,WACA,iBAKD/V,KAAKme,OAAOnb,MAAM2L,EAAOO,GAE5BknD,GAAOm3I,OAAO,IAAK78E,GAAUt+D,EAAOq+I,EAAUpxI,EAAO,KACrDjJ,GAAOm3I,OAAO,IAAK78E,EAAS1wH,KAAKgiB,SAAWrT,EAAQyjD,EAAKvzD,QAAU,KAI5E0xM,GAAKxsM,UAAUqN,SAAW,SAAkBi/L,OACtCI,EAASC,EAAQ,UAEjB1wM,KAAK8F,UACE,OAAS9F,KAAK8F,KAAO,SAGvB,iBAAmB23G,KAAO,GAAK,kBAAoBlX,OAAS,GAEhE8pG,MACOrwM,KAAKwwM,mBAGJ,MAAQC,GAIdC,OAITZ,GAAiBS,GCzEbH,GAAgBx+L,GAEhB++L,GAA2B,CAC7B,OACA,UACA,YACA,aACA,YACA,YACA,eACA,gBAGEC,GAAkB,CACpB,SACA,WACA,eA0CF1xM,GAzBA,SAAcsiB,EAAKvP,GAdnB,IAA6B6rF,EACvBhsE,OAcM7f,GAAW,UAEd2F,KAAK3F,GAAStN,SAAQ,SAAUmB,WACjC6qM,GAAyBxwM,QAAQ2F,SAC7B,IAAIsqM,GAAc,mBAAqBtqM,EAAO,8BAAgC0b,EAAM,wBAKzFA,IAAeA,OACfy7G,KAAehrH,QAA2B,UAC1CtK,QAAesK,WAA2B,kBAAqB,QAC/D4+L,UAAe5+L,aAA2B,SAAUxM,UAAeA,QACnEqrM,WAAe7+L,cAA2B,UAC1CwN,UAAexN,aAA2B,UAC1C8+L,UAAe9+L,aAA2B,UAC1C++L,aAAe/+L,gBAA2B,UAC1Cg/L,cAhCsBnzG,EAgCa7rF,gBAA2B,KA/B/D6f,EAAS,GAED,OAARgsE,UACKlmF,KAAKkmF,GAAKn5F,SAAQ,SAAUhC,KAC7BA,GAAOgC,SAAQ,SAAUusM,KACpB1lM,OAAO0lM,IAAUvuM,QAKvBmvB,QAuBH8+K,GAAgBzwM,QAAQH,KAAKi9H,YACzB,IAAImzE,GAAc,iBAAmBpwM,KAAKi9H,KAAO,uBAAyBz7G,EAAM,iBCpDtF40C,GAAgBxkD,GAChBw+L,GAAgBv+L,GAChBs/L,GAAgBp/L,GAGpB,YAAqBC,EAAQlM,EAAMgsB,OAC7Bs/K,EAAU,YAEP9kH,QAAQ3nF,SAAQ,SAAU0sM,KACtBC,GAAYD,EAAgBvrM,EAAMgsB,QAGtChsB,GAAMnB,SAAQ,SAAU4sM,KACtB5sM,SAAQ,SAAU6sM,EAAcC,GACjCD,EAAahwL,MAAQ+vL,EAAY/vL,KAAOgwL,EAAav0E,OAASs0E,EAAYt0E,QACpEn+H,KAAK2yM,QAIV3yM,KAAKyyM,MAGPz/K,EAAO9kB,QAAO,SAAU3C,EAAMd,cAC5B6nM,EAAQjxM,QAAQoJ,MAwB3B,YAAgBmoM,QACTplH,QAAWolH,EAAWplH,SAAY,QAClCqlH,SAAWD,EAAWC,UAAY,QAClCC,SAAWF,EAAWE,UAAY,QAElCD,SAAShtM,SAAQ,SAAU0F,MAC1BA,EAAKwnM,UAA8B,WAAlBxnM,EAAKwnM,eAClB,IAAIzB,GAAc,2HAIvB0B,iBAAmBR,GAAYtxM,KAAM,WAAY,SACjD+xM,iBAAmBT,GAAYtxM,KAAM,WAAY,SACjDgyM,gBAhCP,eAMSzoM,EAAO1K,EALVizB,EAAS,CACPmgL,OAAQ,GACR70J,SAAU,GACV2rE,QAAS,GACTnyG,SAAU,eAGKvM,KACZA,EAAK4yH,MAAM5yH,EAAKmX,KAAOsQ,WAAmBznB,EAAKmX,KAAOnX,MAG1Dd,EAAQ,EAAG1K,EAASF,UAAUE,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,YACxDA,GAAO5E,QAAQutM,UAEpBpgL,EAiBiBqgL,CAAWnyM,KAAK8xM,iBAAkB9xM,KAAK+xM,kBAIjEK,GAAOC,QAAU,KAGjBD,GAAOhmM,OAAS,eACVsO,EAAS+1F,SAEL9xG,UAAUE,aACX,IACOuzM,GAAOC,UACT1zM,UAAU,cAGf,IACOA,UAAU,KACZA,UAAU,uBAIZ,IAAIyxM,GAAc,6DAGlBh6I,GAAOkX,QAAQ5yD,KACjB07C,GAAOkX,QAAQmjC,IAElB/1F,EAAQ7K,OAAM,SAAUmC,UAAiBA,aAAkBogM,YACxD,IAAIhC,GAAc,iGAGrB3/F,EAAM5gG,OAAM,SAAUxF,UAAeA,aAAgB8mM,YAClD,IAAIf,GAAc,6FAGnB,IAAIgC,GAAO,CAChB9lH,QAAS5xE,EACTk3L,SAAUnhG,SAKdj+F,GAAiB4/L,GCjGjBE,GAAiB,IAHJ1gM,GAGe,CAC1BggM,SAAU,CCPK,IAFNhgM,GAEe,wBAAyB,CACjDqrH,KAAM,SACN4zE,UAAW,SAAUprM,UAAwB,OAATA,EAAgBA,EAAO,MCF5C,IAFNmM,GAEe,wBAAyB,CACjDqrH,KAAM,WACN4zE,UAAW,SAAUprM,UAAwB,OAATA,EAAgBA,EAAO,MCF5C,IAFNmM,GAEe,wBAAyB,CACjDqrH,KAAM,UACN4zE,UAAW,SAAUprM,UAAwB,OAATA,EAAgBA,EAAO,aCe7D8sM,GAAiB,IAnBN3gM,GAmBe,yBAA0B,CAClDqrH,KAAM,SACNt1H,QAnBF,SAAyBlC,MACV,OAATA,SAAsB,MAEtBiD,EAAMjD,EAAK5G,cAEC,IAAR6J,GAAsB,MAATjD,GACL,IAARiD,IAAuB,YAAmB,SAATjD,GAA4B,SAATA,IAc5DorM,UAXF,kBACS,MAWPpxL,UARF,SAAgBjF,UACI,OAAXA,GAQPu2L,UAAW,CACTyB,UAAW,iBAAqB,KAChCC,UAAW,iBAAqB,QAChCC,UAAW,iBAAqB,QAChCC,UAAW,iBAAqB,SAElC3B,aAAc,kBCThB4B,GAAiB,IArBNhhM,GAqBe,yBAA0B,CAClDqrH,KAAM,SACNt1H,QArBF,SAA4BlC,MACb,OAATA,SAAsB,MAEtBiD,EAAMjD,EAAK5G,cAEC,IAAR6J,IAAuB,YAAmB,SAATjD,GAA4B,SAATA,IAC5C,IAARiD,IAAuB,aAAoB,UAATjD,GAA6B,UAATA,IAgB9DorM,UAbF,SAA8BprM,SACZ,SAATA,GACS,SAATA,GACS,SAATA,GAWPga,UARF,SAAmBjF,SACiC,qBAA3CrO,OAAOpI,UAAUqN,SAAS1L,KAAK8U,IAQtCu2L,UAAW,CACT0B,UAAW,SAAUj4L,UAAiBA,EAAS,OAAS,SACxDk4L,UAAW,SAAUl4L,UAAiBA,EAAS,OAAS,SACxDm4L,UAAW,SAAUn4L,UAAiBA,EAAS,OAAS,UAE1Dw2L,aAAc,cC/BZ56I,GAASxkD,GASb,YAAmBzQ,UACR,IAAeA,GAAOA,GAAK,GAGtC,YAAmBA,UACR,IAAeA,GAAOA,GAAK,OAyItCy2L,GAAiB,IAtJJ/lL,GAsJa,wBAAyB,CACjDorH,KAAM,SACNt1H,QAxIF,SAA4BlC,MACb,OAATA,SAAsB,MAKtB81G,EApBap6G,EAiBbuH,EAAMjD,EAAK5G,OACX0K,EAAQ,EACRspM,GAAY,MAGXnqM,SAAY,KAKN,SAHNjD,EAAK8D,KAGe,MAAPgyG,MACX91G,IAAO8D,IAGH,MAAPgyG,EAAY,IAEVhyG,EAAQ,IAAMb,SAAY,KAKnB,SAJNjD,IAAO8D,IAII,SAIPA,EAAQb,EAAKa,OAEP,SADN9D,EAAK8D,QAEC,MAAPgyG,GAAqB,MAAPA,SAAmB,KACzB,SAEPs3F,GAAoB,MAAPt3F,KAIX,MAAPA,EAAY,SAIPhyG,EAAQb,EAAKa,OAEP,SADN9D,EAAK8D,UAxDP,KADQpI,EA2DIsE,EAAK8vD,WAAWhsD,KA1DNpI,GAAK,IAC3B,IAAeA,GAAOA,GAAK,IAC3B,IAAeA,GAAOA,GAAK,YAwDiB,KACnC,SAEP0xM,GAAoB,MAAPt3F,OAIfhyG,EAAQb,EAAKa,OAEP,SADN9D,EAAK8D,SAELupM,GAAUrtM,EAAK8vD,WAAWhsD,WAAgB,KACnC,SAEPspM,GAAoB,MAAPt3F,KAMX,MAAPA,SAAmB,OAEhBhyG,EAAQb,EAAKa,OAEP,SADN9D,EAAK8D,QAEC,MAAPgyG,YACCw3F,GAAUttM,EAAK8vD,WAAWhsD,WACtB,KAEG,WAITspM,GAAoB,MAAPt3F,KAGP,MAAPA,GAGG,oBAAoB74G,KAAK+C,EAAKzC,MAAMuG,MAsD3CsnM,UAnDF,SAA8BprM,OACA81G,EAAIn7G,EAA5BgC,EAAQqD,EAAMutM,EAAO,EAAaC,EAAS,cAE3C7wM,EAAMjC,QAAQ,SACRiC,EAAMU,QAAQ,KAAM,KAKnB,SAFNV,EAAM,KAEc,MAAPm5G,IACL,MAAPA,eACIn5G,EAAMY,MAAM,IACT,IAGC,MAAVZ,EAAsB,EAEf,MAAPm5G,EACe,MAAbn5G,EAAM,GAAmB4wM,EAAO58L,SAAShU,EAAMY,MAAM,GAAI,GAC5C,MAAbZ,EAAM,GAAmB4wM,EAAO58L,SAAShU,EAAO,IAC7C4wM,EAAO58L,SAAShU,EAAO,QAG5BA,EAAMjC,QAAQ,QACVmI,MAAM,KAAK3D,SAAQ,SAAUlB,KAC1BunH,QAAQ50G,SAAS3S,EAAG,UAGrB,IACD,IAEAkB,SAAQ,SAAUjB,MACbA,EAAItD,KACN,MAGH4yM,EAAO5wM,GAIT4wM,EAAO58L,SAAShU,EAAO,KAY9Bqd,UATF,SAAmBjF,SACmC,oBAA5CrO,OAAOpI,UAAUqN,SAAS1L,KAAK8U,MACtB,GAAM,IAAM47C,GAAO88I,eAAe14L,IAQnDu2L,UAAW,CACToC,OAAa,SAAUrrM,UAAcA,GAAO,EAAI,KAAOA,EAAIsJ,SAAS,GAAK,MAAQtJ,EAAIsJ,SAAS,GAAGpO,MAAM,IACvG84K,MAAa,SAAUh0K,UAAcA,GAAO,EAAI,IAAOA,EAAIsJ,SAAS,GAAK,KAAQtJ,EAAIsJ,SAAS,GAAGpO,MAAM,IACvGowM,QAAa,SAAUtrM,UAAcA,EAAIsJ,SAAS,KAElDiiM,YAAa,SAAUvrM,UAAcA,GAAO,EAAI,KAAOA,EAAIsJ,SAAS,IAAI1F,cAAiB,MAAQ5D,EAAIsJ,SAAS,IAAI1F,cAAc1I,MAAM,KAExIguM,aAAc,UACdC,aAAc,CACZkC,OAAa,CAAE,EAAI,OACnBr3B,MAAa,CAAE,EAAI,OACnBs3B,QAAa,CAAE,GAAI,OACnBC,YAAa,CAAE,GAAI,UCxKnBj9I,GAASxkD,GACTu/L,GAASt/L,GAETyhM,GAAqB,IAAIttH,OAE3B,2LA6DF,IAAIutH,GAAyB,oBCtD7BC,GAAiB,IAHJ5hM,GAGe,CAC1B06E,QAAS,CACPz6E,IAEF8/L,SAAU,CACR5/L,GACA8G,GACAC,GDuFa,IAAIq4L,GAAK,0BAA2B,CACnDl0E,KAAM,SACNt1H,QA5FF,SAA0BlC,UACX,OAATA,MAEC6tM,GAAmB5wM,KAAK+C,IAGC,MAA1BA,EAAKA,EAAK5G,OAAS,KAuFvBgyM,UAhFF,SAA4BprM,OACtBrD,EAAO4wM,EAAM5yM,EAAM6yM,WAGD,SADbxtM,EAAK3C,QAAQ,KAAM,IAAIC,eACjB,MAAkB,IACxB,GAEL,KAAK5C,QAAQiC,EAAM,KAAO,MACpBA,EAAMY,MAAM,IAGR,SAAVZ,EACe,IAAT4wM,EAAc56L,OAAOq7L,kBAAoBr7L,OAAO83L,kBAErC,SAAV9tM,EACFmkJ,IAEEnkJ,EAAMjC,QAAQ,MAAQ,KACzBmI,MAAM,KAAK3D,SAAQ,SAAUlB,KAC1BunH,QAAQh4F,WAAWvvB,EAAG,UAGvB,IACD,IAEAkB,SAAQ,SAAUjB,MACdA,EAAItD,KACL,MAGH4yM,EAAO5wM,GAGT4wM,EAAOhgL,WAAW5wB,EAAO,KAgDhCqd,UATF,SAAiBjF,SACoC,oBAA3CrO,OAAOpI,UAAUqN,SAAS1L,KAAK8U,OACtB,GAAM,GAAK47C,GAAO88I,eAAe14L,KAQlDu2L,UA3CF,SAA4Bv2L,EAAQ7X,OAC9BwR,KAEAR,MAAM6G,UACA7X,OACD,kBAAoB,WACpB,kBAAoB,WACpB,kBAAoB,eAElByV,OAAOq7L,oBAAsBj5L,SAC9B7X,OACD,kBAAoB,WACpB,kBAAoB,WACpB,kBAAoB,eAElByV,OAAO83L,oBAAsB11L,SAC9B7X,OACD,kBAAoB,YACpB,kBAAoB,YACpB,kBAAoB,gBAElByzD,GAAO88I,eAAe14L,SACxB,gBAGHA,EAAOpJ,SAAS,IAKfmiM,GAAuB7wM,KAAKyR,GAAOA,EAAIrR,QAAQ,IAAK,MAAQqR,GAcnE68L,aAAc,iBErGhB0C,GAAiB,IAHJ9hM,GAGe,CAC1B06E,QAAS,CACPz6E,MCbAs/L,GAAOv/L,GAEP+hM,GAAmB,IAAI3tH,OACzB,sDAIE4tH,GAAwB,IAAI5tH,OAC9B,wLAuEF6tH,GAAiB,IAAI1C,GAAK,8BAA+B,CACvDl0E,KAAM,SACNt1H,QA9DF,SAA8BlC,UACf,OAATA,IACgC,OAAhCkuM,GAAiBxmM,KAAK1H,IACe,OAArCmuM,GAAsBzmM,KAAK1H,KA4D/BorM,UAxDF,SAAgCprM,OAC1B2C,EAAO0rM,EAAMC,EAAOC,EAAKC,EAAMC,EAAQhpI,EACLipI,EADaC,EAAW,EAC1D5rL,EAAQ,QAGE,UADNmrL,GAAiBxmM,KAAK1H,QACFmuM,GAAsBzmM,KAAK1H,IAEzC,OAAV2C,QAAsB,IAAIkwD,MAAM,4BAI3BlwD,EAAM,MACLA,EAAM,GAAM,KACdA,EAAM,IAETA,EAAM,UACF,IAAIkV,KAAKA,KAAK+2L,IAAIP,EAAMC,EAAOC,UAK/B5rM,EAAM,MACJA,EAAM,MACNA,EAAM,GAEbA,EAAM,GAAI,OACDA,EAAM,GAAGpF,MAAM,EAAG,GACtBoxM,EAASv1M,OAAS,MACX,OAEFu1M,SAKVhsM,EAAM,OAG6B,KAAlB,IAFPA,EAAM,SACE,KAAO,IAEV,MAAbA,EAAM,QAAqBogB,MAG1B,IAAIlL,KAAKA,KAAK+2L,IAAIP,EAAMC,EAAOC,EAAKC,EAAMC,EAAQhpI,EAAQkpI,IAE7D5rL,KAAY8rL,QAAQH,EAAK9oH,UAAY7iE,GAElC2rL,GAWPrD,WAAYxzL,KACZyzL,UATF,SAAgCv2L,UACvBA,EAAO+5L,qBC1EZC,GCIJzpF,GAAiB,IANNn5G,GAMe,0BAA2B,CACnDqrH,KAAM,SACNt1H,QANF,SAA0BlC,SACR,OAATA,GAA0B,OAATA,KDC1B,QAEMgvM,GAAWC,WACFD,GAAS,UAAUv2L,aACzB3e,KAET,IAIIo1M,GAAa,4EAmHjBxB,GAAiB,IAvHAvhM,GAuHS,2BAA4B,CACpDqrH,KAAM,SACNt1H,QAlHF,SAA2BlC,MACZ,OAATA,SAAsB,MAEtB2gD,EAAMo3E,EAAKo3E,EAAS,EAAGlsM,EAAMjD,EAAK5G,OAAQi/F,EAAM62G,OAG/Cn3E,EAAM,EAAGA,EAAM90H,EAAK80H,YAChB1/B,EAAI39F,QAAQsF,EAAKoD,OAAO20H,KAGpB,QAGPp3E,EAAO,SAAU,KAEX,SAIJwuJ,EAAS,GAAO,GAgGxB/D,UA7FF,SAA6BprM,OACvB+3H,EAAKq3E,EACLrkJ,EAAQ/qD,EAAK3C,QAAQ,WAAY,IACjC4F,EAAM8nD,EAAM3xD,OACZi/F,EAAM62G,GACNluJ,EAAO,EACP30B,EAAS,OAIR0rG,EAAM,EAAGA,EAAM90H,EAAK80H,IAClBA,EAAM,GAAM,GAAMA,MACd1+H,KAAM2nD,GAAQ,GAAM,OACpB3nD,KAAM2nD,GAAQ,EAAK,OACnB3nD,KAAY,IAAP2nD,MAGNA,GAAQ,EAAKq3C,EAAI39F,QAAQqwD,EAAM3nD,OAAO20H,WAO/B,OAFL90H,EAAM,EAAK,MAGd5J,KAAM2nD,GAAQ,GAAM,OACpB3nD,KAAM2nD,GAAQ,EAAK,OACnB3nD,KAAY,IAAP2nD,IACU,KAAbouJ,KACF/1M,KAAM2nD,GAAQ,GAAM,OACpB3nD,KAAM2nD,GAAQ,EAAK,MACJ,KAAbouJ,KACF/1M,KAAM2nD,GAAQ,EAAK,KAIxB+tJ,GAEKA,GAAW9iM,KAAO8iM,GAAW9iM,KAAKogB,GAAU,IAAI0iL,GAAW1iL,GAG7DA,GAqDPrS,UARF,SAAkBjF,UACTg6L,IAAcA,GAAWnzI,SAAS7mD,IAQzCu2L,UAnDF,SAA6Bv2L,OACAgjH,EAAKn+D,EAA5BvtC,EAAS,GAAI20B,EAAO,EACpB/9C,EAAM8R,EAAO3b,OACbi/F,EAAM62G,OAILn3E,EAAM,EAAGA,EAAM90H,EAAK80H,IAClBA,EAAM,GAAM,GAAMA,OACX1/B,EAAKr3C,GAAQ,GAAM,OACnBq3C,EAAKr3C,GAAQ,GAAM,OACnBq3C,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAW,GAAPr3C,UAGA,GAAKjsC,EAAOgjH,UAOjB,OAFN90H,EAAM,OAGDo1F,EAAKr3C,GAAQ,GAAM,OACnBq3C,EAAKr3C,GAAQ,GAAM,OACnBq3C,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAW,GAAPr3C,IACI,IAAT4Y,MACCy+B,EAAKr3C,GAAQ,GAAM,OACnBq3C,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAI,KACI,IAATz+B,OACCy+B,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAKr3C,GAAQ,EAAK,OAClBq3C,EAAI,OACJA,EAAI,KAGThsE,KE1HLq/K,GAAOv/L,GAEPkjM,GAAkB3oM,OAAOpI,UAAUsY,eACnC04L,GAAkB5oM,OAAOpI,UAAUqN,aAkCvC4jM,GAAiB,IAAI7D,GAAK,yBAA0B,CAClDl0E,KAAM,WACNt1H,QAlCF,SAAyBlC,MACV,OAATA,SAAsB,MAEL8D,EAAO1K,EAAQuyH,EAAM6jF,EAASC,EAA/CC,EAAa,GACb36L,EAAS/U,MAER8D,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,EAAG,MAC3DiR,EAAOjR,MACD,EAEgB,oBAAzBwrM,GAAUrvM,KAAK0rH,UAAoC,MAElD6jF,KAAW7jF,KACV0jF,GAAgBpvM,KAAK0rH,EAAM6jF,GAAU,IAClCC,SACO,KADkB,MAK7BA,SAAmB,UAEpBC,EAAWh1M,QAAQ80M,UACX,IADuCn2M,KAAKm2M,UAInD,GAUPpE,UAPF,SAA2BprM,UACT,OAATA,EAAgBA,EAAO,MClC5B0rM,GAAOv/L,GAEPmjM,GAAY5oM,OAAOpI,UAAUqN,aA4CjCgkM,GAAiB,IAAIjE,GAAK,0BAA2B,CACnDl0E,KAAM,WACNt1H,QA5CF,SAA0BlC,MACX,OAATA,SAAsB,MAEtB8D,EAAO1K,EAAQuyH,EAAMx5G,EAAMka,EAC3BtX,EAAS/U,QAEJ,IAAI1D,MAAMyY,EAAO3b,QAErB0K,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,EAAG,MAC3DiR,EAAOjR,GAEe,oBAAzBwrM,GAAUrvM,KAAK0rH,UAAoC,KAInC,OAFbjlH,OAAOyL,KAAKw5G,IAEVvyH,cAAqB,IAEvB0K,GAAS,CAAEqO,EAAK,GAAIw5G,EAAKx5G,EAAK,YAGhC,GAyBPi5L,UAtBF,SAA4BprM,MACb,OAATA,QAAsB,OAEtB8D,EAAO1K,EAAQuyH,EAAMx5G,EAAMka,EAC3BtX,EAAS/U,QAEJ,IAAI1D,MAAMyY,EAAO3b,QAErB0K,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IACxDiR,EAAOjR,KAEP4C,OAAOyL,KAAKw5G,KAEZ7nH,GAAS,CAAEqO,EAAK,GAAIw5G,EAAKx5G,EAAK,YAGhCka,KC3CLq/K,GAAOv/L,GAEPkjM,GAAkB3oM,OAAOpI,UAAUsY,mBCSvCg5L,GAAiB,IAHJzjM,GAGe,CAC1B06E,QAAS,CACPz6E,IAEF8/L,SAAU,CACR5/L,GACA8G,IAEF+4L,SAAU,CACR94L,GACAwD,GACAC,GDAa,IAAI40L,GAAK,wBAAyB,CACjDl0E,KAAM,UACNt1H,QApBF,SAAwBlC,MACT,OAATA,SAAsB,MAEtBrG,EAAKob,EAAS/U,MAEbrG,KAAOob,KACNs6L,GAAgBpvM,KAAK8U,EAAQpb,IACX,OAAhBob,EAAOpb,UAAsB,SAI9B,GAUPyxM,UAPF,SAA0BprM,UACR,OAATA,EAAgBA,EAAO,aEAhC6vM,GAAiB,IAnBN1jM,GAmBe,iCAAkC,CAC1DqrH,KAAM,SACNt1H,QAnBF,kBACS,GAmBPkpM,UAhBF,aAiBEpxL,UARF,SAAqBjF,eACM,IAAXA,GAQdu2L,UAbF,iBACS,UCZLxG,GCmDJgL,GAAiB,IAnDN3jM,GAmDe,8BAA+B,CACvDqrH,KAAM,SACNt1H,QAnDF,SAAiClC,MAClB,OAATA,SAAsB,KACN,IAAhBA,EAAK5G,cAAqB,MAE1B22M,EAAS/vM,EACT45D,EAAS,cAAclyD,KAAK1H,GAC5B8qB,EAAY,MAIE,MAAdilL,EAAO,GAAY,IACjBn2I,MAAkBA,EAAK,IAEvB9uC,EAAU1xB,OAAS,SAAU,KAEoB,MAAjD22M,EAAOA,EAAO32M,OAAS0xB,EAAU1xB,OAAS,UAAmB,SAG5D,GAkCPgyM,UA/BF,SAAmCprM,OAC7B+vM,EAAS/vM,EACT45D,EAAS,cAAclyD,KAAK1H,GAC5B8qB,EAAY,SAGE,MAAdilL,EAAO,KACLn2I,MAAkBA,EAAK,MAClBm2I,EAAOxyM,MAAM,EAAGwyM,EAAO32M,OAAS0xB,EAAU1xB,OAAS,IAGvD,IAAImnF,OAAOwvH,EAAQjlL,IAqB1B9Q,UARF,SAAkBjF,SACkC,oBAA3CrO,OAAOpI,UAAUqN,SAAS1L,KAAK8U,IAQtCu2L,UAnBF,SAAmCv2L,OAC7BsX,EAAS,IAAMtX,EAAO2U,OAAS,WAE/B3U,EAAO6rE,YAAkB,KACzB7rE,EAAO+rE,eAAqB,KAC5B/rE,EAAO8rE,gBAAsB,KAE1Bx0D,KDnCT,QAEM2iL,GAAWC,WACLD,GAAS,iBACZjzM,IAGe,oBAAX+nD,YAAkCA,OAAOghJ,aAoEtDkL,GAAiB,IAjEN7jM,GAiEe,gCAAiC,CACzDqrH,KAAM,SACNt1H,QAjEF,SAAmClC,MACpB,OAATA,SAAsB,UAGpB0pB,EAAS,IAAM1pB,EAAO,IACtBkiK,EAAS4iC,GAAQz2L,MAAMqb,EAAQ,CAAEwiB,OAAO,UAER,YAAhCg2H,EAAIzoK,MAC4B,IAAhCyoK,EAAIl6E,KAAK5uF,QACuB,wBAAhC8oK,EAAIl6E,KAAK,GAAGvuF,OACqB,4BAAhCyoK,EAAIl6E,KAAK,GAAGwkF,WAAW/yK,MACU,uBAAhCyoK,EAAIl6E,KAAK,GAAGwkF,WAAW/yK,YAKtBq7J,UACA,IAiDTs2C,UA7CF,SAAqCprM,OAM/BgoF,EAHAt+D,EAAS,IAAM1pB,EAAO,IACtBkiK,EAAS4iC,GAAQz2L,MAAMqb,EAAQ,CAAEwiB,OAAO,IACxClhC,EAAS,MAGuB,YAAhCk3J,EAAIzoK,MAC4B,IAAhCyoK,EAAIl6E,KAAK5uF,QACuB,wBAAhC8oK,EAAIl6E,KAAK,GAAGvuF,MACqB,4BAAhCyoK,EAAIl6E,KAAK,GAAGwkF,WAAW/yK,MACU,uBAAhCyoK,EAAIl6E,KAAK,GAAGwkF,WAAW/yK,WACrB,IAAIo5D,MAAM,uCAGdm1B,KAAK,GAAGwkF,WAAWxhK,OAAO9L,SAAQ,SAAUmE,KACvChK,KAAKgK,EAAMhD,WAGb6hK,EAAIl6E,KAAK,GAAGwkF,WAAWxkF,KAAK97C,MAIM,mBAArCg2H,EAAIl6E,KAAK,GAAGwkF,WAAWxkF,KAAKvuF,KAEvB,IAAI4nF,SAASr2E,EAAQ0e,EAAOnsB,MAAMyqF,EAAK,GAAK,EAAGA,EAAK,GAAK,IAK3D,IAAI3G,SAASr2E,EAAQ,UAAY0e,EAAOnsB,MAAMyqF,EAAK,GAAIA,EAAK,MAenEhuE,UARF,SAAoBjF,SACgC,sBAA3CrO,OAAOpI,UAAUqN,SAAS1L,KAAK8U,IAQtCu2L,UAbF,SAAqCv2L,UAC5BA,EAAOpJ,cEnEZghM,GAASxgM,GAGb8jM,GAAiBtD,GAAOC,QAAU,IAAID,GAAO,CAC3C9lH,QAAS,CACPz6E,IAEF+/L,SAAU,CACR7/L,GACA8G,GACAC,MClBAs9C,GAAsBxkD,GACtBw+L,GAAsBv+L,GACtB0+L,GAAsBx+L,GACtB4jM,GAAsB98L,GACtB+8L,GAAsB98L,GAGtBg8L,GAAkB3oM,OAAOpI,UAAUsY,eAcnCw5L,GAAgC,sIAChCC,GAAgC,qBAChCC,GAAgC,cAChCC,GAAgC,yBAChCC,GAAgC,mFAGpC,YAAgBnuM,UAAcqE,OAAOpI,UAAUqN,SAAS1L,KAAKoC,GAE7D,YAAgB3G,UACA,KAANA,GAA8B,KAANA,EAGlC,YAAwBA,UACR,IAANA,GAA+B,KAANA,EAGnC,YAAsBA,UACN,IAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,EAGV,YAA2BA,UACZ,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,EAGT,YAAqBA,OACf2mD,SAEC,IAAe3mD,GAAOA,GAAK,GACvBA,EAAI,GAMR,OAFI,GAAJA,IAEuB2mD,GAAM,IACzBA,EAAK,GAAO,MAqBvB,YAA8B3mD,UAEd,KAANA,EAAqB,KAChB,KAANA,EAAqB,IACf,KAANA,EAAqB,KACf,MAANA,GACM,IAANA,EADqB,KAEf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,KACf,MAANA,EAAqB,IACf,KAANA,EAAyB,IACnB,KAANA,EAAqB,IACf,KAANA,EAAqB,IACf,KAANA,EAAqB,KACf,KAANA,EAAqB,IACf,KAANA,EAAqB,IACf,KAANA,EAAqB,SACf,KAANA,EAAqB,SAAW,GAGzC,YAA2BA,UACrBA,GAAK,MACAqK,OAAOkrD,aAAav1D,GAItBqK,OAAOkrD,aACa,SAAnB,OAAa,IACS,SAAtB,MAAY,OAMtB,IAFA,IAAIw/I,GAAoB,IAAIn0M,MAAM,KAC9Bo0M,GAAkB,IAAIp0M,MAAM,KACvBlE,GAAI,EAAGA,GAAI,IAAKA,QACLA,IAAKu4M,GAAqBv4M,IAAK,EAAI,KACrCA,IAAKu4M,GAAqBv4M,IAI5C,YAAe2yD,EAAOv+C,QACfu+C,MAAQA,OAER6lJ,SAAYpkM,YAAwB,UACpCO,OAAYP,UAAwB2jM,QACpCU,UAAYrkM,aAAwB,UACpCskM,OAAYtkM,WAAwB,OACpCuhM,KAAYvhM,SAAwB,OACpCc,SAAYd,YAAwB,UAEpCukM,cAAgBx2M,KAAKwS,OAAOs/L,sBAC5B2E,QAAgBz2M,KAAKwS,OAAOw/L,qBAE5BnzM,OAAa2xD,EAAM3xD,YACnBmjB,SAAa,OACby7F,KAAa,OACb0xD,UAAa,OACbjxB,WAAa,OAEbw4D,UAAY,GAenB,YAAuBtyM,EAAOs9D,UACrB,IAAI0uI,GACT1uI,EACA,IAAI6uI,GAAKnsM,EAAMiyM,SAAUjyM,EAAMosD,MAAOpsD,EAAM4d,SAAU5d,EAAMq5G,KAAOr5G,EAAM4d,SAAW5d,EAAM+qK,YAG9F,YAAoB/qK,EAAOs9D,SACnBi1I,GAAcvyM,EAAOs9D,GAG7B,YAAsBt9D,EAAOs9D,GACvBt9D,EAAMkyM,aACFA,UAAU5wM,KAAK,KAAMixM,GAAcvyM,EAAOs9D,IAKpD,IAAIk1I,GAAoB,CAEtBC,KAAM,SAA6BzyM,EAAO0B,EAAMkP,OAE1C5M,EAAO0uM,EAAOC,EAEI,OAAlB3yM,EAAM0gK,YACG1gK,EAAO,kCAGA,IAAhB4Q,EAAKnW,WACIuF,EAAO,+CAKN,UAFN,uBAAuB+I,KAAK6H,EAAK,SAG5B5Q,EAAO,+CAGZgS,SAAShO,EAAM,GAAI,MACnBgO,SAAShO,EAAM,GAAI,IAEb,IAAV0uM,MACS1yM,EAAO,+CAGd0gK,QAAU9vJ,EAAK,KACfgiM,gBAAmBD,EAAQ,EAEnB,IAAVA,GAAyB,IAAVA,MACJ3yM,EAAO,6CAIxB6yM,IAAK,SAA4B7yM,EAAO0B,EAAMkP,OAExCkiM,EAAQ5rF,EAEQ,IAAhBt2G,EAAKnW,WACIuF,EAAO,iDAGX4Q,EAAK,KACLA,EAAK,GAETghM,GAAmBtzM,KAAKw0M,OAChB9yM,EAAO,+DAGhB0wM,GAAgBpvM,KAAKtB,EAAM+yM,OAAQD,OAC1B9yM,EAAO,8CAAgD8yM,EAAS,gBAGxEjB,GAAgBvzM,KAAK4oH,OACblnH,EAAO,kEAGd+yM,OAAOD,GAAU5rF,IAK3B,YAAwBlnH,EAAOuK,EAAOO,EAAKkoM,OACrCC,EAAWC,EAASC,EAAYC,KAEhC7oM,EAAQO,EAAK,MACL9K,EAAMosD,MAAMxtD,MAAM2L,EAAOO,GAE/BkoM,MACGC,EAAY,EAAGC,EAAUE,EAAQ34M,OAAQw4M,EAAYC,EAASD,GAAa,EAEzD,OADRG,EAAQjiJ,WAAW8hJ,KAEzB,IAAQE,GAAcA,GAAc,YAC9BnzM,EAAO,sCAGbyxM,GAAsBnzM,KAAK80M,OACzBpzM,EAAO,kDAGd0tB,QAAU0lL,GAIpB,YAAuBpzM,EAAOyrB,EAAaV,EAAQsoL,OAC7CtH,EAAY/wM,EAAKmK,EAAOmuM,MAEvBthJ,GAAOsyI,SAASv5K,OACR/qB,EAAO,qEAKfmF,EAAQ,EAAGmuM,KAFHvrM,OAAOyL,KAAKuX,IAEatwB,OAAQ0K,EAAQmuM,EAAUnuM,GAAS,IACjE4mM,EAAW5mM,GAEZurM,GAAgBpvM,KAAKmqB,EAAazwB,OACzBA,GAAO+vB,EAAO/vB,KACVA,IAAO,GAK7B,YAA0BgF,EAAOozM,EAASC,EAAiBE,EAAQC,EAASC,EAAWx8E,EAAWy8E,OAC5FvuM,EAAOmuM,KAKP31M,MAAMC,QAAQ41M,OAGXruM,EAAQ,EAAGmuM,KAFN31M,MAAMgC,UAAUf,MAAM0C,KAAKkyM,IAEF/4M,OAAQ0K,EAAQmuM,EAAUnuM,GAAS,EAChExH,MAAMC,QAAQ41M,EAAQruM,QACbnF,EAAO,+CAGG,iBAAZwzM,GAAmD,oBAA3BG,GAAOH,EAAQruM,QACxCA,GAAS,sBAQA,iBAAZquM,GAA4C,oBAApBG,GAAOH,OAC9B,qBAIFpsM,OAAOosM,GAED,OAAZJ,MACQ,IAGG,4BAAXG,KACE51M,MAAMC,QAAQ61M,OACXtuM,EAAQ,EAAGmuM,EAAWG,EAAUh5M,OAAQ0K,EAAQmuM,EAAUnuM,GAAS,KACxDnF,EAAOozM,EAASK,EAAUtuM,GAAQkuM,WAGpCrzM,EAAOozM,EAASK,EAAWJ,QAGtCrzM,EAAMovM,MACNsB,GAAgBpvM,KAAK+xM,EAAiBG,KACvC9C,GAAgBpvM,KAAK8xM,EAASI,OAC1Bn6F,KAAO4d,GAAaj3H,EAAMq5G,OAC1Bz7F,SAAW81L,GAAY1zM,EAAM4d,YACxB5d,EAAO,6BAEZwzM,GAAWC,SACZJ,EAAgBG,UAGlBJ,EAGT,YAAuBpzM,OACjBm3G,EAIO,QAFNn3G,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aAG1BA,WACU,KAAPu5F,KACHv5F,WACyC,KAA3C5d,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aACzBA,eAGG5d,EAAO,8BAGdq5G,MAAQ,IACR0xD,UAAY/qK,EAAM4d,SAG1B,YAA6B5d,EAAO4zM,EAAeC,WAC7CC,EAAa,EACb38F,EAAKn3G,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,UAExB,IAAPu5F,GAAU,MACR48F,GAAe58F,MACfn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAGlCg2L,GAAwB,KAAPz8F,OAEZn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,gBACtB,KAAPu5F,GAA8B,KAAPA,GAA8B,IAAPA,OAGrD68F,GAAO78F,gBACKn3G,KAETA,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,gBAE5Bk8H,WAAa,EAEL,KAAP3iC,KACC2iC,eACD95I,EAAMosD,MAAM+E,aAAanxD,EAAM4d,qBAOtCi2L,GAAqC,IAAfC,GAAoB9zM,EAAM85I,WAAa+5D,MAClD7zM,EAAO,yBAGf8zM,EAGT,YAA+B9zM,OAEzBm3G,EADA87F,EAAYjzM,EAAM4d,iBAOV,QAJP5d,EAAMosD,MAAM+E,WAAW8hJ,KAIM,KAAP97F,GACvBA,IAAOn3G,EAAMosD,MAAM+E,WAAW8hJ,EAAY,IAC1C97F,IAAOn3G,EAAMosD,MAAM+E,WAAW8hJ,EAAY,QAE/B,EAIF,OAFNjzM,EAAMosD,MAAM+E,WAAW8hJ,MAEZgB,GAAa98F,KAQjC,YAA0Bn3G,EAAOqd,GACjB,IAAVA,IACIqQ,QAAU,IACPrQ,EAAQ,MACXqQ,QAAUskC,GAAOm3I,OAAO,KAAM9rL,EAAQ,IAsehD,YAA2Brd,EAAOk0M,OAC5BC,EAMAh9F,EALAi9F,EAAYp0M,EAAMod,IAClBi3L,EAAYr0M,EAAM8+C,OAClBs0J,EAAY,GAEZkB,GAAY,MAGK,OAAjBt0M,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAUs0J,KAG7BpzM,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,UAEpB,IAAPu5F,GAEM,KAAPA,GAMC88F,GAFOj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,WAMzC,IACLA,WAEF42L,GAAoBx0M,GAAO,OACzBA,EAAM85I,YAAco6D,IACdx5M,KAAK,QACRsF,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,oBAK9B5d,EAAMq5G,QACFr5G,EAAOk0M,EA16BC,GA06B6B,GAAO,KAChDx5M,KAAKsF,EAAM0tB,WACC1tB,GAAO,QAEtBA,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aAEvBy7F,OAAS86F,GAASn0M,EAAM85I,WAAao6D,IAAuB,IAAP/8F,KACnDn3G,EAAO,+CACTA,EAAM85I,WAAao6D,gBAK5BI,MACIl3L,IAAMg3L,IACNt1J,OAASu1J,IACTx7E,KAAO,aACPnrG,OAAS0lL,GACR,GAgKX,YAAyBpzM,OACnBizM,EAGAwB,EACAl0C,EACAppD,EAJAu9F,GAAa,EACbC,GAAa,KAON,QAFN30M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,kBAEH,KAEb,OAAd5d,EAAMod,QACGpd,EAAO,iCAKT,QAFNA,EAAMosD,MAAM+E,aAAanxD,EAAM4d,eAGrB,IACR5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,WAEpB,KAAPu5F,MACC,IACE,OACPn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAGxB,MAGF5d,EAAM4d,SAEd82L,EAAY,MACJ10M,EAAMosD,MAAM+E,aAAanxD,EAAM4d,gBAC3B,IAAPu5F,GAAmB,KAAPA,GAEfn3G,EAAM4d,SAAW5d,EAAMvF,UACfuF,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,YACxC5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,cAEzB5d,EAAO,0DAEf,MACS,IAAPm3G,IAAa88F,GAAa98F,IAEpB,KAAPA,IACGw9F,KAUQ30M,EAAO,kDATNA,EAAMosD,MAAMxtD,MAAMq0M,EAAY,EAAGjzM,EAAM4d,SAAW,GAEzDg0L,GAAmBtzM,KAAKm2M,OAChBz0M,EAAO,sDAGV,IACEA,EAAM4d,SAAW,MAM5B5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YAG5B5d,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,UAEzC+zL,GAAwBrzM,KAAKiiK,OACpBvgK,EAAO,8DAIlBugK,IAAYsxC,GAAgBvzM,KAAKiiK,OACxBvgK,EAAO,4CAA8CugK,GAG9Dm0C,IACIt3L,IAAMmjJ,EAEHmwC,GAAgBpvM,KAAKtB,EAAM+yM,OAAQ0B,KACtCr3L,IAAMpd,EAAM+yM,OAAO0B,GAAal0C,EAEf,MAAdk0C,IACHr3L,IAAM,IAAMmjJ,EAEK,OAAdk0C,IACHr3L,IAAM,qBAAuBmjJ,KAGxBvgK,EAAO,0BAA4By0M,EAAY,MAGrD,EAGT,YAA4Bz0M,OACtBizM,EACA97F,KAIO,QAFNn3G,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,kBAEH,MAEV,OAAjB5d,EAAM8+C,WACG9+C,EAAO,uCAGfA,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YACxB5d,EAAM4d,SAEJ,IAAPu5F,IAAa88F,GAAa98F,KAAQy9F,GAAkBz9F,MACpDn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,iBAGlC5d,EAAM4d,WAAaq1L,MACVjzM,EAAO,gEAGd8+C,OAAS9+C,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,WAC3C,EAiCT,YAAqB5d,EAAO60M,EAAcC,EAAaC,EAAaC,OAC9DC,EACAC,EACAC,EAIAC,EACAC,EACApvM,EACAqvM,EACArjE,EAPAsjE,EAAe,EACfC,GAAa,EACbC,GAAa,KAOM,OAAnBz1M,EAAM2O,YACFA,SAAS,OAAQ3O,KAGnBod,IAAS,OACT0hC,OAAS,OACT+5E,KAAS,OACTnrG,OAAS,OAEIwnL,EAAoBC,EAxwCjB,IAywCEL,GA1wCF,IA2wCEA,EAEpBC,GACEP,GAAoBx0M,GAAO,WACjB,EAERA,EAAM85I,WAAa+6D,IACN,EACN70M,EAAM85I,aAAe+6D,IACf,EACN70M,EAAM85I,WAAa+6D,WAMb,IAAjBU,OACKG,GAAgB11M,IAAU21M,GAAmB31M,IAC9Cw0M,GAAoBx0M,GAAO,UACjB,IACYi1M,EAEpBj1M,EAAM85I,WAAa+6D,IACN,EACN70M,EAAM85I,aAAe+6D,IACf,EACN70M,EAAM85I,WAAa+6D,cAIN,KAK1BM,MACsBK,GAAaR,GAGlB,IAAjBO,GAjzCkB,IAizC0BT,MApzC1B,IAqzCIA,GApzCJ,IAozCwCA,EAC7CD,EAEAA,EAAe,IAGhB70M,EAAM4d,SAAW5d,EAAM+qK,UAEhB,IAAjBwqC,EACEJ,OACmBn1M,EAAOiyI,IA5XpC,SAA0BjyI,EAAOk0M,EAAYoB,OACvCM,EACAZ,EACAb,EACA0B,EAUA1+F,EATAi9F,EAAgBp0M,EAAMod,IACtBi3L,EAAgBr0M,EAAM8+C,OACtBs0J,EAAgB,GAChBC,EAAkB,GAClBE,EAAgB,KAChBC,EAAgB,KAChBC,EAAgB,KAChBqC,GAAgB,EAChBxB,GAAgB,MAGC,OAAjBt0M,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAUs0J,KAG7BpzM,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,UAEpB,IAAPu5F,GAAU,MACHn3G,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,KAC5C5d,EAAMq5G,OACPr5G,EAAM4d,SAMD,QAAsB,KAAPu5F,IAAuB88F,GAAa2B,QA2BpDG,GAAY/1M,EAAOs1M,EA5/BV,GA4/BwC,GAAO,YAE7Dt1M,EAAMq5G,OAAS86F,EAAO,OACnBn0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,UAE3Bm2L,GAAe58F,MACfn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAG3B,KAAPu5F,EAGG88F,KAFAj0M,EAAMosD,MAAM+E,aAAanxD,EAAM4d,eAGvB5d,EAAO,2FAGhB81M,OACe91M,EAAOozM,EAASC,EAAiBE,EAAQC,EAAS,QAC1DA,EAAUC,EAAY,SAGtB,KACK,KACD,IACNzzM,EAAMod,MACLpd,EAAM0tB,gBAEP4mL,WAIHl3L,IAAMg3L,IACNt1J,OAASu1J,GACR,KALIr0M,EAAO,sEAQXs0M,WAIHl3L,IAAMg3L,IACNt1J,OAASu1J,GACR,KALIr0M,EAAO,wFA9DT,KAAPm3G,GACE2+F,OACe91M,EAAOozM,EAASC,EAAiBE,EAAQC,EAAS,QAC1DA,EAAUC,EAAY,SAGtB,KACK,KACD,GAENqC,MAEO,KACD,MAGJ91M,EAAO,uGAGd4d,UAAY,IACbg4L,MAyDH51M,EAAMq5G,OAAS86F,GAASn0M,EAAM85I,WAAao6D,KACzC6B,GAAY/1M,EAAOk0M,EA/iCL,GA+iCoC,EAAMc,KACtDc,IACQ91M,EAAM0tB,SAEJ1tB,EAAM0tB,QAIjBooL,OACc91M,EAAOozM,EAASC,EAAiBE,EAAQC,EAASC,EAAWU,EAAO0B,KAC5ErC,EAAUC,EAAY,SAGbzzM,GAAO,QACtBA,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,WAGhC5d,EAAM85I,WAAao6D,GAAsB,IAAP/8F,KACzBn3G,EAAO,8CACTA,EAAM85I,WAAao6D,eAU5B4B,MACe91M,EAAOozM,EAASC,EAAiBE,EAAQC,EAAS,MAIjEc,MACIl3L,IAAMg3L,IACNt1J,OAASu1J,IACTx7E,KAAO,YACPnrG,OAAS0lL,GAGVkB,EAqOE0B,CAAiBh2M,EAAOiyI,EAAaqjE,KAnrBhD,SAA4Bt1M,EAAOk0M,OAE7BC,EAEAf,EAGA6C,EACAC,EACAC,EACAC,EAEA5C,EACAD,EACAE,EACAt8F,EAdAk/F,GAAW,EAEXjC,EAAWp0M,EAAMod,IAEjBi3L,EAAWr0M,EAAM8+C,OAMjBu0J,EAAkB,MAQX,QAFNrzM,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aAGnB,MACD,IACF,WACM,MAAPu5F,SAKF,IAJM,OACD,IACF,OAKS,OAAjBn3G,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAUs0J,KAG7BpzM,EAAMosD,MAAM+E,aAAanxD,EAAM4d,UAEtB,IAAPu5F,GAAU,OACKn3G,GAAO,EAAMk0M,MAE5Bl0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aAEvBq4L,WACHr4L,aACAR,IAAMg3L,IACNt1J,OAASu1J,IACTx7E,KAAOu9E,EAAY,UAAY,aAC/B1oL,OAAS0lL,GACR,EACGiD,MACCr2M,EAAO,gDAGDyzM,EAAY,OACtB0C,GAAiB,EAEf,KAAPh/F,GAGE88F,GAFQj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,QAGzCu4L,GAAiB,IACpBv4L,cACc5d,GAAO,EAAMk0M,MAI7Bl0M,EAAMq5G,QACFr5G,EAAOk0M,EAhtBC,GAgtB4B,GAAO,KAC9Cl0M,EAAMod,MACLpd,EAAM0tB,UACI1tB,GAAO,EAAMk0M,KAE5Bl0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,cAEX5d,EAAMq5G,OAAS86F,GAAiB,KAAPh9F,OACrC,IACJn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAChB5d,GAAO,EAAMk0M,MACrBl0M,EAAOk0M,EA3tBD,GA2tB8B,GAAO,KAC3Cl0M,EAAM0tB,QAGhB0oL,KACep2M,EAAOozM,EAASC,EAAiBE,EAAQC,EAASC,GAC1DyC,IACDx7M,KAAK47M,GAAiBt2M,EAAO,KAAMqzM,EAAiBE,EAAQC,EAASC,MAErE/4M,KAAK84M,MAGKxzM,GAAO,EAAMk0M,GAItB,QAFNl0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,eAGrB,IACN5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,cAEzB,KAIJ5d,EAAO,yDA8kBVu2M,CAAmBv2M,EAAOs1M,MACf,GAERJ,GA9kBb,SAAyBl1M,EAAOk0M,OAC1BsC,EACAC,EAOA7/F,EACAO,EA7rBmBp6G,EAsrBnB25M,EAnvBe,EAovBfC,GAAiB,EACjBC,GAAiB,EACjBC,EAAiB3C,EACjB4C,EAAiB,EACjBC,GAAiB,KAMV,SAFN/2M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,cAGtB,UACM,KAAPu5F,SAGF,KAFG,QAKN0hB,KAAO,WACPnrG,OAAS,GAED,IAAPypF,MAGM,QAFNn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YAEH,KAAPu5F,EA5wBT,IA6wBOu/F,IACD,KAAPv/F,EA5wBC,EADA,KA+wBFn3G,EAAO,qDAltBnB,KADkBjD,EAstBao6G,IArtBTp6G,GAAK,GACvBA,EAAI,QAotB+B,SAC5B,IAAR65G,KACS52G,EAAO,gFACR42M,KAIC52M,EAAO,gDAHLk0M,EAAat9F,EAAM,KACf,MAUnBm9F,GAAe58F,GAAK,MACZn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,gBAClCm2L,GAAe58F,OAEX,KAAPA,OACQn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,iBACjCo2L,GAAO78F,IAAe,IAAPA,QAIb,IAAPA,GAAU,QACDn3G,KACR85I,WAAa,IAEd95I,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,YAEzBg5L,GAAkB52M,EAAM85I,WAAa+8D,IAC/B,KAAP1/F,KACA2iC,eACD95I,EAAMosD,MAAM+E,aAAanxD,EAAM4d,cAGjCg5L,GAAkB52M,EAAM85I,WAAa+8D,MAC3B72M,EAAM85I,YAGjBk6D,GAAO78F,eAMPn3G,EAAM85I,WAAa+8D,EAAY,CAh0BlB,IAm0BXH,IACIhpL,QAAUskC,GAAOm3I,OAAO,KAAMwN,EAAiB,EAAIG,EAAaA,GAt0BzD,IAu0BJJ,GACLC,MACIjpL,QAAU,gBASlB+oL,EAGE1C,GAAe58F,OACA,IAEXzpF,QAAUskC,GAAOm3I,OAAO,KAAMwN,EAAiB,EAAIG,EAAaA,IAG7DC,MACQ,IACXrpL,QAAUskC,GAAOm3I,OAAO,KAAM2N,EAAa,IAGzB,IAAfA,EACLH,MACIjpL,QAAU,OAKZA,QAAUskC,GAAOm3I,OAAO,KAAM2N,KAMhCppL,QAAUskC,GAAOm3I,OAAO,KAAMwN,EAAiB,EAAIG,EAAaA,MAGvD,KACA,IACJ,IACE92M,EAAM4d,UAEbo2L,GAAO78F,IAAe,IAAPA,KAChBn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAGvB5d,EAAOw2M,EAAcx2M,EAAM4d,UAAU,WAG/C,EAkcyBo5L,CAAgBh3M,EAAOs1M,IAnzBzD,SAAgCt1M,EAAOk0M,OACjC/8F,EACAq/F,EAAcS,KAIP,QAFNj3M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,kBAGzB,QAGHi7G,KAAO,WACPnrG,OAAS,KACT9P,aACSq5L,EAAaj3M,EAAM4d,SAEuB,OAA5C5d,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,eAC7B,KAAPu5F,EAAoB,OACPn3G,EAAOw2M,EAAcx2M,EAAM4d,UAAU,GAGzC,QAFN5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,kBAO3B,IAJQ5d,EAAM4d,WACfA,aACO5d,EAAM4d,cAKZo2L,GAAO78F,OACDn3G,EAAOw2M,EAAcS,GAAY,MAC/Bj3M,EAAOw0M,GAAoBx0M,GAAO,EAAOk0M,MAC3C+C,EAAaj3M,EAAM4d,UAEzB5d,EAAM4d,WAAa5d,EAAM+qK,WAAamsC,GAAsBl3M,MAC1DA,EAAO,mEAGZ4d,aACO5d,EAAM4d,aAIZ5d,EAAO,8DA0wBRm3M,CAAuBn3M,EAAOs1M,IAvwB1C,SAAgCt1M,EAAOk0M,OACjCsC,EACAS,EACAG,EACAC,EACAzgG,EACAO,EAxgBiBp6G,KA4gBV,QAFNiD,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,kBAGzB,QAGHi7G,KAAO,WACPnrG,OAAS,KACT9P,aACSq5L,EAAaj3M,EAAM4d,SAEuB,OAA5C5d,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,YAAkB,IAC/C,KAAPu5F,YACan3G,EAAOw2M,EAAcx2M,EAAM4d,UAAU,KAC9CA,YACC,KAES,KAAPu5F,EAAoB,OACdn3G,EAAOw2M,EAAcx2M,EAAM4d,UAAU,GAGhDo2L,KAFCh0M,EAAMosD,MAAM+E,aAAanxD,EAAM4d,cAGd5d,GAAO,EAAOk0M,WAGzB/8F,EAAK,KAAO26F,GAAkB36F,KACjCzpF,QAAUqkL,GAAgB56F,KAC1Bv5F,sBApiBF,OADW7gB,EAuiBeo6G,GAtiBJ,EACtB,MAANp6G,EAA4B,EACtB,KAANA,EAA4B,EACzB,GAmiBoC,EAAG,OAC5B65G,IACA,EAELwgG,EAAY,EAAGA,OAGTE,KAFNt3M,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAEL,QACH,GAAKg5F,KAGpB52G,EAAO,oCAIhB0tB,QAAU6pL,GAAkBF,KAE5Bz5L,mBAGK5d,EAAO,6BAGLi3M,EAAaj3M,EAAM4d,cAEzBo2L,GAAO78F,OACDn3G,EAAOw2M,EAAcS,GAAY,MAC/Bj3M,EAAOw0M,GAAoBx0M,GAAO,EAAOk0M,MAC3C+C,EAAaj3M,EAAM4d,UAEzB5d,EAAM4d,WAAa5d,EAAM+qK,WAAamsC,GAAsBl3M,MAC1DA,EAAO,mEAGZ4d,aACO5d,EAAM4d,aAIZ5d,EAAO,8DA4rBRw3M,CAAuBx3M,EAAOs1M,MACnB,GAhHvB,SAAmBt1M,OACbizM,EAAWnG,EACX31F,KAIO,QAFNn3G,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,kBAEH,QAE1B5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YACxB5d,EAAM4d,SAEJ,IAAPu5F,IAAa88F,GAAa98F,KAAQy9F,GAAkBz9F,MACpDn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,iBAGlC5d,EAAM4d,WAAaq1L,MACVjzM,EAAO,+DAGZA,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,UAEtC8yL,GAAgBpvM,KAAKtB,EAAMu0M,UAAWzH,OAC9B9sM,EAAO,uBAAyB8sM,EAAQ,OAG/Cp/K,OAAS1tB,EAAMu0M,UAAUzH,MACX9sM,GAAO,OACpB,EAuFUy3M,CAAUz3M,GAr6B7B,SAAyBA,EAAOk0M,EAAYwD,OAEtC9B,EACAY,EACAS,EACAU,EACAxD,EACAyD,EACAC,EAGA1gG,EAFA2gG,EAAQ93M,EAAM64H,KACdu6E,EAAUpzM,EAAM0tB,UAKhBumL,KAFCj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,YAG9Bg3L,GAAkBz9F,IACX,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,MAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,GACO,KAAPA,SACK,MAGE,KAAPA,GAA6B,KAAPA,KAGpB88F,KAFQj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,KAGhD85L,GAAwB9C,GAAkBgB,WACrC,QAIL/8E,KAAO,WACPnrG,OAAS,KACAupL,EAAaj3M,EAAM4d,YACd,EAEN,IAAPu5F,GAAU,IACJ,KAAPA,MAGE88F,KAFQj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,KAGhD85L,GAAwB9C,GAAkBgB,iBAI9B,KAAPz+F,MAGL88F,GAFQj0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,kBAM1C5d,EAAM4d,WAAa5d,EAAM+qK,WAAamsC,GAAsBl3M,IAC7D03M,GAAwB9C,GAAkBz9F,YAG1C68F,GAAO78F,GAAK,MACbn3G,EAAMq5G,OACDr5G,EAAM+qK,YACL/qK,EAAM85I,cACA95I,GAAO,MAEvBA,EAAM85I,YAAco6D,EAAY,IACd,IACfl0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,qBAG5BA,SAAWq5L,IACX59F,KAAO86F,IACPppC,UAAY6sC,IACZ99D,WAAa+9D,SAKnBF,OACa33M,EAAOw2M,EAAcS,GAAY,MAC/Bj3M,EAAOA,EAAMq5G,KAAO86F,KACtB8C,EAAaj3M,EAAM4d,YACd,GAGjBm2L,GAAe58F,OACLn3G,EAAM4d,SAAW,KAG3B5d,EAAMosD,MAAM+E,aAAanxD,EAAM4d,oBAGvB5d,EAAOw2M,EAAcS,GAAY,KAE5Cj3M,EAAM0tB,WAIJmrG,KAAOi/E,IACPpqL,OAAS0lL,GACR,GAk0BU2E,CAAgB/3M,EAAOs1M,EAh1ClB,IAg1CkDR,QACnD,EAEK,OAAd90M,EAAMod,QACFA,IAAM,UAVD,EAEK,OAAdpd,EAAMod,KAAiC,OAAjBpd,EAAM8+C,WACnB9+C,EAAO,8CAWD,OAAjBA,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAU9+C,EAAM0tB,SAGhB,IAAjB6nL,MAGIJ,GAAyB6C,GAAkBh4M,EAAOiyI,KAIjD,OAAdjyI,EAAMod,KAA8B,MAAdpd,EAAMod,OACZ,MAAdpd,EAAMod,SAOa,OAAjBpd,EAAM0tB,QAAkC,WAAf1tB,EAAM64H,SACtB74H,EAAO,oEAAsEA,EAAM64H,KAAO,KAGlGu8E,EAAY,EAAGC,EAAer1M,EAAMoyM,cAAc33M,OAAQ26M,EAAYC,EAAcD,GAAa,QAC7Fp1M,EAAMoyM,cAAcgD,IAElB7xM,QAAQvD,EAAM0tB,QAAS,GACxBA,OAASznB,EAAKwmM,UAAUzsM,EAAM0tB,UAC9BtQ,IAAMnX,EAAKmX,IACI,OAAjBpd,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAU9+C,EAAM0tB,oBAKnCgjL,GAAgBpvM,KAAKtB,EAAMqyM,QAAQryM,EAAM64H,MAAQ,YAAa74H,EAAMod,QACtEpd,EAAMqyM,QAAQryM,EAAM64H,MAAQ,YAAY74H,EAAMod,KAEhC,OAAjBpd,EAAM0tB,QAAmBznB,EAAK4yH,OAAS74H,EAAM64H,SACpC74H,EAAO,gCAAkCA,EAAMod,IAAM,wBAA0BnX,EAAK4yH,KAAO,WAAa74H,EAAM64H,KAAO,KAG7H5yH,EAAK1C,QAAQvD,EAAM0tB,WAGhBA,OAASznB,EAAKwmM,UAAUzsM,EAAM0tB,QACf,OAAjB1tB,EAAM8+C,WACFy1J,UAAUv0M,EAAM8+C,QAAU9+C,EAAM0tB,YAJ7B1tB,EAAO,gCAAkCA,EAAMod,IAAM,sBAQvDpd,EAAO,iBAAmBA,EAAMod,IAAM,YAI9B,OAAnBpd,EAAM2O,YACFA,SAAS,QAAS3O,GAEL,OAAdA,EAAMod,KAAkC,OAAjBpd,EAAM8+C,QAAmB22J,EAGzD,YAAsBz1M,OAEhBizM,EACAgF,EACAC,EAEA/gG,EALAghG,EAAgBn4M,EAAM4d,SAItBw6L,GAAgB,QAGd13C,QAAU,OACVkyC,gBAAkB5yM,EAAMmyM,SACxBY,OAAS,KACTwB,UAAY,GAEuC,OAA5Cv0M,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,gBACpB5d,GAAO,QAEtBA,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,YAE9B5d,EAAM85I,WAAa,GAAY,KAAP3iC,KAL8B,QAS1C,IACXn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YACxB5d,EAAM4d,SAEJ,IAAPu5F,IAAa88F,GAAa98F,MAC1Bn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,gBAItB,MADA5d,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,WAGjCnjB,OAAS,MACduF,EAAO,gEAGN,IAAPm3G,GAAU,MACR48F,GAAe58F,MACfn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,aAG3B,KAAPu5F,EAAoB,MACZn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,gBAC3B,IAAPu5F,IAAa68F,GAAO78F,aAIzB68F,GAAO78F,eAECn3G,EAAM4d,SAEJ,IAAPu5F,IAAa88F,GAAa98F,MAC1Bn3G,EAAMosD,MAAM+E,aAAanxD,EAAM4d,YAGxBljB,KAAKsF,EAAMosD,MAAMxtD,MAAMq0M,EAAWjzM,EAAM4d,WAG7C,IAAPu5F,MAAwBn3G,GAExB0wM,GAAgBpvM,KAAKkxM,GAAmByF,MACxBA,GAAej4M,EAAOi4M,EAAeC,MAE1Cl4M,EAAO,+BAAiCi4M,EAAgB,QAIrDj4M,GAAO,MAEF,IAArBA,EAAM85I,YACyC,KAA/C95I,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,WACkB,KAA/C5d,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,IACO,KAA/C5d,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,SAAW,MACpCA,UAAY,KACE5d,GAAO,OAElBo4M,MACEp4M,EAAO,sCAGRA,EAAOA,EAAM85I,WAAa,EAn+ChB,GAm+CsC,GAAO,MAC/C95I,GAAO,MAEvBA,EAAM4yM,iBACNlB,GAA8BpzM,KAAK0B,EAAMosD,MAAMxtD,MAAMu5M,EAAen4M,EAAM4d,eAC/D5d,EAAO,sDAGhBsyM,UAAU53M,KAAKsF,EAAM0tB,QAEvB1tB,EAAM4d,WAAa5d,EAAM+qK,WAAamsC,GAAsBl3M,GAEf,KAA3CA,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,cACzBA,UAAY,KACE5d,GAAO,OAK3BA,EAAM4d,SAAY5d,EAAMvF,OAAS,MACxBuF,EAAO,yDAOtB,YAAuBosD,EAAOv+C,KAElBA,GAAW,GAEA,OAHbzG,OAAOglD,IAGL3xD,SAGmC,KAAvC2xD,EAAM+E,WAAW/E,EAAM3xD,OAAS,IACO,KAAvC2xD,EAAM+E,WAAW/E,EAAM3xD,OAAS,QACzB,MAIiB,QAAxB2xD,EAAM+E,WAAW,OACX/E,EAAMxtD,MAAM,SAIpBoB,EAAQ,IAAIq4M,GAAMjsJ,EAAOv+C,GAEzByqM,EAAUlsJ,EAAMrwD,QAAQ,eAExBu8M,MACI16L,SAAW06L,KACNt4M,EAAO,wCAIdosD,OAAS,KAEmC,KAA3CpsD,EAAMosD,MAAM+E,WAAWnxD,EAAM4d,aAC5Bk8H,YAAc,IACdl8H,UAAY,OAGb5d,EAAM4d,SAAY5d,EAAMvF,OAAS,MACzBuF,UAGRA,EAAMsyM,UAIf,YAAiBlmJ,EAAO3/C,EAAUoB,GACf,OAAbpB,GAAyC,iBAAbA,QAA4C,IAAZoB,MACpDpB,IACC,UAGT6lM,EAAYiG,GAAcnsJ,EAAOv+C,MAEb,mBAAbpB,SACF6lM,UAGAntM,EAAQ,EAAG1K,EAAS63M,EAAU73M,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IAC7DmtM,EAAUntM,IAKvB,YAAcinD,EAAOv+C,OACfykM,EAAYiG,GAAcnsJ,EAAOv+C,MAEZ,IAArBykM,EAAU73M,WAGkB,IAArB63M,EAAU73M,cACZ63M,EAAU,SAEb,IAAItG,GAAc,wEAmBGwM,WACAt4H,kBAhB7B,SAAqB9zB,EAAO3/C,EAAUoB,SACZ,iBAAbpB,GAAsC,OAAbA,QAAwC,IAAZoB,MACpDpB,IACC,MAGN+rM,GAAQpsJ,EAAO3/C,EAAUulD,GAAOgsD,OAAO,CAAE5vG,OAAQmjM,IAAuB1jM,iBAIjF,SAAkBu+C,EAAOv+C,UAChBqyE,GAAK9zB,EAAO4F,GAAOgsD,OAAO,CAAE5vG,OAAQmjM,IAAuB1jM,eChmDhEmkD,GAAsBxkD,GACtBw+L,GAAsBv+L,GACtB+jM,GAAsB7jM,GACtB4jM,GAAsB98L,GAEtBk8L,GAAkB5oM,OAAOpI,UAAUqN,SACnC0jM,GAAkB3oM,OAAOpI,UAAUsY,eA2BnCwgM,GAAmB,CAEvB1wJ,EAA2B,MAC3B2wJ,EAA2B,MAC3BxsH,EAA2B,MAC3BC,EAA2B,MAC3BwsH,GAA2B,MAC3BC,GAA2B,MAC3BC,GAA2B,MAC3BzsH,GAA2B,MAC3BE,GAA2B,MAC3BG,GAA2B,MAC3BqsH,GAA2B,OAC3BC,IAA2B,MAC3BC,IAA2B,MAC3BC,KAA2B,MAC3BC,KAA2B,OAEvBC,GAA6B,CAC/B,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,KAC3C,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,OA8B5C,YAAmBtmG,OACbv7F,EAAQw7L,EAAQr4M,OAEXo4G,EAAU7lG,SAAS,IAAI1F,cAE5BurG,GAAa,MACN,MACA,UACAA,GAAa,QACb,MACA,YACAA,GAAa,kBAIhB,IAAIm5F,GAAc,mEAHf,MACA,QAKJ,KAAO8G,EAAS9gJ,GAAOm3I,OAAO,IAAK1uM,EAAS6c,EAAO7c,QAAU6c,EAGtE,YAAezJ,QACRO,OAAgBP,UAAqB2jM,QACrC72F,OAAgBp2G,KAAKD,IAAI,EAAIuJ,UAAqB,QAClDurM,cAAgBvrM,kBAA4B,OAC5CwrM,YAAgBxrM,gBAA0B,OAC1CyrM,UAAiBtnJ,GAAO45I,UAAU/9L,gBAA6BA,iBAC/D0rM,SAtDP,SAAyB3rM,EAAQ8rF,OAC3BhsE,EAAQla,EAAMrO,EAAO1K,EAAQ2iB,EAAK7e,EAAO0H,KAEjC,OAARyzF,QAAqB,SAEhB,GAGJv0F,EAAQ,EAAG1K,KAFTsN,OAAOyL,KAAKkmF,IAEWj/F,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IACvDqO,EAAKrO,KACHiC,OAAOsyF,EAAIt8E,IAEK,OAApBA,EAAIxe,MAAM,EAAG,OACT,qBAAuBwe,EAAIxe,MAAM,OAElCgP,EAAOggM,yBAA4BxwL,KAE9BszL,GAAgBpvM,KAAK2E,EAAK4mM,aAActuM,OAC1C0H,EAAK4mM,aAAatuM,MAGrB6e,GAAO7e,SAGTmvB,EA8Bc8rL,CAAgB59M,KAAKwS,OAAQP,UAAqB,WAClE4rM,SAAgB5rM,aAAuB,OACvC6rM,UAAgB7rM,aAAwB,QACxC8rM,OAAgB9rM,WAAqB,OACrC+rM,aAAgB/rM,iBAA2B,OAC3CgsM,aAAgBhsM,iBAA2B,OAE3CukM,cAAgBx2M,KAAKwS,OAAOs/L,sBAC5BoM,cAAgBl+M,KAAKwS,OAAOu/L,sBAE5BvwL,IAAM,UACNsQ,OAAS,QAETqsL,WAAa,QACbC,eAAiB,KAIxB,YAAsB1iM,EAAQ25G,WAKxB5X,EAJA4gG,EAAMjoJ,GAAOm3I,OAAO,IAAKl4E,GACzBrzG,EAAW,EACXi0C,KACAnkC,EAAS,GAETjzB,EAAS6c,EAAO7c,OAEbmjB,EAAWnjB,WACT6c,EAAOvb,QAAQ,KAAM6hB,OAEnBtG,EAAO1Y,MAAMgf,KACTnjB,MAEJ6c,EAAO1Y,MAAMgf,EAAUi0C,EAAO,KAC1BA,EAAO,GAGhBwnD,EAAK5+G,QAAmB,OAAT4+G,OAAyB4gG,MAElC5gG,SAGL3rF,EAGT,YAA0B1tB,EAAO0a,SACxB,KAAOs3C,GAAOm3I,OAAO,IAAKnpM,EAAM26G,OAASjgG,GAkBlD,YAAsB3d,UAlKU,KAmKvBA,GAtKuB,IAsKHA,EAO7B,YAAqBA,UACV,IAAWA,GAAKA,GAAK,KACrB,KAAWA,GAAKA,GAAK,OAAmB,OAANA,GAAsB,OAANA,GAClD,OAAWA,GAAKA,GAAK,OAAmB,QAANA,GAClC,OAAWA,GAAKA,GAAK,QAmBhC,YAAqBA,EAAGquD,UAGf8uJ,GAAYn9M,IAAY,QAANA,GA5LK,KA8LzBA,GAvLyB,KAwLzBA,GAvLyB,KAwLzBA,GAtLyB,MAuLzBA,GArLyB,MAsLzBA,GAhMyB,KAmMzBA,IA1MyB,QA2MDquD,GAvB/B,SAAkBruD,UACTm9M,GAAYn9M,KAAOo9M,GAAap9M,IAE5B,QAANA,GA3LyB,KA6LzBA,GA9LyB,KA+LzBA,EAiBgCq9M,CAAShvJ,IAoChD,YAA6B9zC,SACN,QACChZ,KAAKgZ,GAgB7B,YAA2BA,EAAQ+iM,EAAgBC,EAAgBZ,EAAWa,OACxE9gN,EACAssL,EAAMy0B,EApDcz9M,EAqDpB09M,GAAe,EACfC,GAAkB,EAClBC,OAAmBjB,EACnBkB,KACAC,EAtDGX,GAHiBn9M,EAyDKua,EAAO65C,WAAW,KAtDhB,QAANp0D,IACnBo9M,GAAap9M,IA7MW,KAgNzBA,GA5MyB,KA6MzBA,GAhNyB,KAiNzBA,GAnNyB,KAoNzBA,GA7MyB,KA8MzBA,GA7MyB,KA8MzBA,GA5MyB,MA6MzBA,GA3MyB,MA4MzBA,GA7NyB,KA+NzBA,GA7NyB,KA8NzBA,GA5NyB,KA6NzBA,GAnOyB,KAoOzBA,GAlNyB,MAmNzBA,GA3NyB,KA4NzBA,GA3NyB,KA4NzBA,GAlOyB,KAmOzBA,GAvOyB,KAwOzBA,GAtOyB,KAwOzBA,GA9NyB,KA+NzBA,GA5NyB,KA6NzBA,IA8BOo9M,GAAa7iM,EAAO65C,WAAW75C,EAAO7c,OAAS,OAEvD4/M,MAGG5gN,EAAI,EAAGA,EAAI6d,EAAO7c,OAAQhB,IAAK,KAE7BygN,KADE5iM,EAAO65C,WAAW13D,WAvBX,IA2BFA,EAAI,EAAI6d,EAAO65C,WAAW13D,EAAI,GAAK,OACvCohN,GAASC,GAAY/0B,EAAMy0B,OAEhC,KAEA/gN,EAAI,EAAGA,EAAI6d,EAAO7c,OAAQhB,IAAK,IA7RR,QA8RnB6d,EAAO65C,WAAW13D,OAER,EAEXkhN,MACgBD,GAEfjhN,EAAImhN,EAAoB,EAAIlB,GACM,MAAlCpiM,EAAOsjM,EAAoB,KACVnhN,YAEZygN,GAAYn0B,UA5CV,IA+CFtsL,EAAI,EAAI6d,EAAO65C,WAAW13D,EAAI,GAAK,OACvCohN,GAASC,GAAY/0B,EAAMy0B,KAGnBE,GAAoBC,KAC/BC,EAAoB,EAAIlB,GACM,MAAlCpiM,EAAOsjM,EAAoB,UAK3BH,GAAiBC,EAOlBJ,EAAiB,GAAKS,GAAoBzjM,GAjE5B,EAsEXojM,EAvEW,EADA,EA+DTG,IAAUN,EAAkBjjM,GAjEnB,EACA,EAkFpB,YAAqBtX,EAAOsX,EAAQoD,EAAOsgM,KACnCC,KAAQ,cACU,IAAlB3jM,EAAO7c,aACF,SAEJuF,EAAM45M,mBACPT,GAA2Bp9M,QAAQub,SAC9B,IAAMA,EAAS,QAGpBg1G,EAAStsH,EAAM26G,OAASp2G,KAAKD,IAAI,EAAGoW,GAQpCg/L,OAAY15M,EAAM05M,aACbn1M,KAAKD,IAAIC,KAAKkN,IAAIzR,EAAM05M,UAAW,IAAK15M,EAAM05M,UAAYptF,GAG/D+tF,EAAiBW,GAEfh7M,EAAMs5M,cAAkB5+L,GAAS1a,EAAMs5M,iBAKrC4B,GAAkB5jM,EAAQ+iM,EAAgBr6M,EAAM26G,OAAQ++F,YAJzCyB,UAhN3B,SAA+Bn7M,EAAO2M,OAChCxH,EAAO1K,MAEN0K,EAAQ,EAAG1K,EAASuF,EAAMoyM,cAAc33M,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,KACrEnF,EAAMoyM,cAAcjtM,GAElB5B,QAAQoJ,UACR,SAIJ,EAsMIyuM,CAAsBp7M,EAAOm7M,YA7GtB,SAkHL7jM,OAjHK,QAmHL,IAAMA,EAAO5Y,QAAQ,KAAM,MAAQ,SAlH9B,QAoHL,IAAM28M,GAAY/jM,EAAQtX,EAAM26G,QACnC2gG,GAAkBC,GAAajkM,EAAQg1G,SApH/B,QAsHL,IAAM+uF,GAAY/jM,EAAQtX,EAAM26G,QACnC2gG,GAAkBC,GA4B9B,SAAoBjkM,EAAQ6xE,OAgBtBqyH,EAGAx3M,EAdAy3M,EAAS,iBAGT/tL,GACEguL,EAASpkM,EAAOvb,QAAQ,aACnB2/M,EAAgBA,EAASpkM,EAAO7c,SAClCsnF,UAAY25H,EACZpjF,GAAShhH,EAAO1Y,MAAM,EAAG88M,GAASvyH,IAGvCwyH,EAAiC,OAAdrkM,EAAO,IAA6B,MAAdA,EAAO,GAPtC,IACRokM,OAWE13M,EAAQy3M,EAAO1yM,KAAKuO,IAAU,KAChC4vG,EAASljH,EAAM,GAAIq1G,EAAOr1G,EAAM,KACR,MAAZq1G,EAAK,MACX6N,GACJy0F,GAAqBH,GAAyB,KAATniG,EAC9B,GAAP,MACFif,GAASjf,EAAMlwB,KACAqyH,SAGd9tL,EA1DkCkuL,CAAWtkM,EAAQoiM,GAAYptF,SAtHtD,QAwHL,IAuGf,SAAsBh1G,WAEhByuK,EAAM81B,EACNC,EAFApuL,EAAS,GAIJj0B,EAAI,EAAGA,EAAI6d,EAAO7c,OAAQhB,OAC1B6d,EAAO65C,WAAW13D,KAEb,OAAUssL,GAAQ,UACjBzuK,EAAO65C,WAAW13D,EAAI,KACjB,OAAUoiN,GAAY,UAE1BE,GAA4B,QAAV,OAAkBF,EAAW,MAAS,mBAK1DpD,GAAiB1yB,KACLm0B,GAAYn0B,GAChCzuK,EAAO7d,GACPqiN,GAAaC,GAAUh2B,UAGtBr4J,EA9HY7gB,CAAayK,GAAqB,kBAEzC,IAAI00L,GAAc,2CA1ChB,GAgDhB,YAAqB10L,EAAQgjM,OACvB0B,EAAkBjB,GAAoBzjM,GAAUlQ,OAAOkzM,GAAkB,GAGzE2B,EAA8C,OAA9B3kM,EAAOA,EAAO7c,OAAS,UAIpCuhN,GAHIC,IAAuC,SAAvB3kM,EAAO7c,OAAS,IAA0B,OAAX6c,GACvC,IAAO2kM,EAAO,GAAK,KAEL,KAInC,YAA2B3kM,SACY,OAA9BA,EAAOA,EAAO7c,OAAS,GAAc6c,EAAO1Y,MAAM,MAAS0Y,EA0CpE,YAAkB+hG,EAAMlwB,MACT,KAATkwB,GAA2B,MAAZA,EAAK,UAAmBA,UAIvCr1G,EAEW8G,EAHXoxM,EAAU,SAGV3xM,EAAQ,EAAQwsD,EAAO,EAAGlF,EAAO,EACjCnkC,EAAS,GAML1pB,EAAQk4M,EAAQnzM,KAAKswG,OACpBr1G,EAAMkB,OAEFqF,EAAQ4+E,MACVpyB,EAAOxsD,EAASwsD,EAAOlF,KACpB,KAAOwnD,EAAKz6G,MAAM2L,EAAOO,KAE3BA,EAAM,KAET+mD,YAKC,KAENwnD,EAAK5+G,OAAS8P,EAAQ4+E,GAASpyB,EAAOxsD,KAC9B8uG,EAAKz6G,MAAM2L,EAAOwsD,GAAQ,KAAOsiD,EAAKz6G,MAAMm4D,EAAO,MAEnDsiD,EAAKz6G,MAAM2L,GAGhBmjB,EAAO9uB,MAAM,GA+LtB,YAAoBoB,EAAOoW,EAAQo3L,OAC7B4F,EAAS+I,EAAUh3M,EAAO1K,EAAQwL,EAAM1H,MAIvC4G,EAAQ,EAAG1K,KAFL+yM,EAAWxtM,EAAM85M,cAAgB95M,EAAMoyM,eAEhB33M,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,SAC1Dg3M,EAASh3M,IAENunM,YAAezmM,EAAKoV,cACxBpV,EAAKymM,YAAkC,iBAAXt2L,GAAyBA,aAAkBnQ,EAAKymM,eAC5EzmM,EAAKoV,WAAcpV,EAAKoV,UAAUjF,IAAU,MAE1CgH,IAAMowL,EAAWvnM,EAAKmX,IAAM,IAE9BnX,EAAK0mM,UAAW,MACV3sM,EAAMu5M,SAAStzM,EAAKmX,MAAQnX,EAAK2mM,aAEF,sBAAnC+D,GAAUrvM,KAAK2E,EAAK0mM,aACZ1mM,EAAK0mM,UAAUv2L,EAAQ7X,YACxBmyM,GAAgBpvM,KAAK2E,EAAK0mM,UAAWpuM,SAGxC,IAAIytM,GAAc,KAAO/lM,EAAKmX,IAAM,+BAAiC7e,EAAQ,aAFzE0H,EAAK0mM,UAAUpuM,GAAO6X,EAAQ7X,KAKpC08M,KAAO7H,SAGR,SAIJ,EAMT,YAAmBpzM,EAAO0a,EAAOtE,EAAQ07J,EAAOm6B,EAAS+O,KACjD59L,IAAM,OACN69L,KAAO7kM,EAERgmM,GAAWp8M,EAAOoW,GAAQ,OAClBpW,EAAOoW,GAAQ,OAGxBnQ,EAAO0qM,GAAUrvM,KAAKtB,EAAMi7M,MAE5BnpC,MACO9xK,EAAMs5M,UAAY,GAAKt5M,EAAMs5M,UAAY5+L,OAIhD2hM,EACAC,EAFAC,EAAyB,oBAATt2M,GAAuC,mBAATA,KAI9Cs2M,cACev8M,EAAM+5M,WAAWh+M,QAAQqa,MAIzB,OAAdpW,EAAMod,KAA8B,MAAdpd,EAAMod,KAAgBk/L,GAA+B,IAAjBt8M,EAAM26G,QAAgBjgG,EAAQ,QACjF,GAGR4hM,GAAat8M,EAAMg6M,eAAeqC,KAC9BpB,KAAO,QAAUoB,MAClB,IACDE,GAAiBD,IAAct8M,EAAMg6M,eAAeqC,OAChDrC,eAAeqC,IAAkB,GAE5B,oBAATp2M,EACE6rK,GAA6C,IAAnC/pK,OAAOyL,KAAKxT,EAAMi7M,MAAMxgN,SAlJ5C,SAA2BuF,EAAO0a,EAAOtE,EAAQ61L,OAI3C9mM,EACA1K,EACA+hN,EACAC,EACAC,EACAC,EARAvJ,EAAgB,GAChBgB,EAAgBp0M,EAAMod,IACtBw/L,EAAgB70M,OAAOyL,KAAK4C,OAST,IAAnBpW,EAAMy5M,WAEMp9M,eACqB,mBAAnB2D,EAAMy5M,WAERp9M,KAAK2D,EAAMy5M,kBAChBz5M,EAAMy5M,eAET,IAAIzN,GAAc,gDAGrB7mM,EAAQ,EAAG1K,EAASmiN,EAAcniN,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IACzD,GAER8mM,GAAqB,IAAV9mM,OACA03M,GAAiB78M,EAAO0a,MAI1BtE,IADFwmM,EAAcz3M,IAGrB23M,GAAU98M,EAAO0a,EAAQ,EAAG8hM,GAAW,GAAM,GAAM,QAI1B,OAAdx8M,EAAMod,KAA8B,MAAdpd,EAAMod,KAC5Bpd,EAAMi7M,MAAQj7M,EAAMi7M,KAAKxgN,OAAS,QAG5CuF,EAAMi7M,MAtnBgB,KAsnBWj7M,EAAMi7M,KAAK9pJ,WAAW,MAC3C,OAEA,SAIJnxD,EAAMi7M,KAEhByB,OACYG,GAAiB78M,EAAO0a,IAGnCoiM,GAAU98M,EAAO0a,EAAQ,EAAG+hM,GAAa,EAAMC,KAIhD18M,EAAMi7M,MAvoBkB,KAuoBSj7M,EAAMi7M,KAAK9pJ,WAAW,MAC3C,OAEA,WAGFnxD,EAAMi7M,SAMhB79L,IAAMg3L,IACN6G,KAAO7H,GAAW,MA4EApzM,EAAO0a,EAAO1a,EAAMi7M,KAAMhP,GACxCqQ,MACIrB,KAAO,QAAUoB,EAAiBr8M,EAAMi7M,SA/LxD,SAA0Bj7M,EAAO0a,EAAOtE,OAIlCjR,EACA1K,EACA+hN,EACAC,EACAE,EAPAvJ,EAAgB,GAChBgB,EAAgBp0M,EAAMod,IACtBw/L,EAAgB70M,OAAOyL,KAAK4C,OAO3BjR,EAAQ,EAAG1K,EAASmiN,EAAcniN,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IAEzD,GACC,IAAVA,OAA2B,MAE3BnF,EAAM65M,kBAA4B,OAGxBzjM,IADFwmM,EAAcz3M,IAGrB23M,GAAU98M,EAAO0a,EAAO8hM,GAAW,GAAO,KAI3Cx8M,EAAMi7M,KAAKxgN,OAAS,UAAoB,SAE9BuF,EAAMi7M,QAAcpB,aAAe,IAAM,IAAM,OAAaA,aAAe,GAAK,KAEzFiD,GAAU98M,EAAO0a,EAAO+hM,GAAa,GAAO,WAInCz8M,EAAMi7M,SAMhB79L,IAAMg3L,IACN6G,KAAO,IAAM7H,EAAU,KA2JNpzM,EAAO0a,EAAO1a,EAAMi7M,MACjCqB,MACIrB,KAAO,QAAUoB,EAAiB,IAAMr8M,EAAMi7M,eAGtC,mBAATh1M,EAA2B,KAChC82M,EAAc/8M,EAAMo5M,eAAkB1+L,EAAQ,EAAMA,EAAQ,EAAIA,EAChEo3J,GAAgC,IAAtB9xK,EAAMi7M,KAAKxgN,SApO/B,SAA4BuF,EAAO0a,EAAOtE,EAAQ61L,OAG5C9mM,EACA1K,EAHA24M,EAAU,GACVgB,EAAUp0M,EAAMod,QAIfjY,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,EAE3D23M,GAAU98M,EAAO0a,EAAQ,EAAGtE,EAAOjR,IAAQ,GAAM,KAC9C8mM,GAAqB,IAAV9mM,OACH03M,GAAiB78M,EAAO0a,IAGjC1a,EAAMi7M,MArhBgB,KAqhBWj7M,EAAMi7M,KAAK9pJ,WAAW,MAC9C,OAEA,QAGFnxD,EAAMi7M,QAIf79L,IAAMg3L,IACN6G,KAAO7H,GAAW,MA6MCpzM,EAAO+8M,EAAY/8M,EAAMi7M,KAAMhP,GAC9CqQ,MACIrB,KAAO,QAAUoB,EAAiBr8M,EAAMi7M,SAzPxD,SAA2Bj7M,EAAO0a,EAAOtE,OAGnCjR,EACA1K,EAHA24M,EAAU,GACVgB,EAAUp0M,EAAMod,QAIfjY,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,EAE3D23M,GAAU98M,EAAO0a,EAAOtE,EAAOjR,IAAQ,GAAO,KAClC,IAAVA,OAAwB,KAAQnF,EAAM65M,aAAqB,GAAN,SAC9C75M,EAAMi7M,QAIf79L,IAAMg3L,IACN6G,KAAO,IAAM7H,EAAU,KA6OLpzM,EAAO+8M,EAAY/8M,EAAMi7M,MACvCqB,MACIrB,KAAO,QAAUoB,EAAiB,IAAMr8M,EAAMi7M,eAGtC,oBAATh1M,EAIJ,IACDjG,EAAMq5M,mBAAoB,QACxB,IAAIrN,GAAc,0CAA4C/lM,GALlD,MAAdjG,EAAMod,QACIpd,EAAOA,EAAMi7M,KAAMvgM,EAAOsgM,GAOxB,OAAdh7M,EAAMod,KAA8B,MAAdpd,EAAMod,QACxB69L,KAAO,KAAOj7M,EAAMod,IAAM,KAAOpd,EAAMi7M,aAI1C,EAGT,YAAgC7kM,EAAQpW,OAGlCmF,EACA1K,EAHAuiN,EAAU,GACVC,EAAoB,UAIZ7mM,EAAQ4mM,EAASC,GAExB93M,EAAQ,EAAG1K,EAASwiN,EAAkBxiN,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,IACpE40M,WAAWr/M,KAAKsiN,EAAQC,EAAkB93M,OAE5C60M,eAAiB,IAAIr8M,MAAMlD,GAGnC,YAAqB2b,EAAQ4mM,EAASC,OAChCL,EACAz3M,EACA1K,KAEW,OAAX2b,GAAqC,iBAAXA,aACpB4mM,EAAQjhN,QAAQqa,SAElB6mM,EAAkBlhN,QAAQoJ,MACVzK,KAAKyK,aAGjBzK,KAAK0b,GAETzY,MAAMC,QAAQwY,OACXjR,EAAQ,EAAG1K,EAAS2b,EAAO3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,KACnDiR,EAAOjR,GAAQ63M,EAASC,YAKjC93M,EAAQ,EAAG1K,KAFAsN,OAAOyL,KAAK4C,IAEW3b,OAAQ0K,EAAQ1K,EAAQ0K,GAAS,KAC1DiR,EAAOwmM,EAAcz3M,IAAS63M,EAASC,GAO7D,YAAc7wJ,EAAOv+C,OAGf7N,EAAQ,IAAIq4M,KAFNxqM,GAAW,WAIhB7N,EAAM25M,WAA+BvtJ,EAAOpsD,GAE7C88M,GAAU98M,EAAO,EAAGosD,GAAO,GAAM,GAAcpsD,EAAMi7M,KAAO,KAEzD,WAOiBA,eAJ1B,SAAkB7uJ,EAAOv+C,UAChBotM,GAAK7uJ,EAAO4F,GAAOgsD,OAAO,CAAE5vG,OAAQmjM,IAAuB1jM,KC10BpE,IAAIqvM,GAAS1vM,GACT2vM,GAAS1vM,GAGb,YAAoB/L,UACX,iBACC,IAAIwyD,MAAM,YAAcxyD,EAAO,+CAKJiM,aACA8G,sBACAC,kBACAwD,kBACAC,0BACAC,0BACAC,WACA6kM,GAAOh9H,gBACPg9H,GAAO1E,oBACP0E,GAAOE,wBACPF,GAAOG,oBACPF,GAAOlC,iBACPkC,GAAOG,0BACPhlM,qBAGL5D,kBACA0D,qBACAC,WAGAklM,GAAW,iBACXA,GAAW,oBACXA,GAAW,6BACXA,GAAW,kBCnC3C,IAGAC,GAHWhwM,GCHggB,YAAWzT,EAAEK,WAAW0C,KAAK/C,KAAK,aAAA+C,UAAuB1C,UAAS,UAAWE,KAAKF,KAAK,aAAAE,GAAgBP,EAAEO,KAAKF,EAAEE,UAAS,SAAS,EAAG,YAAWP,QAAQgB,MAAMhB,EAAE,YAAWA,EAAEK,cAAckC,OAAOkkE,EAAE5kE,KAAKb,MAAME,IAAIgtE,EAAEzH,GAAGlkE,EAAErB,WAAWgtE,GAAGzH,MAAMl/D,KAAKk/D,EAAE,MAAMA,EAAEl+D,QAAQ,MAAMlI,GAAGA,EAAEwB,KAAKb,MAAMuB,KAAK2rE,EAAE4mD,GAAEjzH,KAAKb,MAAMuB,cAAc6N,UAAUvO,KAAK0E,sBAAsBxD,EAAEkF,EAAEjI,EAAEoQ,UAAU7P,EAAEmjN,YAAY,WAAWA,aAAa1jN,EAAE2H,MAAM,IAAIpH,EAAEqF,UAAU+9M,kBAAiB,EAAGpjN,EAAEqjN,KAAI,EAAGrjN,MAAKqF,UAAU,IAAI+C,GAAGk7M,sBAAqB,EAAGC,GAAEl+M,UAAUW,sBAAsB,SAASvG,EAAEK,UAAUy0H,GAAEjzH,KAAKb,MAAMhB,IAAI80H,GAAEjzH,KAAKoE,MAAM5F,IAAI,IAAI6P,GAAE/M,EAAE9B,IAAI8B,EAAE9B,IAAI,SAASrB,KAAKe,MAAMf,EAAEe,KAAK6iN,KAAK5jN,EAAEkB,QAAQF,MAAME,IAAIlB,EAAEkB,IAAIlB,EAAEkB,IAAI,MAAMgP,IAAGA,GAAElQ,IAAwV,IAA2M+H,GAAE5E,EAAE7B,IAAI6B,EAAE7B,IAAI,SAAStB,EAAEK,EAAE0C,MAAM/C,EAAEsJ,aAAa/I,EAAEL,EAAEG,EAAEH,EAAEA,EAAEkB,UAAUlB,EAAEsB,MAAMjB,EAAEiB,WAAW,MAAAnB,EAAQiB,QAAQA,IAAIyB,EAAEzB,IAAIjB,EAAEc,IAAI4B,EAAE5B,KAAKZ,EAAEiB,IAAIxB,EAAEK,MAAKL,EAAEK,EAAE0C,IAAI,IAAIqrE,GAAEjrE,EAAEqF,QAAQ,mBAAkBu7M,IAAI,EAAEliN,KAAKlC,EAAE,KAAKkC,KAAKR,IAAI,KAAK,YAAWrB,OAAOK,EAAEL,EAAEoB,GAAGI,WAAWnB,GAAGA,EAAEiB,KAAKjB,EAAEiB,IAAItB,GAAuL,mBAAkBP,EAAE,KAAKoC,KAAKjC,EAAE,KAAKuD,EAAEqF,QAAQ,SAASxI,OAAOK,EAAEL,EAAEwB,OAAOnB,EAAE2jN,KAAK3jN,EAAE2jN,MAAM3jN,IAAG,IAAKL,EAAEyB,QAAQV,KAAK,MAAMqtE,IAAGA,GAAEpuE,QAAO4F,UAAU,IAAI+C,GAAGnH,IAAI,SAASxB,EAAEK,OAAO0C,EAAE1C,EAAEmB,IAAIjB,EAAEsB,KAAK,MAAMtB,EAAEZ,MAAMA,EAAE,IAAIY,EAAEZ,EAAEgB,KAAKoC,OAAO7C,EAAE4nE,GAAEvnE,EAAEoB,KAAKrB,GAAE,EAAGZ,EAAE,kBAAiB,EAAGqD,EAAEihN,IAAI,KAAK9jN,EAAEA,EAAED,GAAGA,QAAQ+jN,IAAItkN,MAAMO,EAAE,iBAAiBM,EAAEwjN,IAAI,IAAIxjN,EAAE0F,MAAM3E,IAAI,KAAKiB,EAAEhC,EAAE0F,MAAM3E,MAAMK,IAAIR,IAAI,GAAG,WAAWulE,EAAED,EAAEyH,UAAUxH,MAAM/kE,IAAI,KAAK+kE,EAAEvlE,IAAIulE,EAAEvlE,KAAKulE,EAAEvlE,IAAI6J,KAAI,SAASyzE,UAAU31E,EAAE21E,EAAEhY,EAAEyH,MAAKxH,EAAEllE,KAAKklE,EAAEllE,IAAIiB,MAAMgkE,MAAMnlE,KAAK4sE,EAAE7pE,aAAaqiE,EAAEplE,IAAIolE,EAAEnlE,KAAKmlE,EAAEllE,IAAIF,KAAI,EAAGolE,EAAEllE,IAAIiB,IAAIyrE,IAAIxH,EAAlL,CAAqLnkE,EAAEA,EAAEf,IAAIiB,IAAIF,EAAEf,IAAIyiN,SAAS7zM,MAAM7P,EAAE2I,SAAS,CAAC5H,IAAIf,EAAEc,IAAI,OAAO+O,EAAE7P,EAAEZ,EAAEgR,SAASvH,gBAAgB3I,GAAE,IAAAJ,EAAOoB,MAAMsiN,OAAOtjN,GAAGF,EAAE2I,SAAS,CAAC5H,IAAIf,EAAEc,IAAId,EAAEoB,IAAIR,IAAI,KAAKnB,EAAEsJ,KAAK5J,EAAEA,IAAIwE,GAAE0B,UAAU8C,qBAAqB,gBAAgB/I,EAAE,IAAIuE,GAAE0B,UAAUC,OAAO,SAAS7F,EAAEK,MAAMwB,KAAKR,IAAI,IAAIQ,KAAKF,IAAIR,IAAI,KAAK4B,EAAEkE,SAASG,cAAc,OAAO7G,EAAEsB,KAAKF,IAAIR,IAAI,GAAGK,SAASG,IAAIR,IAAI,GAAG,WAAWiP,EAAEq2D,EAAEyH,UAAU99D,MAAM5O,KAAK4O,EAAE5O,IAAIyO,QAAQzO,IAAIyO,IAAI7O,GAAGoF,SAAQ,SAASsC,GAAG,mBAAmBA,EAAEtH,KAAKsH,EAAEtH,SAAQ4O,EAAE5O,IAAIyO,IAAI,MAAM,SAAztF,SAAWjQ,EAAEK,WAAW0C,KAAK1C,IAAI0C,GAAG1C,EAAE0C,UAAU/C,EAAkrF8H,CAAE,GAAGsI,IAAI5O,QAAQA,IAAIiB,MAAMyrE,MAAM1sE,IAAIiB,IAAIgkE,GAAGr2D,EAAE5O,IAAI,MAAM4O,EAAEjP,IAAIiP,EAAEjP,KAAKiP,EAAEjP,IAAI6J,KAAI,SAAS07D,UAAUnkE,EAAEmkE,EAAED,EAAEyH,OAAM99D,EAA5P,CAA+PvO,KAAKR,IAAI0B,EAAExC,EAAE0jN,IAAI1jN,EAAEkC,UAAUpB,IAAI,SAASnB,EAAEG,EAAEiB,KAAK2G,EAAEnH,EAAE,KAAKd,EAAEyY,iBAAiBvY,MAAMuB,IAAI,MAAM,CAACwG,EAAEnH,EAAE,KAAKT,EAAEiB,IAAI,KAAKtB,EAAEY,UAAUV,IAAI,IAAI6F,GAAE,SAAS/F,EAAEK,EAAE0C,QAAQA,EAAE,KAAKA,EAAE,IAAI/C,EAAEJ,EAAEskN,OAAO7jN,GAAGL,EAAEgB,MAAMmjN,cAAc,MAAMnkN,EAAEgB,MAAMmjN,YAAY,KAAKnkN,EAAEJ,EAAE+6B,UAAU53B,EAAE/C,EAAEP,EAAEsD,GAAG,MAAMA,EAAErC,OAAO,KAAKiQ,WAAW5N,EAAE,GAAGA,EAAE,WAAWtD,EAAEsD,EAAEA,EAAE,SAA8nB6C,UAAU,IAAI+C,GAAGrH,IAAI,SAAStB,OAAOK,EAAEwB,KAAKkB,EAAE+kE,GAAEznE,EAAEsB,KAAKpB,EAAEF,EAAET,EAAEmS,IAAI/R,UAAUO,EAAE,KAAK,SAASL,OAAOI,EAAE,aAAaU,MAAMmjN,eAAexjN,KAAKT,GAAG6F,GAAE1F,EAAEL,EAAEO,IAAIL,OAAO6C,EAAEzC,GAAGA,MAAMwmE,GAAElhE,UAAUC,OAAO,SAAS7F,QAAQP,EAAE,KAAKoC,KAAKjC,EAAE,IAAI0f,QAAQjf,EAAEyF,EAAE9F,EAAEY,YAAYujN,aAAa,MAAAnkN,EAAQmkN,YAAY,IAAI9jN,EAAE8+F,kBAAkBp8F,EAAE1C,EAAEK,OAAOqC,UAAUnD,EAAEoS,IAAI3R,EAAE0C,GAAGlB,KAAKpC,EAAE,CAAC,EAAE,EAAEoC,KAAKpC,WAAWO,EAAEY,UAAUkmE,GAAElhE,UAAUc,mBAAmBogE,GAAElhE,UAAUS,kBAAkB,eAAerG,EAAE6B,UAAUjC,EAAE4G,SAAQ,SAASnG,EAAE0C,MAAK/C,EAAE+C,EAAE1C,OAAM,IAAI+oE,GAAE,oBAAoB32D,QAAQA,OAAOo4L,KAAKp4L,OAAOo4L,IAAI,kBAAkB,MAAMnmM,GAAE,mOAAmOqjE,GAAE,SAAS/nE,UAAU,oBAAoByS,QAAQ,iBAAiBA,SAAS,eAAe,eAAelO,KAAKvE,IAAkL2I,EAAE/C,UAAU+9M,iBAAiB,GAAG,CAAC,qBAAqB,4BAA4B,uBAAuBn9M,SAAQ,SAASxG,UAAUsQ,eAAe3H,EAAE/C,UAAU5F,EAAE,CAACsrF,cAAa,EAAGv5E,IAAI,kBAAkBlQ,KAAK,UAAU7B,IAAIgS,IAAI,SAAS3R,UAAUiQ,eAAezO,KAAK7B,EAAE,CAACsrF,cAAa,EAAG2F,UAAS,EAAGhtF,MAAM5D,UAAS,IAAI2E,GAAE7B,EAAEkC,MAAM,eAAc,qBAAoBxD,KAAKs5F,aAAa,qBAAoBt5F,KAAKq8F,iBAAiB/6F,EAAEkC,MAAM,SAASrF,UAAUgF,OAAMA,GAAEhF,IAAIA,EAAEokN,QAAQj7I,GAAEnpE,EAAEqkN,qBAAqBl5I,GAAEnrE,EAAEskN,mBAAmBr/M,GAAEjF,EAAEukN,YAAYvkN,GAAM,IAAGorE,GAAE,CAACkgB,cAAa,EAAGv5E,IAAI,kBAAkBlQ,KAAK2iN,QAAQjrI,GAAEp2E,EAAEvB,MAAMuB,EAAEvB,MAAM,SAAS5B,OAAOK,EAAEL,EAAEe,KAAKgC,EAAE/C,EAAEgB,MAAMT,EAAEwC,KAAK,iBAAiB1C,EAAE,SAASH,KAAKK,EAAE,GAAGwC,EAAE,KAAKzC,EAAEyC,EAAE7C,GAAG,UAAUA,GAAG,iBAAiB6C,GAAG,MAAAzC,IAAU,iBAAiBJ,GAAG,UAAU6C,GAAG,MAAAA,EAAQkB,MAAM/D,EAAE,QAAQ,aAAAA,IAAgB,IAAKI,EAAEA,EAAE,GAAG,iBAAiBiE,KAAKrE,GAAGA,EAAE,aAAa,6BAA6BqE,KAAKrE,EAAEG,KAAK0nE,GAAEhlE,EAAEhC,MAAMb,EAAE,UAAU,6BAA6BqE,KAAKrE,GAAGA,EAAEA,EAAE0E,cAAcF,GAAEH,KAAKrE,GAAGA,EAAEA,EAAEyE,QAAQ,WAAW,OAAOC,cAAc,OAAOtE,WAAM,GAAQC,EAAEL,GAAGI,GAAG,UAAUD,GAAGE,EAAEkkN,UAAU7gN,MAAMC,QAAQtD,EAAE0D,WAAWA,MAAM6B,EAAE/C,EAAEnC,UAAU4F,SAAQ,SAASjE,KAAKvB,MAAMmwH,aAAS5wH,EAAM0D,MAAMjC,QAAQO,EAAEvB,MAAMiD,WAAU,UAAA5D,GAAa,MAAME,EAAEmkN,iBAAiBzgN,MAAM6B,EAAE/C,EAAEnC,UAAU4F,SAAQ,SAASjE,KAAKvB,MAAMmwH,SAAS5wH,EAAEkkN,aAASlkN,EAAMmkN,aAAa1iN,QAAQO,EAAEvB,MAAMiD,OAAO1D,EAAEmkN,cAAcniN,EAAEvB,MAAMiD,UAASjE,EAAEgB,MAAMT,KAAKwC,EAAEyhN,OAAOzhN,EAAE8qF,eAAc9vE,WAAW,cAAchb,EAAE,MAAAA,EAAQ8qF,cAAc22H,MAAMzhN,EAAE8qF,WAAW7/E,OAAOsC,eAAe/P,EAAE,YAAY6qE,KAAIprE,EAAE2kN,SAASv7I,GAAEmQ,IAAGA,GAAEv5E,IAAI,IAAIqpE,GAAElmE,EAAEf,IAAIe,EAAEf,IAAI,SAASpC,OAAMqpE,GAAErpE,IAA2K,iBAAiB4kN,aAAa,mBAAmBA,YAAY33H,KAAI23H,YAAY33H,IAAI1jF,KAAKq7M;;;;;;;;;GCWznO,oBACS,CACLC,QAAS,KACTC,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,WAAW,EACXC,aAAc,GACd97E,UAAW,KACX+7E,WAAY,YACZC,QAAQ,EACRC,UAAU,EACVjgH,SAAU,KACVkgH,UAAU,EACVC,UAAW,KACXpwM,QAAQ,EACRqwM,YAAY,EACZC,aAAa,EACb7oF,UAAW,KACXkS,WAAY,KACZ42E,OAAO,iBCrBV,eAWKC,EAAe,gBACZztG,UAEMtyG,UAAY,CAKvBsyG,KAAM,eACArtB,EAAOhpF,MAAQ+jN,WAGdC,SAAW,MAGXC,gBAAkB,KAClBC,cAAgB,KAGhBC,QAAU,KACVC,OAAS,KACTC,QAAS,IACTC,QAAU,IACVC,cAAgB,mBAChBC,WAAgC,oBAAXj7J,QAA0BA,OAAO6tC,UAAa7tC,OAAO6tC,UAAY,OAGtFqtH,WAAa,OACbC,SAAU,IACVC,eAAgB,IAChBC,aAAc,IACdC,IAAM,OAGNC,YAAa,IAGbC,SAEE/7H,GAQTg8H,OAAQ,SAASC,OACXj8H,EAAOhpF,MAAQ+jN,OACb/wL,WAAWiyL,GAGZj8H,EAAK67H,cAIS,IAARI,GAAuBA,GAAO,GAAKA,GAAO,EAAG,MACjDX,QAAUW,EAGXj8H,EAAKq7H,cACAr7H,EAILA,EAAK27H,iBACFF,WAAWS,KAAKC,eAAeF,EAAKlB,EAAOc,IAAIO,qBAI7CvnN,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,QAC7BmrF,EAAKo7H,OAAOvmN,GAAGwnN,kBAEdC,EAAMt8H,EAAKo7H,OAAOvmN,GAAG0nN,eAGhB99J,EAAE,EAAGA,EAAE69J,EAAIzmN,OAAQ4oD,IAAK,KAC3BjpB,EAAQwqD,EAAKo7H,OAAOvmN,GAAG2nN,WAAWF,EAAI79J,IAEtCjpB,GAASA,EAAMinL,UACXA,MAAMT,OAASxmL,EAAM8lL,QAAUW,UAMtCj8H,SAGFA,EAAKs7H,SAOdoB,KAAM,SAASC,OACT38H,EAAOhpF,MAAQ+jN,EAGd/6H,EAAK67H,WAILR,OAASsB,EAGV38H,EAAK27H,iBACFF,WAAWS,KAAKC,eAAeQ,EAAQ,EAAI38H,EAAKs7H,QAASP,EAAOc,IAAIO,qBAIlEvnN,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,QAC7BmrF,EAAKo7H,OAAOvmN,GAAGwnN,kBAEdC,EAAMt8H,EAAKo7H,OAAOvmN,GAAG0nN,eAGhB99J,EAAE,EAAGA,EAAE69J,EAAIzmN,OAAQ4oD,IAAK,KAC3BjpB,EAAQwqD,EAAKo7H,OAAOvmN,GAAG2nN,WAAWF,EAAI79J,IAEtCjpB,GAASA,EAAMinL,UACXA,MAAME,QAASA,GAAgBnnL,EAAM6lL,eAM5Cr7H,GAMT6gB,KAAM,mBACA7gB,EAAOhpF,MAAQ+jN,EAGVlmN,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,MAC7BumN,OAAOvmN,GAAGgsG,cAGV7gB,GAOT48H,OAAQ,mBACF58H,EAAOhpF,MAAQ+jN,EAEVlmN,EAAEmrF,EAAKo7H,OAAOvlN,OAAO,EAAGhB,GAAG,EAAGA,MAChCumN,OAAOvmN,GAAG+nN,gBAIb58H,EAAK27H,eAAiB37H,EAAK67H,UAAiC,IAAnB77H,EAAK67H,IAAIgB,UAC/ChB,IAAIgB,UACJhB,IAAM,UAIN77H,GAQT88H,OAAQ,SAASrlB,gBACCsjB,GAAQI,QAAQ1jB,EAAI39L,QAAQ,MAAO,MAOrDiiN,OAAQ,eACF/7H,EAAOhpF,MAAQ+jN,OAGd3/M,MAAQ4kF,EAAK67H,KAAM77H,EAAK67H,IAAIzgN,OAAuB,cAGnD2hN,gBAGA/8H,EAAK27H,iBAEa,oBAAVqB,eAK8B,KAH1B,IAAIA,OAGCC,qBACT1B,cAAgB,iBAEjBrjN,KACDwjN,SAAU,SAGZA,SAAU,OAMN,IAAIsB,OACNL,UACFjB,SAAU,SAEVxjN,WAGJ8nF,EAAK07H,WACHwB,eAGAl9H,GAOTk9H,aAAc,eACRl9H,EAAOhpF,MAAQ+jN,EACfoC,EAAY,WAIgB,oBAAVH,MAAyB,IAAIA,MAAU,WACpDzrD,UACAvxE,MAGJm9H,GAA8C,mBAA1BA,EAAUC,mBAC1Bp9H,MAGLq9H,EAAWF,EAAUC,YAAY,eAAetjN,QAAQ,OAAQ,IAGhEw0F,EAAKtO,EAAKw7H,WAAax7H,EAAKw7H,WAAWjtH,UAAY,GACnD+uH,EAAahvH,EAAGlvF,MAAM,kBACtBm+M,EAAcD,GAAclwM,SAASkwM,EAAW,GAAGh+M,MAAM,KAAK,GAAI,IAAM,GACxEk+M,OAAclvH,EAAGn3F,QAAQ,gBAAoBm3F,EAAGn3F,QAAQ,UACxDsmN,EAAgBnvH,EAAGlvF,MAAM,mBACzBs+M,EAAeF,GAAeC,GAAiBrwM,SAASqwM,EAAc,GAAI,IAAM,YAE/EtC,QAAU,CACbwC,MAASJ,QAA2BJ,EAAUC,YAAY,cAActjN,QAAQ,OAAQ,KACxF8jN,OAAQP,EACRQ,OAAQV,EAAUC,YAAY,4BAA4BtjN,QAAQ,OAAQ,IAC1EgkN,MAAOX,EAAUC,YAAY,8BAA8BtjN,QAAQ,OAAQ,IAC3EikN,MAAOZ,EAAUC,YAAY,8BAA8BtjN,QAAQ,OAAQ,IAC3EkkN,SAAkBZ,YAAY,0BAA4BD,EAAUC,YAAY,cAActjN,QAAQ,OAAQ,IAC9GmkN,MAAOd,EAAUC,YAAY,cAActjN,QAAQ,OAAQ,IAC3DokN,MAAOf,EAAUC,YAAY,gBAAgBtjN,QAAQ,OAAQ,IAC7DqkN,SAAkBf,YAAY,iBAAmBD,EAAUC,YAAY,eAAiBD,EAAUC,YAAY,eAAetjN,QAAQ,OAAQ,IAC7IskN,SAAkBhB,YAAY,iBAAmBD,EAAUC,YAAY,eAAiBD,EAAUC,YAAY,eAAetjN,QAAQ,OAAQ,IAC7IukN,SAAkBjB,YAAY,iBAAmBD,EAAUC,YAAY,eAAiBD,EAAUC,YAAY,eAAetjN,QAAQ,OAAQ,IAC7IwkN,OAAUZ,IAAeP,EAAUC,YAAY,+BAA+BtjN,QAAQ,OAAQ,KAC9FykN,OAAUb,IAAeP,EAAUC,YAAY,+BAA+BtjN,QAAQ,OAAQ,KAC9F0kN,QAASrB,EAAUC,YAAY,4BAA4BtjN,QAAQ,OAAQ,IAC3E2kN,UAAmBrB,YAAY,kBAAoBD,EAAUC,YAAY,gBAAgBtjN,QAAQ,OAAQ,KAGpGkmF,GAST0+H,aAAc,eACR1+H,EAAOhpF,MAAQ+jN,MAGf/6H,EAAK2+H,gBAAmB3+H,EAAK67H,OAI5B8C,gBAAiB,IACjB7C,YAAa,EAKb97H,EAAK4+H,iBAA2C,QAAxB5+H,EAAK67H,IAAIgD,eAC/BD,iBAAkB,IAClBhC,YAKFkC,eAAiB9+H,EAAK67H,IAAI3oB,aAAa,EAAG,EAAG,WAK9C6rB,EAAS,SAAS7mN,QAOb8nF,EAAKi7H,gBAAgBplN,OAASmqF,EAAKk7H,uBAElC8D,EAAY,IAAIhC,QAIViC,WAAY,IAGjBC,mBAAmBF,SACjBpjJ,KACF8/I,SAAU,gBAMV7mN,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,QAC7BmrF,EAAKo7H,OAAOvmN,GAAGwnN,kBAEdC,EAAMt8H,EAAKo7H,OAAOvmN,GAAG0nN,eAGhB99J,EAAE,EAAGA,EAAE69J,EAAIzmN,OAAQ4oD,IAAK,KAC3BjpB,EAAQwqD,EAAKo7H,OAAOvmN,GAAG2nN,WAAWF,EAAI79J,IAEtCjpB,GAASA,EAAMinL,QAAUjnL,EAAMinL,MAAMwC,cACjCxC,MAAMwC,WAAY,IAClBxC,MAAMnhI,UAOf6jI,kBAGDh5L,EAAS65D,EAAK67H,IAAIuD,uBACfjqM,OAAS6qE,EAAK8+H,iBACdO,QAAQr/H,EAAK67H,IAAIh1L,kBAGI,IAAjBV,EAAOxgB,QACT25M,OAAO,KAEP35M,MAAM,GAIgB,mBAApBq6E,EAAK67H,IAAI0D,UACb1D,IAAI0D,WAIJC,QAAU,aACRC,WAAW,KAGbd,gBAAiB,WAGbtkN,oBAAoB,aAAc0kN,GAAQ,YAC1C1kN,oBAAoB,WAAY0kN,GAAQ,YACxC1kN,oBAAoB,QAAS0kN,GAAQ,YACrC1kN,oBAAoB,UAAW0kN,GAAQ,WAGvCr+I,EAAE,EAAGA,EAAEsf,EAAKo7H,OAAOvlN,OAAQ6qE,MAC7B06I,OAAO16I,GAAGu6B,MAAM,4BAMlB/gG,iBAAiB,aAAc6kN,GAAQ,YACvC7kN,iBAAiB,WAAY6kN,GAAQ,YACrC7kN,iBAAiB,QAAS6kN,GAAQ,YAClC7kN,iBAAiB,UAAW6kN,GAAQ,GAEtC/+H,IAQT0/H,kBAAmB,eACb1/H,EAAOhpF,MAAQ+jN,KAGf/6H,EAAKi7H,gBAAgBplN,cAChBmqF,EAAKi7H,gBAAgBn1M,UAI1B65M,GAAW,IAAI3C,OAAQ4C,cACvBD,GAA+B,oBAAZnhN,uBAAgDA,SAAoC,mBAAlBmhN,EAASlhN,SACvFohN,OAAM,mBACLhtM,KAAK,6EAIV,IAAImqM,OAObkC,mBAAoB,SAASY,OACvB9/H,EAAOhpF,MAAQ+jN,SAGf+E,EAAMb,aACHhE,gBAAgBnlN,KAAKgqN,GAGrB9/H,GAQT+8H,aAAc,eACR/8H,EAAOhpF,QAENgpF,EAAK47H,aAAgB57H,EAAK67H,UAAmC,IAArB77H,EAAK67H,IAAIkE,SAA4BhF,EAAOY,uBAKhF9mN,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,OAC9BmrF,EAAKo7H,OAAOvmN,GAAGwnN,kBACR59J,EAAE,EAAGA,EAAEuhC,EAAKo7H,OAAOvmN,GAAGmrN,QAAQnqN,OAAQ4oD,QACxCuhC,EAAKo7H,OAAOvmN,GAAGmrN,QAAQvhK,GAAGwhK,eACtBjgI,SAMXA,EAAKkgI,4BACMlgI,EAAKkgI,iBAIfA,cAAgBthN,YAAW,cACzBohF,EAAK47H,eAILsE,cAAgB,OAChB9kN,MAAQ,iBAGT+kN,EAAmB,aAChB/kN,MAAQ,YAET4kF,EAAKogI,6BACApgI,EAAKogI,sBACPjB,kBAMJtD,IAAIkE,UAAUthN,KAAK0hN,EAAkBA,MACzC,KAEIngI,IAOTm/H,YAAa,eACPn/H,EAAOhpF,QAENgpF,EAAK67H,UAAkC,IAApB77H,EAAK67H,IAAI0D,QAA2BxE,EAAOY,oBAIhD,YAAf37H,EAAK5kF,OAA0C,gBAAnB4kF,EAAK67H,IAAIzgN,OAA2B4kF,EAAKkgI,4BAC1DlgI,EAAKkgI,iBACbA,cAAgB,MACG,cAAflgI,EAAK5kF,OAAwC,YAAf4kF,EAAK5kF,OAA0C,gBAAnB4kF,EAAK67H,IAAIzgN,SACvEygN,IAAI0D,SAAS9gN,MAAK,aAChBrD,MAAQ,kBAGJvG,EAAE,EAAGA,EAAEmrF,EAAKo7H,OAAOvlN,OAAQhB,MAC7BumN,OAAOvmN,GAAGomG,MAAM,aAIrBjb,EAAKkgI,6BACMlgI,EAAKkgI,iBACbA,cAAgB,OAEC,eAAflgI,EAAK5kF,UACTglN,qBAAsB,GAGtBpgI,QAKP+6H,EAAS,IAAID,EASbuF,EAAO,SAAS5qN,GAIbA,EAAEsuG,KAAwB,IAAjBtuG,EAAEsuG,IAAIluG,OAHTmB,KAQNq2G,KAAK53G,WAJA+R,MAAM,iEAMbzM,UAAY,CAMfsyG,KAAM,SAAS53G,OACTuqF,EAAOhpF,YAGN+jN,EAAOc,WAKPyE,UAAY7qN,EAAE8qN,WAAY,IAC1BC,QAA+B,iBAAb/qN,EAAEgrN,OAAuBhrN,EAAEgrN,OAAS,CAAChrN,EAAEgrN,UACzDC,OAASjrN,EAAEkrN,QAAS,IACpBtF,OAAS5lN,EAAEinN,OAAQ,IACnBkE,MAAQnrN,EAAEorN,OAAQ,IAClBC,MAAQrrN,EAAE0c,MAAQ,IAClB4uM,SAAiC,kBAAdtrN,EAAEurN,SAAuC,aAAdvrN,EAAEurN,SAA0BvrN,EAAEurN,UAC5EC,MAAQxrN,EAAEyrN,MAAQ,IAClBC,QAAU1rN,EAAE2rN,QAAU,KACtBC,KAAyB,iBAAV5rN,EAAEsuG,IAAoBtuG,EAAEsuG,IAAM,CAACtuG,EAAEsuG,OAChDu3G,aAAuB,IAAb7lN,EAAEumN,OAAuBvmN,EAAEumN,OAAS,IAC9CsF,KAAO,CACVv2J,OAAQt1D,EAAE+yG,KAAO/yG,EAAE+yG,IAAIz9C,OAASt1D,EAAE+yG,IAAIz9C,OAAS,MAC/CowB,QAAS1lF,EAAE+yG,KAAO/yG,EAAE+yG,IAAIrtB,QAAU1lF,EAAE+yG,IAAIrtB,QAAU,KAClDomI,mBAAiB9rN,EAAE+yG,MAAO/yG,EAAE+yG,IAAI+4G,kBAAkB9rN,EAAE+yG,IAAI+4G,mBAIrDC,UAAY,IACZC,OAAS,aACTzB,QAAU,KACV0B,WAAa,KACbC,OAAS,KACTC,WAAY,IAGZC,OAASpsN,EAAEqsN,MAAQ,CAAC,CAAC/6M,GAAItR,EAAEqsN,QAAU,KACrCC,QAAUtsN,EAAEusN,OAAS,CAAC,CAACj7M,GAAItR,EAAEusN,SAAW,KACxCC,QAAUxsN,EAAEuzG,OAAS,CAAC,CAACjiG,GAAItR,EAAEuzG,SAAW,KACxCk5G,aAAezsN,EAAE0sN,YAAc,CAAC,CAACp7M,GAAItR,EAAE0sN,cAAgB,KACvDC,aAAe3sN,EAAE4sN,YAAc,CAAC,CAACt7M,GAAItR,EAAE4sN,cAAgB,KACvDC,SAAW7sN,EAAE8sN,QAAU,CAAC,CAACx7M,GAAItR,EAAE8sN,UAAY,KAC3CC,QAAU/sN,EAAEgtN,OAAS,CAAC,CAAC17M,GAAItR,EAAEgtN,SAAW,KACxCC,QAAUjtN,EAAEktN,OAAS,CAAC,CAAC57M,GAAItR,EAAEktN,SAAW,KACxCC,QAAUntN,EAAEotN,OAAS,CAAC,CAAC97M,GAAItR,EAAEotN,SAAW,KACxCC,UAAYrtN,EAAEstN,SAAW,CAAC,CAACh8M,GAAItR,EAAEstN,WAAa,KAC9CC,QAAUvtN,EAAEwtN,OAAS,CAAC,CAACl8M,GAAItR,EAAEwtN,SAAW,KACxCC,QAAUztN,EAAE0tN,OAAS,CAAC,CAACp8M,GAAItR,EAAE0tN,SAAW,KACxCC,UAAY3tN,EAAE4tN,SAAW,CAAC,CAACt8M,GAAItR,EAAE4tN,WAAa,KAC9CC,UAAY,KAGZjH,UAAYtB,EAAOY,gBAAkB37H,EAAK0gI,YAGrB,IAAf3F,EAAOc,KAAuBd,EAAOc,KAAOd,EAAOe,cACrD4C,iBAIFtD,OAAOtlN,KAAKkqF,GAGfA,EAAKsgI,aACFqB,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDk1L,UAMP5/H,EAAK+gI,UAA8B,SAAlB/gI,EAAK+gI,YACnBzlI,OAGA0E,GAOT1E,KAAM,eACA0E,EAAOhpF,KACP+H,EAAM,QAGNg8M,EAAOW,UACJzgH,MAAM,YAAa,KAAM,0BAKP,iBAAdjb,EAAKqhI,SACTA,KAAO,CAACrhI,EAAKqhI,eAIXxsN,EAAE,EAAGA,EAAEmrF,EAAKqhI,KAAKxrN,OAAQhB,IAAK,KACjC4iM,EAAK1vL,KAELi4E,EAAKwgI,SAAWxgI,EAAKwgI,QAAQ3rN,KAEzBmrF,EAAKwgI,QAAQ3rN,OACd,IAGc,mBADbmrF,EAAKqhI,KAAKxsN,IACa,GACtBomG,MAAM,YAAa,KAAM,sEAK1B,0BAA0B92F,KAAK4D,QAE7B,aAAa5D,KAAK4D,EAAIzI,MAAM,IAAK,GAAG,KAGxCm4L,MACIA,EAAI,GAAG19L,kBAKZ09L,WACK5kL,KAAK,8FAIX4kL,GAAOsjB,EAAO+B,OAAOrlB,GAAM,GACvBz3G,EAAKqhI,KAAKxsN,aAKfkK,WAKAsiN,KAAOtiN,IACP0iN,OAAS,UAImB,WAA7BlhK,OAAOv/C,SAASuiN,UAA6C,UAApBxkN,EAAI/E,MAAM,EAAG,OACnD0mN,QAAS,IACTrE,WAAY,OAIfmH,EAAMxjI,GAGNA,EAAKq8H,aACIr8H,GAGNA,IAtBAib,MAAM,YAAa,KAAM,kDA+BlC2kH,KAAM,SAASwB,EAAQqC,OACjBzjI,EAAOhpF,KACPyT,EAAK,QAGa,iBAAX22M,IACJA,IACI,aACkB,iBAAXA,GAAuC,WAAhBphI,EAAKyhI,SAAwBzhI,EAAKmhI,QAAQC,UAE1E,aACoB,IAAXA,MAEP,aAIJphI,EAAK4hI,WAAW,SACf5hC,EAAM,EACDnrL,EAAE,EAAGA,EAAEmrF,EAAKggI,QAAQnqN,OAAQhB,IAC/BmrF,EAAKggI,QAAQnrN,GAAGorN,UAAYjgI,EAAKggI,QAAQnrN,GAAG6uN,eAEzC1jI,EAAKggI,QAAQnrN,GAAG2mK,KAIb,IAARwkB,IACO,OAEJ,UAMPxqJ,EAAQ/qB,EAAKu1E,EAAKw8H,WAAW/xM,GAAMu1E,EAAK2jI,qBAGvCnuL,SACI,QAIL/qB,IAAO22M,MACA5rL,EAAM2rL,SAAW,aAMR,WAAhBnhI,EAAKyhI,OAAqB,GAEtBN,QAAUC,IAGVsC,QAAS,MAGXE,EAAUpuL,EAAMgmI,aACfmmD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDk1L,KAAKgE,MAIPA,KAILn5M,IAAO+qB,EAAMyqL,eAEVwD,KACEI,WAAW,QAGXruL,EAAMgmI,IAIXx7E,EAAKq8H,aACA8C,kBAIL2E,EAAOnkN,KAAKD,IAAI,EAAG81B,EAAMuuL,MAAQ,EAAIvuL,EAAMuuL,MAAQ/jI,EAAKmhI,QAAQC,GAAQ,GAAK,KAC7E/mM,EAAW1a,KAAKD,IAAI,KAAUyhN,QAAQC,GAAQ,GAAKphI,EAAKmhI,QAAQC,GAAQ,IAAM,IAAQ0C,GACtFtuH,EAAsB,IAAXn7E,EAAmB1a,KAAKwkE,IAAI3uC,EAAMyrL,OAC7Ct7M,EAAQq6E,EAAKmhI,QAAQC,GAAQ,GAAK,IAClCvgH,KAAasgH,QAAQC,GAAQ,GAAKphI,EAAKmhI,QAAQC,GAAQ,IAAM,MAC3DD,QAAUC,IAIVsC,QAAS,MAGXM,EAAY,aACR/D,SAAU,IACV8D,MAAQD,IACRG,OAASt+M,IACTu+M,MAAQrjH,IACR+/G,WAAiBA,QAAS5gI,EAAKmhI,QAAQC,GAAQ,UAInD0C,GAAQjjH,QAMRp/F,EAAO+zB,EAAMinL,SACbz8H,EAAKq8H,UAAW,KAEd8H,EAAe,aACZvC,WAAY,QAEZwC,eAAe5uL,OAGhBymL,EAAOzmL,EAAM6lL,QAAUr7H,EAAKq7H,OAAU,EAAI7lL,EAAM8lL,UAC/CY,KAAKC,eAAeF,EAAKlB,EAAOc,IAAIO,eACnCiI,WAAatJ,EAAOc,IAAIO,iBAGS,IAA5B36M,EAAK6iN,aAAa3+M,QACrBi7M,MAAQn/M,EAAK6iN,aAAaC,YAAY,EAAGT,EAAM,OAASriN,EAAK6iN,aAAaC,YAAY,EAAGT,EAAMzpM,KAE/FumM,MAAQn/M,EAAK6iN,aAAa3+M,MAAM,EAAGm+M,EAAM,OAASriN,EAAK6iN,aAAa3+M,MAAM,EAAGm+M,EAAMzpM,GAIvFm7E,IAAYxoF,EAAAA,MACT00M,WAAWlsL,EAAMgmI,KAAO58J,WAAWohF,EAAK0jI,OAAOhlN,KAAKshF,EAAMxqD,GAAQggE,IAGpEiuH,eACQ,aACJxoH,MAAM,OAAQzlE,EAAMgmI,OACpBqoD,eACJ,IAIc,YAAjB9I,EAAO3/M,OAA4C,gBAArB2/M,EAAOc,IAAIzgN,aAGtCwmN,WAAY,IAGZn4G,KAAK,SAAU06G,KAGfK,YAAYhvL,EAAMgmI,UAEpB,KAEDipD,EAAY,aACTrI,YAAc0H,IACdnH,MAAQnnL,EAAM6lL,QAAUr7H,EAAKq7H,QAAUN,EAAOM,QAAU55M,EAAKk7M,QAC7DX,OAASxmL,EAAM8lL,QAAUP,EAAOiB,WAChC0I,aAAelvL,EAAMyrL,cAIpBrB,EAAOn+M,EAAKm+M,UAGZA,GAA2B,oBAAZphN,uBAA4CA,SAAgC,mBAAdohN,EAAKnhN,SAE/EmjN,WAAY,QAOdnjN,MAAK,aACCmjN,WAAY,IACZ3C,WAAY,EACZwE,IAGEI,eAFA5oH,MAAM,OAAQzlE,EAAMgmI,QAK5BqkD,OAAM,aACA+B,WAAY,IACZ3mH,MAAM,YAAazlE,EAAMgmI,IAAK,iJAI7BkoD,QAAS,IACTzD,SAAU,MAEVwD,MACL7B,WAAY,QAEZ3mH,MAAM,OAAQzlE,EAAMgmI,QAItBkpD,aAAelvL,EAAMyrL,MAGtBx/M,EAAKkjN,qBACF1pH,MAAM,YAAazlE,EAAMgmI,IAAK,+IAMtB,cAAX4lD,GAA0B5rL,EAAMorL,QAC7Bc,WAAWlsL,EAAMgmI,KAAO58J,WAAWohF,EAAK0jI,OAAOhlN,KAAKshF,EAAMxqD,GAAQggE,MAElEksH,WAAWlsL,EAAMgmI,KAAO,aAEtBkoD,OAAOluL,KAGPn7B,oBAAoB,QAAS2lF,EAAK0hI,WAAWlsL,EAAMgmI,MAAM,MAE3DthK,iBAAiB,QAAS8lF,EAAK0hI,WAAWlsL,EAAMgmI,MAAM,UAEtDjK,KACFt2D,MAAM,YAAazlE,EAAMgmI,IAAKjK,KAKtB,2FAAb9vJ,EAAKsiG,QACFA,IAAM/jB,EAAKqhI,OACX/lI,YAIHspI,EAAsBrkK,QAAUA,OAAOskK,SAAapjN,EAAKmnG,YAAcmyG,EAAOS,WAAWsJ,cACzFrjN,EAAKmnG,YAAc,GAAKg8G,UAErB,GACAhD,WAAY,IACZH,OAAS,cAEV13M,EAAW,aACR03M,OAAS,eAMTpnN,oBAAoB0gN,EAAOQ,cAAexxM,GAAU,MAEtD7P,iBAAiB6gN,EAAOQ,cAAexxM,GAAU,KAGjDy6M,YAAYhvL,EAAMgmI,aAIpBhmI,EAAMgmI,MAzJNkoD,OAAOluL,IAiKhBuvL,MAAO,SAASt6M,OACVu1E,EAAOhpF,QAGS,WAAhBgpF,EAAKyhI,QAAuBzhI,EAAK4hI,mBAC9BD,OAAO7rN,KAAK,CACf0E,MAAO,QACPkwB,OAAQ,aACDq6L,MAAMt6M,MAIRu1E,UAILs8H,EAAMt8H,EAAKu8H,aAAa9xM,GAEnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,GAE1B2vN,YAAYlI,EAAIznN,QAGjB2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,OAE5B2gC,IAAUA,EAAMyqL,YAEZ8D,MAAQ/jI,EAAK8jI,KAAKxH,EAAIznN,MACtBmwN,UAAY,IACZ/E,SAAU,IAGXgF,UAAU3I,EAAIznN,IAEf2gC,EAAMinL,UACJz8H,EAAKq8H,UAAW,KAEb7mL,EAAMinL,MAAM6H,2BAI4B,IAAlC9uL,EAAMinL,MAAM6H,aAAazjH,OAC5B47G,MAAM6H,aAAaY,QAAQ,KAE3BzI,MAAM6H,aAAazjH,KAAK,KAI3BskH,aAAa3vL,EAAMinL,YACd9xM,MAAM6qB,EAAMinL,MAAMpiM,WAAamb,EAAMinL,MAAMpiM,WAAarN,EAAAA,KAC5DyvM,MAAMsI,QAMbpvN,UAAU,MACRslG,MAAM,QAASzlE,EAAQA,EAAMgmI,IAAM,aAIrCx7E,GAST6gB,KAAM,SAASp2F,EAAIg5M,OACbzjI,EAAOhpF,QAGS,WAAhBgpF,EAAKyhI,QAAuBzhI,EAAK4hI,mBAC9BD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDm2E,KAAKp2F,MAIPu1E,UAILs8H,EAAMt8H,EAAKu8H,aAAa9xM,GAEnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,GAE1B2vN,YAAYlI,EAAIznN,QAGjB2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,IAE5B2gC,MAEIuuL,MAAQvuL,EAAMyuL,QAAU,IACxBe,UAAY,IACZ/E,SAAU,IACVyD,QAAS,IAGVuB,UAAU3I,EAAIznN,IAEf2gC,EAAMinL,QACJz8H,EAAKq8H,UAEH7mL,EAAMinL,MAAM6H,oBAC+B,IAAlC9uL,EAAMinL,MAAM6H,aAAazjH,OAC5B47G,MAAM6H,aAAaY,QAAQ,KAE3BzI,MAAM6H,aAAazjH,KAAK,KAI3BskH,aAAa3vL,EAAMinL,QAEhB9xM,MAAM6qB,EAAMinL,MAAMpiM,WAAamb,EAAMinL,MAAMpiM,WAAarN,EAAAA,MAC5DyvM,MAAML,YAAc5mL,EAAMyuL,QAAU,IACpCxH,MAAMsI,QAGRvvL,EAAMinL,MAAMpiM,WAAarN,EAAAA,KACtBo4M,YAAY5vL,EAAMinL,SAKxBgH,KACExoH,MAAM,OAAQzlE,EAAMgmI,aAKxBx7E,GAST08H,KAAM,SAASC,EAAOlyM,OAChBu1E,EAAOhpF,QAGS,WAAhBgpF,EAAKyhI,QAAsBzhI,EAAK4hI,mBAC7BD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDgyL,KAAKC,EAAOlyM,MAIdu1E,UAIS,IAAPv1E,EAAoB,IACR,kBAAVkyM,SAGF38H,EAAKq7H,SAFPA,OAASsB,UAOdL,EAAMt8H,EAAKu8H,aAAa9xM,GAEnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,KAE3B2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,IAE5B2gC,MACI6lL,OAASsB,EAGXnnL,EAAM6vL,aACHJ,UAAUzvL,EAAMgmI,KAGnBx7E,EAAKq8H,WAAa7mL,EAAMinL,QACpBA,MAAMP,KAAKC,eAAeQ,EAAQ,EAAInnL,EAAM8lL,QAASP,EAAOc,IAAIO,aAC7D5mL,EAAMinL,UACTA,MAAME,QAAQ5B,EAAOM,QAAgBsB,KAGxC1hH,MAAM,OAAQzlE,EAAMgmI,aAItBx7E,GAWTg8H,OAAQ,eAGFC,EAAKxxM,EAqBL+qB,EAvBAwqD,EAAOhpF,KACPgV,EAAOrW,aAIS,IAAhBqW,EAAKnW,cAEAmqF,EAAKs7H,WACa,IAAhBtvM,EAAKnW,QAAgC,IAAhBmW,EAAKnW,aAAmC,IAAZmW,EAAK,GAAoB,KAE/EswM,EAAMt8H,EAAKu8H,eACXh8M,EAAQ+7M,EAAInlN,QAAQ6U,EAAK,IACzBzL,GAAS,IACN6M,SAASpB,EAAK,GAAI,MAEjBge,WAAWhe,EAAK,SAEfA,EAAKnW,QAAU,MAClBm0B,WAAWhe,EAAK,MACjBoB,SAASpB,EAAK,GAAI,eAKN,IAARiwM,GAAuBA,GAAO,GAAKA,GAAO,YA0C3CxxM,EAAKu1E,EAAKw8H,WAAW/xM,GAAMu1E,EAAKggI,QAAQ,IACjCxqL,EAAM8lL,QAAU,KAzCX,WAAhBt7H,EAAKyhI,QAAsBzhI,EAAK4hI,mBAC7BD,OAAO7rN,KAAK,CACf0E,MAAO,SACPkwB,OAAQ,aACDsxL,OAAOt5L,MAAMs9D,EAAMh0E,MAIrBg0E,OAIS,IAAPv1E,MACJ6wM,QAAUW,KAIZj8H,EAAKu8H,aAAa9xM,WACd5V,EAAE,EAAGA,EAAE4V,EAAG5U,OAAQhB,OAEjBmrF,EAAKw8H,WAAW/xM,EAAG5V,SAGnBymN,QAAUW,EAGXjwM,EAAK,MACHi5M,UAAUx6M,EAAG5V,IAGhBmrF,EAAKq8H,WAAa7mL,EAAMinL,QAAUjnL,EAAM6lL,SACpCoB,MAAMP,KAAKC,eAAeF,EAAKlB,EAAOc,IAAIO,aACvC5mL,EAAMinL,QAAUjnL,EAAM6lL,WACzBoB,MAAMT,OAASC,EAAMlB,EAAOiB,YAG/B/gH,MAAM,SAAUzlE,EAAMgmI,aAQ1Bx7E,GAWT62D,KAAM,SAASnuI,EAAMqV,EAAIg9B,EAAKtwC,OACxBu1E,EAAOhpF,QAGS,WAAhBgpF,EAAKyhI,QAAuBzhI,EAAK4hI,mBAC9BD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDmsH,KAAKnuI,EAAMqV,EAAIg9B,EAAKtwC,MAItBu1E,IAIFrgF,KAAKkN,IAAIlN,KAAKD,IAAI,EAAGsqB,WAAWthB,IAAQ,KAC1C/I,KAAKkN,IAAIlN,KAAKD,IAAI,EAAGsqB,WAAWjM,IAAM,KACrCiM,WAAW+wB,KAGZihK,OAAOtzM,EAAM+B,WAGd6xM,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,KAE3B2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,OAG5B2gC,EAAO,IAEJ/qB,KACEw6M,UAAU3I,EAAIznN,IAIjBmrF,EAAKq8H,YAAc7mL,EAAM6lL,OAAQ,KAC/Be,EAAcrB,EAAOc,IAAIO,YACzBl2M,EAAMk2M,EAAerhK,EAAM,MACzBugK,QAAU5yM,IACV+zM,MAAMP,KAAKC,eAAezzM,EAAM0zM,KAChCK,MAAMP,KAAKoJ,wBAAwBvnM,EAAI7X,KAG1Cq/M,mBAAmB/vL,EAAO9sB,EAAMqV,EAAIg9B,EAAKuhK,EAAIznN,QAAkB,IAAP4V,WAI1Du1E,GAYTulI,mBAAoB,SAAS/vL,EAAO9sB,EAAMqV,EAAIg9B,EAAKtwC,EAAI+6M,OACjDxlI,EAAOhpF,KACPilN,EAAMvzM,EACN+5H,EAAO1kH,EAAKrV,EACZ8lJ,EAAQ7uJ,KAAKwkE,IAAIs+D,EAAO,KACxBgjF,EAAU9lN,KAAKD,IAAI,EAAI8uJ,EAAQ,EAAKzzG,EAAMyzG,EAAQzzG,GAClD2qK,EAAWpxM,KAAK8tE,QAGdujI,QAAU5nM,IAGVsnM,UAAYt/G,aAAY,eAExB6/G,QAAaxjI,MAAQsjI,GAAY3qK,IAC1BzmC,KAAK8tE,SACTqgD,EAAOmjF,IAGRjmN,KAAKg/G,MAAY,IAANs9F,GAAa,MAG1Bx5E,EAAO,EACH9iI,KAAKD,IAAIqe,EAAIk+L,GAEbt8M,KAAKkN,IAAIkR,EAAIk+L,GAIjBj8H,EAAKq8H,YACDf,QAAUW,IAEXD,OAAOC,EAAKzmL,EAAMgmI,KAAK,GAI1BgqD,MACGlK,QAAUW,IAIZl+L,EAAKrV,GAAQuzM,GAAOl+L,GAAQA,EAAKrV,GAAQuzM,GAAOl+L,mBACrCyX,EAAM6vL,aACdA,UAAY,OACZM,QAAU,OACX3J,OAAOj+L,EAAIyX,EAAMgmI,OACjBvgE,MAAM,OAAQzlE,EAAMgmI,QAE1BiqD,IASLR,UAAW,SAASx6M,OACdu1E,EAAOhpF,KACPw+B,EAAQwqD,EAAKw8H,WAAW/xM,UAExB+qB,GAASA,EAAM6vL,YACbrlI,EAAKq8H,aACDI,MAAMP,KAAK2J,sBAAsB9K,EAAOc,IAAIO,2BAGtC5mL,EAAM6vL,aACdA,UAAY,OACbrJ,OAAOxmL,EAAMmwL,QAASl7M,KACrBk7M,QAAU,OACX1qH,MAAM,OAAQxwF,IAGdu1E,GAWT6gI,KAAM,eAGAA,EAAMp2M,EAAI+qB,EAFVwqD,EAAOhpF,KACPgV,EAAOrW,aAIS,IAAhBqW,EAAKnW,cAEAmqF,EAAK4gI,SACa,IAAhB50M,EAAKnW,OAAc,IACL,kBAAZmW,EAAK,cAKNg0E,EAAKw8H,WAAWpvM,SAASpB,EAAK,GAAI,OAC3BwpB,EAAMorL,QALd50M,EAAK,KACP40M,MAAQC,OAMU,IAAhB70M,EAAKnW,WACPmW,EAAK,KACPoB,SAASpB,EAAK,GAAI,aAIrBswM,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,OAClBmrF,EAAKw8H,WAAWF,EAAIznN,SAGpB+rN,MAAQC,EACV7gI,EAAKq8H,WAAa7mL,EAAMinL,OAASjnL,EAAMinL,MAAM6H,iBACzC7H,MAAM6H,aAAazD,KAAOA,EAC5BA,MACIpE,MAAM6H,aAAawB,UAAYtwL,EAAMyuL,QAAU,IAC/CxH,MAAM6H,aAAayB,QAAUvwL,EAAM0uL,MAGrClkI,EAAKgmI,QAAQ1J,EAAIznN,QACdkwN,MAAMzI,EAAIznN,IAAI,KACd+qN,KAAKtD,EAAIznN,IAAI,cAOrBmrF,GAWTkhI,KAAM,eAGAA,EAAMz2M,EAqBN+qB,EAvBAwqD,EAAOhpF,KACPgV,EAAOrW,aAIS,IAAhBqW,EAAKnW,SAEFmqF,EAAKggI,QAAQ,GAAGxkD,YACI,IAAhBxvJ,EAAKnW,OAAc,KAExBymN,EAAMt8H,EAAKu8H,eACXh8M,EAAQ+7M,EAAInlN,QAAQ6U,EAAK,IACzBzL,GAAS,IACN6M,SAASpB,EAAK,GAAI,MAEhBge,WAAWhe,EAAK,SAEA,IAAhBA,EAAKnW,WACPm0B,WAAWhe,EAAK,MAClBoB,SAASpB,EAAK,GAAI,QAKL,iBAATk1M,WAuDDlhI,EAAKw8H,WAAW/xM,IACT+qB,EAAMyrL,MAAQjhI,EAAKihI,SAtDd,WAAhBjhI,EAAKyhI,QAAuBzhI,EAAK4hI,mBAC9BD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDw2L,KAAKx+L,MAAMs9D,EAAMh0E,MAInBg0E,OAIS,IAAPv1E,MACJw2M,MAAQC,KAIVlhI,EAAKu8H,aAAa9xM,WACd5V,EAAE,EAAGA,EAAE4V,EAAG5U,OAAQhB,SAEjBmrF,EAAKw8H,WAAW/xM,EAAG5V,IAEhB,CAGLmrF,EAAKgmI,QAAQv7M,EAAG5V,QACZmwN,UAAYhlI,EAAK8jI,KAAKr5M,EAAG5V,MACzBwvN,WAAarkI,EAAKq8H,UAAYtB,EAAOc,IAAIO,YAAc5mL,EAAM6uL,cAE/DpD,MAAQC,EAGVlhI,EAAKq8H,WAAa7mL,EAAMinL,OAASjnL,EAAMinL,MAAM6H,eACzC7H,MAAM6H,aAAaI,aAAavI,eAAe+E,EAAMnG,EAAOc,IAAIO,aAC7D5mL,EAAMinL,UACTA,MAAMiI,aAAexD,OAIzB4C,EAAO9jI,EAAK8jI,KAAKr5M,EAAG5V,IACpBwlB,KAAkB8mM,QAAQ3rL,EAAM2rL,SAAS,GAAKnhI,EAAKmhI,QAAQ3rL,EAAM2rL,SAAS,IAAM,IAAQ2C,EACxFtuH,EAAsB,IAAXn7E,EAAmB1a,KAAKwkE,IAAI3uC,EAAMyrL,QAG7CjhI,EAAK0hI,WAAWj3M,EAAG5V,KAAQ2gC,EAAMyqL,YAC9BuE,YAAY/5M,EAAG5V,MACf6sN,WAAWj3M,EAAG5V,IAAM+J,WAAWohF,EAAK0jI,OAAOhlN,KAAKshF,EAAMxqD,GAAQggE,MAGhEyF,MAAM,OAAQzlE,EAAMgmI,YAQxBx7E,GAWT8jI,KAAM,eAGAA,EAAMr5M,EAFNu1E,EAAOhpF,KACPgV,EAAOrW,aAIS,IAAhBqW,EAAKnW,OAEHmqF,EAAKggI,QAAQnqN,WACVmqF,EAAKggI,QAAQ,GAAGxkD,aAEE,IAAhBxvJ,EAAKnW,OAAc,KAExBymN,EAAMt8H,EAAKu8H,eACXh8M,EAAQ+7M,EAAInlN,QAAQ6U,EAAK,IACzBzL,GAAS,IACN6M,SAASpB,EAAK,GAAI,IACdg0E,EAAKggI,QAAQnqN,WACjBmqF,EAAKggI,QAAQ,GAAGxkD,MACdxxI,WAAWhe,EAAK,UAEA,IAAhBA,EAAKnW,WACPm0B,WAAWhe,EAAK,MAClBoB,SAASpB,EAAK,GAAI,aAIP,IAAPvB,SACF,KAIW,iBAATq5M,IAAsC,aAAXrC,QAAuBzhI,EAAK4hI,oBAC3DD,OAAO7rN,KAAK,CACf0E,MAAO,OACPkwB,OAAQ,aACDo5L,KAAKphM,MAAMs9D,EAAMh0E,MAInBg0E,MAILxqD,EAAQwqD,EAAKw8H,WAAW/xM,MAExB+qB,EAAO,MACW,iBAATsuL,GAAqBA,GAAQ,GAwCjC,IACD9jI,EAAKq8H,UAAW,KACd4J,EAAWjmI,EAAKgmI,QAAQv7M,GAAMswM,EAAOc,IAAIO,YAAc5mL,EAAM6uL,WAAa,EAC1E6B,EAAW1wL,EAAMwvL,UAAYxvL,EAAMwvL,UAAYxvL,EAAMuuL,MAAQ,SAC1DvuL,EAAMuuL,SAAoBkC,EAAWtmN,KAAKwkE,IAAI3uC,EAAMyrL,eAEpDzrL,EAAMinL,MAAML,gBA5CjB4J,EAAUhmI,EAAKgmI,QAAQv7M,GACvBu7M,KACGjB,MAAMt6M,GAAI,KAIXs5M,MAAQD,IACRJ,QAAS,IACVc,YAAY/5M,GAGZu1E,EAAKq8H,YAAa7mL,EAAMinL,OAAU9xM,MAAM6qB,EAAMinL,MAAMpiM,cACjDoiM,MAAML,YAAc0H,OAIxBqC,EAAc,WAEZH,KACGpG,KAAKn1M,GAAI,KAGXwwF,MAAM,OAAQxwF,OAIjBu7M,IAAYhmI,EAAKq8H,UAAW,KAC1B+J,EAAW,WACRpmI,EAAK4hI,qBAGGwE,EAAU,mBAGdA,EAAU,mBAepBpmI,GAQTgmI,QAAS,SAASv7M,OACZu1E,EAAOhpF,QAGO,iBAAPyT,EAAiB,KACtB+qB,EAAQwqD,EAAKw8H,WAAW/xM,WACrB+qB,IAASA,EAAMyqL,gBAIfprN,EAAE,EAAGA,EAAEmrF,EAAKggI,QAAQnqN,OAAQhB,QAC9BmrF,EAAKggI,QAAQnrN,GAAGorN,eACZ,SAIJ,GAQT5lM,SAAU,SAAS5P,OACbu1E,EAAOhpF,KACPqjB,EAAW2lE,EAAKwhI,UAGhBhsL,EAAQwqD,EAAKw8H,WAAW/xM,UACxB+qB,MACSwqD,EAAKmhI,QAAQ3rL,EAAM2rL,SAAS,GAAK,KAGvC9mM,GAOTjf,MAAO,kBACEpE,KAAKyqN,QAOd7E,OAAQ,mBACF58H,EAAOhpF,KAGPqvN,EAASrmI,EAAKggI,QACTnrN,EAAE,EAAGA,EAAEwxN,EAAOxwN,OAAQhB,IAExBwxN,EAAOxxN,GAAGorN,WACRp/G,KAAKwlH,EAAOxxN,GAAG2mK,KAIjBx7E,EAAKq8H,cAEH+I,YAAYiB,EAAOxxN,GAAG4nN,SAGpB5nN,GAAG4nN,MAAMpiN,oBAAoB,QAASgsN,EAAOxxN,GAAGyxN,UAAU,KAC1DzxN,GAAG4nN,MAAMpiN,oBAAoB0gN,EAAOQ,cAAe8K,EAAOxxN,GAAG0xN,SAAS,KACtE1xN,GAAG4nN,MAAMpiN,oBAAoB,QAASgsN,EAAOxxN,GAAG2xN,QAAQ,KAGxDtH,mBAAmBmH,EAAOxxN,GAAG4nN,eAI/B4J,EAAOxxN,GAAG4nN,QAGZ+H,YAAY6B,EAAOxxN,GAAG2mK,SAIzBj7J,EAAQw6M,EAAOK,OAAOjkN,QAAQ6oF,GAC9Bz/E,GAAS,KACJ66M,OAAOj9M,OAAOoC,EAAO,OAI1BkmN,GAAW,MACV5xN,EAAE,EAAGA,EAAEkmN,EAAOK,OAAOvlN,OAAQhB,OAC5BkmN,EAAOK,OAAOvmN,GAAGwsN,OAASrhI,EAAKqhI,MAAQrhI,EAAKqhI,KAAKlqN,QAAQ4jN,EAAOK,OAAOvmN,GAAGwsN,OAAS,EAAG,IAC7E,eAKXvgF,GAAS2lF,UACJ3lF,EAAM9gD,EAAKqhI,QAIb3F,SAAU,IAGZ+F,OAAS,aACTzB,QAAU,KACR,KAEA,MAWTplH,GAAI,SAASpgG,EAAOuM,EAAI0D,EAAIg/F,OAEtBi9G,EADO1vN,KACO,MAAQwD,SAER,mBAAPuM,KACFjR,KAAK2zG,EAAO,CAACh/F,GAAAA,EAAQ1D,GAAAA,EAAQ0iG,KAAAA,GAAc,CAACh/F,GAAAA,EAAQ1D,GAAAA,IAJlD/P,MAiBbizG,IAAK,SAASzvG,EAAOuM,EAAI0D,OACnBu1E,EAAOhpF,KACP0vN,EAAS1mI,EAAK,MAAQxlF,GACtB3F,EAAI,KAGU,iBAAPkS,MACJA,IACA,MAGHA,GAAM0D,MAEH5V,EAAE,EAAGA,EAAE6xN,EAAO7wN,OAAQhB,IAAK,KAC1B8xN,EAAQl8M,IAAOi8M,EAAO7xN,GAAG4V,MACzB1D,IAAO2/M,EAAO7xN,GAAGkS,IAAM4/M,IAAS5/M,GAAM4/M,EAAM,GACvCxoN,OAAOtJ,EAAG,kBAIZ2F,IAEJ,MAAQA,GAAS,OACjB,KAEDoU,EAAOzL,OAAOyL,KAAKoxE,OAClBnrF,EAAE,EAAGA,EAAE+Z,EAAK/Y,OAAQhB,IACS,IAA3B+Z,EAAK/Z,GAAGsC,QAAQ,QAAiB4B,MAAMC,QAAQgnF,EAAKpxE,EAAK/Z,SACvD+Z,EAAK/Z,IAAM,WAKfmrF,GAUTypB,KAAM,SAASjvG,EAAOuM,EAAI0D,UACbzT,KAGN4jG,GAAGpgG,EAAOuM,EAAI0D,EAAI,GAHZzT,MAebikG,MAAO,SAASzgG,EAAOiQ,EAAI47C,WACrB25B,EAAOhpF,KACP0vN,EAAS1mI,EAAK,MAAQxlF,GAGjB3F,EAAE6xN,EAAO7wN,OAAO,EAAGhB,GAAG,EAAGA,IAE3B6xN,EAAO7xN,GAAG4V,IAAMi8M,EAAO7xN,GAAG4V,KAAOA,GAAgB,SAAVjQ,eAC/B,SAASuM,KACfrK,KAAK1F,KAAMyT,EAAI47C,IAClB3nD,KAAKshF,EAAM0mI,EAAO7xN,GAAGkS,IAAK,GAGxB2/M,EAAO7xN,GAAG40G,QACPQ,IAAIzvG,EAAOksN,EAAO7xN,GAAGkS,GAAI2/M,EAAO7xN,GAAG4V,cAMzCo5M,WAAWrpN,GAETwlF,GAST6jI,WAAY,SAASrpN,OACfwlF,EAAOhpF,QAEPgpF,EAAK2hI,OAAO9rN,OAAS,EAAG,KACtB+wN,EAAO5mI,EAAK2hI,OAAO,GAGnBiF,EAAKpsN,QAAUA,MACZmnN,OAAOt6M,UACPw8M,cAIFrpN,KACEkwB,gBAIFs1D,GAQT0jI,OAAQ,SAASluL,OACXwqD,EAAOhpF,KACPoqN,EAAS5rL,EAAM2rL,YAKdnhI,EAAKq8H,WAAa7mL,EAAMinL,QAAUjnL,EAAMinL,MAAMkI,SAAWnvL,EAAMinL,MAAMptJ,OAAS75B,EAAMinL,MAAML,YAAc5mL,EAAM0uL,wBACtGlkI,EAAK0jI,OAAOhlN,KAAKshF,EAAMxqD,GAAQ,KACnCwqD,MAIL6gI,OAAgBD,QAAS5gI,EAAKmhI,QAAQC,GAAQ,SAG7CnmH,MAAM,MAAOzlE,EAAMgmI,MAGnBx7E,EAAKq8H,WAAawE,KAChBhgH,KAAKrrE,EAAMgmI,KAAK,GAAMokD,KAAKpqL,EAAMgmI,KAIpCx7E,EAAKq8H,WAAawE,EAAM,GACrB5lH,MAAM,OAAQzlE,EAAMgmI,OACnBuoD,MAAQvuL,EAAMyuL,QAAU,IACxBe,UAAY,IACZX,WAAatJ,EAAOc,IAAIO,gBAE1B5mH,EAA0C,OAAxB0uH,MAAQ1uL,EAAMyuL,QAAkBtkN,KAAKwkE,IAAI3uC,EAAMyrL,SAChES,WAAWlsL,EAAMgmI,KAAO58J,WAAWohF,EAAK0jI,OAAOhlN,KAAKshF,EAAMxqD,GAAQggE,UAIrExV,EAAKq8H,YAAcwE,MACfZ,SAAU,IACVyD,QAAS,IACTK,MAAQvuL,EAAMyuL,QAAU,IACxBe,UAAY,IACbR,YAAYhvL,EAAMgmI,OAGlB2pD,aAAa3vL,EAAMinL,SAGjBM,gBAIJ/8H,EAAKq8H,WAAcwE,KACjBhgH,KAAKrrE,EAAMgmI,KAAK,GAGhBx7E,GAQTwkI,YAAa,SAAS/5M,OAChBu1E,EAAOhpF,QAEPgpF,EAAK0hI,WAAWj3M,GAAK,IAEY,mBAAxBu1E,EAAK0hI,WAAWj3M,gBACZu1E,EAAK0hI,WAAWj3M,QACxB,KACD+qB,EAAQwqD,EAAKw8H,WAAW/xM,GACxB+qB,GAASA,EAAMinL,SACXA,MAAMpiN,oBAAoB,QAAS2lF,EAAK0hI,WAAWj3M,IAAK,UAI3Du1E,EAAK0hI,WAAWj3M,UAGlBu1E,GAQTw8H,WAAY,SAAS/xM,WACfu1E,EAAOhpF,KAGFnC,EAAE,EAAGA,EAAEmrF,EAAKggI,QAAQnqN,OAAQhB,OAC/B4V,IAAOu1E,EAAKggI,QAAQnrN,GAAG2mK,WAClBx7E,EAAKggI,QAAQnrN,UAIjB,MAOT8uN,eAAgB,eACV3jI,EAAOhpF,OAEN6vN,iBAGIhyN,EAAE,EAAGA,EAAEmrF,EAAKggI,QAAQnqN,OAAQhB,OAC/BmrF,EAAKggI,QAAQnrN,GAAG6uN,cACX1jI,EAAKggI,QAAQnrN,GAAG2V,eAKpB,IAAIg5M,EAAMxjI,IAMnB6mI,OAAQ,eACF7mI,EAAOhpF,KACPowB,EAAQ44D,EAAK8gI,MACbgG,EAAM,EACNjyN,EAAI,OAGJmrF,EAAKggI,QAAQnqN,OAASuxB,QAKrBvyB,EAAE,EAAGA,EAAEmrF,EAAKggI,QAAQnqN,OAAQhB,IAC3BmrF,EAAKggI,QAAQnrN,GAAG6uN,gBAMjB7uN,EAAEmrF,EAAKggI,QAAQnqN,OAAS,EAAGhB,GAAG,EAAGA,IAAK,IACrCiyN,GAAO1/L,SAIP44D,EAAKggI,QAAQnrN,GAAG6uN,SAEd1jI,EAAKq8H,WAAar8H,EAAKggI,QAAQnrN,GAAG4nN,SAC/BuD,QAAQnrN,GAAG4nN,MAAMgD,WAAW,KAI9BO,QAAQ7hN,OAAOtJ,EAAG,WAW7B0nN,aAAc,SAAS9xM,WAGH,IAAPA,EAAoB,SACzB6xM,EAAM,GACDznN,EAAE,EAAGA,EAJLmC,KAIYgpN,QAAQnqN,OAAQhB,MAC/BiB,KALGkB,KAKOgpN,QAAQnrN,GAAG2mK,YAGpB8gD,QAEA,CAAC7xM,IASZ25M,eAAgB,SAAS5uL,YAIjBinL,MAAM6H,aAAevJ,EAAOc,IAAIuD,uBAChC3C,MAAM6H,aAAanvM,OAAS2rH,EAJvB9pI,KAIkCqqN,MAGzC7rL,EAAMuxL,UACFtK,MAAM6H,aAAajF,QAAQ7pL,EAAMuxL,WAEjCtK,MAAM6H,aAAajF,QAAQ7pL,EAAMinL,SAInCA,MAAM6H,aAAazD,KAAOrrL,EAAMorL,MAClCprL,EAAMorL,UACFnE,MAAM6H,aAAawB,UAAYtwL,EAAMyuL,QAAU,IAC/CxH,MAAM6H,aAAayB,QAAUvwL,EAAM0uL,OAAS,KAE9CzH,MAAM6H,aAAaI,aAAavI,eAAe3mL,EAAMyrL,MAAOlG,EAAOc,IAAIO,aAnBlEplN,MA6BbmuN,aAAc,SAAS1jN,OAEjBguF,EAAQsrH,EAAOS,YAAcT,EAAOS,WAAWwL,OAAO7vN,QAAQ,UAAY,KAE1E4jN,EAAO+D,gBAAkBr9M,EAAK6iN,iBAC3BA,aAAa9E,QAAU,OACvB8E,aAAa7E,WAAW,GACzBhwH,SACS60H,aAAanvM,OAAS4lM,EAAO+D,qBAAwB5mN,aAG/DosN,aAAe,KAVTttN,MAmBbouN,YAAa,SAAS3jN,GACN,kBAAkB/H,KAAKqhN,EAAOS,YAAcT,EAAOS,WAAWjtH,eAErEwV,IAAM,gGAYby/G,EAAQ,SAASyD,QACdC,QAAUD,OACV55G,UAEDtyG,UAAY,CAKhBsyG,KAAM,eACArtB,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,iBAGb7L,OAASv+L,EAAOu+L,SAChBuF,MAAQ9jM,EAAO8jM,QACftF,QAAUx+L,EAAOw+L,UACjB2F,MAAQnkM,EAAOmkM,QACf8C,MAAQ,IACR9D,SAAU,IACVyD,QAAS,IACTvC,QAAU,cAGV3lD,MAAQu/C,EAAOC,WAGbgF,QAAQlqN,KAAKkqF,KAGf58E,SAEE48E,GAOT58E,OAAQ,eACF48E,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,QACdlL,EAAUjB,EAAOM,QAAUr7H,EAAKq7H,QAAUr7H,EAAKknI,QAAQ7L,OAAU,EAAIr7H,EAAKs7H,eAE1Ex+L,EAAOu/L,aAEJI,WAA0C,IAA1B1B,EAAOc,IAAIsL,WAA8BpM,EAAOc,IAAIuL,iBAAmBrM,EAAOc,IAAIsL,eAClG1K,MAAMP,KAAKC,eAAeH,EAAQjB,EAAOc,IAAIO,eAC7CK,MAAMkI,QAAS,IACflI,MAAM4C,QAAQtE,EAAOU,aAChBV,EAAOW,YAEZe,MAAQ1B,EAAO2E,sBAGf4G,SAAWtmI,EAAKqnI,eAAe3oN,KAAKshF,KACpCy8H,MAAMviN,iBAAiB,QAAS8lF,EAAKsmI,UAAU,KAG/CC,QAAUvmI,EAAKsnI,cAAc5oN,KAAKshF,KAClCy8H,MAAMviN,iBAAiB6gN,EAAOQ,cAAev7H,EAAKumI,SAAS,KAI3DC,OAASxmI,EAAKunI,aAAa7oN,KAAKshF,KAChCy8H,MAAMviN,iBAAiB,QAAS8lF,EAAKwmI,QAAQ,KAG7C/J,MAAM14G,IAAMjnF,EAAOukM,OACnB5E,MAAMuE,SAA8B,IAApBlkM,EAAOikM,SAAoB,OAASjkM,EAAOikM,WAC3DtE,MAAMT,OAASA,EAASjB,EAAOiB,WAG/BS,MAAMnhI,QAGN0E,GAOTx1E,MAAO,eACDw1E,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,iBAGb7L,OAASv+L,EAAOu+L,SAChBuF,MAAQ9jM,EAAO8jM,QACftF,QAAUx+L,EAAOw+L,UACjB2F,MAAQnkM,EAAOmkM,QACf8C,MAAQ,IACRiB,UAAY,IACZ/E,SAAU,IACVyD,QAAS,IACTvC,QAAU,cAGV3lD,MAAQu/C,EAAOC,SAEbh7H,GAMTqnI,eAAgB,eACVrnI,EAAOhpF,OAGNkwN,QAAQjsH,MAAM,YAAajb,EAAKw7E,IAAKx7E,EAAKy8H,MAAMj1M,MAAQw4E,EAAKy8H,MAAMj1M,MAAMm4K,KAAO,KAGhF88B,MAAMpiN,oBAAoB,QAAS2lF,EAAKsmI,UAAU,IAMzDgB,cAAe,eACTtnI,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,UAGX1F,UAAY7hN,KAAK+/I,KAA2B,GAAtB1/D,EAAKy8H,MAAMpiM,UAAiB,GAGd,IAAvClX,OAAOyL,KAAKkO,EAAOqkM,SAAStrN,WACvBsrN,QAAU,CAACqG,UAAW,CAAC,EAAsB,IAAnB1qM,EAAO0kM,aAGpB,WAAlB1kM,EAAO2kM,WACFA,OAAS,WACTxmH,MAAM,UACN4oH,gBAIJpH,MAAMpiN,oBAAoB0gN,EAAOQ,cAAev7H,EAAKumI,SAAS,IAMrEgB,aAAc,eACRvnI,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,QAGdpqM,EAAO0kM,YAAcx0M,EAAAA,MAGhBw0M,UAAY7hN,KAAK+/I,KAA2B,GAAtB1/D,EAAKy8H,MAAMpiM,UAAiB,GAGrDyC,EAAOqkM,QAAQqG,UAAU,KAAOx6M,EAAAA,MAC3Bm0M,QAAQqG,UAAU,GAAwB,IAAnB1qM,EAAO0kM,aAIhCkC,OAAO1jI,MAIXy8H,MAAMpiN,oBAAoB,QAAS2lF,EAAKwmI,QAAQ,SAOrD1lF,EAAQ,GAMR2mF,EAAa,SAASznI,OACpBjhF,EAAMihF,EAAKqhI,QAGXvgF,EAAM/hI,YAEHyiN,UAAY1gF,EAAM/hI,GAAKsb,gBAGlB2lE,MAKR,sBAAsBtmF,KAAKqF,GAAM,SAE/BtC,EAAOirN,KAAK3oN,EAAIO,MAAM,KAAK,IAC3BqoN,EAAW,IAAIp/M,WAAW9L,EAAK5G,QAC1BhB,EAAE,EAAGA,EAAE4H,EAAK5G,SAAUhB,IACpBA,GAAK4H,EAAK8vD,WAAW13D,KAGhB8yN,EAASxyM,OAAQ6qE,OAC5B,KAEDwoB,EAAM,IAAIC,iBACVC,KAAK1oB,EAAKshI,KAAKv2J,OAAQhsD,GAAK,KAC5BwiN,gBAAkBvhI,EAAKshI,KAAKC,kBAC5BqG,aAAe,cAGf5nI,EAAKshI,KAAKnmI,gBACLvsE,KAAKoxE,EAAKshI,KAAKnmI,SAASx/E,SAAQ,SAASvF,KAC1CyxN,iBAAiBzxN,EAAK4pF,EAAKshI,KAAKnmI,QAAQ/kF,SAI5C4yG,OAAS,eAEP5rD,KAAYwN,OAAS,IAAI,GAChB,MAATxN,GAAyB,MAATA,GAAyB,MAATA,IAKpBorD,EAAIs/G,SAAU9nI,KAJvBib,MAAM,YAAa,KAAM,0CAA4CuN,EAAI59C,OAAS,QAMvFm9J,QAAU,WAER/nI,EAAKq8H,cACFqE,QAAS,IACTrE,WAAY,IACZ2D,QAAU,UACRl/E,EAAM/hI,KACRu8E,WAGGktB,KAQZw/G,EAAc,SAASx/G,SAEnBM,aACG5wG,KACH6vN,YASJE,EAAkB,SAASC,EAAaloI,OAEtCx4E,EAAQ,aACLyzF,MAAM,YAAa,KAAM,gCAI5B8V,EAAU,SAAS+gF,GACjBA,GAAU9xG,EAAKggI,QAAQnqN,OAAS,KAC5BmqF,EAAKqhI,MAAQvvB,IACT9xG,EAAM8xG,SAOG,oBAAZtzL,SAAiE,IAAtCu8M,EAAOc,IAAIoM,gBAAgBpyN,SACxDgmN,IAAIoM,gBAAgBC,GAAazpN,KAAKsyG,GAAS8uG,MAAMr4M,KAErDq0M,IAAIoM,gBAAgBC,EAAan3G,EAASvpG,IASjD2gN,EAAY,SAASnoI,EAAM8xG,GAEzBA,IAAW9xG,EAAKwhI,cACbA,UAAY1vB,EAAOz3K,UAIe,IAArClX,OAAOyL,KAAKoxE,EAAKmhI,SAAStrN,WACvBsrN,QAAU,CAACqG,UAAW,CAAC,EAAoB,IAAjBxnI,EAAKwhI,aAIlB,WAAhBxhI,EAAKyhI,WACFA,OAAS,WACTxmH,MAAM,UACN4oH,eAOLuE,EAAoB,cAEjBrN,EAAOY,mBAMkB,oBAAjB0M,eACFxM,IAAM,IAAIwM,aACsB,oBAAvBC,qBACTzM,IAAM,IAAIyM,qBAEV3M,eAAgB,QAEnBzjN,KACCyjN,eAAgB,EAIpBZ,EAAOc,QACHF,eAAgB,OAKrB4M,EAAO,iBAAiB7uN,KAAKqhN,EAAOS,YAAcT,EAAOS,WAAWntH,UACpEm6H,EAAazN,EAAOS,YAAcT,EAAOS,WAAWgN,WAAWppN,MAAM,0BACrE08J,EAAU0sD,EAAap7M,SAASo7M,EAAW,GAAI,IAAM,QACrDD,GAAOzsD,GAAWA,EAAU,EAAG,KAC7B2sD,EAAS,SAAS/uN,KAAKqhN,EAAOS,YAAcT,EAAOS,WAAWjtH,UAAUx0F,eACxEghN,EAAOS,aAAeiN,MACjB9M,eAAgB,GAKvBZ,EAAOY,kBACFF,gBAA+C,IAA1BV,EAAOc,IAAIsL,WAA8BpM,EAAOc,IAAIuL,iBAAmBrM,EAAOc,IAAIsL,eACvG1L,WAAWS,KAAKC,eAAepB,EAAOM,OAAS,EAAIN,EAAOO,QAASP,EAAOc,IAAIO,eAC9EX,WAAW4D,QAAQtE,EAAOc,IAAIh1L,gBAIhCk1L,oBAeUhB,SACFsF,OAIK,IAAXhjI,OACFqrI,aAAe5N,KACf6N,OAAS5N,KACT6N,KAAOvI,KACPwI,MAAQrF,GACY,oBAAXjjK,gBACTmoK,aAAe5N,SACf6N,OAAS5N,SACT6N,KAAOvI,SACPwI,MAAQrF,GA1gFlB;;;;;;;;;;;;AA2hFA,WAgIwB,IAAS59C,eA3HnB7qK,UAAUk2M,KAAO,CAAC,EAAG,EAAG,gBACxBl2M,UAAU+tN,aAAe,CAAC,EAAG,KAAO,EAAG,EAAG,gBAW1C/tN,UAAUguN,OAAS,SAASC,OACnChpI,EAAOhpF,SAGNgpF,EAAK67H,MAAQ77H,EAAK67H,IAAI9xM,gBAClBi2E,UAIAnrF,EAAEmrF,EAAKo7H,OAAOvlN,OAAO,EAAGhB,GAAG,EAAGA,MAChCumN,OAAOvmN,GAAGk0N,OAAOC,UAGjBhpI,gBAWIjlF,UAAUynD,IAAM,SAAS5nD,EAAGqB,EAAGgtN,OACtCjpI,EAAOhpF,YAGNgpF,EAAK67H,KAAQ77H,EAAK67H,IAAI9xM,YAKT,iBAAN9N,EAAkB+jF,EAAKixH,KAAK,GAAKh1M,IAC3B,iBAANgtN,EAAkBjpI,EAAKixH,KAAK,GAAKgY,EAE5B,iBAANruN,EAWFolF,EAAKixH,QAVPA,KAAO,CAACr2M,EAAGqB,EAAGgtN,QAEwB,IAAhCjpI,EAAK67H,IAAI9xM,SAASm/M,aACtBrN,IAAI9xM,SAASm/M,UAAUC,gBAAgBnpI,EAAKixH,KAAK,GAAI0X,OAAO9M,IAAIO,YAAa,MAC7EP,IAAI9xM,SAASq/M,UAAUD,gBAAgBnpI,EAAKixH,KAAK,GAAI0X,OAAO9M,IAAIO,YAAa,MAC7EP,IAAI9xM,SAASs/M,UAAUF,gBAAgBnpI,EAAKixH,KAAK,GAAI0X,OAAO9M,IAAIO,YAAa,OAE7EP,IAAI9xM,SAASu3F,YAAYthB,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,IAMjEjxH,IArBEA,gBAsCEjlF,UAAUuuN,YAAc,SAAS1uN,EAAGqB,EAAGgtN,EAAGM,EAAKC,EAAKC,OAC3DzpI,EAAOhpF,SAGNgpF,EAAK67H,MAAQ77H,EAAK67H,IAAI9xM,gBAClBi2E,MAILyuG,EAAKzuG,EAAK8oI,sBACI,iBAAN7sN,EAAkBwyL,EAAG,GAAKxyL,IACpB,iBAANgtN,EAAkBx6B,EAAG,GAAKw6B,IAChB,iBAARM,EAAoB96B,EAAG,GAAK86B,IACpB,iBAARC,EAAoB/6B,EAAG,GAAK+6B,IACpB,iBAARC,EAAoBh7B,EAAG,GAAKg7B,EAEzB,iBAAN7uN,EAcF6zL,KAbFq6B,aAAe,CAACluN,EAAGqB,EAAGgtN,EAAGM,EAAKC,EAAKC,QAEE,IAA/BzpI,EAAK67H,IAAI9xM,SAAS2/M,YACtB7N,IAAI9xM,SAAS2/M,SAASP,gBAAgBvuN,EAAG+tN,OAAO9M,IAAIO,YAAa,MACjEP,IAAI9xM,SAAS4/M,SAASR,gBAAgBltN,EAAG0sN,OAAO9M,IAAIO,YAAa,MACjEP,IAAI9xM,SAAS6/M,SAAST,gBAAgBF,EAAGN,OAAO9M,IAAIO,YAAa,MACjEP,IAAI9xM,SAAS8/M,IAAIV,gBAAgBI,EAAKZ,OAAO9M,IAAIO,YAAa,MAC9DP,IAAI9xM,SAAS+/M,IAAIX,gBAAgBK,EAAKb,OAAO9M,IAAIO,YAAa,MAC9DP,IAAI9xM,SAASggN,IAAIZ,gBAAgBM,EAAKd,OAAO9M,IAAIO,YAAa,OAE9DP,IAAI9xM,SAASigN,eAAepvN,EAAGqB,EAAGgtN,EAAGM,EAAKC,EAAKC,GAMjDzpI,SAWJjlF,UAAUsyG,MAAiBu4D,EA2B7BgjD,KAAK7tN,UAAUsyG,KA1BT,SAAS53G,OACVuqF,EAAOhpF,cAGN8xN,aAAerzN,EAAE6zN,aAAe,CAAC,EAAG,EAAG,KACvCW,QAAUx0N,EAAEszN,QAAU,OACtB9X,KAAOx7M,EAAE+sD,KAAO,OAChB0nK,YAAc,CACjBC,oBAA4C,IAArB10N,EAAE00N,eAAiC10N,EAAE00N,eAAiB,IAC7EC,oBAA4C,IAArB30N,EAAE20N,eAAiC30N,EAAE20N,eAAiB,IAC7EC,mBAA0C,IAApB50N,EAAE40N,cAAgC50N,EAAE40N,cAAgB,EAC1EC,mBAA0C,IAApB70N,EAAE60N,cAAgC70N,EAAE60N,cAAgB,UAC1EC,iBAAsC,IAAlB90N,EAAE80N,YAA8B90N,EAAE80N,YAAc,IACpEC,kBAAwC,IAAnB/0N,EAAE+0N,aAA+B/0N,EAAE+0N,aAAe,OACvEC,iBAAsC,IAAlBh1N,EAAEg1N,YAA8Bh1N,EAAEg1N,YAAc,EACpEC,mBAA0C,IAApBj1N,EAAEi1N,cAAgCj1N,EAAEi1N,cAAgB,KAIvEC,UAAYl1N,EAAEm1N,SAAW,CAAC,CAAC7jN,GAAItR,EAAEm1N,WAAa,KAC9CC,OAASp1N,EAAEq1N,MAAQ,CAAC,CAAC/jN,GAAItR,EAAEq1N,QAAU,KACrCC,eAAiBt1N,EAAEu1N,cAAgB,CAAC,CAACjkN,GAAItR,EAAEu1N,gBAAkB,GAG3DplD,EAAOlpK,KAAK1F,KAAMvB,UAUxBsF,UAAUguN,OAAS,SAASC,EAAKv+M,OAChCu1E,EAAOhpF,SAGNgpF,EAAKq8H,iBACDr8H,KAIW,WAAhBA,EAAKyhI,gBACFE,OAAO7rN,KAAK,CACf0E,MAAO,SACPkwB,OAAQ,aACDq+L,OAAOC,EAAKv+M,MAIdu1E,MAILirI,OAAuD,IAAlCtC,OAAO9M,IAAIqP,mBAAsC,UAAY,iBAGpE,IAAPzgN,EAAoB,IAEV,iBAARu+M,SAIFhpI,EAAKiqI,UAHPA,QAAUjB,IACV/X,KAAO,CAAC+X,EAAK,EAAG,WAOrB1M,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,KAE3B2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,OAE5B2gC,EAAO,IACU,iBAARwzL,SA4BFxzL,EAAMy0L,UA3BPA,QAAUjB,IACV/X,KAAO,CAAC+X,EAAK,EAAG,GAElBxzL,EAAMinL,UAEFyN,YAAYM,aAAe,aAG5Bh1L,EAAMuxL,SAAYvxL,EAAMuxL,QAAQiC,OACvBxzL,EAAOy1L,GAGF,YAAfA,OACqC,IAA5Bz1L,EAAMuxL,QAAQmC,aACjBnC,QAAQmC,UAAU/M,eAAe6M,EAAKL,OAAO9M,IAAIO,eACjD2K,QAAQqC,UAAUjN,eAAe,EAAGwM,OAAO9M,IAAIO,eAC/C2K,QAAQsC,UAAUlN,eAAe,EAAGwM,OAAO9M,IAAIO,gBAE/C2K,QAAQzlH,YAAY0nH,EAAK,EAAG,KAG9BjC,QAAQiC,IAAI7M,eAAe6M,EAAKL,OAAO9M,IAAIO,gBAIhDnhH,MAAM,SAAUzlE,EAAMgmI,aAO1Bx7E,QAWJjlF,UAAUynD,IAAM,SAAS5nD,EAAGqB,EAAGgtN,EAAGx+M,OACjCu1E,EAAOhpF,SAGNgpF,EAAKq8H,iBACDr8H,KAIW,WAAhBA,EAAKyhI,gBACFE,OAAO7rN,KAAK,CACf0E,MAAO,MACPkwB,OAAQ,aACD83B,IAAI5nD,EAAGqB,EAAGgtN,EAAGx+M,MAIfu1E,OAIS,iBAAN/jF,EAAkB,EAAIA,IAChB,iBAANgtN,MAAyBA,OAGnB,IAAPx+M,EAAoB,IAEZ,iBAAN7P,SAGFolF,EAAKixH,OAFPA,KAAO,CAACr2M,EAAGqB,EAAGgtN,WAOnB3M,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,KAE3B2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,OAE5B2gC,EAAO,IACQ,iBAAN56B,SAoBF46B,EAAMy7K,OAnBPA,KAAO,CAACr2M,EAAGqB,EAAGgtN,GAEhBzzL,EAAMinL,QAEHjnL,EAAMuxL,UAAWvxL,EAAMuxL,QAAQiC,OACtBxzL,EAAO,gBAGkB,IAA5BA,EAAMuxL,QAAQmC,aACjBnC,QAAQmC,UAAU/M,eAAevhN,EAAG+tN,OAAO9M,IAAIO,eAC/C2K,QAAQqC,UAAUjN,eAAelgN,EAAG0sN,OAAO9M,IAAIO,eAC/C2K,QAAQsC,UAAUlN,eAAe8M,EAAGN,OAAO9M,IAAIO,gBAE/C2K,QAAQzlH,YAAY1mG,EAAGqB,EAAGgtN,MAI/BhuH,MAAM,MAAOzlE,EAAMgmI,aAOvBx7E,QAaJjlF,UAAUuuN,YAAc,SAAS1uN,EAAGqB,EAAGgtN,EAAGx+M,OACzCu1E,EAAOhpF,SAGNgpF,EAAKq8H,iBACDr8H,KAIW,WAAhBA,EAAKyhI,gBACFE,OAAO7rN,KAAK,CACf0E,MAAO,cACPkwB,OAAQ,aACD4+L,YAAY1uN,EAAGqB,EAAGgtN,EAAGx+M,MAIvBu1E,OAIS,iBAAN/jF,EAAkB+jF,EAAK8oI,aAAa,GAAK7sN,IACnC,iBAANgtN,EAAkBjpI,EAAK8oI,aAAa,GAAKG,OAGnC,IAAPx+M,EAAoB,IAEZ,iBAAN7P,SAGFolF,EAAK8oI,eAFPA,aAAe,CAACluN,EAAGqB,EAAGgtN,WAO3B3M,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,IAAK,KAE3B2gC,EAAQwqD,EAAKw8H,WAAWF,EAAIznN,OAE5B2gC,EAAO,IACQ,iBAAN56B,SAyBF46B,EAAMszL,eAxBPA,aAAe,CAACluN,EAAGqB,EAAGgtN,GAExBzzL,EAAMinL,QAEHjnL,EAAMuxL,UAEJvxL,EAAMy7K,SACHA,KAAOjxH,EAAKixH,MAAQ,CAAC,EAAG,UAGpBz7K,EAAO,iBAGqB,IAA/BA,EAAMuxL,QAAQoE,gBACjBpE,QAAQoE,aAAahP,eAAevhN,EAAG+tN,OAAO9M,IAAIO,eAClD2K,QAAQqE,aAAajP,eAAelgN,EAAG0sN,OAAO9M,IAAIO,eAClD2K,QAAQsE,aAAalP,eAAe8M,EAAGN,OAAO9M,IAAIO,gBAElD2K,QAAQiD,eAAepvN,EAAGqB,EAAGgtN,MAIlChuH,MAAM,cAAezlE,EAAMgmI,aAO/Bx7E,QAiCJjlF,UAAUuwN,WAAa,eAGtB71N,EAAGgV,EAAI+qB,EAFPwqD,EAAOhpF,KACPgV,EAAOrW,cAINqqF,EAAKq8H,iBACDr8H,KAIW,IAAhBh0E,EAAKnW,cAEAmqF,EAAKkqI,eACa,IAAhBl+M,EAAKnW,OAAc,IACL,iBAAZmW,EAAK,YA+BNg0E,EAAKw8H,WAAWpvM,SAASpB,EAAK,GAAI,MAC3BwpB,EAAM00L,YAAclqI,EAAKkqI,cA/BpCl+M,EAAK,QAGS,IAAPvB,IACJhV,EAAE61N,eACHA,WAAa,CACbnB,eAAgB10N,EAAE00N,eAClBC,eAAgB30N,EAAE20N,eAClBC,cAAe50N,EAAE40N,cACjBC,cAAe70N,EAAE60N,cACjBC,YAAa90N,EAAE80N,YACfE,YAAah1N,EAAEg1N,YACfC,cAAej1N,EAAEi1N,cACjBF,aAAc/0N,EAAE+0N,iBAIfN,YAAc,CACjBC,oBAAuD,IAAhC10N,EAAE61N,WAAWnB,eAAiC10N,EAAE61N,WAAWnB,eAAiBnqI,EAAKurI,gBACxGnB,oBAAuD,IAAhC30N,EAAE61N,WAAWlB,eAAiC30N,EAAE61N,WAAWlB,eAAiBpqI,EAAKwrI,gBACxGnB,mBAAqD,IAA/B50N,EAAE61N,WAAWjB,cAAgC50N,EAAE61N,WAAWjB,cAAgBrqI,EAAKyrI,eACrGnB,mBAAqD,IAA/B70N,EAAE61N,WAAWhB,cAAgC70N,EAAE61N,WAAWhB,cAAgBtqI,EAAK0rI,eACrGnB,iBAAiD,IAA7B90N,EAAE61N,WAAWf,YAA8B90N,EAAE61N,WAAWf,YAAcvqI,EAAK2rI,aAC/FlB,iBAAiD,IAA7Bh1N,EAAE61N,WAAWb,YAA8Bh1N,EAAE61N,WAAWb,YAAczqI,EAAK4rI,aAC/FlB,mBAAqD,IAA/Bj1N,EAAE61N,WAAWZ,cAAgCj1N,EAAE61N,WAAWZ,cAAgB1qI,EAAK6rI,eACrGrB,kBAAmD,IAA9B/0N,EAAE61N,WAAWd,aAA+B/0N,EAAE61N,WAAWd,aAAexqI,EAAK8rI,qBAQ/E,IAAhB9/M,EAAKnW,WACVmW,EAAK,KACJoB,SAASpB,EAAK,GAAI,aAIrBswM,EAAMt8H,EAAKu8H,aAAa9xM,GACnB5V,EAAE,EAAGA,EAAEynN,EAAIzmN,OAAQhB,SAClBmrF,EAAKw8H,WAAWF,EAAIznN,IAEjB,KAELk3N,EAAKv2L,EAAM00L,cACV,CACHC,oBAA4C,IAArB10N,EAAE00N,eAAiC10N,EAAE00N,eAAiB4B,EAAG5B,eAChFC,oBAA4C,IAArB30N,EAAE20N,eAAiC30N,EAAE20N,eAAiB2B,EAAG3B,eAChFC,mBAA0C,IAApB50N,EAAE40N,cAAgC50N,EAAE40N,cAAgB0B,EAAG1B,cAC7EC,mBAA0C,IAApB70N,EAAE60N,cAAgC70N,EAAE60N,cAAgByB,EAAGzB,cAC7EC,iBAAsC,IAAlB90N,EAAE80N,YAA8B90N,EAAE80N,YAAcwB,EAAGxB,YACvEE,iBAAsC,IAAlBh1N,EAAEg1N,YAA8Bh1N,EAAEg1N,YAAcsB,EAAGtB,YACvEC,mBAA0C,IAApBj1N,EAAEi1N,cAAgCj1N,EAAEi1N,cAAgBqB,EAAGrB,cAC7EF,kBAAwC,IAAnB/0N,EAAE+0N,aAA+B/0N,EAAE+0N,aAAeuB,EAAGvB,kBAIxEwB,EAASx2L,EAAMuxL,QACfiF,KACK7B,eAAiB4B,EAAG5B,iBACpBC,eAAiB2B,EAAG3B,iBACpBC,cAAgB0B,EAAG1B,gBACnBC,cAAgByB,EAAGzB,gBACnBC,YAAcwB,EAAGxB,cACjBE,YAAcsB,EAAGtB,cACjBC,cAAgBqB,EAAGrB,gBACnBF,aAAeuB,EAAGvB,eAGpBh1L,EAAMy7K,SACHA,KAAOjxH,EAAKixH,MAAQ,CAAC,EAAG,UAIpBz7K,EAAO,mBAKlBwqD,SAWHjlF,UAAUsyG,KAAQ,SAASu4D,UACxB,eACD5lF,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,UAGb4B,aAAehsM,EAAOgsM,eACtBmB,QAAUntM,EAAOmtM,UACjBhZ,KAAOn0L,EAAOm0L,OACdiZ,YAAcptM,EAAOotM,cAGnBxtN,KAAK1F,MAGRgpF,EAAKiqI,UACAlB,OAAO/oI,EAAKiqI,SACVjqI,EAAKixH,QACPzuJ,IAAIw9B,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,GAAIjxH,EAAKw7E,MAlBxC,CAqBrBqtD,MAAM9tN,UAAUsyG,YAObtyG,UAAUyP,MAAS,SAASo7J,UACzB,eACD5lF,EAAOhpF,KACP8lB,EAASkjE,EAAKknI,iBAGb4B,aAAehsM,EAAOgsM,eACtBmB,QAAUntM,EAAOmtM,UACjBhZ,KAAOn0L,EAAOm0L,OACdiZ,YAAcptM,EAAOotM,YAGtBlqI,EAAKiqI,UACAlB,OAAO/oI,EAAKiqI,SACVjqI,EAAKixH,OACPzuJ,IAAIw9B,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,GAAIjxH,EAAKixH,KAAK,GAAIjxH,EAAKw7E,KACjDx7E,EAAK+mI,YAETA,QAAQtH,WAAW,KACnBsH,aAAU,IACR3C,eAAepkI,IAIjB4lF,EAAOlpK,KAAK1F,OAxBE,CA0BtB6xN,MAAM9tN,UAAUyP,WAUfyhN,EAAc,SAASz2L,EAAOn0B,GAInB,eAHNA,GAAQ,cAIP0lN,QAAU4B,OAAO9M,IAAIqQ,iBACrBnF,QAAQoD,eAAiB30L,EAAM00L,YAAYC,iBAC3CpD,QAAQqD,eAAiB50L,EAAM00L,YAAYE,iBAC3CrD,QAAQsD,cAAgB70L,EAAM00L,YAAYG,gBAC1CtD,QAAQuD,cAAgB90L,EAAM00L,YAAYI,gBAC1CvD,QAAQwD,YAAc/0L,EAAM00L,YAAYK,cACxCxD,QAAQ0D,YAAcj1L,EAAM00L,YAAYO,cACxC1D,QAAQ2D,cAAgBl1L,EAAM00L,YAAYQ,gBAC1C3D,QAAQyD,aAAeh1L,EAAM00L,YAAYM,kBAER,IAA5Bh1L,EAAMuxL,QAAQmC,aACjBnC,QAAQmC,UAAU/M,eAAe3mL,EAAMy7K,KAAK,GAAI0X,OAAO9M,IAAIO,eAC3D2K,QAAQqC,UAAUjN,eAAe3mL,EAAMy7K,KAAK,GAAI0X,OAAO9M,IAAIO,eAC3D2K,QAAQsC,UAAUlN,eAAe3mL,EAAMy7K,KAAK,GAAI0X,OAAO9M,IAAIO,gBAE3D2K,QAAQzlH,YAAY9rE,EAAMy7K,KAAK,GAAIz7K,EAAMy7K,KAAK,GAAIz7K,EAAMy7K,KAAK,SAG3B,IAA/Bz7K,EAAMuxL,QAAQoE,gBACjBpE,QAAQoE,aAAahP,eAAe3mL,EAAMszL,aAAa,GAAIH,OAAO9M,IAAIO,eACtE2K,QAAQqE,aAAajP,eAAe3mL,EAAMszL,aAAa,GAAIH,OAAO9M,IAAIO,eACtE2K,QAAQsE,aAAalP,eAAe3mL,EAAMszL,aAAa,GAAIH,OAAO9M,IAAIO,gBAEtE2K,QAAQiD,eAAex0L,EAAMszL,aAAa,GAAItzL,EAAMszL,aAAa,GAAItzL,EAAMszL,aAAa,QAG1F/B,QAAU4B,OAAO9M,IAAIqP,uBACrBnE,QAAQiC,IAAI7M,eAAe3mL,EAAMy0L,QAAStB,OAAO9M,IAAIO,gBAGvD2K,QAAQ1H,QAAQ7pL,EAAMinL,OAGvBjnL,EAAMyqL,WACHiH,QAAQnC,MAAMvvL,EAAMgmI,KAAK,GAAMokD,KAAKpqL,EAAMgmI,KAAK,IAjoB1D,QDlgFD,IAAI2wD,GAvBK,CACLnS,QAAS,KACTC,QAAQ,EACRC,WAAY,KACZC,KAAK,EACLC,WAAW,EACXC,aAAc,GACd97E,UAAW,KACX+7E,WAAY,YACZC,QAAQ,EACRC,UAAU,EACVjgH,SAAU,KACVkgH,UAAU,EACVC,UAAW,KACXpwM,QAAQ,EACRqwM,YAAY,EACZC,aAAa,EACb7oF,UAAW,KACXkS,WAAY,KACZ42E,OAAO,GAaX,MAAMuR,GAAa,UACbC,GAAgB,WAChBC,GAAqB,qBACrBC,GAAwB,sBACxBC,GAAqB,CACzBl+C,IAAK,QACLK,IAAK,OACLC,IAAK,OACLlpD,IAAK,SACLC,IAAK,SAED8mG,GAAwBl6G,GAAOi6G,GAAmBj6G,GACxD,YAAgBlR,EAAMtzC,MAChBA,MACEq+J,GAAW1yN,KAAK2nG,UACXA,EAAKvnG,QAAQuyN,GAAeI,YAGjCH,GAAmB5yN,KAAK2nG,UACnBA,EAAKvnG,QAAQyyN,GAAuBE,WAIxCprH,EAGT,MAAMqrH,GAAe,6CAErB,YAAkBrrH,UAETA,EAAKvnG,QAAQ4yN,IAAc,CAACl0N,EAAGrD,IAE1B,aADNA,EAAE4E,eACoB,IACN,MAAhB5E,EAAE0K,OAAO,GACY,MAAhB1K,EAAE0K,OAAO,GACZ2C,OAAOkrD,aAAatgD,SAASjY,EAAEqjG,UAAU,GAAI,KAC7Ch2F,OAAOkrD,cAAcv4D,EAAEqjG,UAAU,IAEhC,KAIX,MAAMm0H,GAAQ,eACd,YAAcvvI,EAAOluB,KACXkuB,EAAMj3D,QAAUi3D,IAClBluB,GAAO,SACPpwD,EAAM,CACVhF,QAAS,CAACgD,EAAMoD,UACRA,EAAIimB,QAAUjmB,GACVpG,QAAQ6yN,GAAO,QACjBvvI,EAAMtjF,QAAQgD,EAAMoD,GACrBpB,GAET8tN,SAAU,IACD,IAAI5vI,OAAOI,EAAOluB,WAGtBpwD,EAGT,MAAM+tN,GAAsB,UACtBC,GAAuB,gCAC7B,YAAkBrS,EAAUrjN,EAAMuK,MAC5B84M,EAAU,KACRsS,QAEKxtN,mBAAmBu4D,GAASn2D,IAChC7H,QAAQ+yN,GAAqB,IAC7B9yN,oBACI7B,UACA,QAE2B,IAAhC60N,EAAK51N,QAAQ,gBAAsD,IAA9B41N,EAAK51N,QAAQ,cAAgD,IAA1B41N,EAAK51N,QAAQ,gBAChF,KAGPC,IAAS01N,GAAqBpzN,KAAKiI,OAgBzC,SAAoBvK,EAAMuK,GACnBqrN,GAAS,IAAM51N,KAId61N,GAAWvzN,KAAKtC,MACT,IAAMA,GAAQA,EAAO,OAErB,IAAMA,GAAQ81N,GAAM91N,EAAM,KAAK,UAItC+1N,UADCH,GAAS,IAAM51N,IACID,QAAQ,WAEL,OAAzBwK,EAAK62F,UAAU,EAAG,GAChB20H,EACKxrN,EAEFvK,EAAK0C,QAAQypN,GAAU,MAAQ5hN,EACV,MAAnBA,EAAK9B,OAAO,GACjBstN,EACKxrN,EAEFvK,EAAK0C,QAAQszN,GAAQ,MAAQzrN,EAE7BvK,EAAOuK,EAxCP0rN,CAAWj2N,EAAMuK,UAGjB2rN,UAAU3rN,GAAM7H,QAAQ,OAAQ,WAChC5B,UACA,YAEFyJ,EAGT,MAAMqrN,GAAW,GACXC,GAAa,mBACb1J,GAAW,oBACX6J,GAAS,4BA+Bf,MAAMG,GAAW,CAAEppN,KAAM,cAEzB,YAAerF,OAEX8C,EACAxL,EAFEvB,EAAI,OAIDA,EAAIc,UAAUE,OAAQhB,QAEtBuB,OADIT,UAAUd,GACP+M,EACNuB,OAAOpI,UAAUsY,eAAe3W,KAAKkF,EAAQxL,OAC3CA,GAAOwL,EAAOxL,WAKjB0I,EAGT,YAAoB0uN,EAAU/0M,SAgB1Bg1M,EAbUD,EAAS1zN,QAAQ,OAAO,CAACsF,EAAO0H,EAAQiB,SAC5C2lN,GAAU,EACZv7J,EAAOrrD,SACAqrD,GAAQ,GAAmB,OAAdpqD,EAAIoqD,OAA2Bu7J,SACjDA,EAGK,IAGA,QAGCpuN,MAAM,WAChBzK,EAAI,KAGH44N,EAAM,GAAGlrI,UAAgBl7E,QACzBomN,EAAMA,EAAM53N,OAAS,GAAG0sF,UAAgBz8E,MAEzC2nN,EAAM53N,OAAS4iB,IACXta,OAAOsa,aAENg1M,EAAM53N,OAAS4iB,KAAa3iB,KAAK,SAGnCjB,EAAI44N,EAAM53N,OAAQhB,MAEjBA,GAAK44N,EAAM54N,GAAG0tF,OAAOzoF,QAAQ,QAAS,YAEvC2zN,EAMT,YAAe1lN,EAAK5P,EAAGkhD,SACfjkD,EAAI2S,EAAIlS,UACJ,IAANT,QACK,OAILu4N,EAAU,OAGPA,EAAUv4N,GAAG,OACZw4N,EAAW7lN,EAAIlI,OAAOzK,EAAIu4N,EAAU,MACtCC,IAAaz1N,GAAMkhD,MAEZu0K,IAAaz1N,IAAKkhD,4BAOxBtxC,EAAIM,OAAO,EAAGjT,EAAIu4N,GAyB3B,YAAkCz+J,GAC5BA,GAAOA,EAAIurJ,WAAavrJ,EAAI5kD,gBACtBuI,KAAK,2MAKjB,YAAsBgW,EAASpQ,MACzBA,EAAQ,QACH,OAELqQ,EAAS,QACNrQ,EAAQ,GACD,EAARA,OACQoQ,OAEF,KACCA,SAENC,EAASD,EAGlB,YAAoB6lK,EAAK5qG,EAAM30B,EAAK0+J,SAC5BlsN,EAAOmiF,EAAKniF,KACZ4a,EAAQunE,EAAKvnE,MAAQ07C,GAAO6rB,EAAKvnE,OAAS,KAC1CwN,EAAO2kK,EAAI,GAAG50L,QAAQ,cAAe,SAElB,MAArB40L,EAAI,GAAG7uL,OAAO,GAAY,GACtBzE,MAAM0yN,QAAS,QACfxtG,EAAQ,CACZpqH,KAAM,OACNi5D,IAAAA,EACAxtD,KAAAA,EACA4a,MAAAA,EACAwN,KAAAA,EACAk4F,OAAQ4rG,EAAME,aAAahkM,EAAM,cAE7B3uB,MAAM0yN,QAAS,EACdxtG,QAEA,CACLpqH,KAAM,QACNi5D,IAAAA,EACAxtD,KAAAA,EACA4a,MAAAA,EACAwN,KAAMkuC,GAAOluC,IAoCnB,SACEhkB,YAAYkD,QACLA,QAAUA,GAAWkjN,GAG5BpmN,MAAMgvD,SACE25H,EAAM13L,KAAKkiC,MAAM5iB,MAAM03M,QAAQ7pN,KAAK4wD,MACtC25H,GAAOA,EAAI,GAAG74L,OAAS,QAClB,CACLK,KAAM,QACNi5D,IAAKu/H,EAAI,IAKf3oL,KAAKgvD,SACG25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMqpK,KAAKx7K,KAAK4wD,MACnC25H,EAAK,OACD3kK,EAAO2kK,EAAI,GAAG50L,QAAQ,YAAa,UAClC,CACL5D,KAAM,OACNi5D,IAAKu/H,EAAI,GACTu/B,eAAgB,WAChBlkM,KAAO/yB,KAAKiS,QAAQuxM,SAEhBzwL,EADAmjM,GAAMnjM,EAAM,QAMtBhkB,OAAOgvD,SACC25H,EAAM13L,KAAKkiC,MAAM5iB,MAAM43M,OAAO/pN,KAAK4wD,MACrC25H,EAAK,OACDv/H,EAAMu/H,EAAI,GACV3kK,EAjEZ,SAAgColC,EAAKplC,SAC7BokM,EAAoBh/J,EAAI/vD,MAAM,oBAEV,OAAtB+uN,SACKpkM,QAGHqkM,EAAeD,EAAkB,UAEhCpkM,EACJzqB,MAAM,MACNa,eACOkuN,EAAoB5sN,EAAKrC,MAAM,WACX,OAAtBivN,SACK5sN,QAGF6sN,GAAgBD,SAEnBC,EAAaz4N,QAAUu4N,EAAav4N,OAC/B4L,EAAKzH,MAAMo0N,EAAav4N,QAG1B4L,KAERjC,KAAK,MAwCS+uN,CAAuBp/J,EAAKu/H,EAAI,IAAM,UAE5C,CACLx4L,KAAM,OACNi5D,IAAAA,EACA+mC,KAAMw4F,EAAI,GAAKA,EAAI,GAAGnsG,OAASmsG,EAAI,GACnC3kK,KAAAA,IAKNhkB,QAAQgvD,SACA25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMk4M,QAAQrqN,KAAK4wD,MACtC25H,EAAK,KACH3kK,EAAO2kK,EAAI,GAAGnsG,UAGd,KAAK7oF,KAAKqwB,GAAO,OACb0kM,EAAUvB,GAAMnjM,EAAM,KACxB/yB,KAAKiS,QAAQuxM,WACRiU,EAAQlsI,OACLksI,IAAW,KAAK/0N,KAAK+0N,OAExBA,EAAQlsI,cAIb+9B,EAAQ,CACZpqH,KAAM,UACNi5D,IAAKu/H,EAAI,GACTj6J,MAAOi6J,EAAI,GAAG74L,OACdk0B,KAAAA,EACAk4F,OAAQ,gBAEL4rG,MAAMrrB,OAAOliF,EAAMv2F,KAAMu2F,EAAM2B,QAC7B3B,GAIXv6G,GAAGgvD,SACK25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMo4M,GAAGvqN,KAAK4wD,MACjC25H,QACK,CACLx4L,KAAM,KACNi5D,IAAKu/H,EAAI,IAKf3oL,WAAWgvD,SACH25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMq4M,WAAWxqN,KAAK4wD,MACzC25H,EAAK,OACD3kK,EAAO2kK,EAAI,GAAG50L,QAAQ,WAAY,UAEjC,CACL5D,KAAM,aACNi5D,IAAKu/H,EAAI,GACTzsE,OAAQjrH,KAAK62N,MAAMe,YAAY7kM,EAAM,IACrCA,KAAAA,IAKNhkB,KAAKgvD,OACC25H,EAAM13L,KAAKkiC,MAAM5iB,MAAM/I,KAAKpJ,KAAK4wD,MACjC25H,EAAK,KACHv/H,EAAK0/J,EAAQC,EAAWpnG,EAAQ7yH,EAAGk6N,EAAWC,EAChDv6G,EAAMw6G,EAAUC,EAASC,EAAcC,EAErCpjC,EAAO0C,EAAI,GAAGnsG,aACZ8sI,EAAYrjC,EAAKn2L,OAAS,EAE1B0X,EAAO,CACXrX,KAAM,OACNi5D,IAAK,GACLmgK,QAASD,EACT1pN,MAAO0pN,GAAarjC,EAAKhyL,MAAM,MAAS,GACxCmQ,OAAO,EACPmV,MAAO,MAGF+vM,EAAY,aAAarjC,EAAKhyL,YAAc,KAAKgyL,IAEpDh1L,KAAKiS,QAAQuxM,aACR6U,EAAYrjC,EAAO,eAItBujC,EAAY,IAAIvyI,OAAO,WAAWgvG,mCAGjCj3H,OACM,IACCw6J,EAAUprN,KAAK4wD,MAIvB/9D,KAAKkiC,MAAM5iB,MAAMo4M,GAAGh1N,KAAKq7D,IANnB,MAUJ25H,EAAI,KACJ35H,EAAIyjC,UAAUrpC,EAAIt5D,UAEjB64L,EAAI,GAAGpvL,MAAM,KAAM,GAAG,KAClBy1D,EAAIz1D,MAAM,KAAM,GAAG,GAE1BtI,KAAKiS,QAAQuxM,YACN,IACM/lG,EAAKkyF,eAEXjY,EAAI,GAAGvtL,OAAO,UACdumH,EAAS,EAAI,EAAIA,IACXjT,EAAKz6G,MAAM0tH,MAChBgnE,EAAI,GAAG74L,WAGP,GAEP4+G,GAAQ,OAAO/6G,KAAKu1N,QAChBA,EAAW,OACZl6J,EAAIyjC,UAAUy2H,EAASp5N,OAAS,MAC3B,IAGRu5N,EAAU,OACPI,EAAkB,IAAIxyI,OAAO,QAAQr9E,KAAKkN,IAAI,EAAG66G,EAAS,kCAGzD3yD,MACKA,EAAIz1D,MAAM,KAAM,GAAG,KACtB4vN,EAGHl4N,KAAKiS,QAAQuxM,aACR/lG,EAAK36G,QAAQ,0BAA2B,QAI7C01N,EAAgB91N,KAAK+6G,KAVf,IAcNA,EAAKtzG,OAAO,SAAWumH,IAAWjT,EAAKlyB,UACzB,KAAOkyB,EAAKz6G,MAAM0tH,WACxBqnG,WACM,KAAOt6G,EAKpBs6G,GAAct6G,EAAKlyB,YACV,MAGP2sI,EAAU,OACXn6J,EAAIyjC,UAAU02H,EAAQr5N,OAAS,IAIpC0X,EAAKpD,QAEJ6kN,IACG7kN,OAAQ,EACJ,YAAYzQ,KAAKy1D,QACN,IAKpBn4D,KAAKiS,QAAQkxM,QACN,cAAch2M,KAAKgrN,GACxBN,MACwB,SAAdA,EAAO,KACJM,EAAar1N,QAAQ,eAAgB,QAInDwlB,MAAMxpB,KAAK,CACdI,KAAM,YACNi5D,IAAAA,EACAy3J,OAAQiI,EACRxxN,QAASyxN,EACT3kN,OAAO,EACP4f,KAAMolM,MAGHhgK,KAAOA,IAIT7vC,MAAM/R,EAAK+R,MAAMzpB,OAAS,GAAGs5D,IAAMA,EAAI22I,cACvCxmL,MAAM/R,EAAK+R,MAAMzpB,OAAS,GAAGk0B,KAAOolM,EAAarpB,cACjD32I,IAAM5hD,EAAK4hD,IAAI22I,kBAEd1wM,EAAImY,EAAK+R,MAAMzpB,WAGhBhB,EAAI,EAAGA,EAAIO,EAAGP,IAAK,MACjBg5N,MAAMzyN,MAAMogG,KAAM,IAClBl8E,MAAMzqB,GAAGotH,OAASjrH,KAAK62N,MAAMe,YAAYrhN,EAAK+R,MAAMzqB,GAAGk1B,KAAM,UAC5D0lM,EAAUliN,EAAK+R,MAAMzqB,GAAGotH,OAAOj+G,WAAuB,UAAXxO,EAAEU,OAC7Cw5N,EAAwBD,EAAQ5oN,iBAC9BorG,EAAQz8G,EAAE25D,IAAI7vD,MAAM,QACtB4vM,EAAa,YACN/tB,KAAQlvE,KACJ,OAATkvE,OACY,GAEZ+tB,EAAa,SACR,SAIJ,MAGJ3hM,EAAKpD,OAASslN,EAAQ55N,QAAU65N,MAE9BvlN,OAAQ,IACRmV,MAAMzqB,GAAGsV,OAAQ,UAInBoD,GAIXxH,KAAKgvD,SACG25H,EAAM13L,KAAKkiC,MAAM5iB,MAAM+qF,KAAKl9F,KAAK4wD,MACnC25H,EAAK,OACDpuE,EAAQ,CACZpqH,KAAM,OACNi5D,IAAKu/H,EAAI,GACTihC,KAAM34N,KAAKiS,QAAQyxM,YACF,UAAP,IAA2B,WAAXhsB,EAAI,IAA8B,UAAXA,EAAI,IACrD3kK,KAAM2kK,EAAI,WAER13L,KAAKiS,QAAQwxM,aACTvkN,KAAO,cACP6zB,KAAO/yB,KAAKiS,QAAQyxM,UAAY1jN,KAAKiS,QAAQyxM,UAAUhsB,EAAI,IAAMz2H,GAAOy2H,EAAI,MAC5EzsE,OAAS,QACV4rG,MAAMrrB,OAAOliF,EAAMv2F,KAAMu2F,EAAM2B,SAE/B3B,GAIXv6G,IAAIgvD,SACI25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMs5M,IAAIzrN,KAAK4wD,MAClC25H,EAAK,CACHA,EAAI,OAAQ,GAAKA,EAAI,GAAGl2F,UAAU,EAAGk2F,EAAI,GAAG74L,OAAS,UAElD,CACLK,KAAM,MACNsiB,IAHUk2K,EAAI,GAAG30L,cAAcD,QAAQ,OAAQ,KAI/Cq1D,IAAKu/H,EAAI,GACT/sL,KAAM+sL,EAAI,GACVnyK,MAAOmyK,EAAI,KAKjB3oL,MAAMgvD,SACE25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMssC,MAAMz+C,KAAK4wD,MACpC25H,EAAK,OACDn2K,EAAO,CACXriB,KAAM,QACNoqD,OAAQuvK,GAAWnhC,EAAI,IAAIvuL,SAAkB,CAAE4pB,KAAM5xB,MACrD23N,MAAOphC,EAAI,GAAG50L,QAAQ,aAAc,IAAIwF,MAAM,UAC9Ck/G,KAAMkwE,EAAI,GAAKA,EAAI,GAAG50L,QAAQ,YAAa,IAAIwF,MAAM,MAAQ,OAG3DiZ,EAAK+nC,OAAOzqD,SAAW0iB,EAAKu3M,MAAMj6N,OAAQ,GACvCs5D,IAAMu/H,EAAI,OAGX75L,EAAG4pD,EAAGhmD,EAAG4kG,EADTjoG,EAAImjB,EAAKu3M,MAAMj6N,WAEdhB,EAAI,EAAGA,EAAIO,EAAGP,IACb,YAAY6E,KAAK6e,EAAKu3M,MAAMj7N,MACzBi7N,MAAMj7N,GAAK,QACP,aAAa6E,KAAK6e,EAAKu3M,MAAMj7N,MACjCi7N,MAAMj7N,GAAK,SACP,YAAY6E,KAAK6e,EAAKu3M,MAAMj7N,MAChCi7N,MAAMj7N,GAAK,SAEXi7N,MAAMj7N,GAAK,WAIhB0jB,EAAKimG,KAAK3oH,OACThB,EAAI,EAAGA,EAAIO,EAAGP,MACZ2pH,KAAK3pH,GAAKg7N,GAAWt3M,EAAKimG,KAAK3pH,GAAI0jB,EAAK+nC,OAAOzqD,QAAQsK,SAAkB,CAAE4pB,KAAM5xB,YAMpFogB,EAAK+nC,OAAOzqD,OACX4oD,EAAI,EAAGA,EAAIrpD,EAAGqpD,MACZ6B,OAAO7B,GAAGwjE,OAAS,QACnB4rG,MAAME,aAAax1M,EAAK+nC,OAAO7B,GAAG10B,KAAMxR,EAAK+nC,OAAO7B,GAAGwjE,cAI1D1pG,EAAKimG,KAAK3oH,OACT4oD,EAAI,EAAGA,EAAIrpD,EAAGqpD,UACXlmC,EAAKimG,KAAK//D,GACXhmD,EAAI,EAAGA,EAAI4kG,EAAIxnG,OAAQ4C,MACtBA,GAAGwpH,OAAS,QACX4rG,MAAME,aAAa1wH,EAAI5kG,GAAGsxB,KAAMszE,EAAI5kG,GAAGwpH,eAIzC1pG,IAKbxS,SAASgvD,SACD25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMy5M,SAAS5rN,KAAK4wD,MACvC25H,EAAK,OACDpuE,EAAQ,CACZpqH,KAAM,UACNi5D,IAAKu/H,EAAI,GACTj6J,MAA4B,MAArBi6J,EAAI,GAAG7uL,OAAO,GAAa,EAAI,EACtCkqB,KAAM2kK,EAAI,GACVzsE,OAAQ,gBAEL4rG,MAAMrrB,OAAOliF,EAAMv2F,KAAMu2F,EAAM2B,QAC7B3B,GAIXv6G,UAAUgvD,SACF25H,EAAM13L,KAAKkiC,MAAM5iB,MAAM05M,UAAU7rN,KAAK4wD,MACxC25H,EAAK,OACDpuE,EAAQ,CACZpqH,KAAM,YACNi5D,IAAKu/H,EAAI,GACT3kK,KAA2C,OAArC2kK,EAAI,GAAG7uL,OAAO6uL,EAAI,GAAG74L,OAAS,GAChC64L,EAAI,GAAG10L,MAAM,MACb00L,EAAI,GACRzsE,OAAQ,gBAEL4rG,MAAMrrB,OAAOliF,EAAMv2F,KAAMu2F,EAAM2B,QAC7B3B,GAIXv6G,KAAKgvD,SACG25H,EAAM13L,KAAKkiC,MAAM5iB,MAAMyT,KAAK5lB,KAAK4wD,MACnC25H,EAAK,OACDpuE,EAAQ,CACZpqH,KAAM,OACNi5D,IAAKu/H,EAAI,GACT3kK,KAAM2kK,EAAI,GACVzsE,OAAQ,gBAEL4rG,MAAMrrB,OAAOliF,EAAMv2F,KAAMu2F,EAAM2B,QAC7B3B,GAIXv6G,OAAOgvD,SACC25H,EAAM13L,KAAKkiC,MAAMspK,OAAOvqI,OAAO9zD,KAAK4wD,MACtC25H,QACK,CACLx4L,KAAM,SACNi5D,IAAKu/H,EAAI,GACT3kK,KAAMkuC,GAAOy2H,EAAI,KAKvB3oL,IAAIgvD,SACI25H,EAAM13L,KAAKkiC,MAAMspK,OAAOhqL,IAAIrU,KAAK4wD,MACnC25H,SACG13L,KAAK62N,MAAMzyN,MAAM0yN,QAAU,QAAQp0N,KAAKg1L,EAAI,SAC1Cm/B,MAAMzyN,MAAM0yN,QAAS,EACjB92N,KAAK62N,MAAMzyN,MAAM0yN,QAAU,UAAUp0N,KAAKg1L,EAAI,WAClDm/B,MAAMzyN,MAAM0yN,QAAS,IAEvB92N,KAAK62N,MAAMzyN,MAAM60N,YAAc,iCAAiCv2N,KAAKg1L,EAAI,SACvEm/B,MAAMzyN,MAAM60N,YAAa,EACrBj5N,KAAK62N,MAAMzyN,MAAM60N,YAAc,mCAAmCv2N,KAAKg1L,EAAI,WAC/Em/B,MAAMzyN,MAAM60N,YAAa,GAGzB,CACL/5N,KAAMc,KAAKiS,QAAQwxM,SACf,OACA,OACJtrJ,IAAKu/H,EAAI,GACTo/B,OAAQ92N,KAAK62N,MAAMzyN,MAAM0yN,OACzBmC,WAAYj5N,KAAK62N,MAAMzyN,MAAM60N,WAC7BlmM,KAAM/yB,KAAKiS,QAAQwxM,SACdzjN,KAAKiS,QAAQyxM,UACZ1jN,KAAKiS,QAAQyxM,UAAUhsB,EAAI,IAC3Bz2H,GAAOy2H,EAAI,IACbA,EAAI,IAKd3oL,KAAKgvD,SACG25H,EAAM13L,KAAKkiC,MAAMspK,OAAO1+G,KAAK3/E,KAAK4wD,MACpC25H,EAAK,OACDwhC,EAAaxhC,EAAI,GAAGnsG,WACrBvrF,KAAKiS,QAAQuxM,UAAY,KAAK9gN,KAAKw2N,GAAa,KAE7C,KAAKx2N,KAAKw2N,gBAKVC,EAAajD,GAAMgD,EAAWl2N,MAAM,MAAQ,YAClCnE,OAASs6N,EAAWt6N,QAAU,GAAM,aAG/C,OAECu6N,EA/iBd,SAA4BroN,EAAKrP,WAC3BqP,EAAI5Q,QAAQuB,EAAE,mBAGZtD,EAAI2S,EAAIlS,WACVigB,EAAQ,EACVjhB,EAAI,OACCA,EAAIO,EAAGP,OACG,OAAXkT,EAAIlT,eAEGkT,EAAIlT,KAAO6D,EAAE,eAEbqP,EAAIlT,KAAO6D,EAAE,SAElBod,EAAQ,UACHjhB,WAgiBgBw7N,CAAmB3hC,EAAI,GAAI,SAC9C0hC,KAAqB,OAEjBE,GADgC,IAAxB5hC,EAAI,GAAGv3L,QAAQ,KAAa,EAAI,GACtBu3L,EAAI,GAAG74L,OAASu6N,IACpC,GAAK1hC,EAAI,GAAGl2F,UAAU,EAAG43H,KACzB,GAAK1hC,EAAI,GAAGl2F,UAAU,EAAG83H,GAAS/tI,SAClC,GAAK,QAGT5gF,EAAO+sL,EAAI,GACXnyK,EAAQ,MACRvlB,KAAKiS,QAAQuxM,SAAU,OAEnB12H,EAAO,gCAAgC3/E,KAAKxC,GAE9CmiF,MACKA,EAAK,KACJA,EAAK,WAGP4qG,EAAI,GAAKA,EAAI,GAAG10L,MAAM,MAAS,YAGlC2H,EAAK4gF,OACR,KAAK7oF,KAAKiI,OACR3K,KAAKiS,QAAQuxM,WAAc,KAAK9gN,KAAKw2N,GAEhCvuN,EAAK3H,MAAM,GAEX2H,EAAK3H,MAAM,OAGfu2N,GAAW7hC,EAAK,CACrB/sL,KAAMA,EAAOA,EAAK7H,QAAQ9C,KAAKkiC,MAAMspK,OAAOguB,SAAU,MAAQ7uN,EAC9D4a,MAAOA,EAAQA,EAAMziB,QAAQ9C,KAAKkiC,MAAMspK,OAAOguB,SAAU,MAAQj0M,GAChEmyK,EAAI,GAAI13L,KAAK62N,QAIpB9nN,QAAQgvD,EAAK07J,OACP/hC,QACO13L,KAAKkiC,MAAMspK,OAAOkuB,QAAQvsN,KAAK4wD,QAC5B/9D,KAAKkiC,MAAMspK,OAAOmuB,OAAOxsN,KAAK4wD,IAAO,KAC7C+uB,KAAY,IAAM4qG,EAAI,IAAI50L,QAAQ,OAAQ,UACvC22N,EAAM3sI,EAAK/pF,gBACb+pF,IAASA,EAAKniF,KAAM,OACjBooB,EAAO2kK,EAAI,GAAG7uL,OAAO,SACpB,CACL3J,KAAM,OACNi5D,IAAKplC,EACLA,KAAAA,UAGGwmM,GAAW7hC,EAAK5qG,EAAM4qG,EAAI,GAAI13L,KAAK62N,QAI9C9nN,SAASgvD,EAAK67J,EAAWC,EAAW,QAC9BzxN,EAAQpI,KAAKkiC,MAAMspK,OAAOsuB,SAASC,OAAO5sN,KAAK4wD,OAC9C31D,YAGDA,EAAM,IAAMyxN,EAASzxN,MAAM,8BAEzB63M,EAAW73M,EAAM,IAAMA,EAAM,IAAM,OAEpC63M,GAAaA,IAA0B,QAAMjgN,KAAKkiC,MAAMspK,OAAOwuB,YAAY7sN,KAAK0sN,IAAa,OAC1FI,EAAU7xN,EAAM,GAAGvJ,OAAS,MAC9Bq7N,EAAQC,EAASC,EAAaH,EAASI,EAAgB,QAErDC,EAAyB,MAAhBlyN,EAAM,GAAG,GAAapI,KAAKkiC,MAAMspK,OAAOsuB,SAASS,UAAYv6N,KAAKkiC,MAAMspK,OAAOsuB,SAASU,gBAChGr0I,UAAY,IAGPyzI,EAAU52N,SAAW+6D,EAAIl/D,OAASo7N,GAEH,SAA3BK,EAAOntN,KAAKysN,KAAqB,MACtCxxN,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAEtE8xN,gBAEKA,EAAOr7N,OAEbuJ,EAAM,IAAMA,EAAM,GAAI,IACV+xN,eAEL/xN,EAAM,IAAMA,EAAM,KACvB6xN,EAAU,QAAkBE,GAAW,GAAI,IAC5BA,iBAKPA,EAEVC,EAAa,gBAGPzxN,KAAKkN,IAAIskN,EAASA,EAAUC,EAAaC,GAG/C1xN,KAAKkN,IAAIokN,EAASE,GAAW,EAAG,OAC5B33H,EAAOzkC,EAAI/6D,MAAM,EAAGi3N,EAAU7xN,EAAMkB,MAAQ6wN,SAC3C,CACLj7N,KAAM,KACNi5D,IAAK4F,EAAI/6D,MAAM,EAAGi3N,EAAU7xN,EAAMkB,MAAQ6wN,EAAU,GACpDpnM,OACAk4F,OAAQjrH,KAAK62N,MAAME,aAAav0H,EAAM,WAKpCzvE,EAAOgrC,EAAI/6D,MAAM,EAAGi3N,EAAU7xN,EAAMkB,MAAQ6wN,EAAU,SACrD,CACLj7N,KAAM,SACNi5D,IAAK4F,EAAI/6D,MAAM,EAAGi3N,EAAU7xN,EAAMkB,MAAQ6wN,EAAU,GACpDpnM,KAAAA,EACAk4F,OAAQjrH,KAAK62N,MAAME,aAAahkM,EAAM,OAM9ChkB,SAASgvD,SACD25H,EAAM13L,KAAKkiC,MAAMspK,OAAO7iB,KAAKx7K,KAAK4wD,MACpC25H,EAAK,KACH3kK,EAAO2kK,EAAI,GAAG50L,QAAQ,MAAO,WAC3B23N,EAAmB,OAAO/3N,KAAKqwB,GAC/B2nM,EAA0B,KAAKh4N,KAAKqwB,IAAS,KAAKrwB,KAAKqwB,UACzD0nM,GAAoBC,MACf3nM,EAAKyuE,UAAU,EAAGzuE,EAAKl0B,OAAS,MAElCoiE,GAAOluC,GAAM,GACb,CACL7zB,KAAM,WACNi5D,IAAKu/H,EAAI,GACT3kK,KAAAA,IAKNhkB,GAAGgvD,SACK25H,EAAM13L,KAAKkiC,MAAMspK,OAAOmvB,GAAGxtN,KAAK4wD,MAClC25H,QACK,CACLx4L,KAAM,KACNi5D,IAAKu/H,EAAI,IAKf3oL,IAAIgvD,SACI25H,EAAM13L,KAAKkiC,MAAMspK,OAAO/0G,IAAItpF,KAAK4wD,MACnC25H,QACK,CACLx4L,KAAM,MACNi5D,IAAKu/H,EAAI,GACT3kK,KAAM2kK,EAAI,GACVzsE,OAAQjrH,KAAK62N,MAAME,aAAar/B,EAAI,GAAI,KAK9C3oL,SAASgvD,EAAK68J,SACNljC,EAAM13L,KAAKkiC,MAAMspK,OAAOqvB,SAAS1tN,KAAK4wD,MACxC25H,EAAK,KACH3kK,EAAMpoB,QACK,MAAX+sL,EAAI,MACCz2H,GAAOjhE,KAAKiS,QAAQsxM,OAASqX,EAAOljC,EAAI,IAAMA,EAAI,MAClD,UAAY3kK,MAEZkuC,GAAOy2H,EAAI,MACX3kK,GAGF,CACL7zB,KAAM,OACNi5D,IAAKu/H,EAAI,GACT3kK,KAAAA,EACApoB,KAAAA,EACAsgH,OAAQ,CACN,CACE/rH,KAAM,OACNi5D,IAAKplC,EACLA,KAAAA,MAOVhkB,IAAIgvD,EAAK68J,OACHljC,KACAA,EAAM13L,KAAKkiC,MAAMspK,OAAOzjM,IAAIoF,KAAK4wD,GAAM,KACrChrC,EAAMpoB,KACK,MAAX+sL,EAAI,KACCz2H,GAAOjhE,KAAKiS,QAAQsxM,OAASqX,EAAOljC,EAAI,IAAMA,EAAI,MAClD,UAAY3kK,MACd,KAED+nM,OAEYpjC,EAAI,KACd,GAAK13L,KAAKkiC,MAAMspK,OAAOuvB,WAAW5tN,KAAKuqL,EAAI,IAAI,SAC5CojC,IAAgBpjC,EAAI,MACtBz2H,GAAOy2H,EAAI,MACH,SAAXA,EAAI,GACC,UAAY3kK,EAEZA,QAGJ,CACL7zB,KAAM,OACNi5D,IAAKu/H,EAAI,GACT3kK,KAAAA,EACApoB,KAAAA,EACAsgH,OAAQ,CACN,CACE/rH,KAAM,OACNi5D,IAAKplC,EACLA,KAAAA,MAOVhkB,WAAWgvD,EAAKi9J,SACRtjC,EAAM13L,KAAKkiC,MAAMspK,OAAOz4K,KAAK5lB,KAAK4wD,MACpC25H,EAAK,KACH3kK,WACA/yB,KAAK62N,MAAMzyN,MAAM60N,WACZj5N,KAAKiS,QAAQwxM,SAAYzjN,KAAKiS,QAAQyxM,UAAY1jN,KAAKiS,QAAQyxM,UAAUhsB,EAAI,IAAMz2H,GAAOy2H,EAAI,IAAOA,EAAI,GAEzGz2H,GAAOjhE,KAAKiS,QAAQ2xM,YAAcoX,EAAYtjC,EAAI,IAAMA,EAAI,IAE9D,CACLx4L,KAAM,OACNi5D,IAAKu/H,EAAI,GACT3kK,KAAAA,KASR,MAAMzT,GAAQ,CACZ03M,QAAS,mBACTruC,KAAM,uCACNuuC,OAAQ,4FACRQ,GAAI,yDACJF,QAAS,uCACTG,WAAY,0CACZphN,KAAM,mCACN8zF,KAAM,mdAUNuuH,IAAK,2FACLhtK,MAAO2qK,GACPwC,SAAU,sCAGVkC,WAAY,uFACZloM,KAAM,UAGRmoM,OAAe,8BACfC,OAAe,gEACf77M,GAAMs5M,IAAMr0D,GAAKjlJ,GAAMs5M,KACpB91N,QAAQ,QAASwc,GAAM47M,QACvBp4N,QAAQ,QAASwc,GAAM67M,QACvBvF,WAEHt2M,GAAM87M,OAAS,wBACf97M,GAAM+7M,cAAgB92D,GAAK,iBACxBzhK,QAAQ,OAAQwc,GAAM87M,QACtBxF,WAEHt2M,GAAM/I,KAAOguJ,GAAKjlJ,GAAM/I,MACrBzT,QAAQ,QAASwc,GAAM87M,QACvBt4N,QAAQ,KAAM,mEACdA,QAAQ,MAAO,UAAYwc,GAAMs5M,IAAIzpM,OAAS,KAC9CymM,WAEHt2M,GAAMk5L,KAAO,gWAMbl5L,GAAMg8M,SAAW,+BACjBh8M,GAAM+qF,KAAOk6D,GAAKjlJ,GAAM+qF,KAAM,KAC3BvnG,QAAQ,UAAWwc,GAAMg8M,UACzBx4N,QAAQ,MAAOwc,GAAMk5L,MACrB11M,QAAQ,YAAa,4EACrB8yN,WAEHt2M,GAAM05M,UAAYz0D,GAAKjlJ,GAAM27M,YAC1Bn4N,QAAQ,KAAMwc,GAAMo4M,IACpB50N,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,SAAU,IAClBA,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOwc,GAAMk5L,MACrBod,WAEHt2M,GAAMq4M,WAAapzD,GAAKjlJ,GAAMq4M,YAC3B70N,QAAQ,YAAawc,GAAM05M,WAC3BpD,WAMHt2M,GAAM8kD,OAAS2mD,GAAM,GAAIzrG,IAMzBA,GAAM6jM,IAAMp4F,GAAM,GAAIzrG,GAAM8kD,OAAQ,CAClCxY,MAAO,qKAKTtsC,GAAM6jM,IAAIv3J,MAAQ24G,GAAKjlJ,GAAM6jM,IAAIv3J,OAC9B9oD,QAAQ,KAAMwc,GAAMo4M,IACpB50N,QAAQ,UAAW,iBACnBA,QAAQ,aAAc,WACtBA,QAAQ,OAAQ,cAChBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOwc,GAAMk5L,MACrBod,WAEHt2M,GAAM6jM,IAAI6V,UAAYz0D,GAAKjlJ,GAAM27M,YAC9Bn4N,QAAQ,KAAMwc,GAAMo4M,IACpB50N,QAAQ,UAAW,iBACnBA,QAAQ,YAAa,IACrBA,QAAQ,QAASwc,GAAM6jM,IAAIv3J,OAC3B9oD,QAAQ,aAAc,WACtBA,QAAQ,SAAU,kDAClBA,QAAQ,OAAQ,0BAChBA,QAAQ,OAAQ,+DAChBA,QAAQ,MAAOwc,GAAMk5L,MACrBod,WAKHt2M,GAAMkkM,SAAWz4F,GAAM,GAAIzrG,GAAM8kD,OAAQ,CACvCimC,KAAMk6D,GACJ,8IAGCzhK,QAAQ,UAAWwc,GAAMg8M,UACzBx4N,QAAQ,OAAQ,qKAIhB8yN,WACHgD,IAAK,oEACLpB,QAAS,yBACTN,OAAQX,GACRyC,UAAWz0D,GAAKjlJ,GAAM8kD,OAAO62J,YAC1Bn4N,QAAQ,KAAMwc,GAAMo4M,IACpB50N,QAAQ,UAAW,mBACnBA,QAAQ,WAAYwc,GAAMy5M,UAC1Bj2N,QAAQ,aAAc,WACtBA,QAAQ,UAAW,IACnBA,QAAQ,QAAS,IACjBA,QAAQ,QAAS,IACjB8yN,aAML,MAAMpqB,GAAS,CACbvqI,OAAQ,8CACR45J,SAAU,sCACV9yN,IAAKwuN,GACL/0M,IAAK,2JAMLsrE,KAAM,gDACN4sI,QAAS,0BACTC,OAAQ,wBACR4B,cAAe,wBACfzB,SAAU,CACRC,OAAQ,2DAGRQ,UAAW,mNACXC,UAAW,kLAEb7xC,KAAM,sCACNgyC,GAAI,wBACJlkI,IAAK8/H,GACLxjM,KAAM,8EACNinM,YAAa,sBAgIf,YAAqBjnM,UACZA,EAEJjwB,QAAQ,OAAQ,KAEhBA,QAAQ,MAAO,KAEfA,QAAQ,0BAA2B,OAEnCA,QAAQ,KAAM,KAEdA,QAAQ,+BAAgC,OAExCA,QAAQ,KAAM,KAEdA,QAAQ,SAAU,KAMvB,YAAgBiwB,OAEZl1B,EACA09G,EAFEjkD,EAAM,SAIJl5D,EAAI20B,EAAKl0B,WACVhB,EAAI,EAAGA,EAAIO,EAAGP,MACZk1B,EAAKwiC,WAAW13D,GACjB8K,KAAK4zB,SAAW,OACb,IAAMg/E,EAAGnqG,SAAS,QAElB,KAAOmqG,EAAK,WAGdjkD,EA9JTk0I,GAAOgwB,aAAe,uCACtBhwB,GAAOwuB,YAAcz1D,GAAKinC,GAAOwuB,aAAal3N,QAAQ,eAAgB0oM,GAAOgwB,cAAc5F,WAG3FpqB,GAAOiwB,UAAY,4CACnBjwB,GAAOkwB,YAAc,YAErBlwB,GAAO8vB,SAAW/2D,GAAKjlJ,GAAMg8M,UAAUx4N,QAAQ,eAAa,UAAO8yN,WAEnEpqB,GAAOsuB,SAASC,OAASx1D,GAAKinC,GAAOsuB,SAASC,QAC3Cj3N,QAAQ,SAAU0oM,GAAOgwB,cACzB5F,WAEHpqB,GAAOsuB,SAASS,UAAYh2D,GAAKinC,GAAOsuB,SAASS,UAAW,KACzDz3N,QAAQ,SAAU0oM,GAAOgwB,cACzB5F,WAEHpqB,GAAOsuB,SAASU,UAAYj2D,GAAKinC,GAAOsuB,SAASU,UAAW,KACzD13N,QAAQ,SAAU0oM,GAAOgwB,cACzB5F,WAEHpqB,GAAOguB,SAAW,8CAElBhuB,GAAOmwB,QAAU,+BACjBnwB,GAAOowB,OAAS,+IAChBpwB,GAAOqvB,SAAWt2D,GAAKinC,GAAOqvB,UAC3B/3N,QAAQ,SAAU0oM,GAAOmwB,SACzB74N,QAAQ,QAAS0oM,GAAOowB,QACxBhG,WAEHpqB,GAAOqwB,WAAa,8EAEpBrwB,GAAOhqL,IAAM+iJ,GAAKinC,GAAOhqL,KACtB1e,QAAQ,UAAW0oM,GAAO8vB,UAC1Bx4N,QAAQ,YAAa0oM,GAAOqwB,YAC5BjG,WAEHpqB,GAAO0vB,OAAS,sDAChB1vB,GAAOswB,MAAQ,uCACftwB,GAAO2vB,OAAS,8DAEhB3vB,GAAO1+G,KAAOy3E,GAAKinC,GAAO1+G,MACvBhqF,QAAQ,QAAS0oM,GAAO0vB,QACxBp4N,QAAQ,OAAQ0oM,GAAOswB,OACvBh5N,QAAQ,QAAS0oM,GAAO2vB,QACxBvF,WAEHpqB,GAAOkuB,QAAUn1D,GAAKinC,GAAOkuB,SAC1B52N,QAAQ,QAAS0oM,GAAO0vB,QACxBp4N,QAAQ,MAAOwc,GAAM47M,QACrBtF,WAEHpqB,GAAOmuB,OAASp1D,GAAKinC,GAAOmuB,QACzB72N,QAAQ,MAAOwc,GAAM47M,QACrBtF,WAEHpqB,GAAO+vB,cAAgBh3D,GAAKinC,GAAO+vB,cAAe,KAC/Cz4N,QAAQ,UAAW0oM,GAAOkuB,SAC1B52N,QAAQ,SAAU0oM,GAAOmuB,QACzB/D,WAMHpqB,GAAOpnI,OAAS2mD,GAAM,GAAIygF,IAM1BA,GAAOgY,SAAWz4F,GAAM,GAAIygF,GAAOpnI,OAAQ,CACzC23J,OAAQ,CACNptN,MAAO,WACPqtN,OAAQ,iEACRC,OAAQ,cACRC,OAAQ,YAEVC,GAAI,CACFxtN,MAAO,QACPqtN,OAAQ,6DACRC,OAAQ,YACRC,OAAQ,WAEVpvI,KAAMy3E,GAAK,2BACRzhK,QAAQ,QAAS0oM,GAAO0vB,QACxBtF,WACH8D,QAASn1D,GAAK,iCACXzhK,QAAQ,QAAS0oM,GAAO0vB,QACxBtF,aAOLpqB,GAAO2X,IAAMp4F,GAAM,GAAIygF,GAAOpnI,OAAQ,CACpCnD,OAAQsjG,GAAKinC,GAAOvqI,QAAQn+D,QAAQ,KAAM,QAAQ8yN,WAClDwG,gBAAiB,4EACjBr0N,IAAK,mEACLgzN,WAAY,yEACZtkI,IAAK,+CACL1jE,KAAM,+NAGRy4K,GAAO2X,IAAIp7M,IAAMw8J,GAAKinC,GAAO2X,IAAIp7M,IAAK,KACnCjF,QAAQ,QAAS0oM,GAAO2X,IAAIiZ,iBAC5BxG,WAKHpqB,GAAOyX,OAASl4F,GAAM,GAAIygF,GAAO2X,IAAK,CACpCwX,GAAIp2D,GAAKinC,GAAOmvB,IAAI73N,QAAQ,OAAQ,KAAK8yN,WACzC7iM,KAAMwxI,GAAKinC,GAAO2X,IAAIpwL,MACnBjwB,QAAQ,OAAQ,iBAChBA,QAAQ,UAAW,KACnB8yN,aA+CL,SACE7mN,YAAYkD,QACLg5G,OAAS,QACTA,OAAOwuG,MAAQttN,OAAOC,OAAO,WAC7B6F,QAAUA,GAAWkjN,QACrBljN,QAAQ8oH,UAAY/6H,KAAKiS,QAAQ8oH,WAAa,IAAI7P,QAClD6P,UAAY/6H,KAAKiS,QAAQ8oH,eACzBA,UAAU9oH,QAAUjS,KAAKiS,aACzB8oH,UAAU87F,MAAQ72N,UAClBq8N,YAAc,QACdj4N,MAAQ,CACX0yN,QAAQ,EACRmC,YAAY,EACZz0H,KAAK,SAGDtiE,EAAQ,CACZ5iB,MAAOA,GAAM8kD,OACbonI,OAAQA,GAAOpnI,QAGbpkE,KAAKiS,QAAQuxM,YACTlkM,MAAQA,GAAMkkM,WACdhY,OAASA,GAAOgY,UACbxjN,KAAKiS,QAAQkxM,QAChB7jM,MAAQA,GAAM6jM,IAChBnjN,KAAKiS,QAAQgxM,SACTzX,OAASA,GAAOyX,SAEhBzX,OAASA,GAAO2X,UAGrBpoF,UAAU74F,MAAQA,2BAOhB,CACL5iB,MAAAA,GACAksL,OAAAA,eAOOztI,EAAK9rD,UACA,IAAIqqN,GAAMrqN,GACXw+J,IAAI1yG,oBAMFA,EAAK9rD,UACN,IAAIqqN,GAAMrqN,GACX8kN,aAAah5J,GAM5BhvD,IAAIgvD,OAOE9H,QANE8H,EACHj7D,QAAQ,WAAY,MACpBA,QAAQ,MAAO,aAEb80N,YAAY75J,EAAK/9D,KAAKirH,QAGpBh1D,EAAOj2D,KAAKq8N,YAAYhsN,cACxB0mN,aAAa9gK,EAAK82C,IAAK92C,EAAKg1D,eAG5BjrH,KAAKirH,OAMdl8G,YAAYgvD,EAAKmsD,EAAS,QAIpBZ,EAAOizG,EAAWC,EAAQC,MAH1Bz8N,KAAKiS,QAAQuxM,aACTzlJ,EAAIj7D,QAAQ,SAAU,KAIvBi7D,QACD/9D,KAAKiS,QAAQixM,YACZljN,KAAKiS,QAAQixM,WAAW5jM,OACxBtf,KAAKiS,QAAQixM,WAAW5jM,MAAM3e,MAAM+7N,MACjCpzG,EAAQozG,EAAah3N,KAAK,CAAEmxN,MAAO72N,MAAQ+9D,EAAKmsD,QAC5CnsD,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,IACL,SAQTA,EAAQtpH,KAAK+6H,UAAU7tD,MAAMnP,KACzBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,QACL,IAArByqH,EAAMnxD,IAAIt5D,QAAgBqrH,EAAOrrH,OAAS,IAGrCqrH,EAAOrrH,OAAS,GAAGs5D,KAAO,OAE1Br5D,KAAKwqH,WAMZA,EAAQtpH,KAAK+6H,UAAU4tD,KAAK5qH,KACxBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UAClBqrH,EAAOA,EAAOrrH,OAAS,IAE/B09N,GAAiC,gBAATr9N,MAA2C,SAAnBq9N,EAAUr9N,OAKrDJ,KAAKwqH,MAJFnxD,KAAO,KAAOmxD,EAAMnxD,MACpBplC,MAAQ,KAAOu2F,EAAMv2F,UAC1BspM,YAAYr8N,KAAKq8N,YAAYx9N,OAAS,GAAGkuG,IAAMwvH,EAAUxpM,cAQ9Du2F,EAAQtpH,KAAK+6H,UAAUm8F,OAAOn5J,KAC1BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUy8F,QAAQz5J,KAC3BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU28F,GAAG35J,KACtBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU48F,WAAW55J,KAC9BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUxkH,KAAKwnD,KACxBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU1wB,KAAKtsC,KACxBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU69F,IAAI76J,KACvBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UAClBqrH,EAAOA,EAAOrrH,OAAS,IAC/B09N,GAAiC,gBAATr9N,MAA2C,SAAnBq9N,EAAUr9N,KAIlDc,KAAKirH,OAAOwuG,MAAMnwG,EAAM9nG,YAC7BypG,OAAOwuG,MAAMnwG,EAAM9nG,KAAO,CAC7B7W,KAAM2+G,EAAM3+G,KACZ4a,MAAO+jG,EAAM/jG,WANL4yC,KAAO,KAAOmxD,EAAMnxD,MACpBplC,MAAQ,KAAOu2F,EAAMnxD,SAC1BkkK,YAAYr8N,KAAKq8N,YAAYx9N,OAAS,GAAGkuG,IAAMwvH,EAAUxpM,cAW9Du2F,EAAQtpH,KAAK+6H,UAAUnvE,MAAMmS,KACzBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUg+F,SAASh7J,KAC5BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,aAMLvrD,EACL/9D,KAAKiS,QAAQixM,YAAcljN,KAAKiS,QAAQixM,WAAWyZ,WAAY,KAC7D9+F,EAAa7nH,EAAAA,QACX4mN,EAAU7+J,EAAI/6D,MAAM,OACtB65N,OACC5qN,QAAQixM,WAAWyZ,WAAWh4N,SAAQ,SAASm4N,KACtCA,EAAcp3N,KAAK,CAAEmxN,MAAO72N,MAAQ48N,GACvB,iBAAdC,GAA0BA,GAAa,MAAkBl0N,KAAKkN,IAAIgoH,EAAYg/F,OAEvFh/F,EAAa7nH,EAAAA,GAAY6nH,GAAc,MAChC9/D,EAAIyjC,UAAU,EAAGq8B,EAAa,OAGvC79H,KAAKoE,MAAMogG,QAAgBxkG,KAAK+6H,UAAUi+F,UAAUwD,MAC1CtyG,EAAOA,EAAOrrH,OAAS,GAC/B49N,GAA2C,cAAnBF,EAAUr9N,QAC1Bi5D,KAAO,KAAOmxD,EAAMnxD,MACpBplC,MAAQ,KAAOu2F,EAAMv2F,UAC1BspM,YAAYvtN,WACZutN,YAAYr8N,KAAKq8N,YAAYx9N,OAAS,GAAGkuG,IAAMwvH,EAAUxpM,QAEvDj0B,KAAKwqH,KAEUkzG,EAAO39N,SAAWk/D,EAAIl/D,SACxCk/D,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,gBAK5ByqH,EAAQtpH,KAAK+6H,UAAUhoG,KAAKgrC,KACxBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UAClBqrH,EAAOA,EAAOrrH,OAAS,GAC/B09N,GAAgC,SAAnBA,EAAUr9N,QACfi5D,KAAO,KAAOmxD,EAAMnxD,MACpBplC,MAAQ,KAAOu2F,EAAMv2F,UAC1BspM,YAAYvtN,WACZutN,YAAYr8N,KAAKq8N,YAAYx9N,OAAS,GAAGkuG,IAAMwvH,EAAUxpM,QAEvDj0B,KAAKwqH,WAKZvrD,EAAK,OACDg/J,EAAS,0BAA4Bh/J,EAAIxI,WAAW,MACtDv1D,KAAKiS,QAAQqB,OAAQ,SACf9C,MAAMusN,eAGR,IAAIzkK,MAAMykK,gBAKjB34N,MAAMogG,KAAM,EACV0lB,EAGTn7G,OAAOgvD,EAAKmsD,QACLmyG,YAAYv9N,KAAK,CAAEiuG,MAAKke,WAM/Bl8G,aAAagvD,EAAKmsD,EAAS,QACrBZ,EAAOizG,EAAWC,EAIlBp0N,EACA40N,EAAcnD,EAFdD,EAAY77J,KAKZ/9D,KAAKirH,OAAOwuG,MAAO,OACfA,EAAQttN,OAAOyL,KAAK5X,KAAKirH,OAAOwuG,UAClCA,EAAM56N,OAAS,OAC6D,SAA9DmB,KAAK+6H,UAAU74F,MAAMspK,OAAO+vB,cAAcpuN,KAAKysN,KACzDH,EAAMhhN,SAASrQ,EAAM,GAAGpF,MAAMoF,EAAM,GAAGihF,YAAY,KAAO,WAChDuwI,EAAU52N,MAAM,EAAGoF,EAAMkB,OAAS,IAAM6jM,GAAa,IAAK/kM,EAAM,GAAGvJ,OAAS,GAAK,IAAM+6N,EAAU52N,MAAMhD,KAAK+6H,UAAU74F,MAAMspK,OAAO+vB,cAAcp1I,iBAM3F,SAA1DnmF,KAAK+6H,UAAU74F,MAAMspK,OAAOiwB,UAAUtuN,KAAKysN,OAC7CA,EAAU52N,MAAM,EAAGoF,EAAMkB,OAAS,IAAM6jM,GAAa,IAAK/kM,EAAM,GAAGvJ,OAAS,GAAK,IAAM+6N,EAAU52N,MAAMhD,KAAK+6H,UAAU74F,MAAMspK,OAAOiwB,UAAUt1I,gBAI/E,SAA5DnmF,KAAK+6H,UAAU74F,MAAMspK,OAAOkwB,YAAYvuN,KAAKysN,OAC/CA,EAAU52N,MAAM,EAAGoF,EAAMkB,OAAS,KAAOswN,EAAU52N,MAAMhD,KAAK+6H,UAAU74F,MAAMspK,OAAOkwB,YAAYv1I,gBAGxGpoB,MACAi/J,MACQ,OAEE,IAGXh9N,KAAKiS,QAAQixM,YACZljN,KAAKiS,QAAQixM,WAAW1X,QACxBxrM,KAAKiS,QAAQixM,WAAW1X,OAAO7qM,MAAM+7N,MAClCpzG,EAAQozG,EAAah3N,KAAK,CAAEmxN,MAAO72N,MAAQ+9D,EAAKmsD,QAC5CnsD,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,IACL,SAQTA,EAAQtpH,KAAK+6H,UAAU95D,OAAOlD,KAC1BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUv5G,IAAIu8C,KACvBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UAClBqrH,EAAOA,EAAOrrH,OAAS,GAC/B09N,GAA4B,SAAfjzG,EAAMpqH,MAAsC,SAAnBq9N,EAAUr9N,QACxCi5D,KAAOmxD,EAAMnxD,MACbplC,MAAQu2F,EAAMv2F,QAEjBj0B,KAAKwqH,WAMZA,EAAQtpH,KAAK+6H,UAAUjuC,KAAK/uB,KACxBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU2+F,QAAQ37J,EAAK/9D,KAAKirH,OAAOwuG,SAC5C17J,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UAClBqrH,EAAOA,EAAOrrH,OAAS,GAC/B09N,GAA4B,SAAfjzG,EAAMpqH,MAAsC,SAAnBq9N,EAAUr9N,QACxCi5D,KAAOmxD,EAAMnxD,MACbplC,MAAQu2F,EAAMv2F,QAEjBj0B,KAAKwqH,WAMZA,EAAQtpH,KAAK+6H,UAAU++F,SAAS/7J,EAAK67J,EAAWC,KAC5C97J,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUkiG,SAASl/J,KAC5BA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU4/F,GAAG58J,KACtBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAUtkC,IAAI14B,KACvBA,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKVA,EAAQtpH,KAAK+6H,UAAU8/F,SAAS98J,EAAKwlJ,MACjCxlJ,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,WAKTtpH,KAAKoE,MAAM0yN,YAAmB92N,KAAK+6H,UAAUhzH,IAAIg2D,EAAKwlJ,WAQlDxlJ,EACL/9D,KAAKiS,QAAQixM,YAAcljN,KAAKiS,QAAQixM,WAAWga,YAAa,KAC9Dr/F,EAAa7nH,EAAAA,QACX4mN,EAAU7+J,EAAI/6D,MAAM,OACtB65N,OACC5qN,QAAQixM,WAAWga,YAAYv4N,SAAQ,SAASm4N,KACvCA,EAAcp3N,KAAK,CAAEmxN,MAAO72N,MAAQ48N,GACvB,iBAAdC,GAA0BA,GAAa,MAAkBl0N,KAAKkN,IAAIgoH,EAAYg/F,OAEvFh/F,EAAa7nH,EAAAA,GAAY6nH,GAAc,MAChC9/D,EAAIyjC,UAAU,EAAGq8B,EAAa,OAGvCvU,EAAQtpH,KAAK+6H,UAAUoiG,WAAWX,EAAQ5Y,MACtC7lJ,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,QACF,MAAxByqH,EAAMnxD,IAAIn1D,cACDsmH,EAAMnxD,IAAIn1D,cAER,IACHknH,EAAOA,EAAOrrH,OAAS,GAC/B09N,GAAgC,SAAnBA,EAAUr9N,QACfi5D,KAAOmxD,EAAMnxD,MACbplC,MAAQu2F,EAAMv2F,QAEjBj0B,KAAKwqH,WAKZvrD,EAAK,OACDg/J,EAAS,0BAA4Bh/J,EAAIxI,WAAW,MACtDv1D,KAAKiS,QAAQqB,OAAQ,SACf9C,MAAMusN,eAGR,IAAIzkK,MAAMykK,WA1CZh/J,EAAIyjC,UAAU8nB,EAAMnxD,IAAIt5D,UACvBC,KAAKwqH,UA8CTY,GAOX,SACEn7G,YAAYkD,QACLA,QAAUA,GAAWkjN,GAG5BpmN,KAAKq3C,EAAMg3K,EAAY1G,SACfx3H,MAAsB,IAAI92F,MAAM,OAAO,MACzCpI,KAAKiS,QAAQs1H,UAAW,OACpBjwE,EAAMt3D,KAAKiS,QAAQs1H,UAAUnhF,EAAM84C,GAC9B,MAAP5nC,GAAeA,IAAQlR,OACf,IACHkR,YAIJlR,EAAKtjD,QAAQ,MAAO,IAAM,KAE5Bo8F,EAME,qBACHl/F,KAAKiS,QAAQqxM,WACbriJ,GAAOi+B,GAAM,GACb,QACW94C,EAAO6a,GAAO7a,GAAM,IAC/B,kBAVK,iBACQA,EAAO6a,GAAO7a,GAAM,IAC/B,kBAWRr3C,WAAWiiH,SACF,iBAAmBA,EAAQ,kBAGpCjiH,KAAKs7F,UACIA,EAGTt7F,QAAQgkB,EAAMjU,EAAOq5C,EAAKklK,UACpBr9N,KAAKiS,QAAQmxM,UACR,KACHtkM,EACA,QACA9e,KAAKiS,QAAQoxM,aACbga,EAAQC,KAAKnlK,GACb,KACAplC,EACA,MACAjU,EACA,MAGC,KAAOA,EAAQ,IAAMiU,EAAO,MAAQjU,EAAQ,MAGrD/P,YACS/O,KAAKiS,QAAQ4xM,MAAQ,UAAY,SAG1C90M,KAAK0+E,EAAM6qI,EAAS3pN,SACZtE,EAAOiuN,EAAU,KAAO,WAEvB,IAAMjuN,GADCiuN,GAAqB,IAAV3pN,EAAgB,WAAaA,EAAQ,IAAO,IACtC,MAAQ8+E,EAAO,KAAOpjF,EAAO,MAG9D0E,SAASgkB,SACA,OAASA,EAAO,UAGzBhkB,SAAS1I,SACA,aACQ,cAAgB,IAC3B,oCACM4L,QAAQ4xM,MAAQ,KAAO,IAC7B,KAGN90M,UAAUgkB,SACD,MAAQA,EAAO,SAGxBhkB,MAAMu6C,EAAQmkC,UACRA,MAAa,UAAYA,EAAO,YAE7B,qBAEHnkC,EACA,aACAmkC,EACA,aAGN1+E,SAASsiJ,SACA,SAAWA,EAAU,UAG9BtiJ,UAAUsiJ,EAAStoJ,SACXsB,EAAOtB,EAAMugD,OAAS,KAAO,YACvBvgD,EAAM+vN,MACd,IAAMzuN,EAAO,WAAatB,EAAM+vN,MAAQ,KACxC,IAAMzuN,EAAO,KACJgnJ,EAAU,KAAOhnJ,EAAO,MAIvC0E,OAAOgkB,SACE,WAAaA,EAAO,YAG7BhkB,GAAGgkB,SACM,OAASA,EAAO,QAGzBhkB,SAASgkB,SACA,SAAWA,EAAO,UAG3BhkB,YACS/O,KAAKiS,QAAQ4xM,MAAQ,QAAU,OAGxC90M,IAAIgkB,SACK,QAAUA,EAAO,SAG1BhkB,KAAKpE,EAAM4a,EAAOwN,MAEH,UADNwqM,GAASv9N,KAAKiS,QAAQwxM,SAAUzjN,KAAKiS,QAAQ+wM,QAASr4M,WAEpDooB,MAELukC,EAAM,YAAc2J,GAAOt2D,GAAQ,WACnC4a,OACK,WAAaA,EAAQ,QAEvB,IAAMwN,EAAO,OACbukC,EAGTvoD,MAAMpE,EAAM4a,EAAOwN,MAEJ,UADNwqM,GAASv9N,KAAKiS,QAAQwxM,SAAUzjN,KAAKiS,QAAQ+wM,QAASr4M,WAEpDooB,MAGLukC,EAAM,aAAe3sD,EAAO,UAAYooB,EAAO,WAC/CxN,OACK,WAAaA,EAAQ,QAEvBvlB,KAAKiS,QAAQ4xM,MAAQ,KAAO,IAC5BvsJ,EAGTvoD,KAAKgkB,UACIA,GAQX,SAEEhkB,OAAOgkB,UACEA,EAGThkB,GAAGgkB,UACMA,EAGThkB,SAASgkB,UACAA,EAGThkB,IAAIgkB,UACKA,EAGThkB,KAAKgkB,UACIA,EAGThkB,KAAKgkB,UACIA,EAGThkB,KAAKpE,EAAM4a,EAAOwN,SACT,GAAKA,EAGdhkB,MAAMpE,EAAM4a,EAAOwN,SACV,GAAKA,EAGdhkB,WACS,IAOX,SACEA,mBACOyuN,KAAO,GAGdzuN,UAAU3M,UACDA,EACJW,cACAwoF,OAEAzoF,QAAQ,kBAAmB,IAE3BA,QAAQ,gEAAiE,IACzEA,QAAQ,MAAO,KAMpBiM,gBAAgB0uN,EAAcC,OACxBJ,EAAOG,EACPE,EAAuB,KACvB39N,KAAKw9N,KAAKnhN,eAAeihN,GAAO,GACXt9N,KAAKw9N,KAAKC,YAGxBA,EAAe,IAAME,QACrB39N,KAAKw9N,KAAKnhN,eAAeihN,WAE/BI,SACEF,KAAKC,GAAgBE,OACrBH,KAAKF,GAAQ,GAEbA,EAQTvuN,KAAK3M,EAAO6P,EAAU,UACdqrN,EAAOt9N,KAAK49N,UAAUx7N,UACrBpC,KAAK69N,gBAAgBP,EAAMrrN,EAAQ6rN,SAO9C,SACE/uN,YAAYkD,QACLA,QAAUA,GAAWkjN,QACrBljN,QAAQsxF,SAAWvjG,KAAKiS,QAAQsxF,UAAY,IAAIw6H,QAChDx6H,SAAWvjG,KAAKiS,QAAQsxF,cACxBA,SAAStxF,QAAUjS,KAAKiS,aACxB+rN,aAAe,IAAIC,QACnBZ,QAAU,IAAIa,gBAMRh0G,EAAQj4G,UACJ,IAAIy1J,GAAOz1J,GACZ6B,MAAMo2G,sBAMHA,EAAQj4G,UACV,IAAIy1J,GAAOz1J,GACZksN,YAAYj0G,GAM5Bn7G,MAAMm7G,EAAQ1lB,GAAM,OAEhB3mG,EACA4pD,EACAhmD,EACArD,EACAoI,EACA6/F,EACA4hD,EACA3+F,EACAmkC,EACA67B,EACAgvG,EACA3pN,EACAwE,EACAirN,EACA78M,EACAlb,EACAupN,EACAyO,EACAn2N,EAnBEovD,EAAM,SAqBJwkB,EAAIouC,EAAOrrH,WACZhB,EAAI,EAAGA,EAAIi+E,EAAGj+E,SACTqsH,EAAOrsH,GAGXmC,KAAKiS,QAAQixM,YAAcljN,KAAKiS,QAAQixM,WAAWob,WAAat+N,KAAKiS,QAAQixM,WAAWob,UAAUh1G,EAAMpqH,UACpGc,KAAKiS,QAAQixM,WAAWob,UAAUh1G,EAAMpqH,MAAMwG,KAAK,CAAE2hK,OAAQrnK,MAAQspH,IAC/D,IAARphH,IAAkB,CAAC,QAAS,KAAM,UAAW,OAAQ,QAAS,aAAc,OAAQ,OAAQ,YAAa,QAAQuQ,SAAS6wG,EAAMpqH,UAC3HgJ,GAAO,eAKVohH,EAAMpqH,UACP,qBAGA,QACIc,KAAKujG,SAASm0H,kBAGlB,aACI13N,KAAKujG,SAASi0H,QACnBx3N,KAAKm+N,YAAY70G,EAAM2B,QACvB3B,EAAM7rF,MACNqjC,GAAS9gE,KAAKm+N,YAAY70G,EAAM2B,OAAQjrH,KAAKg+N,eAC7Ch+N,KAAKq9N,sBAGJ,UACIr9N,KAAKujG,SAASolF,KAAKr/D,EAAMv2F,KAC9Bu2F,EAAMpqB,KACNoqB,EAAMotG,sBAGL,cACM,KAGF,KACFptG,EAAMhgE,OAAOzqD,OACb4oD,EAAI,EAAGA,EAAIrpD,EAAIqpD,OACVznD,KAAKujG,SAASg7H,UACpBv+N,KAAKm+N,YAAY70G,EAAMhgE,OAAO7B,GAAGwjE,QACjC,CAAE3hE,QAAQ,EAAMwvK,MAAOxvG,EAAMwvG,MAAMrxK,YAG7BznD,KAAKujG,SAASi7H,SAASv2E,KAE1B,KACF3+B,EAAM9B,KAAK3oH,OACX4oD,EAAI,EAAGA,EAAIrpD,EAAIqpD,IAAK,OACjB6hE,EAAM9B,KAAK//D,KAEV,KACF4+C,EAAIxnG,OACJ4C,EAAI,EAAGA,EAAI+E,EAAI/E,OACVzB,KAAKujG,SAASg7H,UACpBv+N,KAAKm+N,YAAY93H,EAAI5kG,GAAGwpH,QACxB,CAAE3hE,QAAQ,EAAOwvK,MAAOxvG,EAAMwvG,MAAMr3N,QAIhCzB,KAAKujG,SAASi7H,SAASv2E,MAE1BjoJ,KAAKujG,SAAS33C,MAAMtC,EAAQmkC,gBAGhC,eACIztF,KAAK8T,MAAMw1G,EAAM2B,WACjBjrH,KAAKujG,SAASo0H,WAAWlqI,gBAG7B,aACO67B,EAAMgvG,UACRhvG,EAAM36G,QACN26G,EAAMn2G,QACTm2G,EAAMhhG,MAAMzpB,SAEV,GACF4oD,EAAI,EAAGA,EAAIrpD,EAAIqpD,MACX6hE,EAAMhhG,MAAMm/B,KACTlmC,EAAKlb,UACRkb,EAAKquM,OAED,GACPruM,EAAKquM,SACI5vN,KAAKujG,SAAS86H,SAASh4N,GAC9B8M,EACEoO,EAAK0pG,OAAOpsH,OAAS,GAA6B,cAAxB0iB,EAAK0pG,OAAO,GAAG/rH,QACtC+rH,OAAO,GAAGl4F,KAAOsrM,EAAW,IAAM98M,EAAK0pG,OAAO,GAAGl4F,KAClDxR,EAAK0pG,OAAO,GAAGA,QAAU1pG,EAAK0pG,OAAO,GAAGA,OAAOpsH,OAAS,GAAuC,SAAlC0iB,EAAK0pG,OAAO,GAAGA,OAAO,GAAG/rH,SACnF+rH,OAAO,GAAGA,OAAO,GAAGl4F,KAAOsrM,EAAW,IAAM98M,EAAK0pG,OAAO,GAAGA,OAAO,GAAGl4F,SAGvEk4F,OAAOD,QAAQ,CAClB9rH,KAAM,OACN6zB,KAAMsrM,OAIEA,MAIJr+N,KAAK8T,MAAMyN,EAAK0pG,OAAQ93G,MAC5BnT,KAAKujG,SAASk7H,SAASL,EAAUxO,EAAMvpN,MAG1CrG,KAAKujG,SAAShtF,KAAKk3E,EAAM6qI,EAAS3pN,gBAGtC,UAEI3O,KAAKujG,SAAS8G,KAAKif,EAAMv2F,mBAG7B,eACI/yB,KAAKujG,SAASy1H,UAAUh5N,KAAKm+N,YAAY70G,EAAM2B,sBAGnD,aACI3B,EAAM2B,OAASjrH,KAAKm+N,YAAY70G,EAAM2B,QAAU3B,EAAMv2F,KACtDl1B,EAAI,EAAIi+E,GAA4B,SAAvBouC,EAAOrsH,EAAI,GAAGqB,QACxBgrH,IAASrsH,MACT,QAAcotH,OAASjrH,KAAKm+N,YAAY70G,EAAM2B,QAAU3B,EAAMv2F,SAEjEyxE,EAAMxkG,KAAKujG,SAASy1H,UAAUvrI,GAAQA,mBAItC,OACDsvI,EAAS,eAAiBzzG,EAAMpqH,KAAO,2BACzCc,KAAKiS,QAAQqB,2BACP9C,MAAMusN,SAGR,IAAIzkK,MAAMykK,WAMjBzlK,EAMTvoD,YAAYm7G,EAAQ3mB,KACPA,GAAYvjG,KAAKujG,aAE1B1lG,EACAyrH,EACAphH,EAHEovD,EAAM,SAKJl5D,EAAI8rH,EAAOrrH,WACZhB,EAAI,EAAGA,EAAIO,EAAGP,SACTqsH,EAAOrsH,GAGXmC,KAAKiS,QAAQixM,YAAcljN,KAAKiS,QAAQixM,WAAWob,WAAat+N,KAAKiS,QAAQixM,WAAWob,UAAUh1G,EAAMpqH,UACpGc,KAAKiS,QAAQixM,WAAWob,UAAUh1G,EAAMpqH,MAAMwG,KAAK,CAAE2hK,OAAQrnK,MAAQspH,IAC/D,IAARphH,IAAkB,CAAC,SAAU,OAAQ,OAAQ,QAAS,SAAU,KAAM,WAAY,KAAM,MAAO,QAAQuQ,SAAS6wG,EAAMpqH,UACjHgJ,GAAO,eAKVohH,EAAMpqH,UACP,YACIqkG,EAASxwE,KAAKu2F,EAAMv2F,gBAGxB,UACIwwE,EAAS8G,KAAKif,EAAMv2F,gBAGxB,UACIwwE,EAASzW,KAAKw8B,EAAM3+G,KAAM2+G,EAAM/jG,MAAOvlB,KAAKm+N,YAAY70G,EAAM2B,OAAQ1nB,cAG1E,WACIA,EAASmyF,MAAMpsE,EAAM3+G,KAAM2+G,EAAM/jG,MAAO+jG,EAAMv2F,gBAGlD,YACIwwE,EAASw4H,OAAO/7N,KAAKm+N,YAAY70G,EAAM2B,OAAQ1nB,cAGnD,QACIA,EAAS44H,GAAGn8N,KAAKm+N,YAAY70G,EAAM2B,OAAQ1nB,cAG/C,cACIA,EAAS05H,SAAS3zG,EAAMv2F,gBAG5B,QACIwwE,EAASo3H,eAGb,SACIp3H,EAAS9M,IAAIz2F,KAAKm+N,YAAY70G,EAAM2B,OAAQ1nB,cAGhD,UACIA,EAASxwE,KAAKu2F,EAAMv2F,oBAGpB,OACDgqM,EAAS,eAAiBzzG,EAAMpqH,KAAO,2BACzCc,KAAKiS,QAAQqB,2BACP9C,MAAMusN,SAGR,IAAIzkK,MAAMykK,WAKjBzlK,GAOX,YAAgByG,EAAK7F,EAAKitB,MAEpB,MAAOpnB,QACH,IAAIzF,MAAM,qDAEC,iBAARyF,QACH,IAAIzF,MAAM,wCACZnsD,OAAOpI,UAAUqN,SAAS1L,KAAKq4D,GAAO,wBAGzB,mBAAR7F,MACEA,IACL,WAGF6yD,GAAM,GAAI2zG,GAAOvJ,SAAUj9J,GAAO,KAGpCitB,EAAU,OACNoiD,EAAYrvE,EAAIqvE,cAClBrd,QAGOoyG,GAAM7rD,IAAI1yG,EAAK7F,SACjBh3D,UACAikF,EAASjkF,SAGZu9D,EAAO,SAAS87F,OAChBjjG,MAECijG,MAEGriG,EAAI+0E,eACCA,WAAW/iB,EAAQhyD,EAAI+0E,cAE1By6B,GAAO5zJ,MAAMo2G,EAAQhyD,SACpBh3D,KACDA,WAINqmI,UAAYA,EAETgzB,EACHp1E,EAASo1E,GACTp1E,EAAS,KAAM7tB,QAGhBiwE,GAAaA,EAAU1oI,OAAS,SAC5B4/D,cAGFvG,EAAIqvE,WAENrd,EAAOrrH,cAAe4/D,QAEvB5Y,EAAU,YACPonF,WAAW/iB,GAAQ,SAASZ,GACd,SAAfA,EAAMpqH,uBAEG,OACCoqH,EAAMv2F,KAAMu2F,EAAMpqB,MAAM,SAASq7D,EAAKn0G,MAC1Cm0G,SACK97F,EAAK87F,GAEF,MAARn0G,GAAgBA,IAASkjE,EAAMv2F,SAC3BA,KAAOqzB,IACPswK,SAAU,OAIF,IAAZ7wK,YAIL,YAIS,IAAZA,kBAQEqkE,EAASoyG,GAAM7rD,IAAI1yG,EAAK7F,UAC1BA,EAAI+0E,eACCA,WAAW/iB,EAAQhyD,EAAI+0E,YAEzBy6B,GAAO5zJ,MAAMo2G,EAAQhyD,SACrBh3D,QACLwgE,SAAW,8DACTxJ,EAAI5kD,aACC,iCACH2tD,GAAO//D,EAAEwgE,QAAU,IAAI,GACvB,eAEAxgE,GAQVw9N,GAAOzsN,QACPysN,GAAOtrH,WAAa,SAASl7C,GAh5E7B,IAAwBymK,YAi5EhBD,GAAOvJ,SAAUj9J,GAj5EDymK,EAk5EPD,GAAOvJ,YAj5EXwJ,EAk5EJD,IAGTA,GAAOE,YAAcA,GAErBF,GAAOvJ,SAAWA,GAMlBuJ,GAAOG,IAAM,YAAY7pN,SACjB/M,EAAO8iH,GAAM,MAAO/1G,GACpBkuM,EAAawb,GAAOvJ,SAASjS,YAAc,CAAEob,UAAW,GAAIQ,YAAa,QAC3EC,IAECp6N,SAAS6sB,OAERA,EAAK0xL,gBACS,IACXA,WAAWv+M,SAAS87L,QAClBA,EAAI36L,WACD,IAAIwyD,MAAM,8BAEdmoI,EAAIl9F,SAAU,OACVy7H,EAAe9b,EAAWob,UAAYpb,EAAWob,UAAU79B,EAAI36L,MAAQ,OAGhEw4N,UAAU79B,EAAI36L,MAFvBk5N,EAE+B,YAAYC,OACvC/2N,EAAMu4L,EAAIl9F,SAAS73E,MAAM1rB,KAAMi/N,UACvB,IAAR/2N,MACI82N,EAAatzM,MAAM1rB,KAAMi/N,IAE1B/2N,GAGwBu4L,EAAIl9F,YAGrCk9F,EAAI1lE,UAAW,KACZ0lE,EAAI3hL,OAAwB,UAAd2hL,EAAI3hL,OAAmC,WAAd2hL,EAAI3hL,YACxC,IAAIw5C,MAAM,+CAEd4qJ,EAAWziB,EAAI3hL,SACN2hL,EAAI3hL,OAAOksG,QAAQy1E,EAAI1lE,aAEvB0lE,EAAI3hL,OAAS,CAAC2hL,EAAI1lE,WAE3B0lE,EAAI9xL,QACY,UAAd8xL,EAAI3hL,MACFokM,EAAWyZ,aACFA,WAAW79N,KAAK2hM,EAAI9xL,SAEpBguN,WAAa,CAACl8B,EAAI9xL,OAER,WAAd8xL,EAAI3hL,QACTokM,EAAWga,cACFA,YAAYp+N,KAAK2hM,EAAI9xL,SAErBuuN,YAAc,CAACz8B,EAAI9xL,SAKlC8xL,EAAIq+B,gBACKA,YAAYr+B,EAAI36L,MAAQ26L,EAAIq+B,iBAMzCttM,EAAK+xE,SAAU,OACXA,EAAWm7H,GAAOvJ,SAAS5xH,UAAY,IAAIw6H,aACtC1mC,KAAQ7lK,EAAK+xE,SAAU,OAC1By7H,EAAez7H,EAAS8zF,KAErBA,GAAQ,IAAI4nC,SACf/2N,EAAMspB,EAAK+xE,SAAS8zF,GAAM3rK,MAAM63E,EAAU07H,UAClC,IAAR/2N,MACI82N,EAAatzM,MAAM63E,EAAU07H,IAE9B/2N,KAGNq7F,SAAWA,KAEd/xE,EAAKupG,UAAW,OACZA,EAAY2jG,GAAOvJ,SAASp6F,WAAa,IAAI7P,aACxCmsE,KAAQ7lK,EAAKupG,UAAW,OAC3BmkG,EAAgBnkG,EAAUs8D,KAEtBA,GAAQ,IAAI4nC,SAChB/2N,EAAMspB,EAAKupG,UAAUs8D,GAAM3rK,MAAMqvG,EAAWkkG,UACpC,IAAR/2N,MACIg3N,EAAcxzM,MAAMqvG,EAAWkkG,IAEhC/2N,KAGN6yH,UAAYA,KAIfvpG,EAAKy7G,WAAY,OACbA,EAAayxF,GAAOvJ,SAASloF,aAC9BA,WAAa,SAAS3jB,KACpB2jB,WAAWvnI,KAAK1F,KAAMspH,GACvB2jB,KACSvnI,KAAK1F,KAAMspH,IAKxBy1G,MACG7b,WAAaA,MAGb9vG,WAAWnrG,OAQtBy2N,GAAOzxF,WAAa,SAAS/iB,EAAQ/kC,aACxBmkC,KAASY,WACTxkH,KAAKg5N,GAAQp1G,GACdA,EAAMpqH,UACP,kBACQ+oJ,KAAQ3+B,EAAMhgE,UAChB2jF,WAAWgb,EAAKh9B,OAAQ9lC,aAEtBkhB,KAAOijB,EAAM9B,eACXygC,KAAQ5hD,KACV4mC,WAAWgb,EAAKh9B,OAAQ9lC,aAKhC,UACI8nD,WAAW3jB,EAAMhhG,MAAO68D,iBAI3Bu5I,GAAOvJ,SAASjS,YAAcwb,GAAOvJ,SAASjS,WAAW4b,aAAeJ,GAAOvJ,SAASjS,WAAW4b,YAAYx1G,EAAMpqH,SAChHi2N,SAASjS,WAAW4b,YAAYx1G,EAAMpqH,MAAMyF,SAAQ,SAASm6N,MAC3D7xF,WAAW3jB,EAAMw1G,GAAc35I,MAE/BmkC,EAAM2B,WACRgiB,WAAW3jB,EAAM2B,OAAQ9lC,KAU1Cu5I,GAAOP,YAAc,SAASpgK,EAAK7F,MAE7B,MAAO6F,QACH,IAAIzF,MAAM,iEAEC,iBAARyF,QACH,IAAIzF,MAAM,oDACZnsD,OAAOpI,UAAUqN,SAAS1L,KAAKq4D,GAAO,0BAGtCgtD,GAAM,GAAI2zG,GAAOvJ,SAAUj9J,GAAO,eAIhCgyD,EAASoyG,GAAM6C,UAAUphK,EAAK7F,UAChCA,EAAI+0E,eACCA,WAAW/iB,EAAQhyD,EAAI+0E,YAEzBy6B,GAAOy2D,YAAYj0G,EAAQhyD,SAC3Bh3D,QACLwgE,SAAW,8DACTxJ,EAAI5kD,aACC,iCACH2tD,GAAO//D,EAAEwgE,QAAU,IAAI,GACvB,eAEAxgE,IAOVw9N,GAAOh3D,OAASA,GAChBg3D,GAAOr3D,OAASK,GAAO5zJ,MACvB4qN,GAAOX,SAAWA,GAClBW,GAAOT,aAAeA,GACtBS,GAAOpC,MAAQA,GACfoC,GAAO7H,MAAQyF,GAAM7rD,IACrBiuD,GAAOxzG,UAAYA,GACnBwzG,GAAOR,QAAUA,GACjBQ,GAAO5qN,MAAQ4qN,GAQAh3D,GAAO5zJ,MACRwoN,GAAM7rD"} \ No newline at end of file diff --git a/assets/vendor.50c0a5f7.js b/assets/vendor.a42db564.js similarity index 84% rename from assets/vendor.50c0a5f7.js rename to assets/vendor.a42db564.js index c7853968..211dec6c 100644 --- a/assets/vendor.50c0a5f7.js +++ b/assets/vendor.a42db564.js @@ -1,19 +1,19 @@ -var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,i,n)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[i]=n,s=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&a(e,i,t[i]);if(n)for(var i of n(t))o.call(t,i)&&a(e,i,t[i]);return e},c=(e,n)=>t(e,i(n)),l=e=>"symbol"==typeof e?e:e+"";const u={};var d,h,p,m,f,g={},_=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function v(e,t){for(var i in t)e[i]=t[i];return e}function y(e){var t=e.parentNode;t&&t.removeChild(e)}function w(e,t,i){var n,r,o,a=arguments,s={};for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(i=[i],o=3;o0?x(p.type,p.props,p.key,null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(h=v[u])||h&&p.key==h.key&&p.type===h.type)v[u]=void 0;else for(d=0;dt.rank?-1:e.index-t.index}function G(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,X(t).map(J).join(""));var t}(e),e.props}function X(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function J(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,Z=[],Q=[],ee={};function te(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:ee).pathname||"")+(e.search||"")}function ie(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=Z.length;t--;)if(Z[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ne(e)}function ne(e){for(var t=!1,i=0;i0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){Z.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),Z.splice(Z.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,i){return e.filter(G).sort(K).map((function(e){var n=V(t,e.props.path,e.props);if(n){if(!1!==i){var r={url:t,matches:n};return q(r,n),delete r.ref,delete r.key,function(e,t,i){var n,r,o,a=arguments,s=v({},e.props);for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(i=[i],o=3;o=i.__.length&&i.__.push({}),i.__[e]}function xe(e){return me=1,function(e,t,i){var n=we(de++,2);return n.t=e,n.__c||(n.__=[i?i(t):Me(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=he),n.__}(Me,e)}function Ae(e,t){var i=we(de++,3);!d.__s&&Le(i.__H,t)&&(i.__=e,i.__H=t,he.__H.__h.push(i))}function Ne(e){return me=5,ke((function(){return{current:e}}),[])}function ke(e,t){var i=we(de++,7);return Le(i.__H,t)&&(i.__=e(),i.__H=t,i.__h=e),i.__}function Ce(e,t){return me=8,ke((function(){return e}),t)}function Ee(e){var t=he.context[e.__c],i=we(de++,9);return i.__c=e,t?(null==i.__&&(i.__=!0,t.sub(he)),t.props.value):e.__}function Se(e){var t=we(de++,10),i=xe();return t.__=e,he.componentDidCatch||(he.componentDidCatch=function(e){t.__&&t.__(e),i[1](e)}),[i[0],function(){i[1](void 0)}]}function Fe(){fe.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(De),e.__H.__h.forEach(Be),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),fe=[]}d.__b=function(e){he=null,ge&&ge(e)},d.__r=function(e){_e&&_e(e),de=0;var t=(he=e.__c).__H;t&&(t.__h.forEach(De),t.__h.forEach(Be),t.__h=[])},d.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==fe.push(t)&&pe===d.requestAnimationFrame||((pe=d.requestAnimationFrame)||function(e){var t,i=function(){clearTimeout(n),Oe&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);Oe&&(t=requestAnimationFrame(i))})(Fe)),he=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(De),e.__h=e.__h.filter((function(e){return!e.__||Be(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(i,e.__v)}})),ve&&ve(e,t)},d.unmount=function(e){ye&&ye(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(De)}catch(i){d.__e(i,t.__v)}};var Oe="function"==typeof requestAnimationFrame;function De(e){var t=he;"function"==typeof e.__c&&e.__c(),he=t}function Be(e){var t=he;e.__c=e.__(),he=t}function Le(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function Me(e,t){return"function"==typeof t?t(e):t}var $e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Te={},Re={},je={};Object.defineProperty(je,"__esModule",{value:!0}),je.ModelPath=je.Path=je.relativePath=void 0,je.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ie{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new Ie(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ie(this.modelArr.slice(1),this.contextArr)}pop(){return new Ie(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new Ie([...this.modelArr],[...this.contextArr,t])}copy(){return new Ie([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Pe(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,i)=>e===this.modelArr[t+i]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}je.Path=Ie;class Pe extends Ie{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new Pe(this.model,super.slice(e,t))}shift(){return new Pe(this.model,super.shift())}pop(){return new Pe(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Pe(this.model,super.modelPush(e))}contextPush(e){return new Pe(this.model,super.contextPush(e))}copy(){return new Pe(this.model,super.copy())}}je.ModelPath=Pe;var ze={};Object.defineProperty(ze,"__esModule",{value:!0}),ze.Errors=void 0;class Ue{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}ze.Errors=Ue;var We={};function He(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(We,"__esModule",{value:!0}),We.hexId=We.quoteString=We.escapeString=void 0,We.escapeString=He,We.quoteString=function(e){return`"${He(e)}"`};const qe=e=>("0"+e.toString(16)).substr(-2);We.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,qe).join("")},Object.defineProperty(Re,"__esModule",{value:!0}),Re.DataModel=void 0;const Ve=je,Ke=ze,Ge=We;class Xe{constructor(e,t){var i,n,r,o;this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50,this.verbose=null!==(n=null==t?void 0:t.verbose)&&void 0!==n&&n,this.wrapLists=null!==(r=null==t?void 0:t.wrapLists)&&void 0!==r&&r,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Xe.wrapLists(a):a,this.listeners=[],this.errors=new Ke.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let n=this.data;e.pop().forEach((e=>{void 0!==n[e]&&"string"!=typeof n[e]&&"number"!=typeof n[e]||(this.wrapLists&&"number"==typeof e?n[e]={node:{},id:Ge.hexId()}:n[e]={}),n=this.wrapLists&&"number"==typeof e?n[e].node:n[e]})),null!==n&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?n.splice(e.last(),1):delete n[e.last()]:this.wrapLists&&"number"==typeof e.last()?n[e.last()]={node:t,id:Ge.hexId()}:n[e.last()]=t,i||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ge.hexId()})));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.wrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.unwrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}}Re.DataModel=Xe;var Je,Ye={};Je=Ye,Object.defineProperty(Je,"__esModule",{value:!0}),Je.Keep=Je.Opt=Je.Has=Je.Mod=Je.Base=void 0,Je.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},Je.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Je.Has=(e,t)=>Je.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Je.Opt=function(e){return c(s({},e),{optional:()=>!0})},Je.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ze={};Object.defineProperty(Ze,"__esModule",{value:!0}),Ze.BooleanNode=void 0;const Qe=Re,et=Ye;Ze.BooleanNode=()=>c(s({},et.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var n;return(null!==(n=e.boolean)&&void 0!==n?n:e.base).call(e,{node:this},t,...i)}});var tt={},it={};Object.defineProperty(it,"__esModule",{value:!0}),it.ListNode=void 0;const nt=Re,rt=Ye;it.ListNode=(e,t)=>{var i,n;const r=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,o=null!==(n=null==t?void 0:t.maxLength)&&void 0!==n?n:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},rt.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(r)].map((t=>e.default())):[],navigate(t,i){const n=i+1;return t.getArray().length<=n?this:e.navigate(t,n)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,n,s){if(s.loose&&!Array.isArray(i)&&(i=s.wrapLists?nt.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(i))return n.add(t,"error.expected_list"),i;a&&(i.lengtho)?r===o?n.add(t,"error.invalid_list_range.exact",i.length,r):n.add(t,"error.invalid_list_range.between",i.length,r,o):i.lengtho&&n.add(t,"error.invalid_list_range.larger",i.length,o);const c=i.map(((i,r)=>{const o=e.validate(t.push(r),s.wrapLists?i.node:i,n,s);return s.wrapLists?{node:o,id:i.id}:o}));for(const e of Object.getOwnPropertySymbols(i))c[e]=i[e];return c},hook(i,n,...r){var o;return(null!==(o=i.list)&&void 0!==o?o:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},n,...r)}})};var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.SwitchNode=void 0;const at=Ye;ot.SwitchNode=e=>c(s({},at.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const n=t+1;return null===(i=this.activeCase(e.slice(0,n)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,n;return null!==(n=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==n?n:e},suggest(t,i){var n,r;return null!==(r=null===(n=this.activeCase(t))||void 0===n?void 0:n.node.suggest(t,i))&&void 0!==r?r:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,i))).reduce(((e,t)=>e.concat(t)))},validate(e,t,i,n){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,n)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const n=(e,t)=>{var i,n;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(n=e.priority)&&void 0!==n?n:0)},r=e.filter((e=>e.match(t))).sort(n);return i&&0===r.length?e.sort(n)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=it,i=ot;e.ChoiceNode=(e,t)=>{const n=i.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},n),{validate(e,t,i,r){let o=n.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,i,r)},hook(i,r,...o){var a;return(null!==(a=i.choice)&&void 0!==a?a:i.base).call(i,{node:this,choices:e,config:null!=t?t:{},switchNode:n},r,...o)}})};const n=i=>(n,r)=>e.ChoiceNode([{type:i,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:t.ListNode(n),change:e=>e?[e]:[]}],r);e.ObjectOrList=n("object"),e.StringOrList=n("string"),e.ObjectOrPreset=(t,i,n)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(n)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=n[e])&&void 0!==t?t:n[Object.keys(n)[0]]}}])}(tt);var st={};Object.defineProperty(st,"__esModule",{value:!0}),st.MapNode=void 0;const ct=Ye,lt=Re;st.MapNode=(e,t,i)=>c(s({},ct.Base),{type:()=>"map",default:()=>({}),navigate(e,i){const n=i+1;return e.getArray().length<=n?this:t.navigate(e,n)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,n,r,o){if(o.loose&&"object"!=typeof n&&(n=o.wrapLists?lt.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return r.add(i,"error.expected_object"),n;const a={};Object.keys(n).forEach((s=>{e.validate(i,s,r,o),a[s]=t.validate(i.push(s),n[s],r,o)}));for(const e of Object.getOwnPropertySymbols(n))a[e]=n[e];return a},validationOption(t){var n;return null!==(n=null==i?void 0:i.validation)&&void 0!==n?n:e.validationOption(t.push(""))},hook(n,r,...o){var a;return(null!==(a=n.map)&&void 0!==a?a:n.base).call(n,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...o)}});var ut={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Te,i=Re,n=Ye;e.NumberNode=e=>{var t,r,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,u=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,d=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},n.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,n,r){return r.loose&&"number"!=typeof t&&(t=r.wrapLists?i.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?n.add(e,"error.expected_number"):a&&!Number.isInteger(t)?n.add(e,"error.expected_integer"):d&&(tu)?n.add(e,"error.invalid_number_range.between",t,l,u):tu&&n.add(e,"error.invalid_number_range.larger",t,u),t},hook(t,i,...n){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:a,min:l,max:u,between:d,config:null!=e?e:{}},i,...n)}})},e.NumberEnum=({integer:i,values:n})=>t.Mod(e.NumberNode({integer:i}),(e=>({validate:(t,i,r,o)=>(i=e.validate(t,i,r,o),n.includes(i)||r.add(t,"error.invalid_number_enum",n.join(", ")),i)})))}(ut);var dt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ye,i=je,a=ze,u=We,d=Re;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(h,p)=>{var m,f;const g=h,{[m=e.Switch]:_,[f=e.Case]:b}=g,v=((e,t)=>{var i={};for(var a in e)r.call(e,a)&&t.indexOf(a)<0&&(i[a]=e[a]);if(null!=e&&n)for(var a of n(e))t.indexOf(a)<0&&o.call(e,a)&&(i[a]=e[a]);return i})(g,[l(m),l(f)]),y=e=>{if(void 0===_)return v;const t=i.relativePath(e,_).get(),n=b[t];return s(s({},v),n)},w=(e,t)=>{var n;const r=_?i.relativePath(e,_).get():void 0,o=_&&null!==(n=b[r])&&void 0!==n?n:{},a=Object.keys(o),s=(null==p?void 0:p.context)?new i.ModelPath(e.getModel(),new i.Path(e.getArray(),[p.context])):e;return(!(null==p?void 0:p.disableSwitchContext)&&r&&a.includes(t)?s.contextPush(r):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==p?void 0:p.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,n=e.getArray();if(n.length<=i)return this;const r=y(e.slice(0,i))[n[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>w(e,t.toString()),suggest(e,t){const i=y(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter((t=>i[t].enabled(e))).filter((e=>!n.includes(e))).map(u.quoteString)},validate(e,t,n,r){if(r.loose&&"object"!=typeof t&&(t=r.wrapLists?d.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let o=v;if(_){const n=i.relativePath(e,_);let c=n.get();if(e.equals(n.pop())){const i=n.last();c=v[i].validate(e.push(i),t[i],new a.Errors,r)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),u=new Set([...l,...Object.keys(t)]),h={};u.forEach((i=>{if(c.includes(i)){if(!o[i].enabled(e))return;const a=o[i].validate(e.push(i),t[i],n,r);!o[i].keep()&&o[i].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete h[i]:(h[i]=a,e.getModel().set(e.push(i),a,!0))}else h[i]=t[i]}));for(const i of Object.getOwnPropertySymbols(t))h[i]=t[i];return h},hook(e,t,...i){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:v,config:null!=p?p:{},filter:_,cases:b,getActiveFields:y,getChildModelPath:w},t,...i)}})}}(dt);var ht={};Object.defineProperty(ht,"__esModule",{value:!0}),ht.Reference=void 0,ht.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,n)=>e.get(t).transform(i,n),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,n){return e.get(t).navigate.bind(this)(i,n)},pathPush(i,n){return e.get(t).pathPush.bind(this)(i,n)},suggest(i,n){return e.get(t).suggest.bind(this)(i,n)},validate(i,n,r,o){return e.get(t).validate.bind(this)(i,n,r,o)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,n,...r){return e.get(t).hook.bind(this)(i,n,...r)},activeCase(i,n){return e.get(t).activeCase.bind(this)(i,n)},canUpdate(i,n){return e.get(t).canUpdate.bind(this)(i,n)},update(i,n){return e.get(t).update.bind(this)(i,n)}});var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.StringNode=void 0;const mt=Ye,ft=We,gt=Re,_t=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},bt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};pt.StringNode=(e,t)=>{const i=()=>{var i,n,r,o;if(_t(t))return"string"==typeof t.enum?null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]:t.enum;if("resource"===(null==t?void 0:t.validator)){if("string"==typeof t.params.pool){if(t.params.requireTag)return null!==(n=null==e?void 0:e.get(`tag/${t.params.pool}`).map((e=>`#${e}`)))&&void 0!==n?n:[];const i=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag&&null!==(r=null==e?void 0:e.get(`tag/${i}`).map((e=>`#${e}`)))&&void 0!==r?r:[],...null!==(o=null==e?void 0:e.get(i))&&void 0!==o?o:[]]}return t.params.pool}return[]};return c(s({},mt.Base),{type:()=>"string",default:()=>"",validate(e,n,r,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?gt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return r.add(e,"error.expected_string"),n;if(bt(t)){if("resource"===t.validator&&n.length>0&&!n.includes(":")&&(n=n.startsWith("#")?"#minecraft:"+n.slice(1):"minecraft:"+n),"resource"===t.validator&&"string"==typeof n){let i=n;if(n.startsWith("#")){if("string"==typeof t.params.pool&&t.params.pool.startsWith("$tag/"))return r.add(e,"error.disallowed_tag_prefix"),n;if(!t.params.allowTag&&!t.params.requireTag)return r.add(e,"error.disallowed_tag"),n;i=i.slice(1)}else if(t.params.requireTag)return r.add(e,"error.expected_tag"),n;if(!i.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return r.add(e,"error.invalid_resource_location"),n}if("resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&n.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return n}if(_t(t)&&t.additional)return n;const a=i();return a.length>0&&!a.includes(n)&&r.add(e,"error.invalid_enum_option",n),n},suggest:()=>i().map(ft.quoteString),validationOption:()=>bt(t)?t:void 0,hook(e,n,...r){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:i,config:t},n,...r)}})};var vt={};Object.defineProperty(vt,"__esModule",{value:!0});var yt={};Object.defineProperty(yt,"__esModule",{value:!0}),yt.CollectionRegistry=yt.SchemaRegistry=void 0;yt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};yt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var wt={};Object.defineProperty(wt,"__esModule",{value:!0}),function(e){var t=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=$e&&$e.__exportStar||function(e,i){for(var n in e)"default"===n||i.hasOwnProperty(n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(Re,e),i(je,e),i(ze,e),i(Ye,e),i(Ze,e),i(tt,e),i(it,e),i(st,e),i(ut,e),i(dt,e),i(ht,e),i(pt,e),i(ot,e),i(vt,e),i(yt,e),i(wt,e)}(Te);var xt=function(e){return(e=e||{}).circles?function(e){var t=[],i=[];return e.proto?function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=At(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o}:function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r)if(!1!==Object.hasOwnProperty.call(r,a)){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=At(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o};function n(e,n){for(var r=Object.keys(e),o=new Array(r.length),a=0;a({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(St);var Ft={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Te,i=St;e.initPredicatesSchemas=function(n,r){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,r),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);n.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(i.Range()),durability:t.Opt(i.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(i.Range())},{context:"enchantment"})),n.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(i.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},n.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),n.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:i.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),n.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(i.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(i.Range()),duration:t.Opt(i.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),n.register("distance_predicate",t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range()),absolute:t.Opt(i.Range()),horizontal:t.Opt(i.Range())},{context:"distance"})),n.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",t.ObjectNode({dealt:t.Opt(i.Range()),taken:t.Opt(i.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Ft),Object.defineProperty(Et,"__esModule",{value:!0}),Et.initAdvancementSchemas=void 0;const Ot=Te,Dt=St,Bt=Ft;Et.initAdvancementSchemas=function(e,t){const i=Ot.Reference.bind(void 0,e),n=Ot.StringNode.bind(void 0,t);e.register("advancement",Ot.Mod(Ot.ObjectNode({display:Ot.Opt(Ot.Mod(Ot.ObjectNode({icon:Ot.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ot.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Ot.Opt(n()),frame:Ot.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ot.Opt(Ot.BooleanNode()),announce_to_chat:Ot.Opt(Ot.BooleanNode()),hidden:Ot.Opt(Ot.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ot.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ot.MapNode(n(),i("advancement_criteria")),requirements:Ot.Opt(Ot.ListNode(Ot.ListNode(n()))),rewards:Ot.Opt(Ot.ObjectNode({function:Ot.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ot.Opt(Ot.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ot.Opt(Ot.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ot.Opt(Ot.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ot.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ot.Opt(Ot.ObjectNode({[Ot.Switch]:["pop",{push:"trigger"}],[Ot.Case]:{"minecraft:bee_nest_destroyed":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ot.Opt(Ot.NumberNode({integer:!0})),item:Ot.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:Ot.Opt(i("entity_predicate")),partner:Ot.Opt(i("entity_predicate")),child:Ot.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:Ot.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ot.Opt(n({enum:"dimension"})),to:Ot.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Ot.Opt(Ot.ListNode(Ot.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:Ot.Opt(Dt.Range())},"minecraft:consume_item":{item:Ot.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Ot.Opt(i("entity_predicate")),zombie:Ot.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:Ot.Opt(Ot.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ot.Opt(Ot.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ot.Opt(Dt.Range()),item:Ot.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ot.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:Ot.Opt(i("entity_predicate")),killing_blow:Ot.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ot.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Ot.Opt(i("entity_predicate")),item:Ot.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":Bt.LocationFields,"minecraft:inventory_changed":{slots:Ot.Opt(Ot.ObjectNode({empty:Ot.Opt(Dt.Range()),occupied:Ot.Opt(Dt.Range()),full:Ot.Opt(Dt.Range())})),items:Ot.Opt(Ot.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Ot.Opt(Dt.Range()),durability:Ot.Opt(Dt.Range()),item:Ot.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ot.Opt(Dt.Range()),victims:Ot.Opt(Ot.ListNode(Ot.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:Ot.Opt(Dt.Range()),duration:Ot.Opt(Dt.Range())},"minecraft:location":Bt.LocationFields,"minecraft:nether_travel":{distance:Ot.Opt(Dt.Range()),entered:Ot.Opt(i("location_predicate")),exited:Ot.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ot.Opt(Ot.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ot.Opt(i("item_predicate")),location:Ot.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:Ot.Opt(i("damage_predicate")),entity:Ot.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:Ot.Opt(i("entity_predicate")),killing_blow:Ot.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Ot.Opt(Ot.ObjectNode({block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Ot.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Ot.Opt(i("item_predicate"))},"minecraft:slept_in_bed":Bt.LocationFields,"minecraft:slide_down_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ot.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:Ot.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:Ot.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:Ot.Opt(Dt.Range())},"minecraft:used_totem":{item:Ot.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Ot.Opt(i("entity_predicate")),item:Ot.Opt(i("item_predicate"))},"minecraft:voluntary_exile":Bt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Lt={},Mt={};Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initModelSchemas=void 0;const $t=Te;Mt.initModelSchemas=function(e,t){$t.Reference.bind(void 0,e);const i=$t.StringNode.bind(void 0,t),n=(e,t,i)=>$t.ListNode($t.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=$t.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",$t.Mod($t.ObjectNode({parent:$t.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:$t.Opt($t.BooleanNode()),gui_light:$t.Opt(i({enum:"gui_light"})),textures:$t.Opt($t.MapNode(i(),r)),elements:$t.Opt($t.ListNode($t.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:$t.Opt($t.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:$t.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:$t.Opt($t.BooleanNode())})),shade:$t.Opt($t.BooleanNode()),faces:$t.MapNode(i({enum:"direction"}),$t.ObjectNode({texture:r,uv:$t.Opt(n(4)),cullface:$t.Opt(i({enum:"direction"})),rotation:$t.Opt($t.NumberNode({integer:!0})),tintindex:$t.Opt($t.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:$t.Opt($t.MapNode(i({enum:"display_position"}),$t.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:$t.Opt($t.ListNode($t.ObjectNode({predicate:$t.MapNode(i({enum:"item_model_predicates"}),$t.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Tt={};Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.initBlockDefinitionSchemas=void 0;const Rt=Te;Tt.initBlockDefinitionSchemas=function(e,t){const i=Rt.Reference.bind(void 0,e),n=Rt.StringNode.bind(void 0,t);e.register("block_definition",Rt.Mod(Rt.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Rt.ObjectNode({variants:Rt.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Rt.ObjectNode({multipart:Rt.ListNode(Rt.ObjectNode({when:Rt.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Rt.Opt(Rt.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Rt.Opt(Rt.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Rt.Opt(Rt.BooleanNode())};e.register("model_variant",Rt.ChoiceNode([{type:"object",node:Rt.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Rt.ListNode(Rt.ObjectNode(c(s({},r),{weight:Rt.Opt(Rt.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Rt.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Rt.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Rt.ObjectNode({OR:Rt.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initAssetsSchemas=void 0;const jt=Mt,It=Tt;Lt.initAssetsSchemas=function(e,t){It.initBlockDefinitionSchemas(e,t),jt.initModelSchemas(e,t)};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initConditionSchemas=void 0;const zt=Te,Ut=St;Pt.initConditionSchemas=function(e,t){const i=zt.Reference.bind(void 0,e),n=zt.StringNode.bind(void 0,t);e.register("predicate",zt.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",zt.Mod(zt.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[zt.Switch]:[{push:"condition"}],[zt.Case]:Ut.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Wt={},Ht={};Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.LootFunctions=Ht.LootConditions=Ht.LootCopySources=Ht.LootEntitySources=Ht.LootTableTypes=void 0,Ht.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ht.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ht.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ht.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ht.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Wt,"__esModule",{value:!0}),Wt.initLootTableSchemas=void 0;const qt=Te,Vt=Ht,Kt=St;Wt.initLootTableSchemas=function(e,t){const i=qt.Reference.bind(void 0,e),n=qt.StringNode.bind(void 0,t),r={conditions:qt.Opt(qt.ListNode(i("loot_condition")))},o=s({functions:qt.Opt(qt.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Vt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new qt.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),qt.SwitchNode(r)}const l=a(Vt.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Vt.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Vt.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Vt.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",qt.Mod(qt.ObjectNode({type:qt.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:qt.Opt(qt.ListNode(qt.Mod(qt.ObjectNode(s({rolls:Kt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:qt.Opt(Kt.Range({integer:!0})),entries:qt.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:qt.Opt(qt.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",qt.Mod(qt.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:qt.Opt(qt.Mod(qt.NumberNode({integer:!0,min:1}),p)),quality:qt.Opt(qt.Mod(qt.NumberNode({integer:!0}),p)),[qt.Switch]:[{push:"type"}],[qt.Case]:{"minecraft:alternatives":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:qt.Opt(qt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",qt.Mod(qt.ObjectNode({function:u,[qt.Switch]:[{push:"function"}],[qt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:qt.Mod(qt.ObjectNode({bonusMultiplier:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:qt.ListNode(qt.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:qt.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:qt.Opt(qt.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Kt.Range({allowBinomial:!0}),treasure:qt.Opt(qt.BooleanNode())},"minecraft:exploration_map":{destination:qt.Opt(n({enum:"structure_feature"})),decoration:qt.Opt(n({enum:"map_decoration"})),zoom:qt.Opt(qt.NumberNode({integer:!0})),search_radius:qt.Opt(qt.NumberNode({integer:!0})),skip_existing_chunks:qt.Opt(qt.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Kt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Kt.Range({bounds:!0}),limit:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:qt.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:qt.ListNode(i("loot_entry"))},"minecraft:set_count":{count:Kt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Kt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:qt.Opt(d),lore:qt.ListNode(i("text_component")),replace:qt.Opt(qt.BooleanNode())},"minecraft:set_name":{entity:qt.Opt(d),name:qt.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:qt.Opt(qt.ListNode(qt.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Kt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",qt.Mod(qt.ObjectNode({condition:l,[qt.Switch]:[{push:"condition"}],[qt.Case]:c(s({},Kt.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:qt.MapNode(n({validator:"objective"}),Kt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",qt.Mod(qt.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Kt.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:qt.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.initPackMcmetaSchemas=void 0;const Xt=Te;Gt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Xt.Mod(Xt.ObjectNode({pack:Xt.Mod(Xt.ObjectNode({pack_format:Xt.Mod(Xt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Xt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.initRecipeSchemas=void 0;const Yt=Te;Jt.initRecipeSchemas=function(e,t){const i=Yt.Reference.bind(void 0,e),n=Yt.StringNode.bind(void 0,t);e.register("recipe",Yt.Mod(Yt.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Yt.Switch]:[{push:"type"}],[Yt.Case]:{"minecraft:crafting_shaped":{group:Yt.Opt(n({enum:"recipe_group",additional:!0})),pattern:Yt.ListNode(n()),key:Yt.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Yt.Opt(n()),ingredients:Yt.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Yt.NumberNode({integer:!0})},"minecraft:smithing":{group:Yt.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yt.Mod(Yt.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yt.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yt.Mod(Yt.ObjectNode({item:Yt.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Yt.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yt.Mod(Yt.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Zt={};Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.initTagsSchemas=void 0;const Qt=Te;Zt.initTagsSchemas=function(e,t){const i=Qt.StringNode.bind(void 0,t),n=e=>Qt.Mod(Qt.ObjectNode({replace:Qt.Opt(Qt.BooleanNode()),values:Qt.ListNode(Qt.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qt.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qt.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.initTextComponentSchemas=void 0;const ti=Te;ei.initTextComponentSchemas=function(e,t){const i=ti.Reference.bind(void 0,e),n=ti.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",ti.Mod(ti.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:ti.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ti.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:ti.Opt(ti.BooleanNode()),italic:ti.Opt(ti.BooleanNode()),underlined:ti.Opt(ti.BooleanNode()),strikethrough:ti.Opt(ti.BooleanNode()),obfuscated:ti.Opt(ti.BooleanNode()),insertion:ti.Opt(n()),clickEvent:ti.Opt(ti.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ti.Switch]:[{push:"action"}],[ti.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ti.Opt(ti.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[ti.Switch]:[{push:"action"}],[ti.Case]:{show_text:{value:ti.Opt(i("text_component"))},show_item:{value:ti.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:ti.Opt(ti.ObjectNode({name:ti.Opt(n()),type:ti.Opt(n()),id:ti.Opt(n())}))}}})),extra:ti.Opt(i("text_component_list"))};e.register("text_component_object",ti.Mod(ti.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ti.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ti.ObjectNode(s({translate:n(),with:ti.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ti.ObjectNode(s({score:ti.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:ti.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ti.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ti.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ti.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:ti.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ti.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ti.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:ti.Opt(ti.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ti.Mod(ti.ListNode(i("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Ct,"__esModule",{value:!0}),Ct.initSchemas=void 0;const ii=Et,ni=Lt,ri=St,oi=Pt,ai=Wt,si=Gt,ci=Ft,li=Jt,ui=Zt,di=ei;Ct.initSchemas=function(e,t){ri.initCommonSchemas(e,t),ci.initPredicatesSchemas(e,t),ii.initAdvancementSchemas(e,t),ni.initAssetsSchemas(e,t),oi.initConditionSchemas(e,t),ai.initLootTableSchemas(e,t),si.initPackMcmetaSchemas(e,t),li.initRecipeSchemas(e,t),ui.initTagsSchemas(e,t),di.initTextComponentSchemas(e,t)};var hi=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),pi=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mi=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&hi(t,e,i);return pi(t,e),t};Object.defineProperty(Nt,"__esModule",{value:!0});var fi=Nt.getSchemas=Nt.getCollections=void 0;const gi=Te,_i=kt,bi=Ct;var vi=Nt.lootContext=mi(Ht);var yi=Nt.getCollections=function(){const e=new gi.CollectionRegistry;return _i.initCollections(e),e};fi=Nt.getSchemas=function(e){const t=new gi.SchemaRegistry;return bi.initSchemas(t,e),t};var wi=Object.freeze(Object.assign(Object.create(null),Nt,{[Symbol.toStringTag]:"Module",get getSchemas(){return fi},get getCollections(){return yi},lootContext:vi,default:Nt})),xi={},Ai={};Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.initCollections=void 0,Ai.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var Ni={},ki={},Ci={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Ci),Object.defineProperty(ki,"__esModule",{value:!0}),ki.initAdvancementSchemas=void 0;const Ei=Te,Si=Ci;ki.initAdvancementSchemas=function(e,t){const i=Ei.Reference.bind(void 0,e),n=Ei.StringNode.bind(void 0,t),r=Ei.ChoiceNode([{type:"object",node:Ei.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:Ei.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ei.Mod(Ei.ObjectNode({display:Ei.Opt(Ei.Mod(Ei.ObjectNode({icon:Ei.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ei.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Ei.Opt(n()),frame:Ei.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ei.Opt(Ei.BooleanNode()),announce_to_chat:Ei.Opt(Ei.BooleanNode()),hidden:Ei.Opt(Ei.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ei.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ei.MapNode(n(),i("advancement_criteria")),requirements:Ei.Opt(Ei.ListNode(Ei.ListNode(n()))),rewards:Ei.Opt(Ei.ObjectNode({function:Ei.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ei.Opt(Ei.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ei.Opt(Ei.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ei.Opt(Ei.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ei.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ei.Opt(Ei.ObjectNode({player:Ei.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ei.Switch]:["pop",{push:"trigger"}],[Ei.Case]:{"minecraft:bee_nest_destroyed":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ei.Opt(Ei.NumberNode({integer:!0})),item:Ei.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:Ei.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ei.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Ei.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ei.Opt(Ei.ListNode(r))},"minecraft:construct_beacon":{level:Ei.Opt(Si.Range())},"minecraft:consume_item":{item:Ei.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:Ei.Opt(Ei.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ei.Opt(Ei.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ei.Opt(Si.Range()),item:Ei.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ei.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:Ei.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ei.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:Ei.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:Ei.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:Ei.Opt(Ei.ObjectNode({empty:Ei.Opt(Si.Range()),occupied:Ei.Opt(Si.Range()),full:Ei.Opt(Si.Range())})),items:Ei.Opt(Ei.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Ei.Opt(Si.Range()),durability:Ei.Opt(Si.Range()),item:Ei.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:Ei.Opt(i("item_predicate")),location:Ei.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ei.Opt(Si.Range()),victims:Ei.Opt(Ei.ListNode(r))},"minecraft:levitation":{distance:Ei.Opt(Si.Range()),duration:Ei.Opt(Si.Range())},"minecraft:location":{location:Ei.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:Ei.Opt(Si.Range()),entered:Ei.Opt(i("location_predicate")),exited:Ei.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ei.Opt(Ei.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ei.Opt(i("item_predicate")),location:Ei.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ei.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:Ei.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:Ei.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Ei.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ei.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:Ei.Opt(Si.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Ei.Opt(i("entity_predicate")),item:Ei.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:Ei.Opt(Si.Range())},"minecraft:used_totem":{item:Ei.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Ei.Opt(i("entity_predicate")),item:Ei.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Fi={},Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initModelSchemas=void 0;const Di=Te;Oi.initModelSchemas=function(e,t){Di.Reference.bind(void 0,e);const i=Di.StringNode.bind(void 0,t),n=(e,t,i)=>Di.ListNode(Di.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=Di.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Di.Mod(Di.ObjectNode({parent:Di.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Di.Opt(Di.BooleanNode()),gui_light:Di.Opt(i({enum:"gui_light"})),textures:Di.Opt(Di.MapNode(i(),r)),elements:Di.Opt(Di.ListNode(Di.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Di.Opt(Di.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:Di.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Di.Opt(Di.BooleanNode())})),shade:Di.Opt(Di.BooleanNode()),faces:Di.MapNode(i({enum:"direction"}),Di.ObjectNode({texture:r,uv:Di.Opt(n(4)),cullface:Di.Opt(i({enum:"direction"})),rotation:Di.Opt(Di.NumberNode({integer:!0})),tintindex:Di.Opt(Di.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Di.Opt(Di.MapNode(i({enum:"display_position"}),Di.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Di.Opt(Di.ListNode(Di.ObjectNode({predicate:Di.MapNode(i({enum:"item_model_predicates"}),Di.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Bi={};Object.defineProperty(Bi,"__esModule",{value:!0}),Bi.initBlockDefinitionSchemas=void 0;const Li=Te;Bi.initBlockDefinitionSchemas=function(e,t){const i=Li.Reference.bind(void 0,e),n=Li.StringNode.bind(void 0,t);e.register("block_definition",Li.Mod(Li.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Li.ObjectNode({variants:Li.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Li.ObjectNode({multipart:Li.ListNode(Li.ObjectNode({when:Li.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Li.Opt(Li.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Li.Opt(Li.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Li.Opt(Li.BooleanNode())};e.register("model_variant",Li.ChoiceNode([{type:"object",node:Li.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Li.ListNode(Li.ObjectNode(c(s({},r),{weight:Li.Opt(Li.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Li.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Li.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Li.ObjectNode({OR:Li.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.initAssetsSchemas=void 0;const Mi=Oi,$i=Bi;Fi.initAssetsSchemas=function(e,t){$i.initBlockDefinitionSchemas(e,t),Mi.initModelSchemas(e,t)};var Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.initConditionSchemas=void 0;const Ri=Te,ji=Ci;Ti.initConditionSchemas=function(e,t){const i=Ri.Reference.bind(void 0,e),n=Ri.StringNode.bind(void 0,t);e.register("predicate",Ri.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",Ri.Mod(Ri.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ri.Switch]:[{push:"condition"}],[Ri.Case]:ji.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initDimensionSchemas=void 0;const Pi=Te,zi=Ci;Ii.initDimensionSchemas=function(e,t){const i=Pi.Reference.bind(void 0,e),n=Pi.StringNode.bind(void 0,t),r=e=>Pi.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Pi.Mod(Pi.ObjectNode({type:zi.DimensionTypePresets(i("dimension_type")),generator:Pi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Pi.Switch]:[{push:"type"}],[Pi.Case]:{"minecraft:noise":{seed:Pi.NumberNode({integer:!0}),settings:zi.NoiseSettingsPresets(i("noise_settings")),biome_source:Pi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Pi.Switch]:[{push:"type"}],[Pi.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Pi.NumberNode({integer:!0}),preset:Pi.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(Pi.Mod(Pi.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Pi.Opt(Pi.NumberNode({integer:!0,min:0,max:62})),biomes:Pi.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Pi.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Pi.NumberNode({integer:!0}),large_biomes:Pi.Opt(Pi.BooleanNode()),legacy_biome_init_layer:Pi.Opt(Pi.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Pi.ObjectNode({biome:Pi.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Pi.Opt(Pi.BooleanNode()),features:Pi.Opt(Pi.BooleanNode()),layers:Pi.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Pi.Mod(Pi.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Pi.ObjectNode({altitude:Pi.NumberNode(),temperature:Pi.NumberNode(),humidity:Pi.NumberNode(),weirdness:Pi.NumberNode(),offset:Pi.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Pi.Mod(Pi.ObjectNode({firstOctave:Pi.NumberNode({integer:!0}),amplitudes:Pi.ListNode(Pi.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Ui={};Object.defineProperty(Ui,"__esModule",{value:!0}),Ui.initDimensionTypeSchemas=void 0;const Wi=Te,Hi=Ci;Ui.initDimensionTypeSchemas=function(e,t){const i=Wi.StringNode.bind(void 0,t);e.register("dimension_type",Wi.Mod(Wi.ObjectNode({name:Wi.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Wi.BooleanNode(),natural:Wi.BooleanNode(),piglin_safe:Wi.BooleanNode(),respawn_anchor_works:Wi.BooleanNode(),bed_works:Wi.BooleanNode(),has_raids:Wi.BooleanNode(),has_skylight:Wi.BooleanNode(),has_ceiling:Wi.BooleanNode(),coordinate_scale:Wi.NumberNode({min:1e-5,max:3e7}),ambient_light:Wi.NumberNode(),fixed_time:Wi.Opt(Wi.NumberNode({integer:!0})),logical_height:Wi.NumberNode({integer:!0,min:0,max:256}),effects:Wi.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Hi.DefaultDimensionType}))};var qi={},Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.LootFunctions=Vi.LootConditions=Vi.LootCopySources=Vi.LootEntitySources=Vi.LootTableTypes=void 0,Vi.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Vi.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Vi.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Vi.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Vi.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(qi,"__esModule",{value:!0}),qi.initLootTableSchemas=void 0;const Ki=Te,Gi=Vi,Xi=Ci;qi.initLootTableSchemas=function(e,t){const i=Ki.Reference.bind(void 0,e),n=Ki.StringNode.bind(void 0,t),r={conditions:Ki.Opt(Ki.ListNode(i("loot_condition")))},o=s({functions:Ki.Opt(Ki.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Gi.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ki.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Ki.SwitchNode(r)}const l=a(Gi.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Gi.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Gi.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Gi.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Ki.Mod(Ki.ObjectNode({type:Ki.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ki.Opt(Ki.ListNode(Ki.Mod(Ki.ObjectNode(s({rolls:Xi.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Ki.Opt(Xi.Range({integer:!0})),entries:Ki.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ki.Opt(Ki.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Ki.Mod(Ki.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ki.Opt(Ki.Mod(Ki.NumberNode({integer:!0,min:1}),p)),quality:Ki.Opt(Ki.Mod(Ki.NumberNode({integer:!0}),p)),[Ki.Switch]:[{push:"type"}],[Ki.Case]:{"minecraft:alternatives":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Ki.Opt(Ki.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ki.Mod(Ki.ObjectNode({function:u,[Ki.Switch]:[{push:"function"}],[Ki.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Ki.Mod(Ki.ObjectNode({bonusMultiplier:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Ki.ListNode(Ki.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:Ki.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Ki.Opt(Ki.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Xi.Range({allowBinomial:!0}),treasure:Ki.Opt(Ki.BooleanNode())},"minecraft:exploration_map":{destination:Ki.Opt(n({enum:"map_feature"})),decoration:Ki.Opt(n({enum:"map_decoration"})),zoom:Ki.Opt(Ki.NumberNode({integer:!0})),search_radius:Ki.Opt(Ki.NumberNode({integer:!0})),skip_existing_chunks:Ki.Opt(Ki.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Xi.Range({bounds:!0})},"minecraft:looting_enchant":{count:Xi.Range({bounds:!0}),limit:Ki.Opt(Ki.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Ki.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:Ki.ListNode(i("loot_entry"))},"minecraft:set_count":{count:Xi.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Xi.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Ki.Opt(Ki.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Ki.Opt(d),lore:Ki.ListNode(i("text_component")),replace:Ki.Opt(Ki.BooleanNode())},"minecraft:set_name":{entity:Ki.Opt(d),name:Ki.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Ki.Opt(Ki.ListNode(Ki.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Xi.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ki.Mod(Ki.ObjectNode({condition:l,[Ki.Switch]:[{push:"condition"}],[Ki.Case]:c(s({},Xi.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Ki.MapNode(n({validator:"objective"}),Xi.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ki.Mod(Ki.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Xi.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Ki.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ji={};Object.defineProperty(Ji,"__esModule",{value:!0}),Ji.initPackMcmetaSchemas=void 0;const Yi=Te;Ji.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Yi.Mod(Yi.ObjectNode({pack:Yi.Mod(Yi.ObjectNode({pack_format:Yi.Mod(Yi.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Yi.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.initPredicatesSchemas=void 0;const Qi=Te,en=Ci;Zi.initPredicatesSchemas=function(e,t){const i=Qi.Reference.bind(void 0,e),n=Qi.StringNode.bind(void 0,t),r=Qi.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Qi.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Qi.ObjectNode({min:Qi.Opt(Qi.NumberNode({integer:!0})),max:Qi.Opt(Qi.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Qi.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Qi.ObjectNode({item:Qi.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:Qi.Opt(en.Range()),durability:Qi.Opt(en.Range()),potion:Qi.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Qi.Opt(Qi.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Qi.ObjectNode({enchantment:Qi.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:Qi.Opt(en.Range())},{context:"enchantment"})),e.register("block_predicate",Qi.ObjectNode({block:Qi.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Qi.Opt(Qi.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Qi.ObjectNode({fluid:Qi.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Qi.Opt(Qi.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Qi.ObjectNode({position:Qi.Opt(Qi.ObjectNode({x:Qi.Opt(en.Range()),y:Qi.Opt(en.Range()),z:Qi.Opt(en.Range())})),biome:Qi.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Qi.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Qi.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Qi.Opt(Qi.ObjectNode({light:Qi.Opt(en.Range({integer:!0,min:0,max:15}))})),smokey:Qi.Opt(Qi.BooleanNode()),block:Qi.Opt(i("block_predicate")),fluid:Qi.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Qi.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:en.Range(),[Qi.Switch]:[{push:"type"}],[Qi.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Qi.ObjectNode({gamemode:Qi.Opt(n({enum:"gamemode"})),level:Qi.Opt(en.Range()),advancements:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Qi.ChoiceNode([{type:"boolean",node:Qi.BooleanNode(),change:e=>!0},{type:"object",node:Qi.MapNode(n(),Qi.BooleanNode())}]))),recipes:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Qi.BooleanNode())),stats:Qi.Opt(Qi.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Qi.ObjectNode({amplifier:Qi.Opt(en.Range()),duration:Qi.Opt(en.Range()),ambient:Qi.Opt(Qi.BooleanNode()),visible:Qi.Opt(Qi.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Qi.ObjectNode({x:Qi.Opt(en.Range()),y:Qi.Opt(en.Range()),z:Qi.Opt(en.Range()),absolute:Qi.Opt(en.Range()),horizontal:Qi.Opt(en.Range())},{context:"distance"})),e.register("entity_predicate",Qi.ObjectNode({type:Qi.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Qi.Opt(n({validator:"team"})),location:Qi.Opt(i("location_predicate")),distance:Qi.Opt(i("distance_predicate")),flags:Qi.Opt(Qi.ObjectNode({is_on_fire:Qi.Opt(Qi.BooleanNode()),is_sneaking:Qi.Opt(Qi.BooleanNode()),is_sprinting:Qi.Opt(Qi.BooleanNode()),is_swimming:Qi.Opt(Qi.BooleanNode()),is_baby:Qi.Opt(Qi.BooleanNode())})),equipment:Qi.Opt(Qi.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:Qi.Opt(i("entity_predicate")),targeted_entity:Qi.Opt(i("entity_predicate")),player:Qi.Opt(i("player_predicate")),fishing_hook:Qi.Opt(Qi.ObjectNode({in_open_water:Qi.Opt(Qi.BooleanNode())})),effects:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Qi.ObjectNode({is_explosion:Qi.Opt(Qi.BooleanNode()),is_fire:Qi.Opt(Qi.BooleanNode()),is_magic:Qi.Opt(Qi.BooleanNode()),is_projectile:Qi.Opt(Qi.BooleanNode()),is_lightning:Qi.Opt(Qi.BooleanNode()),bypasses_armor:Qi.Opt(Qi.BooleanNode()),bypasses_invulnerability:Qi.Opt(Qi.BooleanNode()),bypasses_magic:Qi.Opt(Qi.BooleanNode()),source_entity:Qi.Opt(i("entity_predicate")),direct_entity:Qi.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Qi.ObjectNode({dealt:Qi.Opt(en.Range()),taken:Qi.Opt(en.Range()),blocked:Qi.Opt(Qi.BooleanNode()),source_entity:Qi.Opt(i("entity_predicate")),type:Qi.Opt(i("damage_source_predicate"))},{context:"damage"}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initRecipeSchemas=void 0;const nn=Te;tn.initRecipeSchemas=function(e,t){const i=nn.Reference.bind(void 0,e),n=nn.StringNode.bind(void 0,t);e.register("recipe",nn.Mod(nn.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[nn.Switch]:[{push:"type"}],[nn.Case]:{"minecraft:crafting_shaped":{group:nn.Opt(n({enum:"recipe_group",additional:!0})),pattern:nn.ListNode(n()),key:nn.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:nn.Opt(n()),ingredients:nn.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:nn.NumberNode({integer:!0})},"minecraft:smithing":{group:nn.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",nn.Mod(nn.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:nn.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",nn.Mod(nn.ObjectNode({item:nn.Opt(n({validator:"resource",params:{pool:"item"}})),tag:nn.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",nn.Mod(nn.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initTagsSchemas=void 0;const on=Te;rn.initTagsSchemas=function(e,t){const i=on.StringNode.bind(void 0,t),n=e=>on.Mod(on.ObjectNode({replace:on.Opt(on.BooleanNode()),values:on.ListNode(on.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:on.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:on.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initTextComponentSchemas=void 0;const sn=Te;an.initTextComponentSchemas=function(e,t){const i=sn.Reference.bind(void 0,e),n=sn.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",sn.Mod(sn.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:sn.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:sn.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:sn.Opt(n()),font:sn.Opt(n()),bold:sn.Opt(sn.BooleanNode()),italic:sn.Opt(sn.BooleanNode()),underlined:sn.Opt(sn.BooleanNode()),strikethrough:sn.Opt(sn.BooleanNode()),obfuscated:sn.Opt(sn.BooleanNode()),insertion:sn.Opt(n()),clickEvent:sn.Opt(sn.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:sn.Opt(sn.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{show_text:{value:sn.Opt(i("text_component")),contents:sn.Opt(i("text_component"))},show_item:{value:sn.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:sn.Opt(sn.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:sn.Opt(sn.NumberNode({integer:!0})),tag:sn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:sn.Opt(sn.ObjectNode({name:sn.Opt(n()),type:sn.Opt(n()),id:sn.Opt(n())})),contents:sn.Opt(sn.Mod(sn.ObjectNode({name:sn.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:sn.Opt(i("text_component_list"))};e.register("text_component_object",sn.Mod(sn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:sn.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:sn.ObjectNode(s({translate:n(),with:sn.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:sn.ObjectNode(s({score:sn.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:sn.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:sn.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:sn.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:sn.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:sn.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:sn.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:sn.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:sn.Opt(sn.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",sn.Mod(sn.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var cn={},ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initBiomeSchemas=void 0;const un=Te;ln.initBiomeSchemas=function(e,t){const i=un.StringNode.bind(void 0,t);e.register("biome",un.Mod(un.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:un.NumberNode(),scale:un.NumberNode(),temperature:un.NumberNode(),downfall:un.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:un.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:un.Opt(un.BooleanNode()),creature_spawn_probability:un.Opt(un.NumberNode({min:0,max:1})),effects:un.ObjectNode({sky_color:un.NumberNode({color:!0}),fog_color:un.NumberNode({color:!0}),water_color:un.NumberNode({color:!0}),water_fog_color:un.NumberNode({color:!0}),grass_color:un.Opt(un.NumberNode({color:!0})),foliage_color:un.Opt(un.NumberNode({color:!0})),grass_color_modifier:un.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:un.Opt(i()),mood_sound:un.Opt(un.ObjectNode({sound:i(),tick_delay:un.NumberNode({integer:!0}),block_search_extent:un.NumberNode({integer:!0}),offset:un.NumberNode()})),additions_sound:un.Opt(un.ObjectNode({sound:i(),tick_chance:un.NumberNode({min:0,max:1})})),music:un.Opt(un.ObjectNode({sound:i(),min_delay:un.NumberNode({integer:!0,min:0}),max_delay:un.NumberNode({integer:!0,min:0}),replace_current_music:un.BooleanNode()})),particle:un.Opt(un.ObjectNode({options:un.ObjectNode({type:i()}),probability:un.NumberNode({min:0,max:1})}))}),starts:un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:un.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),un.Mod(un.ListNode(un.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:un.NumberNode({integer:!0}),minCount:un.NumberNode({integer:!0}),maxCount:un.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:un.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),un.Mod(un.ObjectNode({energy_budget:un.NumberNode(),charge:un.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:un.MapNode(i({enum:["air","liquid"]}),un.Mod(un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:un.ListNode(un.Mod(un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initCarverSchemas=void 0;const hn=Te;dn.initCarverSchemas=function(e,t){const i=hn.StringNode.bind(void 0,t);e.register("configured_carver",hn.Mod(hn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:hn.ObjectNode({probability:hn.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initDecoratorSchemas=void 0;const mn=Te,fn=Ci;pn.initDecoratorSchemas=function(e,t){const i=mn.Reference.bind(void 0,e),n=mn.StringNode.bind(void 0,t),r={maximum:mn.NumberNode({integer:!0}),bottom_offset:mn.NumberNode({integer:!0}),top_offset:mn.NumberNode({integer:!0})},o={chance:mn.NumberNode({integer:!0,min:0})},a={count:fn.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",mn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:mn.ObjectNode({[mn.Switch]:["pop",{push:"type"}],[mn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:mn.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:mn.NumberNode({integer:!0}),extra_count:mn.NumberNode({integer:!0}),extra_chance:mn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:mn.NumberNode(),below_noise:mn.NumberNode({integer:!0}),above_noise:mn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:mn.NumberNode({integer:!0}),noise_factor:mn.NumberNode(),noise_offset:mn.Opt(mn.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:mn.NumberNode({integer:!0}),spread:mn.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":r,"minecraft:range_biased":r,"minecraft:range_very_biased":r,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var gn={},_n={};Object.defineProperty(_n,"__esModule",{value:!0}),_n.initProcessorListSchemas=void 0;const bn=Te;_n.initProcessorListSchemas=function(e,t){const i=bn.Reference.bind(void 0,e),n=bn.StringNode.bind(void 0,t);e.register("processor_list",bn.Mod(bn.ObjectNode({processors:bn.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",bn.Mod(bn.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[bn.Switch]:[{push:"processor_type"}],[bn.Case]:{"minecraft:block_age":{mossiness:bn.NumberNode()},"minecraft:block_ignore":{blocks:bn.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:bn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:bn.NumberNode({integer:!0})},"minecraft:rule":{rules:bn.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",bn.Mod(bn.ObjectNode({position_predicate:bn.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:bn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:bn.NumberNode({min:0,max:255,integer:!0}),max_dist:bn.NumberNode({min:0,max:255,integer:!0}),min_chance:bn.NumberNode({min:0,max:1}),max_chance:bn.NumberNode({min:0,max:1})};e.register("pos_rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:bn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:bn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(gn,"__esModule",{value:!0}),gn.initFeatureSchemas=void 0;const vn=Te,yn=Ci;gn.initFeatureSchemas=function(e,t){const i=vn.Reference.bind(void 0,e),n=vn.StringNode.bind(void 0,t),r={can_replace:vn.BooleanNode(),project:vn.BooleanNode(),need_water:vn.BooleanNode(),xspread:vn.NumberNode({integer:!0}),yspread:vn.NumberNode({integer:!0}),zspread:vn.NumberNode({integer:!0}),tries:vn.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:vn.ListNode(i("block_state")),blacklist:vn.ListNode(i("block_state"))},o={state:i("block_state"),radius:yn.UniformInt({min:0,max:4,maxSpread:4}),half_height:vn.NumberNode({integer:!0,min:0,max:4}),targets:vn.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:vn.Opt(vn.NumberNode({integer:!0}))},s={state:i("block_state"),size:vn.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},c={count:yn.UniformInt({min:-10,max:128,maxSpread:128})},l=vn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:vn.ObjectNode({[vn.Switch]:["pop",{push:"type"}],[vn.Case]:{"minecraft:bamboo":{probability:vn.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:yn.UniformInt({min:0,max:2,maxSpread:1}),height:yn.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:yn.UniformInt({min:0,max:8,maxSpread:8}),rim_size:yn.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:vn.BooleanNode(),exit:vn.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:vn.Opt(vn.BooleanNode()),crystal_beam_target:vn.Opt(i("block_pos")),spikes:vn.ListNode(vn.ObjectNode({centerX:vn.Opt(vn.NumberNode({integer:!0})),centerZ:vn.Opt(vn.NumberNode({integer:!0})),radius:vn.Opt(vn.NumberNode({integer:!0})),height:vn.Opt(vn.NumberNode({integer:!0})),guarded:vn.Opt(vn.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:vn.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:vn.Opt(vn.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:yn.UniformInt()},"minecraft:no_bonemeal_flower":r,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:vn.ListNode(vn.ObjectNode({chance:vn.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:vn.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:vn.ListNode(i("block_state")),place_in:vn.ListNode(i("block_state")),place_under:vn.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:vn.ListNode(l)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:vn.NumberNode({integer:!0}),hole_count:vn.NumberNode({integer:!0}),requires_block_below:vn.BooleanNode(),valid_blocks:vn.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:vn.NumberNode({integer:!0}),ignore_vines:vn.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:vn.NumberNode({integer:!0,min:0,max:32}),height_rand_a:vn.NumberNode({integer:!0,min:0,max:24}),height_rand_b:vn.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:yn.UniformInt({min:0,max:8,maxSpread:8}),offset:yn.UniformInt({min:0,max:8,maxSpread:8}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:blob_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:yn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:yn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:yn.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:vn.ListNode(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:vn.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:vn.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:vn.Opt(vn.NumberNode({min:0,max:80})),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:two_layers_feature_size":{limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:81})),lower_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),upper_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:80})),upper_limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:80})),lower_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),middle_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),upper_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:vn.ListNode(vn.Mod(vn.ObjectNode({weight:vn.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:column_placer":{min_size:vn.NumberNode({integer:!0}),extra_size:vn.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var wn={};Object.defineProperty(wn,"__esModule",{value:!0}),wn.initNoiseSettingsSchemas=void 0;const xn=Te,An=Ci;wn.initNoiseSettingsSchemas=function(e,t){const i=xn.Reference.bind(void 0,e),n=xn.StringNode.bind(void 0,t);e.register("noise_settings",xn.Mod(xn.ObjectNode({name:xn.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:xn.NumberNode({integer:!0}),bedrock_floor_position:xn.NumberNode({integer:!0}),sea_level:xn.NumberNode({integer:!0}),disable_mob_generation:xn.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:xn.ObjectNode({height:xn.NumberNode({integer:!0}),density_factor:xn.NumberNode(),density_offset:xn.NumberNode(),size_horizontal:xn.NumberNode({integer:!0}),size_vertical:xn.NumberNode({integer:!0}),simplex_surface_noise:xn.BooleanNode(),random_density_offset:xn.Opt(xn.BooleanNode()),island_noise_override:xn.Opt(xn.BooleanNode()),amplified:xn.Opt(xn.BooleanNode()),sampling:xn.ObjectNode({xz_scale:xn.NumberNode(),y_scale:xn.NumberNode(),xz_factor:xn.NumberNode(),y_factor:xn.NumberNode()}),bottom_slide:xn.ObjectNode({target:xn.NumberNode({integer:!0}),size:xn.NumberNode({integer:!0}),offset:xn.NumberNode({integer:!0})}),top_slide:xn.ObjectNode({target:xn.NumberNode({integer:!0}),size:xn.NumberNode({integer:!0}),offset:xn.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>An.DefaultNoiseSettings})),e.register("generator_structures",xn.ObjectNode({stronghold:xn.Opt(xn.ObjectNode({distance:xn.NumberNode({integer:!0,min:0,max:1023}),spread:xn.NumberNode({integer:!0,min:0,max:1023}),count:xn.NumberNode({integer:!0,min:1,max:4095})})),structures:xn.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),xn.Mod(xn.ObjectNode({spacing:xn.NumberNode({integer:!0,min:0,max:4096}),separation:xn.Mod(xn.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:xn.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",xn.Mod(xn.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:xn.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var Nn={};Object.defineProperty(Nn,"__esModule",{value:!0}),Nn.initStructureFeatureSchemas=void 0;const kn=Te;Nn.initStructureFeatureSchemas=function(e,t){const i=kn.StringNode.bind(void 0,t),n={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:kn.NumberNode({integer:!0})};e.register("configured_structure_feature",kn.Mod(kn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:kn.ObjectNode({[kn.Switch]:["pop",{push:"type"}],[kn.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:kn.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:kn.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:kn.NumberNode({min:0,max:1}),cluster_probability:kn.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:kn.Opt(kn.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Cn={};Object.defineProperty(Cn,"__esModule",{value:!0}),Cn.initSurfaceBuilderSchemas=void 0;const En=Te;Cn.initSurfaceBuilderSchemas=function(e,t){const i=En.StringNode.bind(void 0,t),n=En.Reference.bind(void 0,e);e.register("configured_surface_builder",En.Mod(En.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:En.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.initTemplatePoolSchemas=void 0;const Fn=Te;Sn.initTemplatePoolSchemas=function(e,t){const i=Fn.Reference.bind(void 0,e),n=Fn.StringNode.bind(void 0,t),r=Fn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Fn.Mod(Fn.ObjectNode({name:n(),fallback:n(),elements:Fn.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Fn.Mod(Fn.ObjectNode({weight:Fn.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Fn.Mod(Fn.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Fn.Switch]:[{push:"element_type"}],[Fn.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r},"minecraft:list_pool_element":{elements:Fn.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(cn,"__esModule",{value:!0}),cn.initWorldgenSchemas=void 0;const On=ln,Dn=dn,Bn=pn,Ln=gn,Mn=wn,$n=_n,Tn=Nn,Rn=Cn,jn=Sn;cn.initWorldgenSchemas=function(e,t){On.initBiomeSchemas(e,t),Dn.initCarverSchemas(e,t),Bn.initDecoratorSchemas(e,t),Ln.initFeatureSchemas(e,t),Mn.initNoiseSettingsSchemas(e,t),$n.initProcessorListSchemas(e,t),Tn.initStructureFeatureSchemas(e,t),Rn.initSurfaceBuilderSchemas(e,t),jn.initTemplatePoolSchemas(e,t)};var In={};Object.defineProperty(In,"__esModule",{value:!0}),In.initWorldSettingsSchemas=void 0;const Pn=Te;In.initWorldSettingsSchemas=function(e,t){const i=Pn.Reference.bind(void 0,e),n=Pn.StringNode.bind(void 0,t);e.register("world_settings",Pn.Mod(Pn.ObjectNode({generate_features:Pn.BooleanNode(),bonus_chest:Pn.BooleanNode(),seed:Pn.NumberNode({integer:!0}),dimensions:Pn.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(Ni,"__esModule",{value:!0}),Ni.initSchemas=void 0;const zn=ki,Un=Fi,Wn=Ci,Hn=Ti,qn=Ii,Vn=Ui,Kn=qi,Gn=Ji,Xn=Zi,Jn=tn,Yn=rn,Zn=an,Qn=cn,er=In;Ni.initSchemas=function(e,t){Wn.initCommonSchemas(e,t),zn.initAdvancementSchemas(e,t),Un.initAssetsSchemas(e,t),Hn.initConditionSchemas(e,t),Vn.initDimensionTypeSchemas(e,t),qn.initDimensionSchemas(e,t),Kn.initLootTableSchemas(e,t),Gn.initPackMcmetaSchemas(e,t),Xn.initPredicatesSchemas(e,t),Jn.initRecipeSchemas(e,t),Yn.initTagsSchemas(e,t),Zn.initTextComponentSchemas(e,t),Qn.initWorldgenSchemas(e,t),er.initWorldSettingsSchemas(e,t)};var tr=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),ir=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nr=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&tr(t,e,i);return ir(t,e),t};Object.defineProperty(xi,"__esModule",{value:!0});var rr=xi.getSchemas=xi.getCollections=void 0;const or=Te,ar=Ai,sr=Ni;var cr=xi.lootContext=nr(Vi);var lr=xi.getCollections=function(){const e=new or.CollectionRegistry;return ar.initCollections(e),e};rr=xi.getSchemas=function(e){const t=new or.SchemaRegistry;return sr.initSchemas(t,e),t};var ur=Object.freeze(Object.assign(Object.create(null),xi,{[Symbol.toStringTag]:"Module",get getSchemas(){return rr},get getCollections(){return lr},lootContext:cr,default:xi})),dr={},hr={};Object.defineProperty(hr,"__esModule",{value:!0}),hr.initCollections=void 0,hr.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var pr={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.initAdvancementSchemas=void 0;const fr=Te;mr.initAdvancementSchemas=function(e,t){const i=fr.Reference.bind(void 0,e),n=fr.StringNode.bind(void 0,t),r=fr.ChoiceNode([{type:"object",node:fr.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:fr.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",fr.Mod(fr.ObjectNode({display:fr.Opt(fr.Mod(fr.ObjectNode({icon:fr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:fr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:fr.Opt(n()),frame:fr.Opt(n({enum:["task","challenge","goal"]})),show_toast:fr.Opt(fr.BooleanNode()),announce_to_chat:fr.Opt(fr.BooleanNode()),hidden:fr.Opt(fr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:fr.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:fr.MapNode(n(),i("advancement_criteria")),requirements:fr.Opt(fr.ListNode(fr.ListNode(n()))),rewards:fr.Opt(fr.ObjectNode({function:fr.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:fr.Opt(fr.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:fr.Opt(fr.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:fr.Opt(fr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",fr.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:fr.Opt(fr.ObjectNode({player:fr.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[fr.Switch]:["pop",{push:"trigger"}],[fr.Case]:{"minecraft:bee_nest_destroyed":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:fr.Opt(fr.NumberNode({integer:!0})),item:fr.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:fr.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:fr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:fr.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:fr.Opt(fr.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:fr.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:fr.Opt(fr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),fr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:fr.Opt(r)},"minecraft:enter_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:fr.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:fr.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:fr.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:fr.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:fr.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:fr.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:fr.Opt(fr.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:fr.Opt(fr.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:fr.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:fr.Opt(i("item_predicate")),location:fr.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:fr.Opt(fr.ListNode(r))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:fr.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:fr.Opt(i("location_predicate")),exited:fr.Opt(i("location_predicate"))},"minecraft:placed_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:fr.Opt(i("item_predicate")),location:fr.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:fr.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:fr.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:fr.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:fr.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:fr.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:fr.Opt(i("entity_predicate")),item:fr.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:fr.Opt(i("item_predicate"))},"minecraft:using_item":{item:fr.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:fr.Opt(i("entity_predicate")),item:fr.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var gr={},_r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.initModelSchemas=void 0;const br=Te;_r.initModelSchemas=function(e,t){br.Reference.bind(void 0,e);const i=br.StringNode.bind(void 0,t),n=(e,t,i)=>br.ListNode(br.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=br.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",br.Mod(br.ObjectNode({parent:br.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:br.Opt(br.BooleanNode()),gui_light:br.Opt(i({enum:"gui_light"})),textures:br.Opt(br.MapNode(i(),r)),elements:br.Opt(br.ListNode(br.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:br.Opt(br.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:br.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:br.Opt(br.BooleanNode())})),shade:br.Opt(br.BooleanNode()),faces:br.MapNode(i({enum:"direction"}),br.ObjectNode({texture:r,uv:br.Opt(n(4)),cullface:br.Opt(i({enum:"direction"})),rotation:br.Opt(br.NumberNode({integer:!0})),tintindex:br.Opt(br.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:br.Opt(br.MapNode(i({enum:"display_position"}),br.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:br.Opt(br.ListNode(br.ObjectNode({predicate:br.MapNode(i({enum:"item_model_predicates"}),br.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initBlockDefinitionSchemas=void 0;const yr=Te;vr.initBlockDefinitionSchemas=function(e,t){const i=yr.Reference.bind(void 0,e),n=yr.StringNode.bind(void 0,t);e.register("block_definition",yr.Mod(yr.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:yr.ObjectNode({variants:yr.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:yr.ObjectNode({multipart:yr.ListNode(yr.ObjectNode({when:yr.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:yr.Opt(yr.NumberEnum({integer:!0,values:[0,90,180,270]})),y:yr.Opt(yr.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:yr.Opt(yr.BooleanNode())};e.register("model_variant",yr.ChoiceNode([{type:"object",node:yr.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:yr.ListNode(yr.ObjectNode(c(s({},r),{weight:yr.Opt(yr.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",yr.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:yr.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:yr.ObjectNode({OR:yr.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(gr,"__esModule",{value:!0}),gr.initAssetsSchemas=void 0;const wr=_r,xr=vr;gr.initAssetsSchemas=function(e,t){xr.initBlockDefinitionSchemas(e,t),wr.initModelSchemas(e,t)};var Ar={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Ar);var Nr={};Object.defineProperty(Nr,"__esModule",{value:!0}),Nr.initConditionSchemas=void 0;const kr=Te,Cr=Ar;Nr.initConditionSchemas=function(e,t){const i=kr.Reference.bind(void 0,e),n=kr.StringNode.bind(void 0,t);e.register("predicate",kr.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",kr.Mod(kr.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[kr.Switch]:[{push:"condition"}],[kr.Case]:Cr.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.initDimensionSchemas=void 0;const Sr=Te,Fr=Ar;Er.initDimensionSchemas=function(e,t){const i=Sr.Reference.bind(void 0,e),n=Sr.StringNode.bind(void 0,t),r=e=>Sr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Sr.Mod(Sr.ObjectNode({type:Fr.DimensionTypePresets(i("dimension_type")),generator:Sr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Sr.Switch]:[{push:"type"}],[Sr.Case]:{"minecraft:noise":{seed:Sr.NumberNode({integer:!0}),settings:Fr.NoiseSettingsPresets(i("noise_settings")),biome_source:Sr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Sr.Switch]:[{push:"type"}],[Sr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Sr.NumberNode({integer:!0}),preset:Sr.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(Sr.Mod(Sr.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Sr.Opt(Sr.NumberNode({integer:!0,min:0,max:62})),biomes:Sr.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Sr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Sr.NumberNode({integer:!0}),large_biomes:Sr.Opt(Sr.BooleanNode()),legacy_biome_init_layer:Sr.Opt(Sr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Sr.ObjectNode({biome:Sr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Sr.Opt(Sr.BooleanNode()),features:Sr.Opt(Sr.BooleanNode()),layers:Sr.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Sr.Mod(Sr.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Sr.ObjectNode({altitude:Sr.NumberNode(),temperature:Sr.NumberNode(),humidity:Sr.NumberNode(),weirdness:Sr.NumberNode(),offset:Sr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Sr.Mod(Sr.ObjectNode({firstOctave:Sr.NumberNode({integer:!0}),amplitudes:Sr.ListNode(Sr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Or={};Object.defineProperty(Or,"__esModule",{value:!0}),Or.initDimensionTypeSchemas=void 0;const Dr=Te,Br=Ar;Or.initDimensionTypeSchemas=function(e,t){const i=Dr.StringNode.bind(void 0,t);e.register("dimension_type",Dr.Mod(Dr.ObjectNode({name:Dr.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Dr.BooleanNode(),natural:Dr.BooleanNode(),piglin_safe:Dr.BooleanNode(),respawn_anchor_works:Dr.BooleanNode(),bed_works:Dr.BooleanNode(),has_raids:Dr.BooleanNode(),has_skylight:Dr.BooleanNode(),has_ceiling:Dr.BooleanNode(),coordinate_scale:Dr.NumberNode({min:1e-5,max:3e7}),ambient_light:Dr.NumberNode(),fixed_time:Dr.Opt(Dr.NumberNode({integer:!0})),logical_height:Dr.NumberNode({integer:!0,min:0,max:4096}),effects:Dr.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:Dr.NumberNode({integer:!0,min:-2048,max:2047}),height:Dr.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Br.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Lr={};Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.initItemModifierSchemas=void 0;const Mr=Te,$r=Ar;Lr.initItemModifierSchemas=function(e,t){const i=Mr.Reference.bind(void 0,e),n=Mr.StringNode.bind(void 0,t);e.register("item_modifier",Mr.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Mr.Opt(Mr.ListNode(i("condition")))};e.register("function",Mr.Mod(Mr.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Mr.Switch]:[{push:"function"}],[Mr.Case]:$r.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Tr={},Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.LootFunctions=Rr.LootConditions=Rr.LootCopySources=Rr.LootEntitySources=Rr.LootTableTypes=void 0,Rr.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Rr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Rr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Rr.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Rr.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.initLootTableSchemas=void 0;const jr=Te,Ir=Rr,Pr=Ar;Tr.initLootTableSchemas=function(e,t){const i=jr.Reference.bind(void 0,e),n=jr.StringNode.bind(void 0,t),r={conditions:jr.Opt(jr.ListNode(i("loot_condition")))},o=s({functions:jr.Opt(jr.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ir.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new jr.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),jr.SwitchNode(r)}const c=a(Ir.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ir.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ir.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Ir.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",jr.Mod(jr.ObjectNode({type:jr.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:jr.Opt(jr.ListNode(jr.Mod(jr.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:jr.Opt(i("number_provider")),entries:jr.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:jr.Opt(jr.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",jr.Mod(jr.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:jr.Opt(jr.Mod(jr.NumberNode({integer:!0,min:1}),h)),quality:jr.Opt(jr.Mod(jr.NumberNode({integer:!0}),h)),[jr.Switch]:[{push:"type"}],[jr.Case]:{"minecraft:alternatives":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:jr.Opt(jr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",jr.Mod(jr.ObjectNode({function:l,[jr.Switch]:[{push:"function"}],[jr.Case]:Pr.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",jr.Mod(jr.ObjectNode({condition:c,[jr.Switch]:[{push:"condition"}],[jr.Case]:Pr.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",jr.Mod(jr.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:jr.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.initPackMcmetaSchemas=void 0;const Ur=Te;zr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Ur.Mod(Ur.ObjectNode({pack:Ur.Mod(Ur.ObjectNode({pack_format:Ur.Mod(Ur.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:Ur.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Wr={};Object.defineProperty(Wr,"__esModule",{value:!0}),Wr.initPredicatesSchemas=void 0;const Hr=Te;Wr.initPredicatesSchemas=function(e,t){const i=Hr.Reference.bind(void 0,e),n=Hr.StringNode.bind(void 0,t),r=Hr.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Hr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Hr.ObjectNode({min:Hr.Opt(Hr.NumberNode({integer:!0})),max:Hr.Opt(Hr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Hr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Hr.ObjectNode({items:Hr.Opt(Hr.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Hr.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Hr.Opt(Hr.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Hr.ObjectNode({enchantment:Hr.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Hr.ObjectNode({blocks:Hr.Opt(Hr.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Hr.Opt(Hr.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Hr.ObjectNode({fluid:Hr.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Hr.Opt(Hr.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Hr.ObjectNode({position:Hr.Opt(Hr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Hr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Hr.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Hr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Hr.Opt(Hr.ObjectNode({light:i("int_bounds")})),smokey:Hr.Opt(Hr.BooleanNode()),block:Hr.Opt(i("block_predicate")),fluid:Hr.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Hr.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Hr.ObjectNode({gamemode:Hr.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Hr.ChoiceNode([{type:"boolean",node:Hr.BooleanNode(),change:e=>!0},{type:"object",node:Hr.MapNode(n(),Hr.BooleanNode())}]))),recipes:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Hr.BooleanNode())),stats:Hr.Opt(Hr.ListNode(i("statistic_predicate"))),looking_at:Hr.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Hr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Hr.Opt(Hr.BooleanNode()),visible:Hr.Opt(Hr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Hr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Hr.ObjectNode({type:Hr.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Hr.Opt(n({validator:"team"})),location:Hr.Opt(i("location_predicate")),stepping_on:Hr.Opt(i("location_predicate")),distance:Hr.Opt(i("distance_predicate")),flags:Hr.Opt(Hr.ObjectNode({is_on_fire:Hr.Opt(Hr.BooleanNode()),is_sneaking:Hr.Opt(Hr.BooleanNode()),is_sprinting:Hr.Opt(Hr.BooleanNode()),is_swimming:Hr.Opt(Hr.BooleanNode()),is_baby:Hr.Opt(Hr.BooleanNode())})),equipment:Hr.Opt(Hr.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Hr.Opt(i("player_predicate")),vehicle:Hr.Opt(i("entity_predicate")),passenger:Hr.Opt(i("entity_predicate")),targeted_entity:Hr.Opt(i("entity_predicate")),lightning_bolt:Hr.Opt(Hr.ObjectNode({blocks_set_on_fire:Hr.Opt(i("int_bounds")),entity_struck:Hr.Opt(i("entity_predicate"))})),fishing_hook:Hr.Opt(Hr.ObjectNode({in_open_water:Hr.Opt(Hr.BooleanNode())})),effects:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Hr.ObjectNode({is_explosion:Hr.Opt(Hr.BooleanNode()),is_fire:Hr.Opt(Hr.BooleanNode()),is_magic:Hr.Opt(Hr.BooleanNode()),is_projectile:Hr.Opt(Hr.BooleanNode()),is_lightning:Hr.Opt(Hr.BooleanNode()),bypasses_armor:Hr.Opt(Hr.BooleanNode()),bypasses_invulnerability:Hr.Opt(Hr.BooleanNode()),bypasses_magic:Hr.Opt(Hr.BooleanNode()),source_entity:Hr.Opt(i("entity_predicate")),direct_entity:Hr.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Hr.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Hr.Opt(Hr.BooleanNode()),source_entity:Hr.Opt(i("entity_predicate")),type:Hr.Opt(i("damage_source_predicate"))},{context:"damage"}))};var qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.initRecipeSchemas=void 0;const Vr=Te;qr.initRecipeSchemas=function(e,t){const i=Vr.Reference.bind(void 0,e),n=Vr.StringNode.bind(void 0,t);e.register("recipe",Vr.Mod(Vr.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Vr.Switch]:[{push:"type"}],[Vr.Case]:{"minecraft:crafting_shaped":{group:Vr.Opt(n({enum:"recipe_group",additional:!0})),pattern:Vr.ListNode(n()),key:Vr.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Vr.Opt(n()),ingredients:Vr.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Vr.NumberNode({integer:!0})},"minecraft:smithing":{group:Vr.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Vr.Mod(Vr.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Vr.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Vr.Mod(Vr.ObjectNode({item:Vr.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Vr.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Vr.Mod(Vr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initTagsSchemas=void 0;const Gr=Te;Kr.initTagsSchemas=function(e,t){const i=Gr.StringNode.bind(void 0,t),n=e=>Gr.Mod(Gr.ObjectNode({replace:Gr.Opt(Gr.BooleanNode()),values:Gr.ListNode(Gr.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Gr.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Gr.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Xr={};Object.defineProperty(Xr,"__esModule",{value:!0}),Xr.initTextComponentSchemas=void 0;const Jr=Te;Xr.initTextComponentSchemas=function(e,t){const i=Jr.Reference.bind(void 0,e),n=Jr.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Jr.Mod(Jr.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Jr.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Jr.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Jr.Opt(n()),font:Jr.Opt(n()),bold:Jr.Opt(Jr.BooleanNode()),italic:Jr.Opt(Jr.BooleanNode()),underlined:Jr.Opt(Jr.BooleanNode()),strikethrough:Jr.Opt(Jr.BooleanNode()),obfuscated:Jr.Opt(Jr.BooleanNode()),insertion:Jr.Opt(n()),clickEvent:Jr.Opt(Jr.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Jr.Switch]:[{push:"action"}],[Jr.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Jr.Opt(Jr.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Jr.Switch]:[{push:"action"}],[Jr.Case]:{show_text:{value:Jr.Opt(i("text_component")),contents:Jr.Opt(i("text_component"))},show_item:{value:Jr.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Jr.Opt(Jr.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Jr.Opt(Jr.NumberNode({integer:!0})),tag:Jr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Jr.Opt(Jr.ObjectNode({name:Jr.Opt(n()),type:Jr.Opt(n()),id:Jr.Opt(n())})),contents:Jr.Opt(Jr.Mod(Jr.ObjectNode({name:Jr.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Jr.Opt(i("text_component_list"))};e.register("text_component_object",Jr.Mod(Jr.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Jr.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Jr.ObjectNode(s({translate:n(),with:Jr.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Jr.ObjectNode(s({score:Jr.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Jr.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Jr.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Jr.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Jr.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Jr.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Jr.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Jr.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Jr.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Jr.Opt(Jr.BooleanNode()),separator:Jr.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Jr.Mod(Jr.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var Yr={},Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initBiomeSchemas=void 0;const Qr=Te;Zr.initBiomeSchemas=function(e,t){const i=Qr.StringNode.bind(void 0,t);e.register("biome",Qr.Mod(Qr.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Qr.NumberNode(),scale:Qr.NumberNode(),temperature:Qr.NumberNode(),downfall:Qr.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Qr.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:Qr.Opt(Qr.BooleanNode()),creature_spawn_probability:Qr.Opt(Qr.NumberNode({min:0,max:1})),effects:Qr.ObjectNode({sky_color:Qr.NumberNode({color:!0}),fog_color:Qr.NumberNode({color:!0}),water_color:Qr.NumberNode({color:!0}),water_fog_color:Qr.NumberNode({color:!0}),grass_color:Qr.Opt(Qr.NumberNode({color:!0})),foliage_color:Qr.Opt(Qr.NumberNode({color:!0})),grass_color_modifier:Qr.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Qr.Opt(i()),mood_sound:Qr.Opt(Qr.ObjectNode({sound:i(),tick_delay:Qr.NumberNode({integer:!0}),block_search_extent:Qr.NumberNode({integer:!0}),offset:Qr.NumberNode()})),additions_sound:Qr.Opt(Qr.ObjectNode({sound:i(),tick_chance:Qr.NumberNode({min:0,max:1})})),music:Qr.Opt(Qr.ObjectNode({sound:i(),min_delay:Qr.NumberNode({integer:!0,min:0}),max_delay:Qr.NumberNode({integer:!0,min:0}),replace_current_music:Qr.BooleanNode()})),particle:Qr.Opt(Qr.ObjectNode({options:Qr.ObjectNode({type:i()}),probability:Qr.NumberNode({min:0,max:1})}))}),starts:Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Qr.MapNode(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Qr.Mod(Qr.ListNode(Qr.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Qr.NumberNode({integer:!0}),minCount:Qr.NumberNode({integer:!0}),maxCount:Qr.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Qr.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Qr.Mod(Qr.ObjectNode({energy_budget:Qr.NumberNode(),charge:Qr.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Qr.MapNode(i({enum:["air","liquid"]}),Qr.Mod(Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Qr.ListNode(Qr.Mod(Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initCarverSchemas=void 0;const to=Te,io=Ar;eo.initCarverSchemas=function(e,t){const i=to.Reference.bind(void 0,e),n=to.StringNode.bind(void 0,t),r={vertical_rotation:io.FloatProvider(),shape:to.ObjectNode({distance_factor:io.FloatProvider(),thickness:io.FloatProvider(),width_smoothness:to.NumberNode({integer:!0,min:0}),horizontal_radius_factor:io.FloatProvider(),vertical_radius_default_factor:to.NumberNode(),vertical_radius_center_factor:to.NumberNode()})},o={horizontal_radius_multiplier:io.FloatProvider(),vertical_radius_multiplier:io.FloatProvider(),floor_level:io.FloatProvider({min:-1,max:1})};e.register("configured_carver",to.Mod(to.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:to.ObjectNode({probability:to.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:io.FloatProvider(),lava_level:i("vertical_anchor"),aquifers_enabled:to.BooleanNode(),debug_settings:to.Opt(to.ObjectNode({debug_mode:to.Opt(to.BooleanNode()),air_state:to.Opt(i("block_state")),water_state:to.Opt(i("block_state")),lava_state:to.Opt(i("block_state")),barrier_state:to.Opt(i("block_state"))})),[to.Switch]:["pop",{push:"type"}],[to.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var no={};Object.defineProperty(no,"__esModule",{value:!0}),no.initDecoratorSchemas=void 0;const ro=Te,oo=Ar;no.initDecoratorSchemas=function(e,t){const i=ro.Reference.bind(void 0,e),n=ro.StringNode.bind(void 0,t),r={count:oo.IntProvider({min:0,max:256})};e.register("configured_decorator",ro.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:ro.ObjectNode({[ro.Switch]:["pop",{push:"type"}],[ro.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:ro.NumberNode({integer:!0})},"minecraft:chance":{chance:ro.NumberNode({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:ro.NumberNode({integer:!0,min:0}),extra_count:ro.NumberNode({integer:!0,min:0}),extra_chance:ro.NumberNode({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:ro.NumberNode(),below_noise:ro.NumberNode({integer:!0}),above_noise:ro.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:ro.NumberNode({integer:!0}),noise_factor:ro.NumberNode(),noise_offset:ro.Opt(ro.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:ro.NumberNode({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:ro.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ao={},so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initProcessorListSchemas=so.Processors=void 0;const co=Te;so.initProcessorListSchemas=function(e,t){const i=co.Reference.bind(void 0,e),n=co.StringNode.bind(void 0,t);so.Processors=co.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",co.Mod(co.ObjectNode({processors:co.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",co.Mod(co.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[co.Switch]:[{push:"processor_type"}],[co.Case]:{"minecraft:block_age":{mossiness:co.NumberNode()},"minecraft:block_ignore":{blocks:co.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:co.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:co.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:co.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",co.Mod(co.ObjectNode({position_predicate:co.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:co.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),max_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),min_chance:co.Opt(co.NumberNode({min:0,max:1})),max_chance:co.Opt(co.NumberNode({min:0,max:1}))};e.register("pos_rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:co.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:co.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ao,"__esModule",{value:!0}),ao.initFeatureSchemas=void 0;const lo=Te,uo=Ar,ho=so;ao.initFeatureSchemas=function(e,t){const i=lo.Reference.bind(void 0,e),n=lo.StringNode.bind(void 0,t),r={can_replace:lo.Opt(lo.BooleanNode()),project:lo.Opt(lo.BooleanNode()),need_water:lo.Opt(lo.BooleanNode()),xspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),yspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),zspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),tries:lo.Opt(lo.NumberNode({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:lo.ListNode(i("block_state")),blacklist:lo.ListNode(i("block_state"))},o={state:i("block_state"),radius:uo.IntProvider({min:0,max:8}),half_height:lo.NumberNode({integer:!0,min:0,max:4}),targets:lo.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:lo.Opt(lo.NumberNode({integer:!0}))},s=lo.ObjectNode({target:i("rule_test"),state:i("block_state")}),c={size:lo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:lo.NumberNode({min:0,max:1}),targets:lo.ListNode(s)},l=lo.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:n({enum:["floor","ceiling"]}),depth:uo.IntProvider({min:1,max:128}),vertical_range:lo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:lo.NumberNode({min:0,max:1}),extra_edge_column_chance:lo.NumberNode({min:0,max:1}),vegetation_chance:lo.NumberNode({min:0,max:1}),xz_radius:uo.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:l};e.register("configured_feature",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:bamboo":{probability:lo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:uo.IntProvider({min:0,max:3}),height:uo.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:uo.IntProvider({min:0,max:16}),rim_size:uo.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:lo.NumberNode({integer:!0,min:1,max:512}),height:uo.IntProvider({min:0,max:128}),radius:uo.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:lo.NumberNode({integer:!0,min:0,max:64}),height_deviation:lo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:uo.IntProvider({min:0,max:128}),density:uo.FloatProvider({min:0,max:2}),wetness:uo.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:lo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:lo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:lo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:lo.BooleanNode(),exit:lo.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:lo.Opt(lo.BooleanNode()),crystal_beam_target:lo.Opt(i("block_pos")),spikes:lo.ListNode(lo.ObjectNode({centerX:lo.Opt(lo.NumberNode({integer:!0})),centerZ:lo.Opt(lo.NumberNode({integer:!0})),radius:lo.Opt(lo.NumberNode({integer:!0})),height:lo.Opt(lo.NumberNode({integer:!0})),guarded:lo.Opt(lo.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:lo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:lo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:ho.Processors,overlay_processors:ho.Processors},"minecraft:geode":{blocks:lo.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:lo.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:lo.ObjectNode({filling:lo.Opt(lo.NumberNode({min:.01,max:50})),inner_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),middle_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),outer_layer:lo.Opt(lo.NumberNode({min:.01,max:50}))}),crack:lo.ObjectNode({generate_crack_chance:lo.Opt(lo.NumberNode({min:0,max:1})),base_crack_size:lo.Opt(lo.NumberNode({min:0,max:5})),crack_point_offset:lo.Opt(lo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:lo.Opt(lo.NumberNode({min:0,max:1})),use_potential_placements_chance:lo.Opt(lo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:lo.Opt(lo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:lo.Opt(lo.BooleanNode()),outer_wall_distance:lo.Opt(uo.IntProvider({min:1,max:20})),distribution_points:lo.Opt(uo.IntProvider({min:1,max:20})),point_offset:lo.Opt(uo.IntProvider({min:0,max:10})),min_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),max_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),invalid_blocks_threshold:lo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:lo.Opt(lo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:lo.Opt(lo.NumberNode({min:0,max:1})),can_place_on_floor:lo.Opt(lo.BooleanNode()),can_place_on_ceiling:lo.Opt(lo.BooleanNode()),can_place_on_wall:lo.Opt(lo.BooleanNode()),can_be_placed_on:lo.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:lo.BooleanNode(),height_distribution:lo.ListNode(lo.ObjectNode({weight:lo.NumberNode({integer:!0}),data:uo.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:lo.Opt(lo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:lo.Opt(lo.NumberNode({integer:!0,min:1,max:512})),column_radius:uo.IntProvider({min:0,max:60}),height_scale:uo.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:lo.NumberNode({min:0,max:1}),stalactite_bluntness:uo.FloatProvider({min:.1,max:10}),stalagmite_bluntness:uo.FloatProvider({min:.1,max:10}),wind_speed:uo.FloatProvider({min:0,max:2}),min_radius_for_wind:lo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:lo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:uo.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":r,"minecraft:ore":c,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:lo.ListNode(lo.ObjectNode({chance:lo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:lo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_radius:lo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:lo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:lo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:lo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:lo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:uo.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:lo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:lo.Opt(lo.ListNode(i("block_state"))),place_in:lo.Opt(lo.ListNode(i("block_state"))),place_under:lo.Opt(lo.ListNode(i("block_state")))},"minecraft:simple_random_selector":{features:lo.ListNode(l)},"minecraft:small_dripstone":{max_placements:lo.Opt(lo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:lo.Opt(lo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:lo.NumberNode({integer:!0}),hole_count:lo.NumberNode({integer:!0}),requires_block_below:lo.BooleanNode(),valid_blocks:lo.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:lo.Opt(lo.BooleanNode()),force_dirt:lo.Opt(lo.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),sapling_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:lo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:lo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:lo.NumberNode({integer:!0,min:0,max:24}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:bending_trunk_placer":{bend_length:uo.IntProvider({min:1,max:64}),min_height_for_leaves:lo.Opt(lo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:uo.IntProvider({min:0,max:16}),offset:uo.IntProvider({min:0,max:16}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:blob_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:uo.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:uo.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:uo.IntProvider({min:1,max:512}),leaf_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:uo.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:lo.ListNode(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:lo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:lo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:lo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:lo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:lo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:lo.Opt(lo.NumberNode({min:0,max:80})),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:two_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:81})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),upper_limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),middle_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:uo.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:lo.ListNode(lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:column_placer":{size:uo.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var po={};Object.defineProperty(po,"__esModule",{value:!0}),po.initNoiseSettingsSchemas=void 0;const mo=Te,fo=Ar;po.initNoiseSettingsSchemas=function(e,t){const i=mo.Reference.bind(void 0,e),n=mo.StringNode.bind(void 0,t);e.register("noise_settings",mo.Mod(mo.ObjectNode({name:mo.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:mo.NumberNode({integer:!0}),bedrock_floor_position:mo.NumberNode({integer:!0}),sea_level:mo.NumberNode({integer:!0}),min_surface_level:mo.NumberNode({integer:!0}),disable_mob_generation:mo.BooleanNode(),noise_caves_enabled:mo.BooleanNode(),noodle_caves_enabled:mo.BooleanNode(),aquifers_enabled:mo.BooleanNode(),deepslate_enabled:mo.BooleanNode(),ore_veins_enabled:mo.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:mo.ObjectNode({min_y:mo.NumberNode({integer:!0,min:-2048,max:2047}),height:mo.NumberNode({integer:!0,min:0,max:4096}),density_factor:mo.NumberNode(),density_offset:mo.NumberNode(),size_horizontal:mo.NumberNode({integer:!0}),size_vertical:mo.NumberNode({integer:!0}),simplex_surface_noise:mo.BooleanNode(),random_density_offset:mo.Opt(mo.BooleanNode()),island_noise_override:mo.Opt(mo.BooleanNode()),amplified:mo.Opt(mo.BooleanNode()),sampling:mo.ObjectNode({xz_scale:mo.NumberNode(),y_scale:mo.NumberNode(),xz_factor:mo.NumberNode(),y_factor:mo.NumberNode()}),bottom_slide:mo.ObjectNode({target:mo.NumberNode({integer:!0}),size:mo.NumberNode({integer:!0,min:0}),offset:mo.NumberNode({integer:!0})}),top_slide:mo.ObjectNode({target:mo.NumberNode({integer:!0}),size:mo.NumberNode({integer:!0,min:0}),offset:mo.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>fo.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("generator_structures",mo.ObjectNode({stronghold:mo.Opt(mo.ObjectNode({distance:mo.NumberNode({integer:!0,min:0,max:1023}),spread:mo.NumberNode({integer:!0,min:0,max:1023}),count:mo.NumberNode({integer:!0,min:1,max:4095})})),structures:mo.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),mo.Mod(mo.ObjectNode({spacing:mo.NumberNode({integer:!0,min:0,max:4096}),separation:mo.Mod(mo.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:mo.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",mo.Mod(mo.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:mo.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var go={};Object.defineProperty(go,"__esModule",{value:!0}),go.initStructureFeatureSchemas=void 0;const _o=Te;go.initStructureFeatureSchemas=function(e,t){const i=_o.StringNode.bind(void 0,t),n=_o.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:_o.NumberNode({integer:!0})};e.register("configured_structure_feature",_o.Mod(_o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:_o.ObjectNode({[_o.Switch]:["pop",{push:"type"}],[_o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:_o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:_o.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:_o.NumberNode({min:0,max:1}),cluster_probability:_o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:_o.Opt(_o.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initSurfaceBuilderSchemas=void 0;const vo=Te;bo.initSurfaceBuilderSchemas=function(e,t){const i=vo.StringNode.bind(void 0,t),n=vo.Reference.bind(void 0,e);e.register("configured_surface_builder",vo.Mod(vo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:vo.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initTemplatePoolSchemas=void 0;const wo=Te,xo=so;yo.initTemplatePoolSchemas=function(e,t){const i=wo.Reference.bind(void 0,e),n=wo.StringNode.bind(void 0,t);e.register("template_pool",wo.Mod(wo.ObjectNode({name:n(),fallback:n(),elements:wo.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",wo.Mod(wo.ObjectNode({weight:wo.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",wo.Mod(wo.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[wo.Switch]:[{push:"element_type"}],[wo.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors},"minecraft:list_pool_element":{elements:wo.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Yr,"__esModule",{value:!0}),Yr.initWorldgenSchemas=void 0;const Ao=Zr,No=eo,ko=no,Co=ao,Eo=po,So=so,Fo=go,Oo=bo,Do=yo;Yr.initWorldgenSchemas=function(e,t){So.initProcessorListSchemas(e,t),Ao.initBiomeSchemas(e,t),No.initCarverSchemas(e,t),ko.initDecoratorSchemas(e,t),Co.initFeatureSchemas(e,t),Eo.initNoiseSettingsSchemas(e,t),Fo.initStructureFeatureSchemas(e,t),Oo.initSurfaceBuilderSchemas(e,t),Do.initTemplatePoolSchemas(e,t)};var Bo={};Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.initWorldSettingsSchemas=void 0;const Lo=Te;Bo.initWorldSettingsSchemas=function(e,t){const i=Lo.Reference.bind(void 0,e),n=Lo.StringNode.bind(void 0,t);e.register("world_settings",Lo.Mod(Lo.ObjectNode({generate_features:Lo.BooleanNode(),bonus_chest:Lo.BooleanNode(),seed:Lo.NumberNode({integer:!0}),dimensions:Lo.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(pr,"__esModule",{value:!0}),pr.initSchemas=void 0;const Mo=mr,$o=gr,To=Ar,Ro=Nr,jo=Er,Io=Or,Po=Lr,zo=Tr,Uo=zr,Wo=Wr,Ho=qr,qo=Kr,Vo=Xr,Ko=Yr,Go=Bo;pr.initSchemas=function(e,t){To.initCommonSchemas(e,t),Mo.initAdvancementSchemas(e,t),$o.initAssetsSchemas(e,t),Ro.initConditionSchemas(e,t),Io.initDimensionTypeSchemas(e,t),jo.initDimensionSchemas(e,t),Po.initItemModifierSchemas(e,t),zo.initLootTableSchemas(e,t),Uo.initPackMcmetaSchemas(e,t),Wo.initPredicatesSchemas(e,t),Ho.initRecipeSchemas(e,t),qo.initTagsSchemas(e,t),Vo.initTextComponentSchemas(e,t),Ko.initWorldgenSchemas(e,t),Go.initWorldSettingsSchemas(e,t)};var Xo=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Jo=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Yo=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Xo(t,e,i);return Jo(t,e),t};Object.defineProperty(dr,"__esModule",{value:!0});var Zo=dr.getSchemas=dr.getCollections=void 0;const Qo=Te,ea=hr,ta=pr;var ia=dr.lootContext=Yo(Rr);var na=dr.getCollections=function(){const e=new Qo.CollectionRegistry;return ea.initCollections(e),e};Zo=dr.getSchemas=function(e){const t=new Qo.SchemaRegistry;return ta.initSchemas(t,e),t};var ra=Object.freeze(Object.assign(Object.create(null),dr,{[Symbol.toStringTag]:"Module",get getSchemas(){return Zo},get getCollections(){return na},lootContext:ia,default:dr})),oa={},aa={};Object.defineProperty(aa,"__esModule",{value:!0}),aa.initCollections=void 0,aa.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var sa={},ca={};Object.defineProperty(ca,"__esModule",{value:!0}),ca.initAdvancementSchemas=void 0;const la=Te;ca.initAdvancementSchemas=function(e,t){const i=la.Reference.bind(void 0,e),n=la.StringNode.bind(void 0,t),r=la.ChoiceNode([{type:"object",node:la.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:la.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",la.Mod(la.ObjectNode({display:la.Opt(la.Mod(la.ObjectNode({icon:la.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:la.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:la.Opt(n()),frame:la.Opt(n({enum:["task","challenge","goal"]})),show_toast:la.Opt(la.BooleanNode()),announce_to_chat:la.Opt(la.BooleanNode()),hidden:la.Opt(la.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:la.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:la.MapNode(n(),i("advancement_criteria")),requirements:la.Opt(la.ListNode(la.ListNode(n()))),rewards:la.Opt(la.ObjectNode({function:la.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:la.Opt(la.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",la.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:la.Opt(la.ObjectNode({player:la.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[la.Switch]:["pop",{push:"trigger"}],[la.Case]:{"minecraft:bee_nest_destroyed":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:la.Opt(la.NumberNode({integer:!0})),item:la.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:la.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:la.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:la.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:la.Opt(la.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:la.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:la.Opt(la.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),la.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:la.Opt(r)},"minecraft:enter_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:la.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:la.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:la.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:la.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:la.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:la.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:la.Opt(la.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:la.Opt(la.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:la.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:la.Opt(i("item_predicate")),location:la.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:la.Opt(la.ListNode(r))},"minecraft:levitation":{distance:la.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:la.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:la.Opt(i("item_predicate")),location:la.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:la.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:la.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:la.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:la.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:la.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:la.Opt(i("entity_predicate")),item:la.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:la.Opt(i("float_bounds"))},"minecraft:used_totem":{item:la.Opt(i("item_predicate"))},"minecraft:using_item":{item:la.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:la.Opt(i("entity_predicate")),item:la.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:la.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var ua={},da={};Object.defineProperty(da,"__esModule",{value:!0}),da.initModelSchemas=void 0;const ha=Te;da.initModelSchemas=function(e,t){ha.Reference.bind(void 0,e);const i=ha.StringNode.bind(void 0,t),n=(e,t,i)=>ha.ListNode(ha.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=ha.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",ha.Mod(ha.ObjectNode({parent:ha.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:ha.Opt(ha.BooleanNode()),gui_light:ha.Opt(i({enum:"gui_light"})),textures:ha.Opt(ha.MapNode(i(),r)),elements:ha.Opt(ha.ListNode(ha.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:ha.Opt(ha.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:ha.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:ha.Opt(ha.BooleanNode())})),shade:ha.Opt(ha.BooleanNode()),faces:ha.MapNode(i({enum:"direction"}),ha.ObjectNode({texture:r,uv:ha.Opt(n(4)),cullface:ha.Opt(i({enum:"direction"})),rotation:ha.Opt(ha.NumberNode({integer:!0})),tintindex:ha.Opt(ha.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:ha.Opt(ha.MapNode(i({enum:"display_position"}),ha.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:ha.Opt(ha.ListNode(ha.ObjectNode({predicate:ha.MapNode(i({enum:"item_model_predicates"}),ha.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initBlockDefinitionSchemas=void 0;const ma=Te;pa.initBlockDefinitionSchemas=function(e,t){const i=ma.Reference.bind(void 0,e),n=ma.StringNode.bind(void 0,t);e.register("block_definition",ma.Mod(ma.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:ma.ObjectNode({variants:ma.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:ma.ObjectNode({multipart:ma.ListNode(ma.ObjectNode({when:ma.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:ma.Opt(ma.NumberEnum({integer:!0,values:[0,90,180,270]})),y:ma.Opt(ma.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:ma.Opt(ma.BooleanNode())};e.register("model_variant",ma.ChoiceNode([{type:"object",node:ma.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:ma.ListNode(ma.ObjectNode(c(s({},r),{weight:ma.Opt(ma.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",ma.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:ma.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:ma.ObjectNode({OR:ma.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(ua,"__esModule",{value:!0}),ua.initAssetsSchemas=void 0;const fa=da,ga=pa;ua.initAssetsSchemas=function(e,t){ga.initBlockDefinitionSchemas(e,t),fa.initModelSchemas(e,t)};var _a={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const i={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},e.initCommonSchemas=function(n,r){const o=t.StringNode.bind(void 0,r),a=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",c(!0)),n.register("float_bounds",c()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,i,n,r,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[r][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),n.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=o({enum:"copy_source"}),n=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:r.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(n),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(n),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return r.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}}})}}(_a);var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initConditionSchemas=void 0;const va=Te,ya=_a;ba.initConditionSchemas=function(e,t){const i=va.Reference.bind(void 0,e),n=va.StringNode.bind(void 0,t);e.register("predicate",va.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",va.Mod(va.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[va.Switch]:[{push:"condition"}],[va.Case]:ya.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var wa={};Object.defineProperty(wa,"__esModule",{value:!0}),wa.initDimensionSchemas=void 0;const xa=Te,Aa=_a;wa.initDimensionSchemas=function(e,t){const i=xa.Reference.bind(void 0,e),n=xa.StringNode.bind(void 0,t);e.register("dimension",xa.Mod(xa.ObjectNode({type:Aa.DimensionTypePresets(i("dimension_type")),generator:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:noise":{seed:xa.NumberNode({integer:!0}),settings:Aa.NoiseSettingsPresets(i("noise_settings")),biome_source:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:xa.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:xa.Mod(xa.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:xa.Opt(xa.NumberNode({integer:!0,min:0,max:62})),biomes:xa.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:xa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:xa.ObjectNode({biome:xa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:xa.Opt(xa.BooleanNode()),features:xa.Opt(xa.BooleanNode()),layers:xa.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=xa.ChoiceNode([{type:"number",node:xa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:xa.ListNode(xa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",xa.Mod(xa.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:xa.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:xa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Na={};Object.defineProperty(Na,"__esModule",{value:!0}),Na.initDimensionTypeSchemas=void 0;const ka=Te,Ca=_a;Na.initDimensionTypeSchemas=function(e,t){const i=ka.StringNode.bind(void 0,t);e.register("dimension_type",ka.Mod(ka.ObjectNode({ultrawarm:ka.BooleanNode(),natural:ka.BooleanNode(),piglin_safe:ka.BooleanNode(),respawn_anchor_works:ka.BooleanNode(),bed_works:ka.BooleanNode(),has_raids:ka.BooleanNode(),has_skylight:ka.BooleanNode(),has_ceiling:ka.BooleanNode(),coordinate_scale:ka.NumberNode({min:1e-5,max:3e7}),ambient_light:ka.NumberNode(),fixed_time:ka.Opt(ka.NumberNode({integer:!0})),logical_height:ka.NumberNode({integer:!0,min:0,max:4096}),effects:ka.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:ka.NumberNode({integer:!0,min:-2048,max:2047}),height:ka.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Ca.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Ea={};Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initItemModifierSchemas=void 0;const Sa=Te,Fa=_a;Ea.initItemModifierSchemas=function(e,t){const i=Sa.Reference.bind(void 0,e),n=Sa.StringNode.bind(void 0,t);e.register("item_modifier",Sa.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Sa.Opt(Sa.ListNode(i("condition")))};e.register("function",Sa.Mod(Sa.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Sa.Switch]:[{push:"function"}],[Sa.Case]:Fa.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Oa={},Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.LootFunctions=Da.LootConditions=Da.LootCopySources=Da.LootEntitySources=Da.LootTableTypes=void 0,Da.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Da.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Da.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Da.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Da.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.initLootTableSchemas=void 0;const Ba=Te,La=Da,Ma=_a;Oa.initLootTableSchemas=function(e,t){const i=Ba.Reference.bind(void 0,e),n=Ba.StringNode.bind(void 0,t),r={conditions:Ba.Opt(Ba.ListNode(i("loot_condition")))},o=s({functions:Ba.Opt(Ba.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of La.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ba.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Ba.SwitchNode(r)}const c=a(La.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(La.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(La.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(La.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Ba.Mod(Ba.ObjectNode({type:Ba.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ba.Opt(Ba.ListNode(Ba.Mod(Ba.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:Ba.Opt(i("number_provider")),entries:Ba.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ba.Opt(Ba.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Ba.Mod(Ba.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0,min:1}),h)),quality:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0}),h)),[Ba.Switch]:[{push:"type"}],[Ba.Case]:{"minecraft:alternatives":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Ba.Opt(Ba.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ba.Mod(Ba.ObjectNode({function:l,[Ba.Switch]:[{push:"function"}],[Ba.Case]:Ma.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ba.Mod(Ba.ObjectNode({condition:c,[Ba.Switch]:[{push:"condition"}],[Ba.Case]:Ma.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ba.Mod(Ba.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Ba.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var $a={};Object.defineProperty($a,"__esModule",{value:!0}),$a.initPackMcmetaSchemas=void 0;const Ta=Te;$a.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Ta.Mod(Ta.ObjectNode({pack:Ta.Mod(Ta.ObjectNode({pack_format:Ta.Mod(Ta.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Ta.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.initPredicatesSchemas=void 0;const ja=Te;Ra.initPredicatesSchemas=function(e,t){const i=ja.Reference.bind(void 0,e),n=ja.StringNode.bind(void 0,t),r=ja.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:ja.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:ja.ObjectNode({min:ja.Opt(ja.NumberNode({integer:!0})),max:ja.Opt(ja.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:ja.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",ja.ObjectNode({items:ja.Opt(ja.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:ja.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:ja.Opt(ja.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",ja.ObjectNode({enchantment:ja.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",ja.ObjectNode({blocks:ja.Opt(ja.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:ja.Opt(ja.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",ja.ObjectNode({fluid:ja.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:ja.Opt(ja.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",ja.ObjectNode({position:ja.Opt(ja.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:ja.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:ja.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:ja.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:ja.Opt(ja.ObjectNode({light:i("int_bounds")})),smokey:ja.Opt(ja.BooleanNode()),block:ja.Opt(i("block_predicate")),fluid:ja.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",ja.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[ja.Switch]:[{push:"type"}],[ja.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",ja.ObjectNode({gamemode:ja.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),ja.ChoiceNode([{type:"boolean",node:ja.BooleanNode(),change:e=>!0},{type:"object",node:ja.MapNode(n(),ja.BooleanNode())}]))),recipes:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),ja.BooleanNode())),stats:ja.Opt(ja.ListNode(i("statistic_predicate"))),looking_at:ja.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",ja.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:ja.Opt(ja.BooleanNode()),visible:ja.Opt(ja.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",ja.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",ja.ObjectNode({type:ja.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:ja.Opt(n({validator:"team"})),location:ja.Opt(i("location_predicate")),stepping_on:ja.Opt(i("location_predicate")),distance:ja.Opt(i("distance_predicate")),flags:ja.Opt(ja.ObjectNode({is_on_fire:ja.Opt(ja.BooleanNode()),is_sneaking:ja.Opt(ja.BooleanNode()),is_sprinting:ja.Opt(ja.BooleanNode()),is_swimming:ja.Opt(ja.BooleanNode()),is_baby:ja.Opt(ja.BooleanNode())})),equipment:ja.Opt(ja.MapNode(n({enum:"slot"}),i("item_predicate"))),player:ja.Opt(i("player_predicate")),vehicle:ja.Opt(i("entity_predicate")),passenger:ja.Opt(i("entity_predicate")),targeted_entity:ja.Opt(i("entity_predicate")),lightning_bolt:ja.Opt(ja.ObjectNode({blocks_set_on_fire:ja.Opt(i("int_bounds")),entity_struck:ja.Opt(i("entity_predicate"))})),fishing_hook:ja.Opt(ja.ObjectNode({in_open_water:ja.Opt(ja.BooleanNode())})),effects:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",ja.ObjectNode({is_explosion:ja.Opt(ja.BooleanNode()),is_fire:ja.Opt(ja.BooleanNode()),is_magic:ja.Opt(ja.BooleanNode()),is_projectile:ja.Opt(ja.BooleanNode()),is_lightning:ja.Opt(ja.BooleanNode()),bypasses_armor:ja.Opt(ja.BooleanNode()),bypasses_invulnerability:ja.Opt(ja.BooleanNode()),bypasses_magic:ja.Opt(ja.BooleanNode()),source_entity:ja.Opt(i("entity_predicate")),direct_entity:ja.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",ja.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:ja.Opt(ja.BooleanNode()),source_entity:ja.Opt(i("entity_predicate")),type:ja.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0}),Ia.initRecipeSchemas=void 0;const Pa=Te;Ia.initRecipeSchemas=function(e,t){const i=Pa.Reference.bind(void 0,e),n=Pa.StringNode.bind(void 0,t);e.register("recipe",Pa.Mod(Pa.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Pa.Switch]:[{push:"type"}],[Pa.Case]:{"minecraft:crafting_shaped":{group:Pa.Opt(n({enum:"recipe_group",additional:!0})),pattern:Pa.ListNode(n()),key:Pa.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Pa.Opt(n()),ingredients:Pa.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Pa.NumberNode({integer:!0})},"minecraft:smithing":{group:Pa.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Pa.Mod(Pa.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Pa.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Pa.Mod(Pa.ObjectNode({item:Pa.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Pa.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Pa.Mod(Pa.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.initTagsSchemas=void 0;const Ua=Te;za.initTagsSchemas=function(e,t){const i=Ua.StringNode.bind(void 0,t),n=e=>Ua.Mod(Ua.ObjectNode({replace:Ua.Opt(Ua.BooleanNode()),values:Ua.ListNode(Ua.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ua.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ua.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Wa={};Object.defineProperty(Wa,"__esModule",{value:!0}),Wa.initTextComponentSchemas=void 0;const Ha=Te;Wa.initTextComponentSchemas=function(e,t){const i=Ha.Reference.bind(void 0,e),n=Ha.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Ha.Mod(Ha.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Ha.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Ha.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Ha.Opt(n()),font:Ha.Opt(n()),bold:Ha.Opt(Ha.BooleanNode()),italic:Ha.Opt(Ha.BooleanNode()),underlined:Ha.Opt(Ha.BooleanNode()),strikethrough:Ha.Opt(Ha.BooleanNode()),obfuscated:Ha.Opt(Ha.BooleanNode()),insertion:Ha.Opt(n()),clickEvent:Ha.Opt(Ha.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ha.Switch]:[{push:"action"}],[Ha.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Ha.Opt(Ha.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Ha.Switch]:[{push:"action"}],[Ha.Case]:{show_text:{value:Ha.Opt(i("text_component")),contents:Ha.Opt(i("text_component"))},show_item:{value:Ha.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Ha.Opt(Ha.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Ha.Opt(Ha.NumberNode({integer:!0})),tag:Ha.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Ha.Opt(Ha.ObjectNode({name:Ha.Opt(n()),type:Ha.Opt(n()),id:Ha.Opt(n())})),contents:Ha.Opt(Ha.Mod(Ha.ObjectNode({name:Ha.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Ha.Opt(i("text_component_list"))};e.register("text_component_object",Ha.Mod(Ha.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Ha.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Ha.ObjectNode(s({translate:n(),with:Ha.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Ha.ObjectNode(s({score:Ha.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Ha.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Ha.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Ha.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Ha.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Ha.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Ha.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Ha.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Ha.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Ha.Opt(Ha.BooleanNode()),separator:Ha.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Ha.Mod(Ha.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var qa={},Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.initBiomeSchemas=void 0;const Ka=Te;Va.initBiomeSchemas=function(e,t){const i=Ka.StringNode.bind(void 0,t);e.register("biome",Ka.Mod(Ka.ObjectNode({temperature:Ka.NumberNode(),downfall:Ka.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Ka.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:Ka.Opt(Ka.NumberNode({min:0,max:1})),effects:Ka.ObjectNode({sky_color:Ka.NumberNode({color:!0}),fog_color:Ka.NumberNode({color:!0}),water_color:Ka.NumberNode({color:!0}),water_fog_color:Ka.NumberNode({color:!0}),grass_color:Ka.Opt(Ka.NumberNode({color:!0})),foliage_color:Ka.Opt(Ka.NumberNode({color:!0})),grass_color_modifier:Ka.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Ka.Opt(i()),mood_sound:Ka.Opt(Ka.ObjectNode({sound:i(),tick_delay:Ka.NumberNode({integer:!0}),block_search_extent:Ka.NumberNode({integer:!0}),offset:Ka.NumberNode()})),additions_sound:Ka.Opt(Ka.ObjectNode({sound:i(),tick_chance:Ka.NumberNode({min:0,max:1})})),music:Ka.Opt(Ka.ObjectNode({sound:i(),min_delay:Ka.NumberNode({integer:!0,min:0}),max_delay:Ka.NumberNode({integer:!0,min:0}),replace_current_music:Ka.BooleanNode()})),particle:Ka.Opt(Ka.ObjectNode({options:Ka.ObjectNode({type:i()}),probability:Ka.NumberNode({min:0,max:1})}))}),spawners:Ka.MapNode(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Ka.Mod(Ka.ListNode(Ka.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Ka.NumberNode({integer:!0}),minCount:Ka.NumberNode({integer:!0}),maxCount:Ka.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Ka.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Ka.Mod(Ka.ObjectNode({energy_budget:Ka.NumberNode(),charge:Ka.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Ka.MapNode(i({enum:["air","liquid"]}),Ka.Mod(Ka.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Ka.ListNode(Ka.Mod(Ka.ListNode(i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.initCarverSchemas=void 0;const Xa=Te,Ja=_a;Ga.initCarverSchemas=function(e,t){const i=Xa.Reference.bind(void 0,e),n=Xa.StringNode.bind(void 0,t),r={vertical_rotation:Ja.FloatProvider(),shape:Xa.ObjectNode({distance_factor:Ja.FloatProvider(),thickness:Ja.FloatProvider(),width_smoothness:Xa.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ja.FloatProvider(),vertical_radius_default_factor:Xa.NumberNode(),vertical_radius_center_factor:Xa.NumberNode()})},o={horizontal_radius_multiplier:Ja.FloatProvider(),vertical_radius_multiplier:Ja.FloatProvider(),floor_level:Ja.FloatProvider({min:-1,max:1})};e.register("configured_carver",Xa.Mod(Xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Xa.ObjectNode({probability:Xa.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Ja.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:Xa.Opt(Xa.ObjectNode({debug_mode:Xa.Opt(Xa.BooleanNode()),air_state:Xa.Opt(i("block_state")),water_state:Xa.Opt(i("block_state")),lava_state:Xa.Opt(i("block_state")),barrier_state:Xa.Opt(i("block_state"))})),[Xa.Switch]:["pop",{push:"type"}],[Xa.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initDecoratorSchemas=void 0;const Za=Te,Qa=_a;Ya.initDecoratorSchemas=function(e,t){const i=Za.Reference.bind(void 0,e),n=Za.StringNode.bind(void 0,t);e.register("decorator",Za.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Za.Switch]:[{push:"type"}],[Za.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Za.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Qa.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Qa.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Za.NumberNode(),below_noise:Za.NumberNode({integer:!0}),above_noise:Za.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Za.NumberNode({integer:!0}),noise_factor:Za.NumberNode(),noise_offset:Za.Opt(Za.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Za.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Za.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:Qa.IntProvider({min:-16,max:16}),y_spread:Qa.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Za.Opt(Za.NumberNode({integer:!0})),max_inclusive:Za.Opt(Za.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Za.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=ts.Processors=void 0;const is=Te;ts.initProcessorListSchemas=function(e,t){const i=is.Reference.bind(void 0,e),n=is.StringNode.bind(void 0,t);ts.Processors=is.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",is.Mod(is.ObjectNode({processors:is.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",is.Mod(is.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[is.Switch]:[{push:"processor_type"}],[is.Case]:{"minecraft:block_age":{mossiness:is.NumberNode()},"minecraft:block_ignore":{blocks:is.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:is.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:is.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:is.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",is.Mod(is.ObjectNode({position_predicate:is.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:is.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:is.Opt(is.NumberNode({min:0,max:255,integer:!0})),max_dist:is.Opt(is.NumberNode({min:0,max:255,integer:!0})),min_chance:is.Opt(is.NumberNode({min:0,max:1})),max_chance:is.Opt(is.NumberNode({min:0,max:1}))};e.register("pos_rule_test",is.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[is.Switch]:[{push:"predicate_type"}],[is.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",is.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[is.Switch]:[{push:"predicate_type"}],[is.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:is.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:is.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(es,"__esModule",{value:!0}),es.initFeatureSchemas=void 0;const ns=Te,rs=_a,os=ts;es.initFeatureSchemas=function(e,t){const i=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t),r=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:ns.Opt(ns.NumberNode({integer:!0,min:1})),xz_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),y_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:rs.IntProvider({min:0,max:8}),half_height:ns.NumberNode({integer:!0,min:0,max:4}),targets:ns.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:ns.Opt(ns.NumberNode({integer:!0}))},d=ns.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:ns.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:ns.NumberNode({min:0,max:1}),targets:ns.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:rs.IntProvider({min:1,max:128}),vertical_range:ns.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:ns.NumberNode({min:0,max:1}),extra_edge_column_chance:ns.NumberNode({min:0,max:1}),vegetation_chance:ns.NumberNode({min:0,max:1}),xz_radius:rs.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:ns.ObjectNode({[ns.Switch]:["pop",{push:"type"}],[ns.Case]:{"minecraft:bamboo":{probability:ns.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:rs.IntProvider({min:0,max:3}),height:rs.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:ns.BooleanNode(),layers:ns.ListNode(ns.ObjectNode({height:rs.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:rs.IntProvider({min:0,max:16}),rim_size:rs.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:ns.NumberNode({integer:!0,min:1,max:512}),height:rs.IntProvider({min:0,max:128}),radius:rs.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:ns.NumberNode({integer:!0,min:0,max:64}),height_deviation:ns.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:rs.IntProvider({min:0,max:128}),density:rs.FloatProvider({min:0,max:2}),wetness:rs.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:ns.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:ns.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:ns.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:ns.BooleanNode(),exit:ns.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:ns.Opt(ns.BooleanNode()),crystal_beam_target:ns.Opt(i("block_pos")),spikes:ns.ListNode(ns.ObjectNode({centerX:ns.Opt(ns.NumberNode({integer:!0})),centerZ:ns.Opt(ns.NumberNode({integer:!0})),radius:ns.Opt(ns.NumberNode({integer:!0})),height:ns.Opt(ns.NumberNode({integer:!0})),guarded:ns.Opt(ns.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:ns.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:ns.NumberNode({integer:!0,min:0,max:7}),fossil_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:os.Processors,overlay_processors:os.Processors},"minecraft:geode":{blocks:ns.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:ns.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:ns.ObjectNode({filling:ns.Opt(ns.NumberNode({min:.01,max:50})),inner_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),middle_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),outer_layer:ns.Opt(ns.NumberNode({min:.01,max:50}))}),crack:ns.ObjectNode({generate_crack_chance:ns.Opt(ns.NumberNode({min:0,max:1})),base_crack_size:ns.Opt(ns.NumberNode({min:0,max:5})),crack_point_offset:ns.Opt(ns.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:ns.Opt(ns.NumberNode({min:0,max:1})),use_potential_placements_chance:ns.Opt(ns.NumberNode({min:0,max:1})),use_alternate_layer0_chance:ns.Opt(ns.NumberNode({min:0,max:1})),placements_require_layer0_alternate:ns.Opt(ns.BooleanNode()),outer_wall_distance:ns.Opt(rs.IntProvider({min:1,max:20})),distribution_points:ns.Opt(rs.IntProvider({min:1,max:20})),point_offset:ns.Opt(rs.IntProvider({min:0,max:10})),min_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),max_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),invalid_blocks_threshold:ns.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:ns.Opt(ns.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:ns.Opt(ns.NumberNode({min:0,max:1})),can_place_on_floor:ns.Opt(ns.BooleanNode()),can_place_on_ceiling:ns.Opt(ns.BooleanNode()),can_place_on_wall:ns.Opt(ns.BooleanNode()),can_be_placed_on:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:ns.Opt(ns.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:ns.Opt(ns.NumberNode({integer:!0,min:1,max:512})),column_radius:rs.IntProvider({min:0,max:60}),height_scale:rs.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:ns.NumberNode({min:0,max:1}),stalactite_bluntness:rs.FloatProvider({min:.1,max:10}),stalagmite_bluntness:rs.FloatProvider({min:.1,max:10}),wind_speed:rs.FloatProvider({min:0,max:2}),min_radius_for_wind:ns.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:ns.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:rs.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_directional_spread:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius2:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius3:ns.Opt(ns.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:ns.ListNode(ns.ObjectNode({chance:ns.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:ns.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_radius:ns.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:ns.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:ns.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:ns.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:ns.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:rs.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:ns.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:ns.ListNode(o)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:ns.NumberNode({integer:!0}),hole_count:ns.NumberNode({integer:!0}),requires_block_below:ns.BooleanNode(),valid_blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:ns.Opt(ns.BooleanNode()),force_dirt:ns.Opt(ns.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:ns.NumberNode({integer:!0,min:0,max:32}),height_rand_a:ns.NumberNode({integer:!0,min:0,max:24}),height_rand_b:ns.NumberNode({integer:!0,min:0,max:24}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:bending_trunk_placer":{bend_length:rs.IntProvider({min:1,max:64}),min_height_for_leaves:ns.Opt(ns.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:rs.IntProvider({min:0,max:16}),offset:rs.IntProvider({min:0,max:16}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:blob_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:rs.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:rs.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:rs.IntProvider({min:1,max:512}),leaf_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:rs.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:ns.ListNode(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:ns.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:ns.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1}),max_height:ns.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:ns.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:ns.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:ns.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",ns.Mod(ns.ObjectNode({feature:r,placement:ns.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:ns.Opt(ns.NumberNode({min:0,max:80})),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:two_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:81})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),upper_limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),middle_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:ns.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:rs.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:ns.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:ns.NumberNode({min:-1,max:1}),high_chance:ns.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:ns.ListNode(i("block_state")),high_states:ns.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:ns.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:rs.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:ns.ListNode(ns.Mod(ns.ObjectNode({weight:ns.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:ns.Opt(ns.ListNode(ns.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:all_of":{predicates:ns.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:ns.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:ns.ListNode(n({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initNoiseSettingsSchemas=void 0;const ss=Te,cs=_a;as.initNoiseSettingsSchemas=function(e,t){const i=ss.Reference.bind(void 0,e),n=ss.StringNode.bind(void 0,t);e.register("noise_settings",ss.Mod(ss.ObjectNode({sea_level:ss.NumberNode({integer:!0}),disable_mob_generation:ss.BooleanNode(),noise_caves_enabled:ss.BooleanNode(),noodle_caves_enabled:ss.BooleanNode(),aquifers_enabled:ss.BooleanNode(),ore_veins_enabled:ss.BooleanNode(),legacy_random_source:ss.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:ss.ObjectNode({min_y:ss.NumberNode({integer:!0,min:-2048,max:2047}),height:ss.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ss.NumberNode({integer:!0}),size_vertical:ss.NumberNode({integer:!0}),island_noise_override:ss.Opt(ss.BooleanNode()),amplified:ss.Opt(ss.BooleanNode()),large_biomes:ss.Opt(ss.BooleanNode()),sampling:ss.ObjectNode({xz_scale:ss.NumberNode(),y_scale:ss.NumberNode(),xz_factor:ss.NumberNode(),y_factor:ss.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),surface_rule:i("material_rule"),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>cs.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",ss.ObjectNode({target:ss.NumberNode(),size:ss.NumberNode({integer:!0,min:0}),offset:ss.NumberNode({integer:!0})})),e.register("generator_structures",ss.ObjectNode({stronghold:ss.Opt(ss.ObjectNode({distance:ss.NumberNode({integer:!0,min:0,max:1023}),spread:ss.NumberNode({integer:!0,min:0,max:1023}),count:ss.NumberNode({integer:!0,min:1,max:4095})})),structures:ss.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ss.Mod(ss.ObjectNode({spacing:ss.NumberNode({integer:!0,min:0,max:4096}),separation:ss.Mod(ss.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:ss.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ss.Mod(ss.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ss.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ss.Mod(ss.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ss.Mod(ss.ChoiceNode([{type:"number",node:ss.NumberNode()},{type:"object",node:ss.ObjectNode({coordinate:ss.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ss.ListNode(ss.ObjectNode({location:ss.NumberNode(),derivative:ss.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ls={};Object.defineProperty(ls,"__esModule",{value:!0}),ls.initStructureFeatureSchemas=void 0;const us=Te;ls.initStructureFeatureSchemas=function(e,t){const i=us.StringNode.bind(void 0,t),n=us.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:us.NumberNode({integer:!0})};e.register("configured_structure_feature",us.Mod(us.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:us.ObjectNode({[us.Switch]:["pop",{push:"type"}],[us.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:us.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:us.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:us.NumberNode({min:0,max:1}),cluster_probability:us.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:us.Opt(us.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initSurfaceRuleSchemas=void 0;const hs=Te;ds.initSurfaceRuleSchemas=function(e,t){const i=hs.StringNode.bind(void 0,t),n=hs.Reference.bind(void 0,e);e.register("material_rule",hs.Mod(hs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[hs.Switch]:[{push:"type"}],[hs.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:hs.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",hs.Mod(hs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[hs.Switch]:[{push:"type"}],[hs.Case]:{"minecraft:biome":{biome_is:hs.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:hs.NumberNode(),max_threshold:hs.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:hs.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:hs.BooleanNode(),add_surface_secondary_depth:hs.BooleanNode()},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:hs.NumberNode({integer:!0}),surface_depth_multiplier:hs.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:hs.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:hs.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:hs.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initTemplatePoolSchemas=void 0;const ms=Te,fs=ts;ps.initTemplatePoolSchemas=function(e,t){const i=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t);e.register("template_pool",ms.Mod(ms.ObjectNode({fallback:n(),elements:ms.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",ms.Mod(ms.ObjectNode({weight:ms.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",ms.Mod(ms.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ms.Switch]:[{push:"element_type"}],[ms.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors},"minecraft:list_pool_element":{elements:ms.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(qa,"__esModule",{value:!0}),qa.initWorldgenSchemas=void 0;const gs=Va,_s=Ga,bs=Ya,vs=es,ys=as,ws=ts,xs=ls,As=ds,Ns=ps;qa.initWorldgenSchemas=function(e,t){ws.initProcessorListSchemas(e,t),gs.initBiomeSchemas(e,t),_s.initCarverSchemas(e,t),bs.initDecoratorSchemas(e,t),vs.initFeatureSchemas(e,t),ys.initNoiseSettingsSchemas(e,t),xs.initStructureFeatureSchemas(e,t),As.initSurfaceRuleSchemas(e,t),Ns.initTemplatePoolSchemas(e,t)};var ks={};Object.defineProperty(ks,"__esModule",{value:!0}),ks.initWorldSettingsSchemas=void 0;const Cs=Te;ks.initWorldSettingsSchemas=function(e,t){const i=Cs.Reference.bind(void 0,e),n=Cs.StringNode.bind(void 0,t);e.register("world_settings",Cs.Mod(Cs.ObjectNode({generate_features:Cs.BooleanNode(),bonus_chest:Cs.BooleanNode(),seed:Cs.NumberNode({integer:!0}),dimensions:Cs.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(sa,"__esModule",{value:!0}),sa.initSchemas=void 0;const Es=ca,Ss=ua,Fs=_a,Os=ba,Ds=wa,Bs=Na,Ls=Ea,Ms=Oa,$s=$a,Ts=Ra,Rs=Ia,js=za,Is=Wa,Ps=qa,zs=ks;sa.initSchemas=function(e,t){Fs.initCommonSchemas(e,t),Es.initAdvancementSchemas(e,t),Ss.initAssetsSchemas(e,t),Os.initConditionSchemas(e,t),Bs.initDimensionTypeSchemas(e,t),Ds.initDimensionSchemas(e,t),Ls.initItemModifierSchemas(e,t),Ms.initLootTableSchemas(e,t),$s.initPackMcmetaSchemas(e,t),Ts.initPredicatesSchemas(e,t),Rs.initRecipeSchemas(e,t),js.initTagsSchemas(e,t),Is.initTextComponentSchemas(e,t),Ps.initWorldgenSchemas(e,t),zs.initWorldSettingsSchemas(e,t)};var Us=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Ws=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hs=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Us(t,e,i);return Ws(t,e),t};Object.defineProperty(oa,"__esModule",{value:!0});var qs=oa.getSchemas=oa.getCollections=void 0;const Vs=Te,Ks=aa,Gs=sa;var Xs=oa.lootContext=Hs(Da);var Js=oa.getCollections=function(){const e=new Vs.CollectionRegistry;return Ks.initCollections(e),e};qs=oa.getSchemas=function(e){const t=new Vs.SchemaRegistry;return Gs.initSchemas(t,e),t};var Ys=Object.freeze(Object.assign(Object.create(null),oa,{[Symbol.toStringTag]:"Module",get getSchemas(){return qs},get getCollections(){return Js},lootContext:Xs,default:oa})),Zs={},Qs={};Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.initCollections=void 0,Qs.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var ec={},tc={};Object.defineProperty(tc,"__esModule",{value:!0}),tc.initAdvancementSchemas=void 0;const ic=Te;tc.initAdvancementSchemas=function(e,t){const i=ic.Reference.bind(void 0,e),n=ic.StringNode.bind(void 0,t),r=ic.ChoiceNode([{type:"object",node:ic.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:ic.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",ic.Mod(ic.ObjectNode({display:ic.Opt(ic.Mod(ic.ObjectNode({icon:ic.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:ic.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:ic.Opt(n()),frame:ic.Opt(n({enum:["task","challenge","goal"]})),show_toast:ic.Opt(ic.BooleanNode()),announce_to_chat:ic.Opt(ic.BooleanNode()),hidden:ic.Opt(ic.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ic.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:ic.MapNode(n(),i("advancement_criteria")),requirements:ic.Opt(ic.ListNode(ic.ListNode(n()))),rewards:ic.Opt(ic.ObjectNode({function:ic.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:ic.Opt(ic.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ic.Opt(ic.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:ic.Opt(ic.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ic.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ic.Opt(ic.ObjectNode({player:ic.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ic.Switch]:["pop",{push:"trigger"}],[ic.Case]:{"minecraft:bee_nest_destroyed":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:ic.Opt(ic.NumberNode({integer:!0})),item:ic.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:ic.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ic.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:ic.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:ic.Opt(ic.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:ic.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:ic.Opt(ic.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),ic.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:ic.Opt(r)},"minecraft:enter_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),state:ic.Opt(ic.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:ic.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:ic.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:ic.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:ic.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:ic.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:ic.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:ic.Opt(ic.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:ic.Opt(ic.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:ic.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:ic.Opt(i("item_predicate")),location:ic.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:ic.Opt(ic.ListNode(r))},"minecraft:levitation":{distance:ic.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:ic.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),state:ic.Opt(ic.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ic.Opt(i("item_predicate")),location:ic.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:ic.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:ic.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:ic.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:ic.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ic.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:ic.Opt(i("entity_predicate")),item:ic.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:ic.Opt(i("float_bounds"))},"minecraft:used_totem":{item:ic.Opt(i("item_predicate"))},"minecraft:using_item":{item:ic.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:ic.Opt(i("entity_predicate")),item:ic.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:ic.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var nc={},rc={};Object.defineProperty(rc,"__esModule",{value:!0}),rc.initModelSchemas=void 0;const oc=Te;rc.initModelSchemas=function(e,t){oc.Reference.bind(void 0,e);const i=oc.StringNode.bind(void 0,t),n=(e,t,i)=>oc.ListNode(oc.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=oc.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",oc.Mod(oc.ObjectNode({parent:oc.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:oc.Opt(oc.BooleanNode()),gui_light:oc.Opt(i({enum:"gui_light"})),textures:oc.Opt(oc.MapNode(i(),r)),elements:oc.Opt(oc.ListNode(oc.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:oc.Opt(oc.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:oc.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:oc.Opt(oc.BooleanNode())})),shade:oc.Opt(oc.BooleanNode()),faces:oc.MapNode(i({enum:"direction"}),oc.ObjectNode({texture:r,uv:oc.Opt(n(4)),cullface:oc.Opt(i({enum:"direction"})),rotation:oc.Opt(oc.NumberNode({integer:!0})),tintindex:oc.Opt(oc.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:oc.Opt(oc.MapNode(i({enum:"display_position"}),oc.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:oc.Opt(oc.ListNode(oc.ObjectNode({predicate:oc.MapNode(i({enum:"item_model_predicates"}),oc.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initBlockDefinitionSchemas=void 0;const sc=Te;ac.initBlockDefinitionSchemas=function(e,t){const i=sc.Reference.bind(void 0,e),n=sc.StringNode.bind(void 0,t);e.register("block_definition",sc.Mod(sc.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:sc.ObjectNode({variants:sc.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:sc.ObjectNode({multipart:sc.ListNode(sc.ObjectNode({when:sc.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),y:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:sc.Opt(sc.BooleanNode())};e.register("model_variant",sc.ChoiceNode([{type:"object",node:sc.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:sc.ListNode(sc.ObjectNode(c(s({},r),{weight:sc.Opt(sc.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",sc.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:sc.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:sc.ObjectNode({OR:sc.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(nc,"__esModule",{value:!0}),nc.initAssetsSchemas=void 0;const cc=rc,lc=ac;nc.initAssetsSchemas=function(e,t){lc.initBlockDefinitionSchemas(e,t),cc.initModelSchemas(e,t)};var uc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):r({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:r({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}}})}}(uc);var dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initConditionSchemas=void 0;const hc=Te,pc=uc;dc.initConditionSchemas=function(e,t){const i=hc.Reference.bind(void 0,e),n=hc.StringNode.bind(void 0,t);e.register("predicate",hc.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",hc.Mod(hc.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[hc.Switch]:[{push:"condition"}],[hc.Case]:pc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var mc={};Object.defineProperty(mc,"__esModule",{value:!0}),mc.initDimensionSchemas=void 0;const fc=Te,gc=uc;mc.initDimensionSchemas=function(e,t){const i=fc.Reference.bind(void 0,e),n=fc.StringNode.bind(void 0,t);e.register("dimension",fc.Mod(fc.ObjectNode({type:gc.DimensionTypePresets(i("dimension_type")),generator:fc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[fc.Switch]:[{push:"type"}],[fc.Case]:{"minecraft:noise":{seed:fc.NumberNode({integer:!0}),settings:gc.NoiseSettingsPresets(i("noise_settings")),biome_source:fc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[fc.Switch]:[{push:"type"}],[fc.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:fc.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:fc.Mod(fc.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:fc.Opt(fc.NumberNode({integer:!0,min:0,max:62})),biomes:gc.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:fc.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:fc.ObjectNode({biome:fc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:fc.Opt(fc.BooleanNode()),features:fc.Opt(fc.BooleanNode()),layers:fc.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=fc.ChoiceNode([{type:"number",node:fc.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:fc.ListNode(fc.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",fc.Mod(fc.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:fc.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:fc.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var _c={};Object.defineProperty(_c,"__esModule",{value:!0}),_c.initDimensionTypeSchemas=void 0;const bc=Te,vc=uc;_c.initDimensionTypeSchemas=function(e,t){const i=bc.StringNode.bind(void 0,t);e.register("dimension_type",bc.Mod(bc.ObjectNode({ultrawarm:bc.BooleanNode(),natural:bc.BooleanNode(),piglin_safe:bc.BooleanNode(),respawn_anchor_works:bc.BooleanNode(),bed_works:bc.BooleanNode(),has_raids:bc.BooleanNode(),has_skylight:bc.BooleanNode(),has_ceiling:bc.BooleanNode(),coordinate_scale:bc.NumberNode({min:1e-5,max:3e7}),ambient_light:bc.NumberNode(),fixed_time:bc.Opt(bc.NumberNode({integer:!0})),logical_height:bc.NumberNode({integer:!0,min:0,max:4096}),effects:bc.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:bc.NumberNode({integer:!0,min:-2048,max:2047}),height:bc.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>vc.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var yc={};Object.defineProperty(yc,"__esModule",{value:!0}),yc.initItemModifierSchemas=void 0;const wc=Te,xc=uc;yc.initItemModifierSchemas=function(e,t){const i=wc.Reference.bind(void 0,e),n=wc.StringNode.bind(void 0,t);e.register("item_modifier",wc.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:wc.Opt(wc.ListNode(i("condition")))};e.register("function",wc.Mod(wc.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[wc.Switch]:[{push:"function"}],[wc.Case]:xc.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Ac={},Nc={};Object.defineProperty(Nc,"__esModule",{value:!0}),Nc.LootFunctions=Nc.LootConditions=Nc.LootCopySources=Nc.LootEntitySources=Nc.LootTableTypes=void 0,Nc.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Nc.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Nc.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Nc.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Nc.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.initLootTableSchemas=void 0;const kc=Te,Cc=Nc,Ec=uc;Ac.initLootTableSchemas=function(e,t){const i=kc.Reference.bind(void 0,e),n=kc.StringNode.bind(void 0,t),r={conditions:kc.Opt(kc.ListNode(i("loot_condition")))},o=s({functions:kc.Opt(kc.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Cc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new kc.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),kc.SwitchNode(r)}const c=a(Cc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Cc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Cc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Cc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",kc.Mod(kc.ObjectNode({type:kc.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:kc.Opt(kc.ListNode(kc.Mod(kc.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:kc.Opt(i("number_provider")),entries:kc.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:kc.Opt(kc.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",kc.Mod(kc.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:kc.Opt(kc.Mod(kc.NumberNode({integer:!0,min:1}),h)),quality:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),h)),[kc.Switch]:[{push:"type"}],[kc.Case]:{"minecraft:alternatives":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:kc.Opt(kc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",kc.Mod(kc.ObjectNode({function:l,[kc.Switch]:[{push:"function"}],[kc.Case]:Ec.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",kc.Mod(kc.ObjectNode({condition:c,[kc.Switch]:[{push:"condition"}],[kc.Case]:Ec.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",kc.Mod(kc.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:kc.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Sc={};Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.initPackMcmetaSchemas=void 0;const Fc=Te;Sc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Fc.Mod(Fc.ObjectNode({pack:Fc.Mod(Fc.ObjectNode({pack_format:Fc.Mod(Fc.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Fc.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.initPredicatesSchemas=void 0;const Dc=Te;Oc.initPredicatesSchemas=function(e,t){const i=Dc.Reference.bind(void 0,e),n=Dc.StringNode.bind(void 0,t),r=Dc.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Dc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Dc.ObjectNode({min:Dc.Opt(Dc.NumberNode({integer:!0})),max:Dc.Opt(Dc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Dc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Dc.ObjectNode({items:Dc.Opt(Dc.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Dc.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Dc.Opt(Dc.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Dc.ObjectNode({enchantment:Dc.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Dc.ObjectNode({blocks:Dc.Opt(Dc.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Dc.Opt(Dc.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Dc.ObjectNode({fluid:Dc.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Dc.Opt(Dc.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Dc.ObjectNode({position:Dc.Opt(Dc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Dc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Dc.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Dc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Dc.Opt(Dc.ObjectNode({light:i("int_bounds")})),smokey:Dc.Opt(Dc.BooleanNode()),block:Dc.Opt(i("block_predicate")),fluid:Dc.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Dc.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Dc.Switch]:[{push:"type"}],[Dc.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Dc.ObjectNode({gamemode:Dc.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Dc.ChoiceNode([{type:"boolean",node:Dc.BooleanNode(),change:e=>!0},{type:"object",node:Dc.MapNode(n(),Dc.BooleanNode())}]))),recipes:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Dc.BooleanNode())),stats:Dc.Opt(Dc.ListNode(i("statistic_predicate"))),looking_at:Dc.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Dc.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Dc.Opt(Dc.BooleanNode()),visible:Dc.Opt(Dc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Dc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Dc.ObjectNode({type:Dc.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Dc.Opt(n({validator:"team"})),location:Dc.Opt(i("location_predicate")),stepping_on:Dc.Opt(i("location_predicate")),distance:Dc.Opt(i("distance_predicate")),flags:Dc.Opt(Dc.ObjectNode({is_on_fire:Dc.Opt(Dc.BooleanNode()),is_sneaking:Dc.Opt(Dc.BooleanNode()),is_sprinting:Dc.Opt(Dc.BooleanNode()),is_swimming:Dc.Opt(Dc.BooleanNode()),is_baby:Dc.Opt(Dc.BooleanNode())})),equipment:Dc.Opt(Dc.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Dc.Opt(i("player_predicate")),vehicle:Dc.Opt(i("entity_predicate")),passenger:Dc.Opt(i("entity_predicate")),targeted_entity:Dc.Opt(i("entity_predicate")),lightning_bolt:Dc.Opt(Dc.ObjectNode({blocks_set_on_fire:Dc.Opt(i("int_bounds")),entity_struck:Dc.Opt(i("entity_predicate"))})),fishing_hook:Dc.Opt(Dc.ObjectNode({in_open_water:Dc.Opt(Dc.BooleanNode())})),effects:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Dc.ObjectNode({is_explosion:Dc.Opt(Dc.BooleanNode()),is_fire:Dc.Opt(Dc.BooleanNode()),is_magic:Dc.Opt(Dc.BooleanNode()),is_projectile:Dc.Opt(Dc.BooleanNode()),is_lightning:Dc.Opt(Dc.BooleanNode()),bypasses_armor:Dc.Opt(Dc.BooleanNode()),bypasses_invulnerability:Dc.Opt(Dc.BooleanNode()),bypasses_magic:Dc.Opt(Dc.BooleanNode()),source_entity:Dc.Opt(i("entity_predicate")),direct_entity:Dc.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Dc.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Dc.Opt(Dc.BooleanNode()),source_entity:Dc.Opt(i("entity_predicate")),type:Dc.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Bc={};Object.defineProperty(Bc,"__esModule",{value:!0}),Bc.initRecipeSchemas=void 0;const Lc=Te;Bc.initRecipeSchemas=function(e,t){const i=Lc.Reference.bind(void 0,e),n=Lc.StringNode.bind(void 0,t);e.register("recipe",Lc.Mod(Lc.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Lc.Switch]:[{push:"type"}],[Lc.Case]:{"minecraft:crafting_shaped":{group:Lc.Opt(n({enum:"recipe_group",additional:!0})),pattern:Lc.ListNode(n()),key:Lc.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Lc.Opt(n()),ingredients:Lc.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Lc.NumberNode({integer:!0})},"minecraft:smithing":{group:Lc.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Lc.Mod(Lc.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Lc.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Lc.Mod(Lc.ObjectNode({item:Lc.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Lc.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Lc.Mod(Lc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Mc={};Object.defineProperty(Mc,"__esModule",{value:!0}),Mc.initTagsSchemas=void 0;const $c=Te;Mc.initTagsSchemas=function(e,t){const i=$c.StringNode.bind(void 0,t),n=e=>$c.Mod($c.ObjectNode({replace:$c.Opt($c.BooleanNode()),values:$c.ListNode($c.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:$c.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:$c.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initTextComponentSchemas=void 0;const Rc=Te;Tc.initTextComponentSchemas=function(e,t){const i=Rc.Reference.bind(void 0,e),n=Rc.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Rc.Mod(Rc.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Rc.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Rc.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Rc.Opt(n()),font:Rc.Opt(n()),bold:Rc.Opt(Rc.BooleanNode()),italic:Rc.Opt(Rc.BooleanNode()),underlined:Rc.Opt(Rc.BooleanNode()),strikethrough:Rc.Opt(Rc.BooleanNode()),obfuscated:Rc.Opt(Rc.BooleanNode()),insertion:Rc.Opt(n()),clickEvent:Rc.Opt(Rc.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Rc.Switch]:[{push:"action"}],[Rc.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Rc.Opt(Rc.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Rc.Switch]:[{push:"action"}],[Rc.Case]:{show_text:{value:Rc.Opt(i("text_component")),contents:Rc.Opt(i("text_component"))},show_item:{value:Rc.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Rc.Opt(Rc.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Rc.Opt(Rc.NumberNode({integer:!0})),tag:Rc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Rc.Opt(Rc.ObjectNode({name:Rc.Opt(n()),type:Rc.Opt(n()),id:Rc.Opt(n())})),contents:Rc.Opt(Rc.Mod(Rc.ObjectNode({name:Rc.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Rc.Opt(i("text_component_list"))};e.register("text_component_object",Rc.Mod(Rc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Rc.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Rc.ObjectNode(s({translate:n(),with:Rc.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Rc.ObjectNode(s({score:Rc.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Rc.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Rc.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Rc.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Rc.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Rc.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Rc.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Rc.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Rc.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Rc.Opt(Rc.BooleanNode()),separator:Rc.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Rc.Mod(Rc.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var jc={},Ic={};Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.initBiomeSchemas=void 0;const Pc=Te,zc=uc;Ic.initBiomeSchemas=function(e,t){const i=Pc.StringNode.bind(void 0,t);e.register("biome",Pc.Mod(Pc.ObjectNode({temperature:Pc.NumberNode(),downfall:Pc.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Pc.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:Pc.Opt(Pc.NumberNode({min:0,max:1})),effects:Pc.ObjectNode({sky_color:Pc.NumberNode({color:!0}),fog_color:Pc.NumberNode({color:!0}),water_color:Pc.NumberNode({color:!0}),water_fog_color:Pc.NumberNode({color:!0}),grass_color:Pc.Opt(Pc.NumberNode({color:!0})),foliage_color:Pc.Opt(Pc.NumberNode({color:!0})),grass_color_modifier:Pc.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Pc.Opt(i()),mood_sound:Pc.Opt(Pc.ObjectNode({sound:i(),tick_delay:Pc.NumberNode({integer:!0}),block_search_extent:Pc.NumberNode({integer:!0}),offset:Pc.NumberNode()})),additions_sound:Pc.Opt(Pc.ObjectNode({sound:i(),tick_chance:Pc.NumberNode({min:0,max:1})})),music:Pc.Opt(Pc.ObjectNode({sound:i(),min_delay:Pc.NumberNode({integer:!0,min:0}),max_delay:Pc.NumberNode({integer:!0,min:0}),replace_current_music:Pc.BooleanNode()})),particle:Pc.Opt(Pc.ObjectNode({options:Pc.ObjectNode({type:i()}),probability:Pc.NumberNode({min:0,max:1})}))}),spawners:Pc.MapNode(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Pc.Mod(Pc.ListNode(Pc.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Pc.NumberNode({integer:!0}),minCount:Pc.NumberNode({integer:!0}),maxCount:Pc.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Pc.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Pc.Mod(Pc.ObjectNode({energy_budget:Pc.NumberNode(),charge:Pc.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Pc.MapNode(i({enum:["air","liquid"]}),Pc.Mod(zc.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:Pc.ListNode(Pc.Mod(zc.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Uc={};Object.defineProperty(Uc,"__esModule",{value:!0}),Uc.initCarverSchemas=void 0;const Wc=Te,Hc=uc;Uc.initCarverSchemas=function(e,t){const i=Wc.Reference.bind(void 0,e),n=Wc.StringNode.bind(void 0,t),r={vertical_rotation:Hc.FloatProvider(),shape:Wc.ObjectNode({distance_factor:Hc.FloatProvider(),thickness:Hc.FloatProvider(),width_smoothness:Wc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Hc.FloatProvider(),vertical_radius_default_factor:Wc.NumberNode(),vertical_radius_center_factor:Wc.NumberNode()})},o={horizontal_radius_multiplier:Hc.FloatProvider(),vertical_radius_multiplier:Hc.FloatProvider(),floor_level:Hc.FloatProvider({min:-1,max:1})};e.register("configured_carver",Wc.Mod(Wc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Wc.ObjectNode({probability:Wc.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Hc.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:Wc.Opt(Wc.ObjectNode({debug_mode:Wc.Opt(Wc.BooleanNode()),air_state:Wc.Opt(i("block_state")),water_state:Wc.Opt(i("block_state")),lava_state:Wc.Opt(i("block_state")),barrier_state:Wc.Opt(i("block_state"))})),[Wc.Switch]:["pop",{push:"type"}],[Wc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var qc={};Object.defineProperty(qc,"__esModule",{value:!0}),qc.initDecoratorSchemas=void 0;const Vc=Te,Kc=uc;qc.initDecoratorSchemas=function(e,t){const i=Vc.Reference.bind(void 0,e),n=Vc.StringNode.bind(void 0,t);e.register("decorator",Vc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Vc.Switch]:[{push:"type"}],[Vc.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Vc.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Kc.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Kc.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Vc.NumberNode(),below_noise:Vc.NumberNode({integer:!0}),above_noise:Vc.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Vc.NumberNode({integer:!0}),noise_factor:Vc.NumberNode(),noise_offset:Vc.Opt(Vc.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Vc.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Vc.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:Kc.IntProvider({min:-16,max:16}),y_spread:Kc.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Vc.Opt(Vc.NumberNode({integer:!0})),max_inclusive:Vc.Opt(Vc.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Vc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Gc={},Xc={};Object.defineProperty(Xc,"__esModule",{value:!0}),Xc.initProcessorListSchemas=Xc.Processors=void 0;const Jc=Te;Xc.initProcessorListSchemas=function(e,t){const i=Jc.Reference.bind(void 0,e),n=Jc.StringNode.bind(void 0,t);Xc.Processors=Jc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Jc.Mod(Jc.ObjectNode({processors:Jc.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Jc.Mod(Jc.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Jc.Switch]:[{push:"processor_type"}],[Jc.Case]:{"minecraft:block_age":{mossiness:Jc.NumberNode()},"minecraft:block_ignore":{blocks:Jc.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:Jc.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Jc.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:Jc.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Jc.Mod(Jc.ObjectNode({position_predicate:Jc.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:Jc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:Jc.Opt(Jc.NumberNode({min:0,max:255,integer:!0})),max_dist:Jc.Opt(Jc.NumberNode({min:0,max:255,integer:!0})),min_chance:Jc.Opt(Jc.NumberNode({min:0,max:1})),max_chance:Jc.Opt(Jc.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Jc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Jc.Switch]:[{push:"predicate_type"}],[Jc.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Jc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Jc.Switch]:[{push:"predicate_type"}],[Jc.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:Jc.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:Jc.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initFeatureSchemas=void 0;const Yc=Te,Zc=uc,Qc=Xc;Gc.initFeatureSchemas=function(e,t){const i=Yc.Reference.bind(void 0,e),n=Yc.StringNode.bind(void 0,t),r=Yc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=Yc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:Yc.Opt(Yc.NumberNode({integer:!0,min:1})),xz_spread:Yc.Opt(Yc.NumberNode({integer:!0,min:0})),y_spread:Yc.Opt(Yc.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:Zc.IntProvider({min:0,max:8}),half_height:Yc.NumberNode({integer:!0,min:0,max:4}),targets:Yc.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:Yc.Opt(Yc.NumberNode({integer:!0}))},d=Yc.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:Yc.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Yc.NumberNode({min:0,max:1}),targets:Yc.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:Zc.IntProvider({min:1,max:128}),vertical_range:Yc.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Yc.NumberNode({min:0,max:1}),extra_edge_column_chance:Yc.NumberNode({min:0,max:1}),vegetation_chance:Yc.NumberNode({min:0,max:1}),xz_radius:Zc.IntProvider(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",Yc.Mod(Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Yc.ObjectNode({[Yc.Switch]:["pop",{push:"type"}],[Yc.Case]:{"minecraft:bamboo":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Zc.IntProvider({min:0,max:3}),height:Zc.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:Yc.BooleanNode(),layers:Yc.ListNode(Yc.ObjectNode({height:Zc.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:Zc.IntProvider({min:0,max:16}),rim_size:Zc.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Yc.NumberNode({integer:!0,min:1,max:512}),height:Zc.IntProvider({min:0,max:128}),radius:Zc.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Yc.NumberNode({integer:!0,min:0,max:64}),height_deviation:Yc.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Zc.IntProvider({min:0,max:128}),density:Zc.FloatProvider({min:0,max:2}),wetness:Zc.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Yc.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Yc.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Yc.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Yc.BooleanNode(),exit:Yc.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Yc.Opt(Yc.BooleanNode()),crystal_beam_target:Yc.Opt(i("block_pos")),spikes:Yc.ListNode(Yc.ObjectNode({centerX:Yc.Opt(Yc.NumberNode({integer:!0})),centerZ:Yc.Opt(Yc.NumberNode({integer:!0})),radius:Yc.Opt(Yc.NumberNode({integer:!0})),height:Yc.Opt(Yc.NumberNode({integer:!0})),guarded:Yc.Opt(Yc.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:Yc.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Yc.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Yc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Yc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Qc.Processors,overlay_processors:Qc.Processors},"minecraft:geode":{blocks:Yc.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:Yc.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:n({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:Yc.ObjectNode({filling:Yc.Opt(Yc.NumberNode({min:.01,max:50})),inner_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50})),middle_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50})),outer_layer:Yc.Opt(Yc.NumberNode({min:.01,max:50}))}),crack:Yc.ObjectNode({generate_crack_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),base_crack_size:Yc.Opt(Yc.NumberNode({min:0,max:5})),crack_point_offset:Yc.Opt(Yc.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Yc.Opt(Yc.NumberNode({min:0,max:1})),use_potential_placements_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Yc.Opt(Yc.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Yc.Opt(Yc.BooleanNode()),outer_wall_distance:Yc.Opt(Zc.IntProvider({min:1,max:20})),distribution_points:Yc.Opt(Zc.IntProvider({min:1,max:20})),point_offset:Yc.Opt(Zc.IntProvider({min:0,max:10})),min_gen_offset:Yc.Opt(Yc.NumberNode({integer:!0})),max_gen_offset:Yc.Opt(Yc.NumberNode({integer:!0})),invalid_blocks_threshold:Yc.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Yc.Opt(Yc.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Yc.Opt(Yc.NumberNode({min:0,max:1})),can_place_on_floor:Yc.Opt(Yc.BooleanNode()),can_place_on_ceiling:Yc.Opt(Yc.BooleanNode()),can_place_on_wall:Yc.Opt(Yc.BooleanNode()),can_be_placed_on:Zc.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:Yc.Opt(Yc.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Yc.Opt(Yc.NumberNode({integer:!0,min:1,max:512})),column_radius:Zc.IntProvider({min:0,max:60}),height_scale:Zc.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Yc.NumberNode({min:0,max:1}),stalactite_bluntness:Zc.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Zc.FloatProvider({min:.1,max:10}),wind_speed:Zc.FloatProvider({min:0,max:2}),min_radius_for_wind:Yc.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Yc.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:Yc.NumberNode({integer:!0,min:1}),spread_height:Yc.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:Zc.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_directional_spread:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_spread_radius2:Yc.Opt(Yc.NumberNode({min:0,max:1})),chance_of_spread_radius3:Yc.Opt(Yc.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:Yc.ListNode(Yc.ObjectNode({chance:Yc.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:Yc.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:Yc.NumberNode({integer:!0,min:1,max:64}),root_radius:Yc.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Yc.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Yc.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Yc.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Yc.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Yc.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Yc.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:Zc.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:Zc.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:Yc.NumberNode({integer:!0}),hole_count:Yc.NumberNode({integer:!0}),requires_block_below:Yc.BooleanNode(),valid_blocks:Zc.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:Yc.Opt(Yc.BooleanNode()),force_dirt:Yc.Opt(Yc.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Yc.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Yc.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Yc.NumberNode({integer:!0,min:0,max:24}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:bending_trunk_placer":{bend_length:Zc.IntProvider({min:1,max:64}),min_height_for_leaves:Yc.Opt(Yc.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Zc.IntProvider({min:0,max:16}),offset:Zc.IntProvider({min:0,max:16}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:blob_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Yc.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Zc.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Zc.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Zc.IntProvider({min:1,max:512}),leaf_placement_attempts:Yc.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Zc.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Yc.ListNode(Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:Yc.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Yc.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:Yc.NumberNode({integer:!0,min:1}),spread_height:Yc.NumberNode({integer:!0,min:1}),max_height:Yc.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:Yc.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Yc.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Yc.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",Yc.Mod(Yc.ObjectNode({feature:r,placement:Yc.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",Yc.Mod(Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Yc.Opt(Yc.NumberNode({min:0,max:80})),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:two_layers_feature_size":{limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:81})),lower_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),upper_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:80})),upper_limit:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:80})),lower_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),middle_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16})),upper_size:Yc.Opt(Yc.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:Yc.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:Yc.Mod(Yc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",Yc.Mod(Yc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:Zc.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:Yc.Mod(Yc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:Yc.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:Yc.NumberNode({min:-1,max:1}),high_chance:Yc.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:Yc.ListNode(i("block_state")),high_states:Yc.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:Yc.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:Zc.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:Yc.ListNode(Yc.Mod(Yc.ObjectNode({weight:Yc.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:Yc.Opt(Yc.ListNode(Yc.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",Yc.Mod(Yc.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[Yc.Switch]:[{push:"type"}],[Yc.Case]:{"minecraft:all_of":{predicates:Yc.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:Yc.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:Zc.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:Zc.Tag({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var el={};Object.defineProperty(el,"__esModule",{value:!0}),el.initNoiseSettingsSchemas=void 0;const tl=Te,il=uc;el.initNoiseSettingsSchemas=function(e,t){const i=tl.Reference.bind(void 0,e),n=tl.StringNode.bind(void 0,t);e.register("noise_settings",tl.Mod(tl.ObjectNode({sea_level:tl.NumberNode({integer:!0}),disable_mob_generation:tl.BooleanNode(),noise_caves_enabled:tl.BooleanNode(),noodle_caves_enabled:tl.BooleanNode(),aquifers_enabled:tl.BooleanNode(),ore_veins_enabled:tl.BooleanNode(),legacy_random_source:tl.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:tl.ObjectNode({min_y:tl.NumberNode({integer:!0,min:-2048,max:2047}),height:tl.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:tl.NumberNode({integer:!0}),size_vertical:tl.NumberNode({integer:!0}),island_noise_override:tl.Opt(tl.BooleanNode()),amplified:tl.Opt(tl.BooleanNode()),large_biomes:tl.Opt(tl.BooleanNode()),sampling:tl.ObjectNode({xz_scale:tl.NumberNode(),y_scale:tl.NumberNode(),xz_factor:tl.NumberNode(),y_factor:tl.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),surface_rule:i("material_rule"),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>il.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",tl.ObjectNode({target:tl.NumberNode(),size:tl.NumberNode({integer:!0,min:0}),offset:tl.NumberNode({integer:!0})})),e.register("generator_structures",tl.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),tl.Mod(tl.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[tl.Switch]:[{push:"type"}],[tl.Case]:{"minecraft:concentric_rings":{distance:tl.NumberNode({integer:!0,min:0,max:1023}),spread:tl.NumberNode({integer:!0,min:0,max:1023}),count:tl.NumberNode({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:tl.Opt(n({enum:["linear","triangular"]})),spacing:tl.NumberNode({integer:!0,min:0,max:4096}),separation:tl.Mod(tl.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:tl.NumberNode({integer:!0,min:0}),locate_offset:tl.Opt(tl.ListNode(tl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"generator_structure"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:0})}))),e.register("generator_layer",tl.Mod(tl.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:tl.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",tl.Mod(tl.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",tl.Mod(tl.ChoiceNode([{type:"number",node:tl.NumberNode()},{type:"object",node:tl.ObjectNode({coordinate:tl.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:tl.ListNode(tl.ObjectNode({location:tl.NumberNode(),derivative:tl.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var nl={};Object.defineProperty(nl,"__esModule",{value:!0}),nl.initStructureFeatureSchemas=void 0;const rl=Te;nl.initStructureFeatureSchemas=function(e,t){const i=rl.StringNode.bind(void 0,t),n=rl.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:rl.NumberNode({integer:!0})};e.register("configured_structure_feature",rl.Mod(rl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:rl.ObjectNode({[rl.Switch]:["pop",{push:"type"}],[rl.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:rl.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:rl.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:rl.NumberNode({min:0,max:1}),cluster_probability:rl.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:rl.Opt(rl.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var ol={};Object.defineProperty(ol,"__esModule",{value:!0}),ol.initSurfaceRuleSchemas=void 0;const al=Te;ol.initSurfaceRuleSchemas=function(e,t){const i=al.StringNode.bind(void 0,t),n=al.Reference.bind(void 0,e);e.register("material_rule",al.Mod(al.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[al.Switch]:[{push:"type"}],[al.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:al.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",al.Mod(al.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[al.Switch]:[{push:"type"}],[al.Case]:{"minecraft:biome":{biome_is:al.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:al.NumberNode(),max_threshold:al.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:al.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:al.BooleanNode(),secondary_depth_range:al.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:al.NumberNode({integer:!0}),surface_depth_multiplier:al.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:al.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:al.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:al.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.initTemplatePoolSchemas=void 0;const cl=Te,ll=Xc;sl.initTemplatePoolSchemas=function(e,t){const i=cl.Reference.bind(void 0,e),n=cl.StringNode.bind(void 0,t);e.register("template_pool",cl.Mod(cl.ObjectNode({fallback:n(),elements:cl.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",cl.Mod(cl.ObjectNode({weight:cl.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",cl.Mod(cl.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[cl.Switch]:[{push:"element_type"}],[cl.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ll.Processors},"minecraft:list_pool_element":{elements:cl.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ll.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(jc,"__esModule",{value:!0}),jc.initWorldgenSchemas=void 0;const ul=Ic,dl=Uc,hl=qc,pl=Gc,ml=el,fl=Xc,gl=nl,_l=ol,bl=sl;jc.initWorldgenSchemas=function(e,t){fl.initProcessorListSchemas(e,t),ul.initBiomeSchemas(e,t),dl.initCarverSchemas(e,t),hl.initDecoratorSchemas(e,t),pl.initFeatureSchemas(e,t),ml.initNoiseSettingsSchemas(e,t),gl.initStructureFeatureSchemas(e,t),_l.initSurfaceRuleSchemas(e,t),bl.initTemplatePoolSchemas(e,t)};var vl={};Object.defineProperty(vl,"__esModule",{value:!0}),vl.initWorldSettingsSchemas=void 0;const yl=Te;vl.initWorldSettingsSchemas=function(e,t){const i=yl.Reference.bind(void 0,e),n=yl.StringNode.bind(void 0,t);e.register("world_settings",yl.Mod(yl.ObjectNode({generate_features:yl.BooleanNode(),bonus_chest:yl.BooleanNode(),seed:yl.NumberNode({integer:!0}),dimensions:yl.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ec,"__esModule",{value:!0}),ec.initSchemas=void 0;const wl=tc,xl=nc,Al=uc,Nl=dc,kl=mc,Cl=_c,El=yc,Sl=Ac,Fl=Sc,Ol=Oc,Dl=Bc,Bl=Mc,Ll=Tc,Ml=jc,$l=vl;ec.initSchemas=function(e,t){Al.initCommonSchemas(e,t),wl.initAdvancementSchemas(e,t),xl.initAssetsSchemas(e,t),Nl.initConditionSchemas(e,t),Cl.initDimensionTypeSchemas(e,t),kl.initDimensionSchemas(e,t),El.initItemModifierSchemas(e,t),Sl.initLootTableSchemas(e,t),Fl.initPackMcmetaSchemas(e,t),Ol.initPredicatesSchemas(e,t),Dl.initRecipeSchemas(e,t),Bl.initTagsSchemas(e,t),Ll.initTextComponentSchemas(e,t),Ml.initWorldgenSchemas(e,t),$l.initWorldSettingsSchemas(e,t)};var Tl=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Rl=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),jl=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Tl(t,e,i);return Rl(t,e),t};Object.defineProperty(Zs,"__esModule",{value:!0});var Il=Zs.getSchemas=Zs.getCollections=void 0;const Pl=Te,zl=Qs,Ul=ec;var Wl=Zs.lootContext=jl(Nc);var Hl=Zs.getCollections=function(){const e=new Pl.CollectionRegistry;return zl.initCollections(e),e};Il=Zs.getSchemas=function(e){const t=new Pl.SchemaRegistry;return Ul.initSchemas(t,e),t};var ql=Object.freeze(Object.assign(Object.create(null),Zs,{[Symbol.toStringTag]:"Module",get getSchemas(){return Il},get getCollections(){return Hl},lootContext:Wl,default:Zs})); -/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function Vl(e){let t=e.length;for(;--t>=0;)e[t]=0}const Kl=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Gl=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Xl=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Jl=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Yl=new Array(576);Vl(Yl);const Zl=new Array(60);Vl(Zl);const Ql=new Array(512);Vl(Ql);const eu=new Array(256);Vl(eu);const tu=new Array(29);Vl(tu);const iu=new Array(30);function nu(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}let ru,ou,au;function su(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}Vl(iu);const cu=e=>e<256?Ql[e]:Ql[256+(e>>>7)],lu=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},uu=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{uu(e,i[2*t],i[2*t+1])},hu=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},pu=(e,t,i)=>{const n=new Array(16);let r,o,a=0;for(r=1;r<=15;r++)n[r]=a=a+i[r-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=hu(n[t]++,t))}},mu=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},fu=e=>{e.bi_valid>8?lu(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},gu=(e,t,i,n)=>{const r=2*t,o=2*i;return e[r]{const n=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let n,r,o,a,s=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],r=e.pending_buf[e.l_buf+s],s++,0===n?du(e,r,t):(o=eu[r],du(e,o+256+1,t),a=Kl[o],0!==a&&(r-=tu[o],uu(e,r,a)),n--,o=cu(n),du(e,o,i),a=Gl[o],0!==a&&(n-=iu[o],uu(e,n,a)))}while(s{const i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)_u(e,i,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_u(e,i,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,i[2*c]=i[2*a]+i[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,i[2*a+1]=i[2*s+1]=c,e.heap[1]=c++,_u(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,u,d,h,p,m,f=0;for(h=0;h<=15;h++)e.bl_count[h]=0;for(i[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],h=i[2*i[2*u+1]+1]+1,h>c&&(h=c,f++),i[2*u+1]=h,u>n||(e.bl_count[h]++,p=0,u>=s&&(p=a[u-s]),m=i[2*u],e.opt_len+=m*(h+p),o&&(e.static_len+=m*(r[2*u+1]+p)));if(0!==f){do{for(h=c-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(h=c;0!==h;h--)for(u=e.bl_count[h];0!==u;)d=e.heap[--l],d>n||(i[2*d+1]!==h&&(e.opt_len+=(h-i[2*d+1])*i[2*d],i[2*d+1]=h),u--)}})(e,t),pu(i,l,e.bl_count)},yu=(e,t,i)=>{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(i+1)+1]=65535,n=0;n<=i;n++)r=a,a=t[2*(n+1)+1],++s{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),n=0;n<=i;n++)if(r=a,a=t[2*(n+1)+1],!(++s{uu(e,0+(n?1:0),3),((e,t,i,n)=>{fu(e),n&&(lu(e,i),lu(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var Nu={_tr_init:e=>{xu||((()=>{let e,t,i,n,r;const o=new Array(16);for(i=0,n=0;n<28;n++)for(tu[n]=i,e=0;e<1<>=7;n<30;n++)for(iu[n]=r<<7,e=0;e<1<{let r,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),vu(e,e.l_desc),vu(e,e.d_desc),a=(e=>{let t;for(yu(e,e.dyn_ltree,e.l_desc.max_code),yu(e,e.dyn_dtree,e.d_desc.max_code),vu(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*Jl[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=r&&(r=o)):r=o=i+5,i+4<=r&&-1!==t?Au(e,t,i,n):4===e.strategy||o===r?(uu(e,2+(n?1:0),3),bu(e,Yl,Zl)):(uu(e,4+(n?1:0),3),((e,t,i,n)=>{let r;for(uu(e,t-257,5),uu(e,i-1,5),uu(e,n-4,4),r=0;r(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(eu[i]+256+1)]++,e.dyn_dtree[2*cu(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{uu(e,2,3),du(e,256,Yl),(e=>{16===e.bi_valid?(lu(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var ku=(e,t,i,n)=>{let r=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==i;){a=i>2e3?2e3:i,i-=a;do{r=r+t[n++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0};const Cu=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var Eu=(e,t,i,n)=>{const r=Cu,o=n+i;e^=-1;for(let a=n;a>>8^r[255&(e^t[a])];return-1^e},Su={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Fu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ou,_tr_stored_block:Du,_tr_flush_block:Bu,_tr_tally:Lu,_tr_align:Mu}=Nu,{Z_NO_FLUSH:$u,Z_PARTIAL_FLUSH:Tu,Z_FULL_FLUSH:Ru,Z_FINISH:ju,Z_BLOCK:Iu,Z_OK:Pu,Z_STREAM_END:zu,Z_STREAM_ERROR:Uu,Z_DATA_ERROR:Wu,Z_BUF_ERROR:Hu,Z_DEFAULT_COMPRESSION:qu,Z_FILTERED:Vu,Z_HUFFMAN_ONLY:Ku,Z_RLE:Gu,Z_FIXED:Xu,Z_DEFAULT_STRATEGY:Ju,Z_UNKNOWN:Yu,Z_DEFLATED:Zu}=Fu,Qu=(e,t)=>(e.msg=Su[t],t),ed=e=>(e<<1)-(e>4?9:0),td=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let id=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},rd=(e,t)=>{Bu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,nd(e.strm)},od=(e,t)=>{e.pending_buf[e.pending++]=t},ad=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},sd=(e,t,i,n)=>{let r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=ku(e.adler,t,r,i):2===e.state.wrap&&(e.adler=Eu(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},cd=(e,t)=>{let i,n,r=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,h=e.strstart+258;let p=l[o+a-1],m=l[o+a];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+a]===m&&l[i+a-1]===p&&l[i]===l[o]&&l[++i]===l[o+1]){o+=2,i++;do{}while(l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&oa){if(e.match_start=t,a=n,n>=s)break;p=l[o+a-1],m=l[o+a]}}}while((t=d[t&u])>c&&0!=--r);return a<=e.lookahead?a:e.lookahead},ld=e=>{const t=e.w_size;let i,n,r,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do{r=e.head[--i],e.head[i]=r>=t?r-t:0}while(--n);n=t,i=n;do{r=e.prev[--i],e.prev[i]=r>=t?r-t:0}while(--n);o+=t}if(0===e.strm.avail_in)break;if(n=sd(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=n,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=id(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=id(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},ud=(e,t)=>{let i,n;for(;;){if(e.lookahead<262){if(ld(e),e.lookahead<262&&t===$u)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=id(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-262&&(e.match_length=cd(e,i)),e.match_length>=3)if(n=Lu(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=id(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=id(e,e.ins_h,e.window[e.strstart+1]);else n=Lu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(rd(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===ju?(rd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(rd(e,!1),0===e.strm.avail_out)?1:2},dd=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<262){if(ld(e),e.lookahead<262&&t===$u)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=id(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=Lu(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=id(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(rd(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=Lu(e,0,e.window[e.strstart-1]),n&&rd(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Lu(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===ju?(rd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(rd(e,!1),0===e.strm.avail_out)?1:2};function hd(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}const pd=[new hd(0,0,0,0,((e,t)=>{let i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(ld(e),0===e.lookahead&&t===$u)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+i;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,rd(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(rd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ju?(rd(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(rd(e,!1),e.strm.avail_out),1)})),new hd(4,4,8,4,ud),new hd(4,5,16,8,ud),new hd(4,6,32,32,ud),new hd(4,4,16,16,dd),new hd(8,16,32,32,dd),new hd(8,16,128,128,dd),new hd(8,32,128,256,dd),new hd(32,128,258,1024,dd),new hd(32,258,258,4096,dd)];function md(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Zu,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),td(this.dyn_ltree),td(this.dyn_dtree),td(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),td(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),td(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const fd=e=>{if(!e||!e.state)return Qu(e,Uu);e.total_in=e.total_out=0,e.data_type=Yu;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=$u,Ou(t),Pu},gd=e=>{const t=fd(e);var i;return t===Pu&&((i=e.state).window_size=2*i.w_size,td(i.head),i.max_lazy_match=pd[i.level].max_lazy,i.good_match=pd[i.level].good_length,i.nice_match=pd[i.level].nice_length,i.max_chain_length=pd[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},_d=(e,t,i,n,r,o)=>{if(!e)return Uu;let a=1;if(t===qu&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),r<1||r>9||i!==Zu||n<8||n>15||t<0||t>9||o<0||o>Xu)return Qu(e,Uu);8===n&&(n=9);const s=new md;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<_d(e,t,Zu,15,8,Ju),deflateInit2:_d,deflateReset:gd,deflateResetKeep:fd,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?Uu:(e.state.gzhead=t,Pu):Uu,deflate:(e,t)=>{let i,n;if(!e||!e.state||t>Iu||t<0)return e?Qu(e,Uu):Uu;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==ju)return Qu(e,0===e.avail_out?Hu:Uu);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,od(r,31),od(r,139),od(r,8),r.gzhead?(od(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),od(r,255&r.gzhead.time),od(r,r.gzhead.time>>8&255),od(r,r.gzhead.time>>16&255),od(r,r.gzhead.time>>24&255),od(r,9===r.level?2:r.strategy>=Ku||r.level<2?4:0),od(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(od(r,255&r.gzhead.extra.length),od(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Eu(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(od(r,0),od(r,0),od(r,0),od(r,0),od(r,0),od(r,9===r.level?2:r.strategy>=Ku||r.level<2?4:0),od(r,3),r.status=113);else{let t=Zu+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=Ku||r.level<2?0:r.level<6?1:6===r.level?2:3,t|=i<<6,0!==r.strstart&&(t|=32),t+=31-t%31,r.status=113,ad(r,t),0!==r.strstart&&(ad(r,e.adler>>>16),ad(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),nd(e),i=r.pending,r.pending!==r.pending_buf_size));)od(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),nd(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),nd(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Eu(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&nd(e),r.pending+2<=r.pending_buf_size&&(od(r,255&e.adler),od(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(nd(e),0===e.avail_out)return r.last_flush=-1,Pu}else if(0===e.avail_in&&ed(t)<=ed(o)&&t!==ju)return Qu(e,Hu);if(666===r.status&&0!==e.avail_in)return Qu(e,Hu);if(0!==e.avail_in||0!==r.lookahead||t!==$u&&666!==r.status){let i=r.strategy===Ku?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(ld(e),0===e.lookahead)){if(t===$u)return 1;break}if(e.match_length=0,i=Lu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(rd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ju?(rd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(rd(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===Gu?((e,t)=>{let i,n,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(ld(e),e.lookahead<=258&&t===$u)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,n=a[r],n===a[++r]&&n===a[++r]&&n===a[++r])){o=e.strstart+258;do{}while(n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=Lu(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=Lu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(rd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===ju?(rd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(rd(e,!1),0===e.strm.avail_out)?1:2})(r,t):pd[r.level].func(r,t);if(3!==i&&4!==i||(r.status=666),1===i||3===i)return 0===e.avail_out&&(r.last_flush=-1),Pu;if(2===i&&(t===Tu?Mu(r):t!==Iu&&(Du(r,0,0,!1),t===Ru&&(td(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),nd(e),0===e.avail_out))return r.last_flush=-1,Pu}return t!==ju?Pu:r.wrap<=0?zu:(2===r.wrap?(od(r,255&e.adler),od(r,e.adler>>8&255),od(r,e.adler>>16&255),od(r,e.adler>>24&255),od(r,255&e.total_in),od(r,e.total_in>>8&255),od(r,e.total_in>>16&255),od(r,e.total_in>>24&255)):(ad(r,e.adler>>>16),ad(r,65535&e.adler)),nd(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Pu:zu)},deflateEnd:e=>{if(!e||!e.state)return Uu;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?Qu(e,Uu):(e.state=null,113===t?Qu(e,Wu):Pu)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return Uu;const n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return Uu;if(1===r&&(e.adler=ku(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){0===r&&(td(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(i-n.w_size,i),0),t=e,i=n.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,ld(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=id(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,ld(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,Pu},deflateInfo:"pako deflate (from Nodeca project)"};const vd=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var yd=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)vd(i,t)&&(e[t]=i[t])}}return e},wd=e=>{let t=0;for(let n=0,r=e.length;n=252?6:Cy>=248?5:Cy>=240?4:Cy>=224?3:Cy>=192?2:1;Ad[254]=Ad[254]=1;var Nd=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,n,r,o,a=e.length,s=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},kd=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,r;const o=new Array(2*i);for(r=0,n=0;n4)o[r++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&xd)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+Ad[e[i]]>t?i:t};var Ed=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Sd=Object.prototype.toString,{Z_NO_FLUSH:Fd,Z_SYNC_FLUSH:Od,Z_FULL_FLUSH:Dd,Z_FINISH:Bd,Z_OK:Ld,Z_STREAM_END:Md,Z_DEFAULT_COMPRESSION:$d,Z_DEFAULT_STRATEGY:Td,Z_DEFLATED:Rd}=Fu;function jd(e){this.options=yd({level:$d,method:Rd,chunkSize:16384,windowBits:15,memLevel:8,strategy:Td},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ed,this.strm.avail_out=0;let i=bd.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Ld)throw new Error(Su[i]);if(t.header&&bd.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Nd(t.dictionary):"[object ArrayBuffer]"===Sd.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=bd.deflateSetDictionary(this.strm,e),i!==Ld)throw new Error(Su[i]);this._dict_set=!0}}jd.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Bd:Fd,"string"==typeof e?i.input=Nd(e):"[object ArrayBuffer]"===Sd.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(o===Od||o===Dd)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=bd.deflate(i,o),r===Md)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=bd.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Ld;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},jd.prototype.onData=function(e){this.chunks.push(e)},jd.prototype.onEnd=function(e){e===Ld&&(this.result=wd(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Id=function(e,t){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,A,N,k;const C=e.state;i=e.next_in,N=e.input,n=i+(e.avail_in-5),r=e.next_out,k=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),s=C.dmax,c=C.wsize,l=C.whave,u=C.wnext,d=C.window,h=C.hold,p=C.bits,m=C.lencode,f=C.distcode,g=(1<>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)k[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<>>=v,p-=v),p<15&&(h+=N[i++]<>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<s){e.msg="invalid distance too far back",C.mode=30;break e}if(h>>>=v,p-=v,v=r-o,w>v){if(v=w-v,v>l&&C.sane){e.msg="invalid distance too far back",C.mode=30;break e}if(x=0,A=d,0===u){if(x+=c-v,v2;)k[r++]=A[x++],k[r++]=A[x++],k[r++]=A[x++],y-=3;y&&(k[r++]=A[x++],y>1&&(k[r++]=A[x++]))}else{x=r-w;do{k[r++]=k[x++],k[r++]=k[x++],k[r++]=k[x++],y-=3}while(y>2);y&&(k[r++]=k[x++],y>1&&(k[r++]=k[x++]))}break}}break}}while(i>3,i-=y,p-=y<<3,h&=(1<{const c=s.bits;let l,u,d,h,p,m,f=0,g=0,_=0,b=0,v=0,y=0,w=0,x=0,A=0,N=0,k=null,C=0;const E=new Uint16Array(16),S=new Uint16Array(16);let F,O,D,B=null,L=0;for(f=0;f<=15;f++)E[f]=0;for(g=0;g=1&&0===E[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+E[f];for(g=0;g852||2===e&&A>592)return 1;for(;;){F=f-w,a[g]m?(O=B[L+a[g]],D=k[C+a[g]]):(O=96,D=0),l=1<>w)+u]=F<<24|O<<16|D|0}while(0!==u);for(l=1<>=1;if(0!==l?(N&=l-1,N+=l):N=0,g++,0==--E[f]){if(f===b)break;f=t[i+a[g]]}if(f>v&&(N&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<852||2===e&&A>592)return 1;d=N&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==N&&(r[p+N]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:qd,Z_BLOCK:Vd,Z_TREES:Kd,Z_OK:Gd,Z_STREAM_END:Xd,Z_NEED_DICT:Jd,Z_STREAM_ERROR:Yd,Z_DATA_ERROR:Zd,Z_MEM_ERROR:Qd,Z_BUF_ERROR:eh,Z_DEFLATED:th}=Fu,ih=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function nh(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const rh=e=>{if(!e||!e.state)return Yd;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,Gd},oh=e=>{if(!e||!e.state)return Yd;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,rh(e)},ah=(e,t)=>{let i;if(!e||!e.state)return Yd;const n=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?Yd:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,oh(e))},sh=(e,t)=>{if(!e)return Yd;const i=new nh;e.state=i,i.window=null;const n=ah(e,t);return n!==Gd&&(e.state=null),n};let ch,lh,uh=!0;const dh=e=>{if(uh){ch=new Int32Array(512),lh=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Hd(1,e.lens,0,288,ch,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Hd(2,e.lens,0,32,lh,0,e.work,{bits:5}),uh=!1}e.lencode=ch,e.lenbits=9,e.distcode=lh,e.distbits=5},hh=(e,t,i,n)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(t.subarray(i-n,i-n+r),o.wnext),(n-=r)?(o.window.set(t.subarray(i-n,i),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavesh(e,15),inflateInit2:sh,inflate:(e,t)=>{let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,A,N=0;const k=new Uint8Array(4);let C,E;const S=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return Yd;i=e.state,12===i.mode&&(i.mode=13),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,d=s,h=c,A=Gd;e:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Eu(i.check,k,2,0),l=0,u=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",i.mode=30;break}if((15&l)!==th){e.msg="unknown compression method",i.mode=30;break}if(l>>>=4,u-=4,x=8+(15&l),0===i.wbits)i.wbits=x;else if(x>i.wbits){e.msg="invalid window size",i.mode=30;break}i.dmax=1<>8&1),512&i.flags&&(k[0]=255&l,k[1]=l>>>8&255,i.check=Eu(i.check,k,2,0)),l=0,u=0,i.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,k[2]=l>>>16&255,k[3]=l>>>24&255,i.check=Eu(i.check,k,4,0)),l=0,u=0,i.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&i.flags&&(k[0]=255&l,k[1]=l>>>8&255,i.check=Eu(i.check,k,2,0)),l=0,u=0,i.mode=5;case 5:if(1024&i.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Eu(i.check,k,2,0)),l=0,u=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(p=i.length,p>s&&(p=s),p&&(i.head&&(x=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(o,o+p),x)),512&i.flags&&(i.check=Eu(i.check,n,p,o)),s-=p,o+=p,i.length-=p),i.length))break e;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===s)break e;p=0;do{x=n[o+p++],i.head&&x&&i.length<65536&&(i.head.name+=String.fromCharCode(x))}while(x&&p>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&u,u-=7&u,i.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<>>=1,u-=1,3&l){case 0:i.mode=14;break;case 1:if(dh(i),i.mode=20,t===Kd){l>>>=2,u-=2;break e}break;case 2:i.mode=17;break;case 3:e.msg="invalid block type",i.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=30;break}if(i.length=65535&l,l=0,u=0,i.mode=15,t===Kd)break e;case 15:i.mode=16;case 16:if(p=i.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;r.set(n.subarray(o,o+p),a),s-=p,o+=p,c-=p,a+=p,i.length-=p;break}i.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,u-=5,i.ndist=1+(31&l),l>>>=5,u-=5,i.ncode=4+(15&l),l>>>=4,u-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=30;break}i.have=0,i.mode=18;case 18:for(;i.have>>=3,u-=3}for(;i.have<19;)i.lens[S[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},A=Hd(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,A){e.msg="invalid code lengths set",i.mode=30;break}i.have=0,i.mode=19;case 19:for(;i.have>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=g,u-=g,i.lens[i.have++]=b;else{if(16===b){for(E=g+2;u>>=g,u-=g,0===i.have){e.msg="invalid bit length repeat",i.mode=30;break}x=i.lens[i.have-1],p=3+(3&l),l>>>=2,u-=2}else if(17===b){for(E=g+3;u>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(E=g+7;u>>=g,u-=g,x=0,p=11+(127&l),l>>>=7,u-=7}if(i.have+p>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=30;break}for(;p--;)i.lens[i.have++]=x}}if(30===i.mode)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=30;break}if(i.lenbits=9,C={bits:i.lenbits},A=Hd(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,A){e.msg="invalid literal/lengths set",i.mode=30;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},A=Hd(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,A){e.msg="invalid distances set",i.mode=30;break}if(i.mode=20,t===Kd)break e;case 20:i.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,Id(e,h),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,12===i.mode&&(i.back=-1);break}for(i.back=0;N=i.lencode[l&(1<>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=N>>>24,_=N>>>16&255,b=65535&N,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,i.length=b,0===_){i.mode=26;break}if(32&_){i.back=-1,i.mode=12;break}if(64&_){e.msg="invalid literal/length code",i.mode=30;break}i.extra=15&_,i.mode=22;case 22:if(i.extra){for(E=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;N=i.distcode[l&(1<>>24,_=N>>>16&255,b=65535&N,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=N>>>24,_=N>>>16&255,b=65535&N,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,64&_){e.msg="invalid distance code",i.mode=30;break}i.offset=b,i.extra=15&_,i.mode=24;case 24:if(i.extra){for(E=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=30;break}i.mode=25;case 25:if(0===c)break e;if(p=h-c,i.offset>p){if(p=i.offset-p,p>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=30;break}p>i.wnext?(p-=i.wnext,m=i.wsize-p):m=i.wnext-p,p>i.length&&(p=i.length),f=i.window}else f=r,m=a-i.offset,p=i.length;p>c&&(p=c),c-=p,i.length-=p;do{r[a++]=f[m++]}while(--p);0===i.length&&(i.mode=21);break;case 26:if(0===c)break e;r[a++]=i.length,c--,i.mode=21;break;case 27:if(i.wrap){for(;u<32;){if(0===s)break e;s--,l|=n[o++]<{if(!e||!e.state)return Yd;let t=e.state;return t.window&&(t.window=null),e.state=null,Gd},inflateGetHeader:(e,t)=>{if(!e||!e.state)return Yd;const i=e.state;return 0==(2&i.wrap)?Yd:(i.head=t,t.done=!1,Gd)},inflateSetDictionary:(e,t)=>{const i=t.length;let n,r,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?Yd:11===n.mode&&(r=1,r=ku(r,t,i,0),r!==n.check)?Zd:(o=hh(e,t,i,i),o?(n.mode=31,Qd):(n.havedict=1,Gd))):Yd},inflateInfo:"pako inflate (from Nodeca project)"};var mh=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const fh=Object.prototype.toString,{Z_NO_FLUSH:gh,Z_FINISH:_h,Z_OK:bh,Z_STREAM_END:vh,Z_NEED_DICT:yh,Z_STREAM_ERROR:wh,Z_DATA_ERROR:xh,Z_MEM_ERROR:Ah}=Fu;function Nh(e){this.options=yd({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ed,this.strm.avail_out=0;let i=ph.inflateInit2(this.strm,t.windowBits);if(i!==bh)throw new Error(Su[i]);if(this.header=new mh,ph.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Nd(t.dictionary):"[object ArrayBuffer]"===fh.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=ph.inflateSetDictionary(this.strm,t.dictionary),i!==bh)))throw new Error(Su[i])}Nh.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?_h:gh,"[object ArrayBuffer]"===fh.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),o=ph.inflate(i,a),o===yh&&r&&(o=ph.inflateSetDictionary(i,r),o===bh?o=ph.inflate(i,a):o===xh&&(o=yh));i.avail_in>0&&o===vh&&i.state.wrap>0&&0!==e[i.next_in];)ph.inflateReset(i),o=ph.inflate(i,a);switch(o){case wh:case xh:case yh:case Ah:return this.onEnd(o),this.ended=!0,!1}if(s=i.avail_out,i.next_out&&(0===i.avail_out||o===vh))if("string"===this.options.to){let e=Cd(i.output,i.next_out),t=i.next_out-e,r=kd(i.output,e);i.next_out=t,i.avail_out=n-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==bh||0!==s){if(o===vh)return o=ph.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Nh.prototype.onData=function(e){this.chunks.push(e)},Nh.prototype.onEnd=function(e){e===bh&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=wd(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var kh,Ch,Eh={exports:{}},Sh={exports:{}};kh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ch={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Ch.rotl(e,8)|4278255360&Ch.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,n=0;i>>5]|=e[i]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i<32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],i=0;i>>6*(3-r)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],i=0,n=0;i>>6-2*n);return t}},Sh.exports=Ch;var Fh={utf8:{stringToBytes:function(e){return Fh.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Fh.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p>>0,u=u+v>>>0,d=d+y>>>0,h=h+w>>>0}return e.endian([l,u,d,h])};r._ff=function(e,t,i,n,r,o,a){var s=e+(t&i|~t&n)+(r>>>0)+a;return(s<>>32-o)+t},r._gg=function(e,t,i,n,r,o,a){var s=e+(t&n|i&~n)+(r>>>0)+a;return(s<>>32-o)+t},r._hh=function(e,t,i,n,r,o,a){var s=e+(t^i^n)+(r>>>0)+a;return(s<>>32-o)+t},r._ii=function(e,t,i,n,r,o,a){var s=e+(i^(t|~n))+(r>>>0)+a;return(s<>>32-o)+t},r._blocksize=16,r._digestsize=16,Eh.exports=function(t,i){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(r(t,i));return i&&i.asBytes?o:i&&i.asString?n.bytesToString(o):e.bytesToHex(o)}}();var Lh,Mh,$h=Eh.exports;(Mh=Lh||(Lh={})).UP="up",Mh.DOWN="down",Mh.NORTH="north",Mh.EAST="east",Mh.SOUTH="south",Mh.WEST="west";const Th={[Lh.UP]:[0,1,0],[Lh.DOWN]:[0,-1,0],[Lh.NORTH]:[0,0,-1],[Lh.EAST]:[1,0,0],[Lh.SOUTH]:[0,0,1],[Lh.WEST]:[-1,0,0]};var Rh,jh,Ih,Ph,zh,Uh,Wh,Hh,qh,Vh,Kh,Gh,Xh,Jh,Yh,Zh,Qh,ep,tp,ip;function np(e,t,i){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==i)throw new Error(`Expected ${t} to be of type ${i}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return Th[e]}}(Lh||(Lh={})),function(e){e.create=function(e,t,i){return[e,t,i]},e.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},e.towards=function(t,i){return e.offset(t,...Lh.normal(i))}}(Rh||(Rh={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,i){var n;const r=null!==(n=t(e))&&void 0!==n?n:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,i(t)])))},e.compose=function(e,t,i){const n=t(e);return n?i(n):void 0}}(jh||(jh={}));class rp{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=np(e.value,"Name","string"),i=function(e,t){try{return e()}catch(i){return t}}((()=>np(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:np(i,t,"string")})),{});return new rp(t,n)}static fromJson(e){var t,i;const n=null!==(t=jh.readObject(e))&&void 0!==t?t:{},r=null!==(i=jh.readString(n.Name))&&void 0!==i?i:"minecraft:stone",o=jh.readMap(n.Properties,(e=>{var t;return null!==(t=jh.readString(e))&&void 0!==t?t:""}));return new rp(r,o)}}rp.AIR=new rp("minecraft:air");class op{constructor(e){this.minY=e,this.storage=Array(op.SIZE),this.palette=[rp.AIR]}get minBlockY(){return this.minY<<4}index(e,t,i){return(e<<8)+(t<<4)+i}getBlockState(e,t,i){var n;const r=this.storage[this.index(e,t,i)];return null!==(n=this.palette[r])&&void 0!==n?n:rp.AIR}setBlockState(e,t,i,n){let r=this.palette.findIndex((e=>e.equals(n)));-1===r&&(r=this.palette.length,this.palette.push(n)),this.storage[this.index(e,t,i)]=r}}op.WIDTH=16,op.SIZE=op.WIDTH*op.WIDTH*op.WIDTH;class ap{constructor(e,t,i){this.minY=e,this.height=t,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,n,r]=e,o=this.sections[this.getSectionIndex(n)];return null!==(t=null==o?void 0:o.getBlockState(15&i,15&n,15&r))&&void 0!==t?t:rp.AIR}setBlockState(e,t){const[i,n,r]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(rp.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&i,15&n,15&r,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new op(this.minSection+e)),this.sections[e]}}function sp(e){let t=null;return()=>(null==t&&(t=e()),t)}function cp(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}function lp(e){return e*e}function up(e,t,i){return Math.max(t,Math.min(i,e))}function dp(e,t,i){return t+e*(i-t)}function hp(e,t,i,n,r,o){return dp(t,dp(e,i,n),dp(e,r,o))}function pp(e,t,i){return i<0?e:i>1?t:dp(i,e,t)}function mp(e,t,i){return(e-t)/(i-t)}function fp(e){return e*e*e*(e*(6*e-15)+10)}function gp(e,t,i,n,r){return dp(mp(e,t,i),n,r)}function _p(e,t,i){let n=BigInt(3129871*e)^BigInt(i)*BigInt(116129781)^BigInt(t);return n=n*n*BigInt(42317861)+n*BigInt(11),n>>BigInt(16)}function bp(e,t,i,n,r,o,a,s){return BigInt(e)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(Ih||(Ih={}));class vp{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new vp(this.nextLong())}forkPositional(){return new yp(this.seed)}setSeed(e){this.seed=e^vp.MULTIPLIER&vp.MODULUS_MASK}advance(){this.seed=this.seed*vp.MULTIPLIER+vp.INCREMENT&vp.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(vp.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,i;for(;(t=this.next(31))-(i=t%e)+(e-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^wp.SILVER_RATIO_64,i=t+wp.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[wp.mixStafford13(t),wp.mixStafford13(i)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=wp.upgradeSeedTo128bit(e)}fork(){return new wp([this.next(),this.next()])}forkPositional(){return new xp(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=wp.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[wp.rotateLeft(e,BigInt(49))^t^t<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const i=BigInt(e);let n=t*i,r=n&BigInt(4294967295);if(r>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*wp.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*wp.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}wp.SILVER_RATIO_64=BigInt("7640891576956012809"),wp.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),wp.FLOAT_MULTIPLIER=1/Math.pow(2,24),wp.DOUBLE_MULTIPLIER=11102230246251565e-32;class xp{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=_p(e,t,i)^this.seedLo;return new wp([n,this.seedHi])}fromHashOf(e){const t=$h(e,{asBytes:!0}),i=bp(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=bp(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new wp([i^this.seedLo,n^this.seedHi])}}class Ap{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample2D(e,t){let i,n,r;const o=(e+t)*Ap.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*Ap.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+Ap.G2,d=r-l+Ap.G2,h=s-1+2*Ap.G2,p=r-1+2*Ap.G2,m=255&a,f=255&n,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,i){const n=.3333333333333333*(e+t+i),r=Math.floor(e+n),o=Math.floor(t+n),a=Math.floor(i+n),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=i-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample(e,t,i,n=0,r=0){const o=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==n){const e=r>=0&&r=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return pp(a/512,s/512,r)/128}}(Ph||(Ph={})).fromJson=function(e){var t,i,n,r,o;const a=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(i=jh.readNumber(a.xz_scale))&&void 0!==i?i:1,yScale:null!==(n=jh.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(r=jh.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=jh.readNumber(a.y_factor))&&void 0!==o?o:80}};class Ep{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new kp(e,t,i),this.second=new kp(e,t,i);let n=1/0,r=-1/0;for(let a=0;a{var t;return null!==(t=jh.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}}}(zh||(zh={})),function(e){e.fromJson=function(t,i){var n,r,o,a;if("number"==typeof t)return new Sp(t);const s=null!==(n=jh.readObject(t))&&void 0!==n?n:{},c=new Fp(i(s.coordinate)),l=null!==(r=jh.readArray(s.points,(e=>{var t;return null!==(t=jh.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new Sp(0);for(const u of l){const t=null!==(o=jh.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,i),r=null!==(a=jh.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,r)}return c}}(Uh||(Uh={}));class Sp{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class Fp{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}apply(e){const t=this.coordinate.apply(e),i=function(e,t,i){let n=t-e;for(;n>0;){const t=Math.floor(n/2),r=e+t;i(r)?n=t:(e=r+1,n-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(Wh||(Wh={})).rotate=function(e,t,i){let{up:n,down:r,north:o,east:a,south:s,west:c}=e;switch(i){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[n,o,r,s]=[o,r,s,n];break;case 180:[n,o,r,s]=[r,s,n,o];break;case 270:[n,o,r,s]=[s,n,o,r]}return{up:n,down:r,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new i(e,null!=t?t:e):e}e.target=function(e,t,i,n,o,a){return new r(e,t,i,n,o,a)},e.parameters=function(e,i,r,o,a,s,c){return new n(t(e),t(i),t(r),t(o),t(a),t(s),c)},e.param=t;class i{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,i=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(i,0)}union(e){return new i(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new i(e,e);const[n,r]=null!==(t=jh.readArray(e,(e=>jh.readNumber(e))))&&void 0!==t?t:[];return new i(null!=n?n:0,null!=r?r:0)}}e.Param=i;class n{constructor(e,t,i,n,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return lp(this.temperature.distance(e.temperature))+lp(this.humidity.distance(e.humidity))+lp(this.continentalness.distance(e.continentalness))+lp(this.erosion.distance(e.erosion))+lp(this.depth.distance(e.depth))+lp(this.weirdness.distance(e.weirdness))+lp(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return new n(i.fromJson(o.temperature),i.fromJson(o.humidity),i.fromJson(o.continentalness),i.fromJson(o.erosion),i.fromJson(o.depth),i.fromJson(o.weirdness),null!==(r=jh.readInt(o.offset))&&void 0!==r?r:0)}}e.ParamPoint=n;class r{constructor(e,t,i,n,r,o){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let i=0;i<7;i+=1){const n=e.space[i];t+=Math.abs((n.min+n.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,i=-1,n=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),n=o.bucketize(e);let a=0;for(const e of n)a+=o.area(e.space);t>a&&(t=a,i=r)}return e=o.sort(e,i,!1),n=o.bucketize(e),n=o.sort(n,i,!0),new s(n.map((e=>o.build(e.children))))}static sort(e,t,i){return e.map((e=>{const n=e.space[t],r=(n.min+n.max)/2;return{key:i?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let i=[];const n=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)i.push(r),i.lengthnew i(1/0,-1/0)));for(const i of e)t=[...Array(7)].map(((e,n)=>t[n].union(i.space[n])));return t}search(e,t){let i=1/0,n=null;for(const r of this.children){const o=t(r,e);if(i<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);i<=s||(i=s,n=a)}return n}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(Hh||(Hh={}));class Op{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!==(t=jh.readObject(e))&&void 0!==t?t:{},r=null!==(i=jh.readString(n.biome))&&void 0!==i?i:"minecraft:the_void";return new Op(r)}}class Dp{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const i=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return new Dp(Uh.fromJson(i.offset,this.EXTRACTOR),Uh.fromJson(i.factor,this.EXTRACTOR),Uh.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+Dp.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,i){return{continents:e,erosion:t,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),n=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),r=new Fp(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,i).addPoint(1,n),o=new Fp(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new Fp(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new Dp(r,o,a)}static getErosionFactor(e,t){const i=new Fp(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new Fp(this.EROSION).addPoint(-.6,i).addPoint(-.5,new Fp(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new Fp(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(t){const t=new Fp(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),i=new Fp(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,i).addPoint(.55,i).addPoint(.62,e)}else{const t=new Fp(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),r=new Fp(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);n.addPoint(.05,r).addPoint(.4,r).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}static buildErosionOffsetSpline(e,t,i,n,r,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(dp(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(dp(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,dp(.5,.5,.5)*n,.5*n,.6*n,.5),h=this.ridgeSpline(e,r*n,t*n,.5*n,.6*n,.5),p=this.ridgeSpline(e,r,r,t,i,.5),m=this.ridgeSpline(e,r,r,t,i,.5),f=new Fp(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,t,i,0),_=new Fp(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,h).addPoint(.2,p);return a&&_.addPoint(.4,m).addPoint(.45,f).addPoint(.55,f).addPoint(.58,m),_.addPoint(.7,g),_}static buildMountainRidgeSplineWithPoints(e,t){const i=new Fp(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new Fp(Dp.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}Dp.GLOBAL_OFFSET=-.50375,Dp.EXTRACTOR=e=>{var t;const i=null!==(t=jh.readString(e))&&void 0!==t?t:"continents";return Dp.extractor(i)},Dp.CONTINENTS=Dp.extractor("continents"),Dp.EROSION=Dp.extractor("erosion"),Dp.WEIRDNESS=Dp.extractor("weirdness"),Dp.RIDGES=Dp.extractor("ridges"),(qh||(qh={})).fromList=function(e){return(t,i,n,r)=>{for(const o of e){const e=o(t,i,n,r);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o,a,s,c;const l=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return{minY:null!==(i=jh.readInt(l.min_y))&&void 0!==i?i:0,height:null!==(n=jh.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(r=jh.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=jh.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:Ph.fromJson(l.sampling),topSlide:Kh.fromJson(l.top_slide),bottomSlide:Kh.fromJson(l.bottom_slide),terrainShaper:Dp.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=jh.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=jh.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=jh.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(Vh||(Vh={})),function(e){e.fromJson=function(e){var t,i,n,r;const o=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return{target:null!==(i=jh.readNumber(o.target))&&void 0!==i?i:0,size:null!==(n=jh.readInt(o.size))&&void 0!==n?n:0,offset:null!==(r=jh.readInt(o.offset))&&void 0!==r?r:0}},e.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return pp(e.target,t,n)}}(Kh||(Kh={}));class Bp{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Bp.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Bp.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const i=Array(t+1);for(let n=0;n>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const e=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let t=0;t<=l;t+=1){const i=this.firstNoiseZ+t;this.noiseData[u][t]=n.noiseData(e,i)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=n.makeBaseNoiseFiller(this,a,s.noodleCavesEnabled)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}getPreliminarySurfaceLevel(e,t){return cp(this.preliminarySurfaceLevel,Ih.asLong(e,t),(()=>{const i=e-this.firstNoiseX,n=t-this.firstNoiseZ,r=this.noiseData.length,o=i>=0&&n>=0&&ie.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((i=>i.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,i){return this.baseNoise(e,t,i)}}(Gh||(Gh={})).create=function(e,t,i){return{offset:e,factor:t,jaggedness:i}},function(e){const t=new Map;function i(e,i,n){const r=Object.assign({name:`minecraft:${e}`},zh.create(i,n));return t.set(e,r),r}e.TEMPERATURE=i("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=i("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=i("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=i("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=i("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=i("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=i("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=i("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=i("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=i("offset",-3,[1,1,1,0]),e.PILLAR=i("pillar",-7,[1,1]),e.PILLAR_RARENESS=i("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=i("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=i("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=i("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=i("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=i("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=i("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=i("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=i("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=i("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=i("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=i("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=i("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=i("cave_layer",-8,[1]),e.CAVE_CHEESE=i("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=i("noodle",-8,[1]),e.NOODLE_THICKNESS=i("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=i("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=i("noodle_ridge_b",-7,[1]),e.JAGGED=i("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=i("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=i("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(e,t){return new Ep(e.fromHashOf(t.name),t)}}(Xh||(Xh={}));class Mp{constructor(e,t,i,n=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(n?new vp(i):wp.create(i)).forkPositional();n?(this.blendedNoise=new Cp(new vp(i),e.sampling,Vh.cellWidth(e),Vh.cellHeight(e)),this.temperatureNoise=new Ep(new vp(i),zh.create(-7,[1,1])),this.humidityNoise=new Ep(new vp(i+BigInt(1)),zh.create(-7,[1,1])),this.offsetNoise=new Ep(new vp(i+BigInt(5)),zh.create(0,[0]))):(this.blendedNoise=new Cp(o.fromHashOf("minecraft:terrain"),e.sampling,Vh.cellWidth(e),Vh.cellHeight(e)),this.temperatureNoise=Xh.instantiate(o,r?Xh.TEMPERATURE_LARGE:Xh.TEMPERATURE),this.humidityNoise=Xh.instantiate(o,r?Xh.VEGETATION_LARGE:Xh.VEGETATION),this.offsetNoise=Xh.instantiate(o,Xh.SHIFT)),this.continentalnessNoise=Xh.instantiate(o,r?Xh.CONTINENTALNESS_LARGE:Xh.CONTINENTALNESS),this.erosionNoise=Xh.instantiate(o,r?Xh.EROSION_LARGE:Xh.EROSION),this.weirdnessNoise=Xh.instantiate(o,Xh.RIDGE),this.pillarNoise=Xh.instantiate(o,Xh.PILLAR),this.pillarRarenessModulator=Xh.instantiate(o,Xh.PILLAR_RARENESS),this.pillarThicknessModulator=Xh.instantiate(o,Xh.PILLAR_THICKNESS),this.spaghetti2DNoise=Xh.instantiate(o,Xh.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Xh.instantiate(o,Xh.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Xh.instantiate(o,Xh.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Xh.instantiate(o,Xh.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Xh.instantiate(o,Xh.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Xh.instantiate(o,Xh.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Xh.instantiate(o,Xh.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Xh.instantiate(o,Xh.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Xh.instantiate(o,Xh.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Xh.instantiate(o,Xh.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Xh.instantiate(o,Xh.CAVE_ENTRANCE),this.layerNoise=Xh.instantiate(o,Xh.CAVE_LAYER),this.cheeseNoise=Xh.instantiate(o,Xh.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Xh.instantiate(o,Xh.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Xh.instantiate(o,Xh.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Xh.instantiate(o,Xh.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Xh.instantiate(o,Xh.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=Xh.instantiate(o,Xh.JAGGED),this.shaper=e.terrainShaper,this.baseNoise=e=>e.createNoiseInterpolator(((t,i,n)=>this.calculateBlendedBaseNoise(t,i,n,e.getNoiseData(t>>2,n>>2).terrainInfo)))}yLimitedInterpolatable(e,t,i,n,r){const o=(o,a,s)=>a>i||ae.createNoiseInterpolator(o)}noiseData(e,t){const i=e+this.getOffset(e,0,t),n=t+this.getOffset(t,e,0),r=this.getContinentalness(i,n),o=this.getErosion(i,n),a=this.getWeirdness(i,n),s=this.terrainInfo(r,o,a);return Jh.create(i,n,r,o,a,s)}sample(e,t,i){return this.target(e,t,i,this.noiseData(e,i))}target(e,t,i,n){const r=n.shiftedX,o=t+this.getOffset(t,i,e),a=n.shiftedZ,s=this.getTemperature(r,o,a),c=this.getHumidity(r,o,a),l=this.computeDimensionDensity(t<<2,n.terrainInfo);return Hh.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,i){const n=Dp.point(e,t,i),r=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return Gh.create(r,o,a)}getOffset(e,t,i){return 4*this.offsetNoise.sample(e,t,i)}getTemperature(e,t,i){return this.temperatureNoise.sample(e,t,i)}getHumidity(e,t,i){return this.humidityNoise.sample(e,t,i)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t,i){const n=this.baseNoise(e),r=i?this.noodleToggleNoise(e):()=>-1,o=i?this.noodleThicknessNoise(e):()=>0,a=i?this.noodleRidgeANoise(e):()=>0,s=i?this.noodleRidgeBNoise(e):()=>0;return(e,i,c)=>{let l=n();if(l=up(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,i,n,r){return pp(n,r,mp(e,t,i))}(o(),-1,1,.05,.1),t=Math.abs(1.5*a())-e,i=Math.abs(1.5*s())-e;l=Math.min(l,Math.max(t,i))}return l+=t(e,i,c),l>0?null:rp.AIR}}calculateBlendedBaseNoise(e,t,i,n){const r=this.blendedNoise.sample(e,t,i);return this.calculateBaseNoise(e,t,i,n,r,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(e,t,i,n,r,o,a){if(!this.settings.islandNoiseOverride){const o=a?this.sampleJaggedNoise(n.jaggedness,e,i):0,s=this.computeDimensionDensity(t,n),c=n.factor*(o+s);r+=c>0?4*c:c}let s=-64,c=64;if(!o&&r>=-64){const n=r-1.5625,o=this.getBigEntrances(e,t,i),a=this.getSpaghettiRoughness(e,t,i),l=this.getSpaghetti3D(e,t,i),u=Math.min(o,l+a);if(n<0)c=u;else{const o=this.getLayerizedCaverns(e,t,i);r=o>64?64:this.getCheese(e,t,i)+o+pp(.5,0,1.28*n);const l=this.getSpaghetti2D(e,t,i);s=this.getPillars(e,t,i),c=Math.min(u,l+a)}}return r=up(r,s,c),up(r=this.applySlide(r,t/Vh.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(e,t,i){if(0===e)return 0;const n=this.jaggedNoise.sample(1500*t,0,1500*i);return n>0?e*n:e/2*n}computeDimensionDensity(e,t){return 1-e/128+t.offset}getBigEntrances(e,t,i){return this.bigEntranceNoise.sample(.75*e,.5*t,.75*i)+.37+pp(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,i){const n=this.spaghettiRoughnessNoise.sample(e,t,i),r=gp(this.spaghettiRoughnessModulator.sample(e,t,i),-1,1,0,1);return(.4-Math.abs(n))*r}getSpaghetti2D(e,t,i){const n=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*e,t,2*i)),r=gp(this.spaghetti2DThicknessModulator.sample(2*e,t,2*i),-1,1,.6,1.3),o=this.sampleWithRarity(this.spaghetti2DNoise,e,t,i,n),a=Math.abs(n*o)-.083*r,s=Vh.minCellY(this.settings),c=gp(this.spaghetti2DElevationModulator.sample(e,0,i),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return up(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,i){const n=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*i)),r=gp(this.spaghetti3DThicknessModulator.sample(e,t,i),-1,1,.065,.088),o=this.sampleWithRarity(this.spaghetti3DNoise1,e,t,i,n),a=Math.abs(n*o)-r,s=this.sampleWithRarity(this.spaghetti3DNoise2,e,t,i,n),c=Math.abs(n*s)-r;return up(Math.max(a,c),-1,1)}quantizeSpaghettiRarity2D(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}quantizeSpaghettiRarity3D(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}sampleWithRarity(e,t,i,n,r){return e.sample(t/r,i/r,n/r)}getLayerizedCaverns(e,t,i){return 4*lp(this.layerNoise.sample(e,8*t,i))}getCheese(e,t,i){return up(this.cheeseNoise.sample(e,t/1.5,i)+.27,-1,1)}getPillars(e,t,i){const n=gp(this.pillarRarenessModulator.sample(e,t,i),-1,1,0,2),r=gp(this.pillarThicknessModulator.sample(e,t,i),-1,1,0,1.1),o=this.pillarNoise.sample(25*e,.3*t,25*i),a=Math.pow(r,3)*(2*o-n);return a<=.03?Number.MIN_SAFE_INTEGER:a}applySlide(e,t){const i=t-Vh.minCellY(this.settings);return e=Kh.apply(this.settings.topSlide,e,Vh.cellCountY(this.settings)-i),Kh.apply(this.settings.bottomSlide,e,i)}getPreliminarySurfaceLevel(e,t,i){const n=Vh.minCellY(this.settings)+Vh.cellCountY(this.settings),r=Vh.minCellY(this.settings),o=Vh.cellHeight(this.settings);for(let a=n;a>=r;a-=1){const n=a*o;if(this.calculateBaseNoise(e,n,t,i,-.703125,!0,!1)>=.390625)return n}return Number.MAX_SAFE_INTEGER}}(Jh||(Jh={})).create=function(e,t,i,n,r,o){return{shiftedX:e,shiftedZ:t,continentalness:i,weirdness:n,erosion:r,terrainInfo:o}},(Yh||(Yh={})).fromJson=function(e){var t,i,n,r;const o=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(i=jh.readNumber(o.absolute))&&void 0!==i?i:0,()=>s):void 0!==o.above_bottom?(a=null!==(n=jh.readNumber(o.above_bottom))&&void 0!==n?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!==(r=jh.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(Zh||(Zh={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class $p{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=wp.create(i).forkPositional(),this.surfaceNoise=Xh.instantiate(this.random,Xh.SURFACE),this.surfaceSecondaryNoise=Xh.instantiate(this.random,Xh.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=Ih.minBlockX(e.pos),o=Ih.minBlockZ(e.pos),a=new Tp(this,e,t,i,n),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let i=0;i<1;i+=1){const n=o+i;a.updateXZ(t,n);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let i=e.maxY;i>=e.minY;i-=1){const o=Rh.create(t,i,n),u=e.getBlockState(o);if(u.equals(rp.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=i+1);continue}if(l>=i){l=Number.MIN_SAFE_INTEGER;for(let r=i-1;r>=e.minY;r-=1){const i=e.getBlockState(Rh.create(t,r,n));if(i.equals(rp.AIR)||i.isFluid()){l=r+1;break}}}r+=1;const d=i-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,i);const h=s(t,i,n);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return cp(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class Tp{constructor(e,t,i,n,r){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=n,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=sp((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=sp((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=sp((()=>this.getBiome(Rh.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const i=e>>4,n=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n+1<<4);return Math.floor(hp((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function i(e){return t=>{const i=e.map((e=>e(t)));return(e,t,n)=>{for(const r of i){const i=r(e,t,n);if(i)return i}}}}function n(e,t){return i=>(n,r,o)=>{if(e(i))return t(i)(n,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!==(o=jh.readObject(r))&&void 0!==o?o:{};switch(null===(a=jh.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(rp.fromJson(c.result_state));case"sequence":return i(null!==(s=jh.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return n(ep.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(Qh||(Qh={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function i(e){return t=>!e(t)}function n(e,t,i,n){return r=>{const o=n?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===i?0:gp(r.surfaceSecondary(),-1,1,0,i);return o<=1+e+a+s}}function r(e,t,i){return n=>{const r=t(n.context),o=i(n.context);if(n.blockY<=r)return!0;if(n.blockY>=o)return!1;const a=n.system.getRandom(e),s=gp(n.blockY,r,o,1,0);return a.nextFloat(){if(n.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=i?n.stoneDepthAbove:0;return n.blockY+r>=n.waterHeight+e+n.surfaceDepth*t}}function a(e,t,i){return n=>{const r=i?n.stoneDepthAbove:0;return n.blockY+r>=e(n.context)+n.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!==(c=jh.readObject(s))&&void 0!==c?c:{};switch(null===(l=jh.readString(y.type))||void 0===l?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!==(u=jh.readArray(y.biome_is,(e=>{var t;return null!==(t=jh.readString(e))&&void 0!==t?t:""})))&&void 0!==u?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!==(d=jh.readInt(y.offset))&&void 0!==d?d:0,null!==(h=jh.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=jh.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===jh.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=jh.readString(y.random_name))&&void 0!==m?m:"",Yh.fromJson(y.true_at_and_below),Yh.fromJson(y.false_at_and_above));case"water":return o(null!==(f=jh.readInt(y.offset))&&void 0!==f?f:0,null!==(g=jh.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=jh.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(Yh.fromJson(y.anchor),null!==(b=jh.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=jh.readBoolean(y.add_surface_depth))&&void 0!==v&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=i,e.stoneDepth=n,e.verticalGradient=r,e.water=o,e.yAbove=a}(ep||(ep={}));class Rp{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.sampler=new Mp(i.noise,i.noiseCavesEnabled,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=qh.fromList([(e,t,i,n)=>e.updateNoiseAndGenerateBaseState(t,i,n)]),this.surfaceSystem=new $p(i.surfaceRule,i.defaultBlock,e)}fill(e){var t;const i=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=Vh.cellWidth(this.settings.noise),o=Vh.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(i/o),c=Math.floor((n-i)/o),l=Ih.minBlockX(e.pos),u=Ih.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h=0;a-=1){d.selectCellYZ(a,i);for(let c=o-1;c>=0;c-=1){const p=(s+a)*o+c,m=15&p,f=e.getSectionIndex(p);e.getSectionIndex(n.minBlockY)!==f&&(n=e.getOrCreateSection(f));const g=c/o;d.updateForY(g);for(let e=0;et))}getNoiseChunk(e){return cp(this.noiseChunkCache,Ih.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=Vh.cellWidth(this.settings.noise),r=Vh.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=Ih.minBlockX(e.pos),l=Ih.minBlockZ(e.pos);return new Lp(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}let jp;(tp||(tp={})).fromJson=function(e){var t,i,n,r,o,a,s,c,l,u,d;const h=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return{structures:ip.fromJson(h.structures),surfaceRule:Qh.fromJson(h.surface_rule),noise:Vh.fromJson(h.noise),defaultBlock:rp.fromJson(h.default_block),defaultFluid:rp.fromJson(h.default_fluid),bedrockRoofPosition:null!==(i=jh.readInt(h.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(n=jh.readInt(h.bedrock_floor_position))&&void 0!==n?n:0,seaLevel:null!==(r=jh.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=jh.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=jh.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=jh.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=jh.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=jh.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=jh.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=jh.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(ip||(ip={})).fromJson=function(e){var t;const i=null!==(t=jh.readObject(e))&&void 0!==t?t:{};return{stronghold:jh.compose(i.stronghold,jh.readObject,(e=>{var t,i,n;return{distance:null!==(t=jh.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(i=jh.readInt(e.spread))&&void 0!==i?i:0,count:null!==(n=jh.readInt(e.count))&&void 0!==n?n:0}})),structures:jh.readMap(i.structures,(e=>{var t,i,n,r,o;return i=null!==(t=jh.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=jh.readInt(i.spacing))&&void 0!==n?n:0,separation:null!==(r=jh.readInt(i.separation))&&void 0!==r?r:0,salt:null!==(o=jh.readInt(i.salt))&&void 0!==o?o:0}}))}};let Ip=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Ip.decode();let Pp=null;function zp(e,t){return Ip.decode((null!==Pp&&Pp.buffer===jp.memory.buffer||(Pp=new Uint8Array(jp.memory.buffer)),Pp).subarray(e,e+t))}const Up=new Uint32Array(2),Wp=new BigInt64Array(Up.buffer);let Hp=null;function qp(){return null!==Hp&&Hp.buffer===jp.memory.buffer||(Hp=new Int32Array(jp.memory.buffer)),Hp}let Vp=null;function Kp(){return null!==Vp&&Vp.buffer===jp.memory.buffer||(Vp=new Float64Array(jp.memory.buffer)),Vp}let Gp=0;function Xp(e,t){const i=t(8*e.length);return Kp().set(e,i/8),Gp=e.length,i}let Jp=null;function Yp(e,t){const i=t(4*e.length);return(null!==Jp&&Jp.buffer===jp.memory.buffer||(Jp=new Uint32Array(jp.memory.buffer)),Jp).set(e,i/4),Gp=e.length,i}function Zp(e,t,i,n,r,o,a,s,c,l,u,d,h,p){var m=Xp(e,jp.__wbindgen_malloc),f=Gp,g=Xp(t,jp.__wbindgen_malloc),_=Gp,b=Xp(i,jp.__wbindgen_malloc),v=Gp,y=Xp(n,jp.__wbindgen_malloc),w=Gp,x=Xp(r,jp.__wbindgen_malloc),A=Gp,N=Xp(o,jp.__wbindgen_malloc),k=Gp,C=Xp(a,jp.__wbindgen_malloc),E=Gp,S=Xp(s,jp.__wbindgen_malloc),F=Gp,O=Xp(c,jp.__wbindgen_malloc),D=Gp,B=Xp(l,jp.__wbindgen_malloc),L=Gp,M=Xp(u,jp.__wbindgen_malloc),$=Gp,T=Xp(d,jp.__wbindgen_malloc),R=Gp,j=Xp(h,jp.__wbindgen_malloc),I=Gp,P=Yp(p,jp.__wbindgen_malloc),z=Gp,U=jp.biome_parameters(m,f,g,_,b,v,y,w,x,A,N,k,C,E,S,F,O,D,B,L,M,$,T,R,j,I,P,z);return nm.__wrap(U)}function Qp(e,t,i,n,r,o,a,s,c,l,u,d,h){Wp[0]=e;const p=Up[0],m=Up[1];var f=Xp(i,jp.__wbindgen_malloc),g=Gp,_=Xp(r,jp.__wbindgen_malloc),b=Gp,v=Xp(a,jp.__wbindgen_malloc),y=Gp,w=Xp(c,jp.__wbindgen_malloc),x=Gp,A=Xp(u,jp.__wbindgen_malloc),N=Gp,k=Xp(h,jp.__wbindgen_malloc),C=Gp,E=jp.climate_sampler(p,m,t,f,g,n,_,b,o,v,y,s,w,x,l,A,N,d,k,C);return rm.__wrap(E)}function em(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function tm(e,t,i,n,r,o,a,s,c,l,u){try{const m=jp.__wbindgen_add_to_stack_pointer(-16);em(e,nm),em(t,rm),jp.multi_noise(m,e.ptr,t.ptr,i,n,r,o,a,s,c,l,u);var d=qp()[m/4+0],h=qp()[m/4+1],p=function(e,t){return qp().subarray(e/4,e/4+t)}(d,h).slice();return jp.__wbindgen_free(d,4*h),p}finally{jp.__wbindgen_add_to_stack_pointer(16)}}function im(e,t,i,n,r,o,a,s,c,l){try{const p=jp.__wbindgen_add_to_stack_pointer(-16);em(e,rm),jp.climate_noise(p,e.ptr,t,i,n,r,o,a,s,c,l);var u=qp()[p/4+0],d=qp()[p/4+1],h=function(e,t){return Kp().subarray(e/8,e/8+t)}(u,d).slice();return jp.__wbindgen_free(u,8*d),h}finally{jp.__wbindgen_add_to_stack_pointer(16)}}class nm{static __wrap(e){const t=Object.create(nm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();jp.__wbg_parameterlist_free(e)}}class rm{static __wrap(e){const t=Object.create(rm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();jp.__wbg_sampler_free(e)}}async function om(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",u.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(zp(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:i,module:n}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if("application/wasm"==e.headers.get("Content-Type"))throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i)}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{const i=await WebAssembly.instantiate(e,t);return i instanceof WebAssembly.Instance?{instance:i,module:e}:i}}(await e,t);return jp=i.exports,om.__wbindgen_wasm_module=n,jp}var am="/assets/deepslate_rs_bg.4990c219.wasm";!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){"string"==typeof e?(2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var i,n,r=function(e,t,i){if("string"==typeof t){var n=s(e,t);if(null!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],a=0,c=t.length;a1&&c(n,"")>-1&&(i=RegExp(this.source,r.replace.call(s(this),"g","")),r.replace.call(e.slice(n.index),i,(function(){for(var e=1;en.index&&this.lastIndex--}return n},a||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))})),ace.define("ace/lib/es5-shim",["require","exports","module"],(function(e,t,i){function n(){}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=h.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(h.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(h.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var r,o,a,s,c,l=Function.prototype.call,u=Array.prototype,d=Object.prototype,h=u.slice,p=l.bind(d.toString),m=l.bind(d.hasOwnProperty);if((c=m(d,"__defineGetter__"))&&(r=l.bind(d.__defineGetter__),o=l.bind(d.__defineSetter__),a=l.bind(d.__lookupGetter__),s=l.bind(d.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(h.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):null==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ts)for(d=l;d--;)this[c+d]=this[s+d];if(o&&e===u)this.length=u,this.push.apply(this,r);else for(this.length=u+o,d=0;d>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=D(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,D(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:d)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(m(e,t)){var i;if(i={enumerable:!0,configurable:!0},c){var n=e.__proto__;e.__proto__=d;var r=a(e,t),o=s(e,t);if(e.__proto__=n,r||o)return r&&(i.get=r),o&&(i.set=o),i}return i.value=e[t],i}}}(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),Object.create)||(g=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=g();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,(i=new n).__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i});function y(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}if(Object.defineProperty){var w=y({}),x="undefined"==typeof document||y(document.createElement("div"));if(!w||!x)var A=Object.defineProperty}if(!Object.defineProperty||A){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(A)try{return A.call(Object,e,t,i)}catch(l){}if(m(i,"value"))if(c&&(a(e,t)||s(e,t))){var n=e.__proto__;e.__proto__=d,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!c)throw new TypeError("getters & setters can not be defined on this javascript engine");m(i,"get")&&r(e,t,i.get),m(i,"set")&&o(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze((function(){}))}catch(L){Object.freeze=(_=Object.freeze,function(e){return"function"==typeof e?e:_(e)})}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var N=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=k.length;for(var E in{toString:null})N=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)m(e,i)&&t.push(i);if(N)for(var n=0,r=C;n0||-1)*Math.floor(Math.abs(e))),e}var B=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}})),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],(function(e,t,i){e("./regexp"),e("./es5-shim")})),ace.define("ace/lib/dom",["require","exports","module"],(function(e,t,i){t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",e):document.createElement(e)},t.hasCssClass=function(e,t){return-1!==(e.className+"").split(/\s+/g).indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var r=i.indexOf(t);if(-1==r)break;n=!1,i.splice(r,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if((t=t||document).createStyleSheet&&(i=t.styleSheets)){for(;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}})),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("./keys"),r=e("./useragent"),o=null,a=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||r.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",(function(e){var t=e.touches[0];n=t.clientX,r=t.clientY})),t.addListener(e,"touchmove",(function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}}))},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",(function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)})):"onwheel"in e?t.addListener(e,"wheel",(function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)})):t.addListener(e,"DOMMouseScroll",(function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)}))},t.addMultiMouseDownListener=function(e,i,n,o){var a,s,c,l=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};function d(e){if(0!==t.getButton(e)?l=0:e.detail>1?++l>4&&(l=1):l=1,r.isIE){var d=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-s)>5;c&&!d||(l=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),1==l&&(a=e.clientX,s=e.clientY)}if(e._clicks=l,n[o]("mousedown",e),l>4)l=0;else if(l>1)return n[o](u[l],e)}function h(e){l=2,c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),n[o]("mousedown",e),n[o](u[l],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){t.addListener(e,"mousedown",d),r.isOldIE&&t.addListener(e,"dblclick",h)}))};var s=r.isMac&&r.isOpera&&!("KeyboardEvent"in window)?function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)}:function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function c(e,t,i){var c=s(t);if(!r.isMac&&o){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(c|=8),o.altGr){if(3==(3&c))return;o.altGr=0}if(18===i||17===i){var l="location"in t?t.location:t.keyLocation;if(17===i&&1===l)1==o[i]&&(a=t.timeStamp);else if(18===i&&3===c&&2===l){t.timeStamp-a<50&&(o.altGr=!0)}}}if((i in n.MODIFIER_KEYS&&(i=-1),8&c&&i>=91&&i<=93&&(i=-1),!c&&13===i)&&(3===(l="location"in t?t.location:t.keyLocation)&&(e(t,c,-i),t.defaultPrevented)))return;if(r.isChromeOS&&8&c){if(e(t,c,i),t.defaultPrevented)return;c&=-9}return!!(c||i in n.FUNCTION_KEYS||i in n.PRINTABLE_KEYS)&&e(t,c,i)}function l(){o=Object.create(null)}if(t.getModifierString=function(e){return n.KEY_MODS[s(e)]},t.addCommandKeyListener=function(e,i){var n=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var a=null;n(e,"keydown",(function(e){a=e.keyCode})),n(e,"keypress",(function(e){return c(i,e,a)}))}else{var s=null;n(e,"keydown",(function(e){o[e.keyCode]=(o[e.keyCode]||0)+1;var t=c(i,e,e.keyCode);return s=e.defaultPrevented,t})),n(e,"keypress",(function(e){s&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),s=null)})),n(e,"keyup",(function(e){o[e.keyCode]=null})),o||(l(),n(window,"focus",l))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-1";t.addListener(i,"message",(function r(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",r),e())})),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/lib/lang",["require","exports","module"],(function(e,t,i){t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;id.length?e=e.substr(9):e.substr(0,4)==d.substr(0,4)?e=e.substr(4,e.length-d.length+1):e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e==d.charAt(0)||e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),h&&(h=!1),N&&(N=!1))},C=function(e){if(!f){var t=i.value;k(t),x()}},E=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!l){var r=u||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return E(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return n.preventDefault(e);E(e,a)?(r.isIOS&&(p=o,i.value="\n aa"+a+"a a\n",i.setSelectionRange(4,4+a.length),h={value:a}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(h=!0,i.value=a,i.select(),setTimeout((function(){h=!1,x(),w(),o?t.onCut():t.onCopy()})))};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),w()):A&&w(t.selection.isEmpty())})),n.addListener(i,"input",C),n.addListener(i,"cut",(function(e){S(e,!0)})),n.addListener(i,"copy",(function(e){S(e,!1)})),n.addListener(i,"paste",(function(e){var o=E(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),n.preventDefault(e)):(i.value="",m=!0)}));var F,O=function(){if(f&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\x01/g,"");if(f.lastValue!==e&&(t.onCompositionUpdate(e),f.lastValue&&t.undo(),f.canUndo&&(f.lastValue=e),f.lastValue)){var n=t.selection.getRange();t.insert(f.lastValue),t.session.markUndoGroup(),f.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},D=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=f;f=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\x01/g,"");f||(e==n.lastValue?x():!n.lastValue&&e&&(x(),k(e)))}));A=function(e){return o&&clearTimeout(o),(e=e.replace(/\x01/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",D),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&C()}},B=a.delayedCall(O,50);function L(){clearTimeout(F),F=setTimeout((function(){g&&(i.style.cssText=g,g=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){f||!t.onCompositionStart||t.$readOnly||((f={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(O,0),t.on("mousedown",D),f.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){B.schedule()})):(n.addListener(i,"keyup",(function(){B.schedule()})),n.addListener(i,"keydown",(function(){B.schedule()}))),n.addListener(i,"compositionend",D),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){N=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){g||(g=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(F),r.isWin&&n.capture(t.container,h,L))},this.onContextMenuClose=L;var M=function(e){t.textInput.onContextMenu(e),L()};if(n.addListener(i,"mouseup",M),n.addListener(i,"mousedown",(function(e){e.preventDefault(),L()})),n.addListener(t.renderer.scroller,"contextmenu",M),n.addListener(i,"contextmenu",M),r.isIOS){var $=null,T=!1;e.addEventListener("keydown",(function(e){$&&clearTimeout($),T=!0})),e.addEventListener("keyup",(function(e){$=setTimeout((function(){T=!1}),100)}));var R=function(e){if(document.activeElement===i&&!T){if(p)return setTimeout((function(){p=!1}),100);var n=i.selectionStart,r=i.selectionEnd;if(i.setSelectionRange(4,5),n==r)switch(n){case 0:t.onCommandKey(null,0,s.up);break;case 1:t.onCommandKey(null,0,s.home);break;case 2:t.onCommandKey(null,c.option,s.left);break;case 4:t.onCommandKey(null,0,s.left);break;case 5:t.onCommandKey(null,0,s.right);break;case 7:t.onCommandKey(null,c.option,s.right);break;case 8:t.onCommandKey(null,0,s.end);break;case 9:t.onCommandKey(null,0,s.down)}else{switch(r){case 6:t.onCommandKey(null,c.shift,s.right);break;case 7:t.onCommandKey(null,c.shift|c.option,s.right);break;case 8:t.onCommandKey(null,c.shift,s.end);break;case 9:t.onCommandKey(null,c.shift,s.down)}switch(n){case 0:t.onCommandKey(null,c.shift,s.up);break;case 1:t.onCommandKey(null,c.shift,s.home);break;case 2:t.onCommandKey(null,c.shift|c.option,s.left);break;case 3:t.onCommandKey(null,c.shift,s.left)}}}};document.addEventListener("selectionchange",R),t.on("destroy",(function(){document.removeEventListener("selectionchange",R)}))}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=r.isChrome<18,c=r.isIE,l=e("./textinput_ios").TextInput;t.TextInput=function(e,t){if(r.isIOS)return l.call(this,e,t);var i=o.createElement("textarea");i.className="ace_text-input",i.setAttribute("wrap","off"),i.setAttribute("autocorrect","off"),i.setAttribute("autocapitalize","off"),i.setAttribute("spellcheck",!1),i.style.opacity="0",e.insertBefore(i,e.firstChild);var u="\u2028\u2028",d=!1,h=!1,p=!1,m="",f=!0;try{var g=document.activeElement===i}catch(T){}n.addListener(i,"blur",(function(e){t.onBlur(e),g=!1})),n.addListener(i,"focus",(function(e){g=!0,t.onFocus(e),v()})),this.focus=function(){if(m)return i.focus();var e=i.style.top;i.style.position="fixed",i.style.top="0px",i.focus(),setTimeout((function(){i.style.position="","0px"==i.style.top&&(i.style.top=e)}),0)},this.blur=function(){i.blur()},this.isFocused=function(){return g};var _=a.delayedCall((function(){g&&v(f)})),b=a.delayedCall((function(){p||(i.value=u,g&&v())}));function v(e){if(!p){if(p=!0,w)var t=0,n=e?0:i.value.length-1;else t=e?2:1,n=2;try{i.setSelectionRange(t,n)}catch(T){}p=!1}}function y(){p||(i.value=u,r.isWebKit&&b.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=f&&(f=!f,_.schedule())})),y(),g&&t.onFocus();var w=null;this.setInputHandler=function(e){w=e},this.getInputHandler=function(){return w};var x=!1,A=function(e){w&&(e=w(e),w=null),h?(v(),e&&t.onPaste(e),h=!1):e==u.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==u?e=e.substr(2):e.charAt(0)==u.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},N=function(e){if(!p){var t=i.value;A(t),y()}},k=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!s){var r=c||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return k(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);k(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(d=!0,i.value=o,i.select(),setTimeout((function(){d=!1,y(),v(),r?t.onCut():t.onCopy()})))},E=function(e){C(e,!0)},S=function(e){C(e,!1)},F=function(e){var o=k(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(v),n.preventDefault(e)):(i.value="",h=!0)};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;d?d=!1:0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),v()):w&&v(t.selection.isEmpty())})),n.addListener(i,"input",N),n.addListener(i,"cut",E),n.addListener(i,"copy",S),n.addListener(i,"paste",F),"oncut"in i&&"oncopy"in i&&"onpaste"in i||n.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:S(e);break;case 86:F(e);break;case 88:E(e)}}));var O,D=function(){if(p&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\u2028/g,"");if(p.lastValue!==e&&(t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e),p.lastValue)){var n=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},B=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=p;p=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\u2028/g,"");p||(e==n.lastValue?y():!n.lastValue&&e&&(y(),A(e)))}));w=function(e){return o&&clearTimeout(o),(e=e.replace(/\u2028/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",B),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&N()}},L=a.delayedCall(D,50);function M(){clearTimeout(O),O=setTimeout((function(){m&&(i.style.cssText=m,m=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){p||!t.onCompositionStart||t.$readOnly||((p={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(D,0),t.on("mousedown",B),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){L.schedule()})):(n.addListener(i,"keyup",(function(){L.schedule()})),n.addListener(i,"keydown",(function(){L.schedule()}))),n.addListener(i,"compositionend",B),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){x=!0,v(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){m||(m=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,h,M))},this.onContextMenuClose=M;var $=function(e){t.textInput.onContextMenu(e),M()};n.addListener(i,"mouseup",$),n.addListener(i,"mousedown",(function(e){e.preventDefault(),M()})),n.addListener(t.renderer.scroller,"contextmenu",$),n.addListener(i,"contextmenu",$)}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){e("../lib/dom"),e("../lib/event");var n=e("../lib/useragent");function r(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(0!==o){var a=r.getSelectionRange().isEmpty();return r.$blockScrolling++,(a||1==o)&&r.selection.moveToPosition(i),r.$blockScrolling--,void(2==o&&(r.textInput.onContextMenu(e.domEvent),n.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||r.isFocused()||(r.focus(),!this.$focusTimout||this.$clickSelection||r.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var a=this.$clickSelection.comparePoint(r.start),s=this.$clickSelection.comparePoint(r.end);if(-1==a&&s<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==s&&a>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==a&&1==s)n=r.end,t=r.start;else{var c=o(this.$clickSelection,n);n=c.cursor,t=c.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e,t,i,n,r=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,i=this.x,n=this.y,Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))),o=Date.now();(r>0||o-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session.getBracketRange(t);n?(n.isEmpty()&&(n.start.column--,n.end.column++),this.setState("select")):(n=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=n,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,a=e.wheelY/r;r<250&&(o=(o+i.vx)/2,a=(a+i.vy)/2);var s=Math.abs(o/a),c=!1;if(s>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(c=!0),s<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(c=!0),c)i.allowed=n;else if(n-i.allowed<250){Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(a)<=1.1*Math.abs(i.vy)?(c=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=a,c?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(r.prototype),t.DefaultHandlers=r})),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}(function(){this.$init=function(){return this.$element=n.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){n.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){n.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(r.prototype),t.Tooltip=r})),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/event"),a=e("../tooltip").Tooltip;function s(e){a.call(this,e)}r.inherits(s,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();(e+=15)+r>i&&(e-=e+r-i),(t+=15)+o>n&&(t-=20+o),a.prototype.setPosition.call(this,e,t)}}.call(s.prototype),t.GutterHandler=function(e){var t,i,r,a=e.editor,c=a.renderer.$gutterLayer,l=new s(a.container);function u(){t&&(t=clearTimeout(t)),r&&(l.hide(),r=null,a._signal("hideGutterTooltip",l),a.removeEventListener("mousewheel",u))}function d(e){l.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(a.isFocused()&&0==t.getButton()&&"foldWidgets"!=c.getRegion(t)){var i=t.getDocumentPosition().row,n=a.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(o){var s=o.domEvent.target||o.domEvent.srcElement;if(n.hasCssClass(s,"ace_fold-widget"))return u();r&&e.$tooltipFollowsMouse&&d(o),i=o,t||(t=setTimeout((function(){t=null,i&&!e.isMousePressed?function(){var t=i.getDocumentPosition().row,n=c.$annotations[t];if(!n)return u();if(t==a.session.getLength()){var o=a.renderer.pixelToScreenCoordinates(0,i.y).row,s=i.$pos;if(o>a.session.documentToScreenRow(s.row,s.column))return u()}if(r!=n)if(r=n.text.join("
    "),l.setHtml(r),l.show(),a._signal("showGutterTooltip",l),a.on("mousewheel",u),e.$tooltipFollowsMouse)d(i);else{var h=i.domEvent.target.getBoundingClientRect(),p=l.getElement().style;p.left=h.right+"px",p.top=h.bottom+"px"}}():u()}),50))})),o.addListener(a.renderer.$gutter,"mouseout",(function(e){i=null,r&&!t&&(t=setTimeout((function(){t=null,u()}),50))})),a.on("changeSession",u)}})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/event"),o=e("../lib/useragent");function a(e){var t=e.editor,i=n.createElement("img");i.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",o.isOpera&&(i.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var a,c,l,u,d,h,p,m,f,g,_,b=t.container,v=0;function y(){var e=h;(function(e,i){var n=Date.now(),r=!i||e.row!=i.row,o=!i||e.column!=i.column;!g||r||o?(t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,g=n,_={x:c,y:l}):s(_.x,_.y,c,l)>5?g=null:n-g>=200&&(t.renderer.scrollCursorIntoView(),g=null)})(h=t.renderer.screenToTextCoordinates(c,l),e),function(e,i){var n=Date.now(),r=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,a=t.renderer.scroller.getBoundingClientRect(),s={x:{left:c-a.left,right:a.right-c},y:{top:l-a.top,bottom:a.bottom-l}},u=Math.min(s.x.left,s.x.right),d=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};u/o<=2&&(h.column+=s.x.left=200&&t.renderer.scrollCursorIntoView(h):f=n:f=null}(h,e)}function w(){d=t.selection.toOrientedRange(),a=t.session.addMarker(d,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),y(),u=setInterval(y,20),v=0,r.addListener(document,"mousemove",N)}function x(){clearInterval(u),t.session.removeMarker(a),a=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(d),t.$blockScrolling-=1,t.isFocused()&&!m&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),d=null,h=null,v=0,f=null,g=null,r.removeListener(document,"mousemove",N)}this.onDragStart=function(e){if(this.cancelDrag||!b.draggable){var n=this;return setTimeout((function(){n.startSelect(),n.captureMouse(e)}),0),e.preventDefault()}d=t.getSelectionRange();var r=e.dataTransfer;r.effectAllowed=t.getReadOnly()?"copy":"copyMove",o.isOpera&&(t.container.appendChild(i),i.scrollTop=0),r.setDragImage&&r.setDragImage(i,0,0),o.isOpera&&t.container.removeChild(i),r.clearData(),r.setData("Text",t.session.getTextRange()),m=!0,this.setState("drag")},this.onDragEnd=function(e){if(b.draggable=!1,m=!1,this.setState(null),!t.getReadOnly()){var i=e.dataTransfer.dropEffect;p||"move"!=i||t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||w(),v++,e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||(w(),v++),null!==A&&(A=null),e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragLeave=function(e){if(--v<=0&&a)return x(),p=null,r.preventDefault(e)},this.onDrop=function(e){if(h){var i=e.dataTransfer;if(m)switch(p){case"move":d=d.contains(h.row,h.column)?{start:h,end:h}:t.moveText(d,h);break;case"copy":d=t.moveText(d,h,!0)}else{var n=i.getData("Text");d={start:h,end:t.session.insert(h,n)},t.focus(),p=null}return x(),r.preventDefault(e)}},r.addListener(b,"dragstart",this.onDragStart.bind(e)),r.addListener(b,"dragend",this.onDragEnd.bind(e)),r.addListener(b,"dragenter",this.onDragEnter.bind(e)),r.addListener(b,"dragover",this.onDragOver.bind(e)),r.addListener(b,"dragleave",this.onDragLeave.bind(e)),r.addListener(b,"drop",this.onDrop.bind(e));var A=null;function N(){null==A&&(A=setTimeout((function(){null!=A&&a&&x()}),20))}function k(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function C(e){var t=["copy","copymove","all","uninitialized"],i=o.isMac?e.altKey:e.ctrlKey,n="uninitialized";try{n=e.dataTransfer.effectAllowed.toLowerCase()}catch(a){}var r="none";return i&&t.indexOf(n)>=0?r="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(n)>=0?r="move":t.indexOf(n)>=0&&(r="copy"),r}}function s(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(a.prototype),t.DragdropHandler=a})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,i){var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var a=0;a1&&(r=i[i.length-2]);var a=s[t+"Path"];return null==a?a=s.basePath:"/"==n&&(t=n=""),a&&"/"!=a.slice(-1)&&(a+="/"),a+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,a;Array.isArray(i)&&(a=i[0],i=i[1]);try{o=e(i)}catch(c){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],(function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return s();r.loadScript(t.moduleUrl(i,a),s)}},c(!0),t.init=c})),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,a=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,c=e("./dragdrop_handler").DragdropHandler,l=e("../config"),u=function(e){var t=this;this.editor=e,new o(this),new a(this),new c(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},s=e.renderer.getMouseEventTarget();n.addListener(s,"click",this.onMouseEvent.bind(this,"click")),n.addListener(s,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([s,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var l=e.renderer.$gutter;n.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(s,"mousedown",i),n.addListener(l,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",(function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}}))};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new s(t,this.editor))},this.onMouseWheel=function(e,t){var i=new s(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new s(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,a=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new s(e,o.editor),o.$mouseMoved=!0}},c=function(e){clearInterval(u),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout((function(){c(e)}));o.$onCaptureMouseMove=a,o.releaseMouse=n.capture(this.editor.container,a,c);var u=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(u.prototype),l.defineOptions(u.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=u})),ace.define("ace/mouse/fold_handler",["require","exports","module"],(function(e,t,i){t.FoldHandler=function(e){e.on("click",(function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())})),e.on("gutterclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}})),e.on("gutterdblclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var a=n.getFoldAt(i,n.getLine(i).length,1);a?n.removeFold(a):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}}))}})),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),null==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map((function(i){return i.getStatusText&&i.getStatusText(t,e)||""})).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,a=!1,s=this.$editor.commands,c=this.$handlers.length;c--&&!((o=this.$handlers[c].handleKeyboard(this.$data,e,t,i,n))&&o.command&&((a="null"==o.command||s.exec(o.command,this.$editor,o.args,n))&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),a)););return a||-1!=e||(o={command:"insertstring"},a=s.exec("insertstring",this.$editor,t)),a&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),a},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o})),ace.define("ace/lib/bidiutil",["require","exports","module"],(function(e,t,i){var n=0,r=0,o=!1,a=!1,s=!1,c=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],u=11,d=18,h=[d,d,d,d,d,d,d,d,d,6,5,6,8,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,5,5,5,6,8,4,4,u,u,u,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,d,d,d,d,d,d,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,9,4,u,u,u,u,4,4,4,4,0,4,4,d,4,4,u,u,2,2,4,0,4,4,4,2,0,4,4,4,4,4],p=[8,8,8,8,8,8,8,8,8,8,8,d,d,d,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,u,u,u,u,u,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function m(e,t,i){if(!(r=e){for(o=d+1;o=e;)o++;for(s=d,c=o-1;s=t.length||2!=(c=i[r-1])&&3!=c||2!=(l=t[r+1])&&3!=l?4:(o&&(l=3),l==c?l:4);case 10:return 2==(c=r>0?i[r-1]:5)&&r+10&&2==i[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p=1425&&f<=2303||64286==f;if(c=t[p],g&&(1==c||7==c))return 1}return r<1||5==(c=t[r-1])?4:i[r-1];case 5:return o=!1,a=!0,n;case 6:return s=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case d:return 4}}function g(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?0:h[t]:5==i?/[\u0591-\u05f4]/.test(e)?1:0:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==i&&t<=8287?p[255&t]:254==i&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,u){if(e.length<2)return{};var h=e.split(""),p=new Array(h.length),_=new Array(h.length),b=[];n=u?1:0,function(e,t,i,u){var d=n?l:c,h=null,p=null,m=null,_=0,b=null,v=-1,y=null,w=null,x=[];if(!u)for(y=0,u=[];y0)if(16==b){for(y=v;y-1){for(y=v;y=0&&8==u[A];A--)t[A]=n}}(h,b,h.length,i);for(var v=0;v7&&i[v]<13||4===i[v]||i[v]===d)?b[v]=t.ON_R:v>0&&"ل"===h[v-1]&&/\u0622|\u0623|\u0625|\u0627/.test(h[v])&&(b[v-1]=b[v]=t.R_H,v++);h[h.length-1]===t.DOT&&(b[h.length-1]=t.B);for(v=0;v=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=l&&ri+a/2;){if(i+=a,r===o.length-1){a=0;break}a=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===a&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==a&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s})),ace.define("ace/range",["require","exports","module"],(function(e,t,i){var n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return 1==(t=this.compare(i.row,i.column))?1==(t=this.compare(n.row,n.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(n.row,n.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?a.fromPoints(t,t):this.isBackwards()?a.fromPoints(t,e):a.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new a(n,0,i,this.session.getLine(i).length):new a(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);if(r)this.moveCursorTo(r.end.row,r.end.column);else{if(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length)return this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)}},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),a=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-a)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return a.fromPoints(t,i)}catch(n){return a.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=a.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(s.prototype),t.Selection=s})),ace.define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,i){var n=e("./config"),r=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},a="g",s=[],c=0;c1?this.$applyToken:l.token),d>1&&(/\\\d/.test(l.regex)?u=l.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+r+1)})):(d=1,u=this.removeCapturingGroups(l.regex)),l.splitRegex||"string"==typeof l.token||s.push(l)),o[r]=c,r+=d,n.push(u),l.onMatch||(l.onMatch=null)}}n.length||(o[0]=0,n.push("$")),s.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,a)}),this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",a)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;ru){var _=e.substring(u,g-f.length);h.type==p?h.value+=_:(h.type&&l.push(h),h={type:p,value:_})}for(var b=0;br){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:l,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,i){var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)i+=e[t-=1].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,i){var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),c=["text","paren.rparen","punctuation.operator"],l=["text","paren.rparen","punctuation.operator","comment"],u={},d={'"':'"',"'":"'"},h=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return n=u[t];n=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},m=function(e){this.add("braces","insertion",(function(t,i,r,o,a){var c=r.getCursorPosition(),l=o.doc.getLine(c.row);if("{"==a){h(r);var u=r.getSelectionRange(),d=o.doc.getTextRange(u);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return p(u,d,"{","}");if(m.isSaneInsertion(r,o))return/[\]\}\)]/.test(l[c.column])||r.inMultiSelectMode||e&&e.braces?(m.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==a){if(h(r),"}"==l.substring(c.column,c.column+1))if(null!==o.$findOpeningBracket("}",{column:c.column+1,row:c.row})&&m.isAutoInsertedClosing(c,l,a))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==a||"\r\n"==a){h(r);var f="";if(m.isMaybeInsertedClosing(c,l)&&(f=s.stringRepeat("}",n.maybeInsertedBrackets),m.clearMaybeInsertedClosing()),"}"===l.substring(c.column,c.column+1)){var g=o.findMatchingBracket({row:c.row,column:c.column+1},"}");if(!g)return null;var _=this.$getIndent(o.getLine(g.row))}else{if(!f)return void m.clearMaybeInsertedClosing();_=this.$getIndent(l)}var b=_+o.getTabString();return{text:"\n"+b+"\n"+_+f,selection:[1,b.length,1,b.length]}}m.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,i,r,o){var a=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==a){if(h(i),"}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,i,n,r){if("("==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"(",")");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if(")"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket(")",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o&&(h(i),")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("brackets","insertion",(function(e,t,i,n,r){if("["==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"[","]");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if("]"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket("]",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o&&(h(i),"]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("string_dquotes","insertion",(function(e,t,i,n,r){var o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;h(i);var a=r,s=i.getSelectionRange(),c=n.doc.getTextRange(s);if(!(""===c||1==c.length&&o[c])&&i.getWrapBehavioursEnabled())return p(s,c,a,a);if(!c){var l=i.getCursorPosition(),u=n.doc.getLine(l.row),m=u.substring(l.column-1,l.column),f=u.substring(l.column,l.column+1),g=n.getTokenAt(l.row,l.column),_=n.getTokenAt(l.row,l.column+1);if("\\"==m&&g&&/escape/.test(g.type))return null;var b,v=g&&/string|escape/.test(g.type),y=!_||/string|escape/.test(_.type);if(f==a)(b=v!==y)&&/string\.end/.test(_.type)&&(b=!1);else{if(v&&!y)return null;if(v&&y)return null;var w=n.$mode.tokenRe;w.lastIndex=0;var x=w.test(m);w.lastIndex=0;var A=w.test(m);if(x||A)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;b=!0}return{text:b?a+a:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)&&(h(i),n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o))return r.end.column++,r}))};m.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new a(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",c)){var r=new a(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",c))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",l)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},m.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(m,o),t.CstyleBehaviour=m})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,i){t.packages={},function(e){var i=/\w{4}/g;for(var n in e)t.packages[n]=e[n].replace(i,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})})),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,a=e("../unicode"),s=e("../lib/lang"),c=e("../token_iterator").TokenIterator,l=e("../range").Range,u=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){var r=t.doc,o=!0,a=!0,c=1/0,l=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))f=this.lineCommentStart.map(s.escapeRegExp).join("|"),p=this.lineCommentStart[0];else f=s.escapeRegExp(this.lineCommentStart),p=this.lineCommentStart;f=new RegExp("^(\\s*)(?:"+f+") ?"),u=t.getUseSoftTabs();b=function(e,t){var i=e.match(f);if(i){var n=i[1].length,o=i[0].length;h(e,n,o)||" "!=i[0][o-1]||o--,r.removeInLine(t,n,o)}};var d=p+" ",h=(_=function(e,t){o&&!/\S/.test(e)||(h(e,c,c)?r.insertInLine({row:t,column:c},d):r.insertInLine({row:t,column:c},p))},v=function(e,t){return f.test(e)},function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%l!=0)return!1;for(n=0;" "==e.charAt(i++);)n++;return l>2?n%l!=l-1:n%l==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,m=this.blockComment.end,f=new RegExp("^(\\s*)(?:"+s.escapeRegExp(p)+")"),g=new RegExp("(?:"+s.escapeRegExp(m)+")\\s*$"),_=function(e,t){v(e,t)||o&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},m),r.insertInLine({row:t,column:c},p))},b=function(e,t){var i;(i=e.match(g))&&r.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(f))&&r.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(f.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(w=e.length)})),c==1/0&&(c=w,o=!1,a=!1),u&&c%l!=0&&(c=Math.floor(c/l)*l),y(a?b:_)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o=(f=new c(t,n.row,n.column)).getCurrentToken();t.selection;var a,s,u=t.selection.toOrientedRange();if(o&&/comment/.test(o.type)){for(var d,h;o&&/comment/.test(o.type);){if(-1!=(g=o.value.indexOf(r.start))){var p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;d=new l(p,m,p,m+r.start.length);break}o=f.stepBackward()}var f;for(o=(f=new c(t,n.row,n.column)).getCurrentToken();o&&/comment/.test(o.type);){var g;if(-1!=(g=o.value.indexOf(r.end))){p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;h=new l(p,m,p,m+r.end.length);break}o=f.stepForward()}h&&t.remove(h),d&&(t.remove(d),a=d.start.row,s=-r.start.length)}else s=r.start.length,a=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);u.start.row==a&&(u.start.column+=s),u.end.row==a&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var i=function(t,i,n){var r="insert"==t.action,o=(r?1:-1)*(t.end.row-t.start.row),a=(r?1:-1)*(t.end.column-t.start.column),s=t.start,c=r?s:t.end;if(e(i,s,n))return{row:i.row,column:i.column};if(e(c,i,!n))return{row:i.row+o,column:i.column+(i.row==c.row?a:0)};return{row:s.row,column:s.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)})),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,i){var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new s(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return null==t&&(t=n.length),{row:e,column:t=Math.min(Math.max(t,0),n.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0;(e=Math.min(Math.max(e,0),this.getLength()))0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof a||(e=a.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,a=0,s=0;;){a=s,s+=t-1;var c=i.slice(a,s);if(s>n){e.lines=c,e.start.row=r+a,e.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(r+a,o),end:this.pos(r+s,o=0),action:e.action,lines:c},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang");e("./lib/oop");var r=e("./range").Range,o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var a=o.firstRow,s=o.lastRow,c=a;c<=s;c++){var l=this.cache[c];null==l&&((l=n.getMatchOffsets(i.getLine(c),this.regExp)).length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map((function(e){return new r(c,e.offset,c,e.offset+e.length)})),this.cache[c]=l.length?l:"");for(var u=l.length;u--;)t.drawSingleLineMarker(e,l[u].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o})),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range;function r(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new n(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o=0,a=this.folds,s=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var c=n(e,a.start);return 0===s?t&&0!==c?-o-2:o:c>0||0===c&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){for(var e,t=[],i=this.ranges,r=(i=i.sort((function(e,t){return n(e.start,t.start)})))[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(l.start.row==n&&l.start.column>=t.column&&(l.start.column==t.column&&this.$insertRight||(l.start.column+=o,l.start.row+=r)),l.end.row==n&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&sl.start.column&&l.end.column==a[s+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=r}}}if(0!=r&&s=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){s=e?n-=t-s:n=0);break}a>=e&&(n-=s>=e?a-s:a-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var i,n=this.$foldData,a=!1;e instanceof o?i=e:(i=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(i.range);var s=i.start.row,c=i.start.column,l=i.end.row,u=i.end.column;if(!(s0&&(this.removeFolds(p),p.forEach((function(e){i.addSubFold(e)})));for(var m=0;m0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var i,r;if(null==e?(i=new n(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new n(e,0,e,this.getLine(e).length):"row"in e?n.fromPoints(e,e):e,r=this.getFoldsInRangeList(i),t)this.removeFolds(r);else for(var o=r;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,a="";return e.walk((function(e,t,i,s){if(!(tu)break}while(o&&c.test(o.type));o=r.stepBackward()}else o=r.getCurrentToken();return l.end.row=r.getCurrentTokenRow(),l.end.column=r.getCurrentTokenColumn()+o.value.length-2,l}},this.foldAll=function(e,t,i){null==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength();for(var r=e=e||0;r=e){r=o.end.row;try{var a=this.addFold("...",o);a&&(a.collapseChildren=i)}catch(s){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){this.$foldMode!=e&&(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),e&&"manual"!=this.$foldStyle?(this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)):this.foldWidgets=null)},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var a=this.getFoldWidgetRange(r);if(n||(n=a),a&&a.end.row>=e)break}r--}return{range:-1!==r&&a,firstRange:n}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var a=this.getFoldWidgetRange(e,!0);if(a&&!a.isMultiLine()&&(o=this.getFoldAt(a.start.row,a.start.column,1))&&a.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var c=s.range.start.row+1,l=s.range.end.row;this.foldAll(c,l,t.all?1e4:0)}else t.children?(l=a?a.end.row:this.getLength(),this.foldAll(e+1,l,t.all?1e4:0)):a&&(t.all&&(a.collapseChildren=1e4),this.addFold("...",a));return a}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../token_iterator").TokenIterator,r=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,o=i.charAt(e.column-1),a=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(a||(o=i.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(/([\(\[\{])|([\)\]\}])/),n=!1),!a)return null;if(a[1]){if(!(s=this.$findClosingBracket(a[1],e)))return null;t=r.fromPoints(e,s),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s;if(!(s=this.$findOpeningBracket(a[2],e)))return null;t=r.fromPoints(s,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn()-2,l=s.value;;){for(;c>=0;){var u=l.charAt(c);if(u==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else u==e&&(o+=1);c-=1}do{s=a.stepBackward()}while(s&&!i.test(s.type));if(null==s)break;c=(l=s.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn();;){for(var l=s.value,u=l.length;ci&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))r=/\s/;else r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var a=t;ae&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],a=o?o.start.row:1/0,s=t.length,c=0;ca){if((c=o.end.row+1)>=s)break;a=(o=this.$foldData[r++])?o.start.row:1/0}null==i[c]&&(i[c]=this.$getStringScreenWidth(t[c])[0]),i[c]>n&&(n=i[c])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach((function(e){this.addFolds(e.folds)}),this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=l),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=l)),a&&o.start.row>=e.end.row&&(o.start.row+=a,o.end.row+=a)}if(o.end=this.insert(o.start,n),r.length){var s=e.start,c=o.start,l=(a=c.row-s.row,c.column-s.column);this.addFolds(r.map((function(e){return(e=e.clone()).start.row==s.row&&(e.start.column+=l),e.end.row==s.row&&(e.end.column+=l),e.start.row+=a,e.end.row+=a,e})))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new u(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var a=0;a0){var r;if((r=this.getRowFoldEnd(t+i))>this.doc.getLength()-1)return 0;n=r-t}else{e=this.$clipRowToDocument(e);n=(t=this.$clipRowToDocument(t))-e+1}var o=new u(e,0,t,Number.MAX_VALUE),a=this.getFoldsInRange(o).map((function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e})),s=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,s),a.length&&this.addFolds(a),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,a=r.row,s=a-o,c=null;if(this.$updating=!0,0!=s)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,s);var l=this.$foldData;c=this.getFoldsInRange(e),this.removeFolds(c);var u=0;if(f=this.getFoldLine(r.row)){f.addRemoveChars(r.row,r.column,n.column-r.column),f.shiftRow(-s);var d=this.getFoldLine(o);d&&d!==f&&(d.merge(f),f=d),u=l.indexOf(f)+1}for(;u=r.row&&f.shiftRow(-s)}a=o}else{var h=Array(s);h.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,h);l=this.$foldData,u=0;if(f=this.getFoldLine(o)){var m=f.range.compareInside(n.row,n.column);0==m?(f=f.split(n.row,n.column))&&(f.shiftRow(s),f.addRemoveChars(a,0,r.column-n.column)):-1==m&&(f.addRemoveChars(o,0,r.column-n.column),f.shiftRow(s)),u=l.indexOf(f)+1}for(;u=o&&f.shiftRow(s)}}else s=Math.abs(e.start.column-e.end.column),"remove"===i&&(c=this.getFoldsInRange(e),this.removeFolds(c),s=-s),(f=this.getFoldLine(o))&&f.addRemoveChars(o,n.column,s);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,a):this.$updateRowLengthCache(o,a),c},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(i,n){var r,o,a=this.doc.getAllLines(),s=this.getTabSize(),c=this.$wrapData,l=this.$wrapLimit,u=i;for(n=Math.min(n,a.length-1);u<=n;)(o=this.getFoldLine(u,o))?(r=[],o.walk(function(i,n,o,s){var c;if(null!=i){(c=this.$getDisplayTokens(i,r.length))[0]=e;for(var l=1;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(i,n,r){if(0==i.length)return[];var o=[],a=i.length,s=0,c=0,l=this.$wrapAsCode,u=this.$indentedSoftWrap,d=n<=Math.max(2*r,8)||!1===u?0:Math.floor(n/2);function h(e){var t=i.slice(s,e),n=t.length;t.join("").replace(/12/g,(function(){n-=1})).replace(/2/g,(function(){n-=1})),o.length||(p=function(){var e=0;if(0===d)return e;if(u)for(var t=0;tn-p;){var m=s+n-p;if(i[m-1]>=10&&i[m]>=10)h(m);else if(i[m]!=e&&i[m]!=t){for(var f=Math.max(m-(n-(n>>2)),s-1);m>f&&i[m]f&&i[m]f&&9==i[m];)m--}else for(;m>f&&i[m]<10;)m--;m>f?h(++m):(2==i[m=s+n]&&m--,h(m-p))}else{for(;m!=s-1&&i[m]!=e;m--);if(m>s){h(m);continue}for(m=s+n;m39&&a<48||a>57&&a<64?r.push(9):a>=4352&&i(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var r,o;for(null==t&&(t=1/0),n=n||0,o=0;o=4352&&i(r)?n+=2:n+=1,!(n>t));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0){s=l[u],o=this.$docRowCache[u];var h=e>l[d-1]}else h=!d;for(var p=this.getLength()-1,m=this.getNextFoldLine(o),f=m?m.start.row:1/0;s<=e&&!(s+(c=this.getRowLength(o))>e||o>=p);)s+=c,++o>f&&(o=m.end.row+1,f=(m=this.getNextFoldLine(o,m))?m.start.row:1/0),h&&(this.$docRowCache.push(o),this.$screenRowCache.push(s));if(m&&m.start.row<=o)n=this.getFoldDisplayLine(m),o=m.start.row;else{if(s+c<=e||o>p)return{row:p,column:this.getLine(p).length};n=this.getLine(o),m=null}var g=0,_=Math.floor(e-s);if(this.$useWrapMode){var b=this.$wrapData[o];b&&(r=b[_],_>0&&b.length&&(g=b.indent,a=b[_-1]||b[b.length-1],n=n.substring(a)))}return void 0!==i&&this.$bidiHandler.isBidiRow(s+_,o,_)&&(t=this.$bidiHandler.offsetToCol(i)),a+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&a>=r&&(a=r-1),m?m.idxToPosition(a):{row:o,column:a}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n,r=0,o=null;(n=this.getFoldAt(e,t,1))&&(e=n.start.row,t=n.start.column);var a,s=0,c=this.$docRowCache,l=this.$getRowCacheIndex(c,e),u=c.length;if(u&&l>=0){s=c[l],r=this.$screenRowCache[l];var d=e>c[u-1]}else d=!u;for(var h=this.getNextFoldLine(s),p=h?h.start.row:1/0;s=p){if((a=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(a,h))?h.start.row:1/0}else a=s+1;r+=this.getRowLength(s),s=a,d&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var m="";h&&s>=p?(m=this.getFoldDisplayLine(h,e,t),o=h.start.row):(m=this.getLine(e).substring(0,t),o=e);var f=0;if(this.$useWrapMode){var g=this.$wrapData[o];if(g){for(var _=0;m.length>=g[_];)r++,_++;m=m.substring(g[_-1]||0,m.length),f=_>0?g.indent:0}}return{row:r,column:f+this.$getStringScreenWidth(m)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=(s=0,(t=this.$foldData[s++])?t.start.row:1/0);nr&&(n=t.end.row+1,r=(t=this.$foldData[s++])?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,s=0;si);o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=i}.call(m.prototype),e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),a.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach((function(e,i,r,a){return n=new o(e,i,r,a),!(i==a&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)})),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,r=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),a=[],s=t.re;if(t.$isMultiLine){var c,l=s.length,u=r.length-l;e:for(var d=s.offset||0;d<=u;d++){for(var h=0;hf||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_w&&a[h].end.row==i.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_=s;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=c,s=a.row;i>=s;i--)if(d(i,Number.MAX_VALUE,e))return}};else l=function(e){var i=a.row;if(!d(i,a.column,e)){for(i+=1;i<=c;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=s,c=a.row;i<=c;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var u=i.length,d=function(t,r,o){var a=n?t-u+1:t;if(!(a<0)){var s=e.getLine(a),c=s.search(i[0]);if(!(!n&&cr))return!!o(a,c,a+u-1,d)||void 0}}};else if(n)d=function(t,n,r){var o,a=e.getLine(t),s=[],c=0;for(i.lastIndex=0;o=i.exec(a);){var l=o[0].length;if(c=o.index,!l){if(c>=a.length)break;i.lastIndex=c+=1}if(o.index+l>n)break;s.push(o.index,l)}for(var u=s.length-1;u>=0;u-=2){var d=s[u-1];if(r(t,d,t,d+(l=s[u])))return!0}};else d=function(t,n,r){var o,a=e.getLine(t),s=n;for(i.lastIndex=n;o=i.exec(a);){var c=o[0].length;if(r(t,s=o.index,t,s+c))return!0;if(!c&&(i.lastIndex=s+=1,s>=a.length))return!1}};return{forEach:l}}}).call(a.prototype),t.Search=a})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/useragent"),o=n.KEY_MODS;function a(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){a.call(this,e,t),this.$singleCommand=!1}s.prototype=a.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var a=o.indexOf(e);-1!=a&&(o.splice(a,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(null==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach((function(e){var t=this.parseKeys(e),i=o[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")}),this),n+=" "}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(n+s,t,i)}),this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var a=o[t];for(r=0;rn)break}a.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),i=t.pop(),r=n[i];if(n.FUNCTION_KEYS[r])i=n.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var o=0,a=t.length;a--;){var s=n.KEY_MODS[t[a]];if(null==s)return"undefined"!=typeof console&&console.error("invalid modifier "+t[a]+" in "+e),!1;o|=s}return{key:i,hashId:o}},this.findKeyCommand=function(e,t){var i=o[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=o[t]+i,a=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,a=this.commandKeyBinding[e.$keyChain]||a),!a||"chainKeys"!=a&&"chainKeys"!=a[a.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:a}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(a.prototype),t.HashHandler=a,t.MultiHashHandler=s})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,a=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.command.exec(e.editor,e.args||{})}))};n.inherits(a,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(a.prototype),t.CommandManager=a})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,i){var n=e("../lib/lang"),r=e("../config"),o=e("../range").Range;function a(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(n.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),r=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(i.row).length,s=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),l=i.row+1;l<=r.row+1;l++){var u=n.stringTrimLeft(n.stringTrimRight(e.session.doc.getLine(l)));0!==u.length&&(u=" "+u),c+=u}r.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+s)):(a=e.session.doc.getLine(i.row).length>a?a+1:a,e.selection.moveCursorTo(i.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var a=0;a0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;_.loadModule(["keybinding",e],(function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new p(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new b(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,a=0,s=n.stepBackward();if("<"==s.value)do{s=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"=0);else{do{r=s,s=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new p(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,a=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(a)||n<=o&&/[\w\d]$/.test(a)))if(a=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(a))return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:a})}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){(a=new p.fromPoints(r,r)).end.column+=e.length,this.session.remove(a)}}else{var a=this.getSelectionRange();r=this.session.remove(a),this.clearSelection()}if("\n"==e||"\r\n"==e){var s=i.getLine(r.row);if(r.column>s.search(/\S|$/)){var c=s.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+c)}}this.clearSelection();var l=r.column,u=i.getState(r.row),d=(s=i.getLine(r.row),n.checkOutdent(u,s,e));if(i.insert(r,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new p(r.row,l+o.selection[0],r.row,l+o.selection[1])):this.selection.setSelectionRange(new p(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var h=n.getNextLineIndent(u,s.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},h)}d&&n.autoOutdent(u,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var a=i.getLine(t.end.row);/^\s+$/.test(a)&&(t.end.column=a.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var r=new p(0,0,0,0);for(n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new p(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var a=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,s=o.start+o.value.length-a,c=parseFloat(o.value);c*=Math.pow(10,s),a!==o.end&&ip+1)break;p=m.last}for(u--,s=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(d=u+1);d<=u;)a[d].moveBy(s,0),d++;t||(s=0),c+=s}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(r,0)})):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new b(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var a,s,c=!1,l={},u=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;u=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return null!==(t=this.$search.replace(i,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(r)||this.$search.$options.needle)||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",(function(){n=!0})),a=this.renderer.on("beforeRender",(function(){n&&(t=i.renderer.container.getBoundingClientRect())})),s=this.renderer.on("afterRender",(function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,a=e.layerConfig,s=o.top-a.offset;null!=(n=o.top>=0&&s+t.top<0||!(o.topwindow.innerHeight)&&null)&&(r.style.top=s+"px",r.style.left=o.left+"px",r.style.height=a.lineHeight+"px",r.scrollIntoView(n)),n=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",s),this.renderer.off("beforeRender",a))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(v.prototype),_.defineOptions(v.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=v})),ace.define("ace/undomanager",["require","exports","module"],(function(e,t,i){var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n})),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,a),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ta&&(f=o.end.row+1,a=(o=t.getNextFoldLine(f,o))?o.start.row:1/0),f>r){for(;this.$cells.length>m+1;)p=this.$cells.pop(),this.element.removeChild(p.element);break}(p=this.$cells[++m])||((p={element:null,textNode:null,foldWidget:null}).element=n.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[m]=p);var g="ace_gutter-cell ";if(c[f]&&(g+=c[f]),l[f]&&(g+=l[f]),this.$annotations[f]&&(g+=this.$annotations[f].className),p.element.className!=g&&(p.element.className=g),(b=t.getRowLength(f)*e.lineHeight+"px")!=p.element.style.height&&(p.element.style.height=b),s){var _=s[f];null==_&&(_=s[f]=t.getFoldWidget(f))}if(_){p.foldWidget||(p.foldWidget=n.createElement("span"),p.element.appendChild(p.foldWidget));g="ace_fold-widget ace_"+_;"start"==_&&f==a&&fi.right-t.right?"foldWidgets":void 0}}).call(s.prototype),t.Gutter=s})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,i){var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),a=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,a,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,i,r,o){for(var a=this.session,s=t.start.row,c=t.end.row,l=s,u=0,d=0,h=a.getScreenLastRowColumn(l),p=null,m=new n(l,t.start.column,l,d);l<=c;l++)m.start.row=m.end.row=l,m.start.column=l==s?t.start.column:a.getRowWrapIndent(l),m.end.column=h,u=d,d=h,h=l+1h?4:0)|(l==c?8:0)),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(e,m,p,r,l==c?0:1,o):this.drawSingleLineMarker(e,m,p,r,l==c?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,a,s,c=this.$padding;(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((l=t.clone()).end.row=l.start.row,l.end.column=this.session.getLine(l.start.row).length,this.drawBidiSingleLineMarker(e,l,i+" ace_br1 ace_start",n,null,r)):(o=n.lineHeight,a=this.$getTop(t.start.row,n),s=c+t.start.column*n.characterWidth,e.push("
    "));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var l;(l=t.clone()).start.row=l.end.row,l.start.column=0,this.drawBidiSingleLineMarker(e,l,i+" ace_br12",n,null,r)}else{var u=t.end.column*n.characterWidth;o=n.lineHeight,a=this.$getTop(t.end.row,n),e.push("
    ")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
    ")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=(t.end.column+(r||0)-t.start.column)*n.characterWidth,c=this.$getTop(t.start.row,n),l=this.$padding+t.start.column*n.characterWidth;e.push("
    ")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=this.$getTop(t.start.row,n),c=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(t){e.push("
    ")}))},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;t.start.row!=t.end.row&&(a+=this.$getTop(t.end.row,n)-o),e.push("
    ")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;e.push("
    ")}}).call(o.prototype),t.Marker=o})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang");e("../lib/useragent");var a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",a="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",a=" ace_invisible_tab";var s=o.stringRepeat(this.SPACE_CHAR,this.tabSize),c=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else c=s=o.stringRepeat(" ",this.tabSize);this.$tabStrings[" "]=""+s+"",this.$tabStrings["\t"]=""+c+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,a=0,s=e.firstRow;sl&&(s=c.end.row+1,l=(c=this.session.getNextFoldLine(s,c))?c.start.row:1/0),!(s>r);){var u=o[a++];if(u){var d=[];this.$renderLine(d,s,!this.$useLineGroups(),s==l&&c),u.style.height=e.lineHeight*this.session.getRowLength(s)+"px",u.innerHTML=d.join("")}s++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,a=this.session.getNextFoldLine(o),s=a?a.start.row:1/0;o>s&&(o=a.end.row+1,s=(a=this.session.getNextFoldLine(o,a))?a.start.row:1/0),!(o>i);){var c=r.createElement("div"),l=[];if(this.$renderLine(l,o,!1,o==s&&a),c.innerHTML=l.join(""),this.$useLineGroups())c.className="ace_line_group",n.appendChild(c),c.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;c.firstChild;)n.appendChild(c.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),a=o?o.start.row:1/0;r>a&&(r=o.end.row+1,a=(o=this.session.getNextFoldLine(r,o))?o.start.row:1/0),!(r>n);)this.$useLineGroups()&&t.push("
    "),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("
    "),r++;this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(e,i,n,a,s){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var c=r.session.getScreenTabSize(t+a);return t+=c-1,r.$tabStrings[c]}if(" "==e){var l=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",u=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+u+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")}));if(this.$textToken[i.type])e.push(a);else{var s="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,a=0,s=i[0],c=0,l=0;l=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,n||e.push("
    ","
    "),e.push(o.stringRepeat(" ",i.indent)),c=0,s=i[++a]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,c=this.$renderToken(e,c,u,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
    ")},this.$getFoldLineTokens=function(e,t){var i=this.session,n=[];var r=i.getTokens(e);return t.walk((function(e,t,o,a,s){null!=e?n.push({type:"fold",value:e}):(s&&(r=i.getTokens(t)),r.length&&function(e,t,i){for(var r=0,o=0;o+e[r].value.lengthi-t&&(a=a.substring(0,i-t)),n.push({type:e[r].type,value:a}),o=t+a.length,r+=1);oi?n.push({type:e[r].type,value:a.substring(0,i-o)}):n.push(e[r]),o+=a.length,r+=1}}(r,a,o))}),t.end.row,this.session.getLine(t.end.row).length),n},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(s.prototype),t.Text=s})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);i=0;for(var r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var a=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(a,o,e,t[i],this.session):(a.left=o.left+"px",a.top=o.top+"px",a.width=e.characterWidth+"px",a.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var s=this.session.getOverwrite();this.$setOverwrite(s),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter,s=32768,c=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(c.prototype);var l=function(e,t){c.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,c),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>s?(this.coeff=s/e,e=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var u=function(e,t){c.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(u,c),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(u.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=u,t.VScrollBar=l,t.HScrollBar=u})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,i){var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame((function(){var e;for(t.pending=!1;e=t.changes;)t.changes=0,t.onRender(e)}),this.window)}}}).call(r.prototype),t.RenderLoop=r})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),a=e("../lib/useragent"),s=e("../lib/event_emitter").EventEmitter,c=0,l=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),c||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",c),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;c=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval((function(){e.checkForSizeChanges()}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===c){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(i){e={width:0,height:0}}var t={height:e.height,width:e.width/c}}else t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/c};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(l.prototype)})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),a=e("./lib/useragent"),s=e("./layer/gutter").Gutter,c=e("./layer/marker").Marker,l=e("./layer/text").Text,u=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var n=this.$textLayer=new l(this.content);this.canvas=n.element,this.$markerFront=new c(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)})),this.scrollBarH.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",(function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,a={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",a),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)n.top=n.left="0";else{var o=this.characterWidth;if(this.$composition){var a=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(a)[0]+2,r+=2}(i-=this.scrollLeft)>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}if(e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender");if(e&this.CHANGE_SCROLL)return e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender");e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),this._signal("afterRender")}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength()*this.lineHeight,r=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-r-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var s=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;n+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,n-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,r+2*this.$padding-t.scrollerWidth+d.right)));var h=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-n+u<0||this.scrollTop>d.top),p=s!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var m,f,g=Math.ceil(l/this.lineHeight)-1,_=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),b=_+g,v=this.lineHeight;_=e.screenToDocumentRow(_,0);var y=e.getFoldLine(_);y&&(_=y.start.row),m=e.documentToScreenRow(_,0),f=e.getRowLength(_)*v,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(b)*v+f,c=this.scrollTop-m*v;var w=0;return this.layerConfig.width!=r&&(w=this.CHANGE_H_SCROLL),(a||p)&&(w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(r=this.$getLongestLine())),this.layerConfig={width:r,padding:this.$padding,firstRow:_,firstRowScreen:m,lastRow:b,lineHeight:v,characterWidth:this.characterWidth,minHeight:l,maxHeight:n,offset:c,gutterOffset:v?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/v)):0,height:this.$size.scrollerHeight},w},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&c+a>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):c+this.$size.scrollerHeight-sr?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),a=Math.round(r);return{row:o,column:a,side:r-a>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){var i=this;if(this.$themeId=e,i._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)a(e);else{var n=e||this.$options.theme.initialValue;o.loadModule(["theme",n],a)}function a(n){if(i.$themeId!=e)return t&&t();if(!n||!n.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(n.cssText,n.cssClass,i.container.ownerDocument),i.theme&&r.removeCssClass(i.container,i.theme.cssClass);var o="padding"in n?n.padding:"padding"in(i.theme||{})?4:i.$padding;i.$padding&&o!=i.$padding&&i.setPadding(o),i.$theme=n.cssClass,i.theme=n,r.addCssClass(i.container,n.cssClass),r.setCssClass(i.container,"ace_dark",n.isDark),i.$size&&(i.$size.width=0,i.$updateSizeAsync()),i._dispatchEvent("themeLoaded",{theme:n}),t&&t()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/net"),o=e("../lib/event_emitter").EventEmitter,a=e("../config");function s(e,t){var i=function(e,t){var i=t.src;r.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(o){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(i),n.getBlob("application/javascript")}}(e,t),n=(window.URL||window.webkitURL).createObjectURL(i);return new Worker(n)}var c=function(t,i,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)r=r||a.moduleUrl(i.id,"worker");else{var c=this.$normalizePath;r=r||c(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach((function(t){l[t]=c(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}this.$worker=s(r,i),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:l,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){n.implement(this,o),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return r.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(i){console.error(i.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var l=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,s=Object.create(o),c=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){c.messageBuffer.push(e),n&&(r?setTimeout(l):l())},this.setEmitSync=function(e){r=e};var l=function(){var e=c.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){c.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],(function(e){for(n=new e[i](s);c.messageBuffer.length;)l()}))};l.prototype=c.prototype,t.UIWorkerClient=l,t.WorkerClient=c,t.createWorker=s})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,i){var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),a=function(e,t,i,n,r,o){var a=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout((function(){a.onCursorChange()}))},this.$pos=i;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)})),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var a=this.others.length-1;a>=0;a--){var s={row:(c=this.others[a]).row,column:c.column+o};this.doc.insertMergedLines(s,e.lines)}else if("remove"===e.action)for(a=this.others.length-1;a>=0;a--){var c;s={row:(c=this.others[a]).row,column:c.column+o};this.doc.remove(new n(s.row,s.column,s.row,s.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new n,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{i=this.getRange();var n=this.isBackwards(),o=i.start.row,a=i.end.row;if(o==a){if(n)var s=i.end,c=i.start;else s=i.start,c=i.end;return this.addRange(r.fromPoints(c,c)),void this.addRange(r.fromPoints(s,s))}var l=[],u=this.getLineRange(o,!0);u.start.column=i.start.column,l.push(u);for(var d=o+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),o=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)b--;if(b>0)for(var v=0;n[v].isEmpty();)v++;for(var y=b;y>=v;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(o.prototype);var h=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",a),e.commands.addCommands(l.defaultCommands),function(e){var t=e.textInput.getElement(),i=!1;function n(t){i&&(e.renderer.setMouseCursor(""),i=!1)}s.addListener(t,"keydown",(function(t){var r=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&r?i||(e.renderer.setMouseCursor("crosshair"),i=!0):i&&n()})),s.addListener(t,"keyup",n),s.addListener(t,"blur",n)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(l.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(l.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,a=1==i||i&&i.$byLines,s=this.session,c=this.selection,l=c.rangeList,u=(r?c:l).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=c._eventRegistry;c._eventRegistry={};var h=new o(s);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(a)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;h.fromOrientedRange(u[p]),h.index=p,this.selection=s.selection=h;var m=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===m||(n=m),h.toOrientedRange(u[p])}h.detach(),this.selection=s.selection=c,this.inVirtualSelectionMode=!1,c._eventRegistry=d,c.mergeOverlappingRanges();var f=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),f&&f.from==f.to&&this.renderer.animateScrolling(f.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;na&&(a=i.column),nu?e.insert(n,c.stringRepeat(" ",o-u)):e.remove(new r(n.row,n.column,n.row,n.column-o+u)),t.start.column=t.end.column=a,t.start.row=t.end.row=n.row,t.cursor=t.end})),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),d=u.start.row,h=u.end.row,p=d==h;if(p){var m,f=this.session.getLength();do{m=this.session.getLine(h)}while(/[=:]/.test(m)&&++h0);d<0&&(d=0),h>=f&&(h=f-1)}var g=this.session.removeFullLines(d,h);g=this.$reAlignText(g,p),this.session.insert({row:d,column:0},g.join("\n")+"\n"),p||(u.start.column=0,u.end.column=g[g.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var i,n,r,o=!0,a=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==i?(i=t[1].length,n=t[2].length,r=t[3].length,t):(i+n+r!=t[1].length+t[2].length+t[3].length&&(a=!1),i!=t[1].length&&(o=!1),i>t[1].length&&(i=t[1].length),nt[3].length&&(r=t[3].length),t):[e]})).map(t?l:o?a?function(e){return e[2]?s(i+n-e[2].length)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:l:function(e){return e[2]?s(i)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function s(e){return c.stringRepeat(" ",e)}function l(e){return e[2]?s(i)+e[2]+s(n-e[2].length+r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(h.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=/\S/,o=e.getLine(t),a=o.search(r);if(-1!=a){for(var s=i||o.length,c=e.getLength(),l=t,u=t;++tl){var h=e.getLine(u).length;return new n(l,s,u,h)}}},this.openingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r+1},s=e.$findClosingBracket(t,a,o);if(s){var c=e.foldWidgets[s.row];return null==c&&(c=e.getFoldWidget(s.row)),"start"==c&&s.row>a.row&&(s.row--,s.column=e.getLine(s.row).length),n.fromPoints(a,s)}},this.closingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r},s=e.$findOpeningBracket(t,a);if(s)return s.column++,a.column--,n.fromPoints(s,a)}}).call(r.prototype)})),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],(function(e,t,i){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}e("./range").Range,function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,a="add"==e.action,s=r+1;s0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var a=r;a<=o;a++){var s=n[a];if(s&&s.el)if(s.hidden)s.el.style.top=-100-(s.pixelHeight||0)+"px";else{s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var c=t.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;s.coverLine||(c+=i.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=c-i.offset+"px";var l=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(l-=t.scrollLeft),s.el.style.left=l+"px",s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=i.width+2*i.padding+"px"),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+"px":s.el.style.right=""}}}}}.call(r.prototype),t.LineWidgets=r})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,i){var n=e("../line_widgets").LineWidgets,r=e("../lib/dom"),o=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new n(i),i.widgetManager.attach(e));var a=e.getCursorPosition(),s=a.row,c=i.widgetManager.getWidgetsAtRow(s).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():s-=t;var l,u=function(e,t,i){var n=e.getAnnotations().sort(o.comparePoints);if(n.length){var r=function(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,a=i(t,e[o]);if(a>0)n=o+1;else{if(!(a<0))return o;r=o-1}}return-(n+1)}(n,{row:t,column:-1},o.comparePoints);r<0&&(r=-r-1),r>=n.length?r=i>0?0:n.length-1:0===r&&i<0&&(r=n.length-1);var a=n[r];if(a&&i){if(a.row===t){do{a=n[r+=i]}while(a&&a.row===t);if(!a)return n.slice()}var s=[];t=a.row;do{s[i<0?"unshift":"push"](a),a=n[r+=i]}while(a&&a.row==t);return s.length&&s}}}(i,s,t);if(u){var d=u[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,l=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var h={row:a.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},p=h.el.appendChild(r.createElement("div")),m=h.el.appendChild(r.createElement("div"));m.className="error_widget_arrow "+l.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
    "),p.appendChild(r.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")})),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],(function(e,t,i){e("./lib/fixoldbrowsers");var n=e("./lib/dom"),r=e("./lib/event"),o=e("./editor").Editor,a=e("./edit_session").EditSession,s=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var a="";if(e&&/input|textarea/i.test(e.tagName)){var s=e;a=s.value,e=n.createElement("pre"),s.parentNode.replaceChild(e,s)}else e&&(a=n.getInnerText(e),e.innerHTML="");var l=t.createEditSession(a),u=new o(new c(e));u.setSession(l);var d={document:l,editor:u,onResize:u.resize.bind(u,null)};return s&&(d.textarea=s),r.addListener(window,"resize",d.onResize),u.on("destroy",(function(){r.removeListener(window,"resize",d.onResize),d.editor.container.env=null})),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new s),i},t.EditSession=a,t.UndoManager=s,t.version="1.2.9"})),ace.acequire(["ace/ace"],(function(e){for(var t in e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])}));var sm=window.ace.acequire("ace/ace"),cm={id:"ace/mode/json_worker",src:'"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'};ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,i){var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(a,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r,o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);if(r=o.match(this.foldingStartMarker)){var a=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,a);var s=e.getCommentFoldRange(i,a+r[0].length,1);return s&&!s.isMultiLine()&&(n?s=this.getSectionRange(e,i):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(r=o.match(this.foldingStopMarker))){a=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,a):e.getCommentFoldRange(i,a,-1)}},this.getSectionRange=function(e,t){for(var i=e.getLine(t),n=i.search(/\S/),o=t,a=i.length,s=t+=1,c=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=o)break;if(u.isMultiLine())t=u.end.row;else if(n==l)break}s=t}}return new r(o,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),a=i,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++ia)return new r(a,n,i,t.length)}}.call(a.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new c};n.inherits(u,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);"start"==e&&(t.match(/^.*[\{\(\[]\s*$/)&&(n+=i));return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new l(["ace"],cm,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})),ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,i,n){var r=/^\s*/.exec(n)[0];return i.length<1?i.push(this.next):i[0]="mlString",i.length<2?i.push(r.length):i[1]=r.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,i){return i[1]>=e.length?(this.next="start",i.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};n.inherits(o,r),t.YamlHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,i){var n=e("../../lib/oop"),r=e("./fold_mode").FoldMode,o=e("../../range").Range,a=t.FoldMode=function(){};n.inherits(a,r),function(){this.getFoldWidgetRange=function(e,t,i){var n=this.indentationBlock(e,i);if(n)return n;var r=/\S/,a=e.getLine(i),s=a.search(r);if(-1!=s&&"#"==a[s]){for(var c=a.length,l=e.getLength(),u=i,d=i;++iu){var p=e.getLine(d).length;return new o(u,c,d,p)}}},this.getFoldWidget=function(e,t,i){var n=e.getLine(i),r=n.search(/\S/),o=e.getLine(i+1),a=e.getLine(i-1),s=a.search(/\S/),c=o.search(/\S/);if(-1==r)return e.foldWidgets[i-1]=-1!=s&&s=0;--r){var o=this.leading[r];t.end.offset>=o.start&&(i.unshift(o.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}i.length&&(e.innerComments=i)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var i=this.trailing.length-1;i>=0;--i){var n=this.trailing[i];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var o=r.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,i=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var r=t.leadingComments[n];r.range[1]<=e.start.offset&&(i.unshift(r),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,i}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(i.unshift(o.comment),this.leading.splice(n,1))}return i},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var i=this.findTrailingComments(t),r=this.findLeadingComments(t);r.length>0&&(e.leadingComments=r),i.length>0&&(e.trailingComments=i),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var i="L"===e.type[0]?"Line":"Block",n={type:i,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var r={comment:{type:i,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=i,this.leading.push(r),this.trailing.push(r)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,i){var n,r=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])},function(e,t){function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var o=i(4),a=i(5),s=i(6),c=i(7),l=i(8),u=i(13),d=i(14);function h(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var i=e;t=h(i.namespace)+":"+h(i.name);break;case s.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var p=function(e){function t(t,i,n){return e.call(this,t,i,n)||this}return r(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",i=!0,n=!1,r=!1,a=!1;!this.scanner.eof()&&i&&!n;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(n=";"===s,t+=s,++this.scanner.index,!n)switch(t.length){case 2:r="#"===s;break;case 3:r&&(i=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),r=r&&!a);break;default:i=(i=i&&!(r&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(i&&n&&t.length>2){var c=t.substr(1,t.length-2);r&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):r||a||!d.XHTMLEntities[c]||(t=d.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,i=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==i;)n+="&"===c?this.scanXHTMLEntity(i):c;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var r=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===r&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var i=this.scanner.source[this.scanner.index];if("{"===i||"<"===i)break;++this.scanner.index,t+=i,o.Character.isLineTerminator(i.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===i&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(i,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(r,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),i=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=i;this.expectJSX(":");var r=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(n,r))}else e=i;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var i=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,i))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,i))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,n,i))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var i=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(i,r,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),i=this.nextJSXText();if(i.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),i=[],n=null;if(!t.selfClosing){var r=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:i});i=r.children,n=r.closing}return this.finalize(e,new a.JSXElement(t,i,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=p},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&i.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&i.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(6),r=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=r;var o=function(e,t,i){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=i};t.JSXElement=o;var a=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var d=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=d;var h=function(e,t,i){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=i};t.JSXOpeningElement=h;var p=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=p;var m=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(2),r=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=r;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,i){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=i};t.AssignmentExpression=s;var c=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!0};t.AsyncArrowFunctionExpression=l;var u=function(e,t,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var d=function(e,t,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=d;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var p=function(e,t,i){var r="||"===e||"&&"===e;this.type=r?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=i};t.BinaryExpression=p;var m=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=m;var f=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=f;var g=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=g;var _=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=_;var b=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=b;var v=function(e,t,i){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=i};t.ClassDeclaration=v;var y=function(e,t,i){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=i};t.ClassExpression=y;var w=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=w;var x=function(e,t,i){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=i};t.ConditionalExpression=x;var A=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=A;var N=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=N;var k=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=k;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var E=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=E;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var F=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=F;var O=function(e,t,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=O;var D=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=D;var B=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=B;var L=function(e,t,i){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=i,this.each=!1};t.ForInStatement=L;var M=function(e,t,i){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=i};t.ForOfStatement=M;var $=function(e,t,i,r){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=$;var T=function(e,t,i,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionDeclaration=T;var R=function(e,t,i,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionExpression=R;var j=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=j;var I=function(e,t,i){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=i};t.IfStatement=I;var P=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=P;var z=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=z;var U=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=U;var W=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=W;var H=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=H;var q=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=q;var V=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=V;var K=function(e,t,i,r,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=i,this.kind=r,this.static=o};t.MethodDefinition=K;var G=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=G;var X=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=X;var J=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=J;var Y=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var Z=function(e,t,i,r,o,a){this.type=n.Syntax.Property,this.key=t,this.computed=i,this.value=r,this.kind=e,this.method=o,this.shorthand=a};t.Property=Z;var Q=function(e,t,i,r){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:i,flags:r}};t.RegexLiteral=Q;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var ie=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=ie;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var re=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=re;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=n.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var de=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=de;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var pe=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=pe;var me=function(e,t,i){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=i};t.TryStatement=me;var fe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=fe;var ge=function(e,t,i){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=i};t.UpdateExpression=ge;var _e=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=_e;var be=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ve=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ve;var ye=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ye;var we=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=we},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(10),o=i(11),a=i(7),s=i(12),c=i(2),l=i(13),u="ArrowParameterPlaceHolder",d=function(){function e(e,t,i){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=i,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],i=1;i0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=n,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,i,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal("true"===t.value,i));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(null,i));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(i)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=i,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,i=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),r=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=i,this.finalize(e,new a.AsyncFunctionExpression(null,n.params,r))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),i=this.nextToken();switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(i);e=this.finalize(t,new a.Literal(i.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(i.value));break;case 7:"["===i.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(i);break;default:e=this.throwUnexpectedToken(i)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,i=this.createNode(),n=this.lookahead,r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(3===n.type){var h=n.value;this.nextToken(),c=this.match("["),r=(d=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(i,new a.Identifier(h))}else this.match("*")?this.nextToken():(c=this.match("["),r=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!d&&"get"===n.value&&p)t="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===n.type&&!d&&"set"===n.value&&p)t="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&p)t="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!d)!c&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===n.type)if(h=this.finalize(i,new a.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(i,new a.AssignmentPattern(h,m))}else u=!0,s=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new a.Property(t,r,c,s,l,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],i={value:!1};!this.match("}");)t.push(this.parseObjectProperty(i)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),i=t.value,r=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),i=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],i=[],n=this.parseTemplateHead();for(i.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),i.push(n);return this.finalize(e,new a.TemplateLiteral(i,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:u,params:[],async:!1};else{var t=this.lookahead,i=[];if(this.match("..."))e=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:u,params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:u,params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,i.value,s],l=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&n<=l[l.length-1];){s=c.pop();var u=c.pop();l.pop(),o=c.pop(),r.pop();var d=this.startNode(r[r.length-1]);c.push(this.finalize(d,new a.BinaryExpression(u,o,s)))}c.push(this.nextToken().value),l.push(n),r.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=c.length-1;t=c[h];for(var p=r.pop();h>1;){var m=r.pop(),f=p&&p.lineStart;d=this.startNode(m,f),u=c[h-1],t=this.finalize(d,new a.BinaryExpression(u,c[h-2],t)),h-=2,p=m}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var i=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,n,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var i=0;i")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var m=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var g=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=g}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var _=f.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=r?this.finalize(m,new a.AsyncArrowFunctionExpression(s.params,f,_)):this.finalize(m,new a.ArrowFunctionExpression(s.params,f,_)),this.context.strict=l,this.context.allowStrictDirective=d,this.context.allowYield=h,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var v=(i=this.nextToken()).value,y=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(v,e,y)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var i=[];for(i.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(i))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var i=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var r=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new a.VariableDeclarator(n,r))},e.prototype.parseBindingList=function(e,t){for(var i=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(e,t));return i},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),i=this.nextToken().value;n.assert("let"===i||"const"===i,"Lexical declaration must be either let or const");var r=this.parseBindingList(i,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(r,i))},e.prototype.parseBindingRestElement=function(e,t){var i=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(i,new a.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var i=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new a.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var i,n,r=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;i=this.parseVariableIdentifier();var l=this.finalize(r,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(c),new a.AssignmentPattern(l,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,n=l)}else o=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(r,new a.Property("init",i,o,n,!1,s))},e.prototype.parseObjectPattern=function(e,t){var i=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new a.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var i;return this.match("[")?i=this.parseArrayPattern(e,t):this.match("{")?i=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),i=this.parseVariableIdentifier(t)),i},e.prototype.parsePatternWithDefault=function(e,t){var i=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,n=this.finalize(this.startNode(i),new a.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),i=this.nextToken();return 4===i.type&&"yield"===i.value?this.context.strict?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):3!==i.type?this.context.strict&&4===i.type&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):(this.context.strict||"let"!==i.value||"var"!==e)&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.await)&&3===i.type&&"await"===i.value&&this.tolerateUnexpectedToken(i),this.finalize(t,new a.Identifier(i.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),i=this.parsePattern([],"var");this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):i.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(i,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},i=[];for(i.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(t));return i},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),i=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(t,new a.IfStatement(n,e,i))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var i=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(i,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new a.WhileStatement(i,e))},e.prototype.parseForStatement=function(){var e,t,i,n=null,r=null,s=null,l=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var d=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===h.length&&this.matchKeyword("in")){var p=h[0];p.init&&(p.id.type===c.Syntax.ArrayPattern||p.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var m=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(d=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(m,{inFor:!0}),this.context.allowIn=d,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(h,m)))):(n=this.finalize(n,new a.Identifier(m)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var f=this.lookahead;if(d=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,l=!1;else{if(this.match(",")){for(var g=[n];this.match(",");)this.nextToken(),g.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(f),new a.SequenceExpression(g))}this.expect(";")}}if(void 0===e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var _=this.context.inIteration;this.context.inIteration=!0,i=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=_}return void 0===e?this.finalize(u,new a.ForStatement(n,r,s,i)):l?this.finalize(u,new a.ForInStatement(e,t,i)):this.finalize(u,new a.ForOfStatement(e,t,i))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier();t=i;var n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier(),n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name),t=i}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(i,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var i=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,i))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var i=this.context.inSwitch;this.context.inSwitch=!0;var n=[],r=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(r&&this.throwError(o.Messages.MultipleDefaultsInSwitch),r=!0),n.push(s)}return this.expect("}"),this.context.inSwitch=i,this.finalize(e,new a.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),i=this.parseExpression();if(i.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var n=i,r="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[r]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=u}else s=this.parseStatement();delete this.context.labelSet[r],e=new a.LabeledStatement(n,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(i);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],i=this.parsePattern(t),n={},r=0;r0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();1!==i.params.length?this.tolerateError(o.Messages.BadSetterArity):i.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,i=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(i=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new a.YieldExpression(t,i))},e.prototype.parseClassElement=function(e){var t=this.lookahead,i=this.createNode(),n="",r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,c=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(d=!0,t=this.lookahead,r=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var p=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&p?(n="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&p&&(n="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&p&&(n="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!n&&r&&this.match("(")&&(n="init",s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),c||(u&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(r,"constructor")&&(("method"!==n||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(i,new a.MethodDefinition(r,c,s,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=i,this.finalize(t,new a.ClassDeclaration(n,r,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(i,n,r))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),i=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,i))},e.prototype.parseImportSpecifier=function(){var e,t,i=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(i,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var i=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(i,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),i=t;return this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,i))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var i=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(i))}else this.matchKeyword("class")?(i=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):this.matchContextualKeyword("async")?(i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(i)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){switch(i=void 0,this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null))}else if(this.matchAsyncFunction())i=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=d},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var i=new Error(e);try{throw i}catch(n){Object.create&&Object.defineProperty&&(i=Object.create(n),Object.defineProperty(i,"column",{value:t}))}return i},e.prototype.createError=function(e,t,i,n){var r="Line "+t+": "+n,o=this.constructError(r,i);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,i,n){throw this.createError(e,t,i,n)},e.prototype.tolerateError=function(e,t,i,n){var r=this.createError(e,t,i,n);if(!this.tolerant)throw r;this.recordError(r)},e}();t.ErrorHandler=i},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(4),o=i(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,i,n=[];for(this.trackComment&&(n=[],t=this.index-e,i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(o)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};n.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(i.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:i},n.push(a)),n},e.prototype.skipMultiLineComment=function(){var e,t,i=[];for(this.trackComment&&(i=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};i.push(o)}return i}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},i.push(o)),this.tolerateUnexpectedToken(),i},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(i))++this.index;else if(r.Character.isLineTerminator(i))++this.index,13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===i)if(47===(i=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==i)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===i){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==i||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=1024*(t-55296)+i-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,i=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),i=r.Character.fromCodePoint(t);for(this.index+=i.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),i=e);!this.eof()&&(t=this.codePointAt(this.index),r.Character.isIdentifierPart(t));)i+=e=r.Character.fromCodePoint(t),this.index+=e.length,92===t&&(i=i.substr(0,i.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),i+=e);return i},e.prototype.octalToDecimal=function(e){var t="0"!==e,i=s(e);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=8*i+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(i=8*i+s(this.source[this.index++]))),{code:i,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,i=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===i.length?3:this.isKeyword(i)?4:"null"===i?5:"true"===i||"false"===i?1:3)&&t+i.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,i="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)i+=this.source[this.index++];return 0===i.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(t)||r.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var i="",n=!1;for(r.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return n||0!==i.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,i){var r=parseInt(t||i,16);return r>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(i)}catch(r){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],i=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],r.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(r.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(i)"]"===e&&(i=!1);else{if("/"===e){a=!0;break}"["===e&&(i=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!r.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var i=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;i=55296&&e<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(10),r=i(12),o=i(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var i=this.values[this.paren-1];t="if"===i||"while"===i||"for"===i||"with"===i;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?r-4:r;for(i=0;i>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=mm[e.charCodeAt(i)]<<2|mm[e.charCodeAt(i+1)]>>4,a[s++]=255&t);1===o&&(t=mm[e.charCodeAt(i)]<<10|mm[e.charCodeAt(i+1)]<<4|mm[e.charCodeAt(i+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,i=e.length,n=i%3,r=[],o=16383,a=0,s=i-n;as?s:a+o));1===n?(t=e[i-1],r.push(pm[t>>2]+pm[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],r.push(pm[t>>10]+pm[t>>4&63]+pm[t<<2&63]+"="));return r.join("")}},pm=[],mm=[],fm="undefined"!=typeof Uint8Array?Uint8Array:Array,gm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_m=0,bm=gm.length;_m0)throw new Error("Invalid string. Length must be a multiple of 4");var i=e.indexOf("=");return-1===i&&(i=t),[i,i===t?0:4-i%4]}function ym(e,t,i){for(var n,r,o=[],a=t;a>18&63]+pm[r>>12&63]+pm[r>>6&63]+pm[63&r]);return o.join("")}mm["-".charCodeAt(0)]=62,mm["_".charCodeAt(0)]=63;var wm={}; -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function xm(e){return Object.prototype.toString.call(e)}wm.read=function(e,t,i,n,r){var o,a,s=8*r-n-1,c=(1<>1,u=-7,d=i?r-1:0,h=i?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=n;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),o-=l}return(p?-1:1)*a*Math.pow(2,o-n)},wm.write=function(e,t,i,n,r,o){var a,s,c,l=8*o-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,m=n?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[i+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[i+p]=255&a,p+=m,a/=256,l-=8);e[i+p-m]|=128*f}, +var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,i,n)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[i]=n,s=(e,t)=>{for(var i in t||(t={}))r.call(t,i)&&a(e,i,t[i]);if(n)for(var i of n(t))o.call(t,i)&&a(e,i,t[i]);return e},c=(e,n)=>t(e,i(n)),l=e=>"symbol"==typeof e?e:e+"";const u={};var d,h,p,m,f,g={},_=[],b=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function v(e,t){for(var i in t)e[i]=t[i];return e}function y(e){var t=e.parentNode;t&&t.removeChild(e)}function w(e,t,i){var n,r,o,a=arguments,s={};for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(i=[i],o=3;o0?x(p.type,p.props,p.key,null,p.__v):p)){if(p.__=i,p.__b=i.__b+1,null===(h=v[u])||h&&p.key==h.key&&p.type===h.type)v[u]=void 0;else for(d=0;dt.rank?-1:e.index-t.index}function G(e,t){return e.index=t,e.rank=function(e){return e.props.default?0:(t=e.props.path,X(t).map(J).join(""));var t}(e),e.props}function X(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")}function J(e){return":"==e.charAt(0)?1+"*+?".indexOf(e.charAt(e.length-1))||4:5}var Y=null,Z=[],Q=[],ee={};function te(){var e;return""+((e=Y&&Y.location?Y.location:Y&&Y.getCurrentLocation?Y.getCurrentLocation():"undefined"!=typeof location?location:ee).pathname||"")+(e.search||"")}function ie(e,t){return void 0===t&&(t=!1),"string"!=typeof e&&e.url&&(t=e.replace,e=e.url),function(e){for(var t=Z.length;t--;)if(Z[t].canRoute(e))return!0;return!1}(e)&&function(e,t){void 0===t&&(t="push"),Y&&Y[t]?Y[t](e):"undefined"!=typeof history&&history[t+"State"]&&history[t+"State"](null,null,e)}(e,t?"replace":"push"),ne(e)}function ne(e){for(var t=!1,i=0;i0},t.prototype.routeTo=function(e){this.setState({url:e});var t=this.canRoute(e);return this.updating||this.forceUpdate(),t},t.prototype.componentWillMount=function(){Z.push(this),this.updating=!0},t.prototype.componentDidMount=function(){var e=this;Y&&(this.unlisten=Y.listen((function(t){e.routeTo(""+(t.pathname||"")+(t.search||""))}))),this.updating=!1},t.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),Z.splice(Z.indexOf(this),1)},t.prototype.componentWillUpdate=function(){this.updating=!0},t.prototype.componentDidUpdate=function(){this.updating=!1},t.prototype.getMatchingChildren=function(e,t,i){return e.filter(G).sort(K).map((function(e){var n=V(t,e.props.path,e.props);if(n){if(!1!==i){var r={url:t,matches:n};return q(r,n),delete r.ref,delete r.key,function(e,t,i){var n,r,o,a=arguments,s=v({},e.props);for(o in t)"key"==o?n=t[o]:"ref"==o?r=t[o]:s[o]=t[o];if(arguments.length>3)for(i=[i],o=3;o=i.__.length&&i.__.push({}),i.__[e]}function xe(e){return me=1,function(e,t,i){var n=we(de++,2);return n.t=e,n.__c||(n.__=[i?i(t):Me(void 0,t),function(e){var t=n.t(n.__[0],e);n.__[0]!==t&&(n.__=[t,n.__[1]],n.__c.setState({}))}],n.__c=he),n.__}(Me,e)}function Ne(e,t){var i=we(de++,3);!d.__s&&Le(i.__H,t)&&(i.__=e,i.__H=t,he.__H.__h.push(i))}function Ae(e){return me=5,ke((function(){return{current:e}}),[])}function ke(e,t){var i=we(de++,7);return Le(i.__H,t)&&(i.__=e(),i.__H=t,i.__h=e),i.__}function Ce(e,t){return me=8,ke((function(){return e}),t)}function Ee(e){var t=he.context[e.__c],i=we(de++,9);return i.__c=e,t?(null==i.__&&(i.__=!0,t.sub(he)),t.props.value):e.__}function Se(e){var t=we(de++,10),i=xe();return t.__=e,he.componentDidCatch||(he.componentDidCatch=function(e){t.__&&t.__(e),i[1](e)}),[i[0],function(){i[1](void 0)}]}function Fe(){fe.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(De),e.__H.__h.forEach(Be),e.__H.__h=[]}catch(t){e.__H.__h=[],d.__e(t,e.__v)}})),fe=[]}d.__b=function(e){he=null,ge&&ge(e)},d.__r=function(e){_e&&_e(e),de=0;var t=(he=e.__c).__H;t&&(t.__h.forEach(De),t.__h.forEach(Be),t.__h=[])},d.diffed=function(e){be&&be(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==fe.push(t)&&pe===d.requestAnimationFrame||((pe=d.requestAnimationFrame)||function(e){var t,i=function(){clearTimeout(n),Oe&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(i,100);Oe&&(t=requestAnimationFrame(i))})(Fe)),he=void 0},d.__c=function(e,t){t.some((function(e){try{e.__h.forEach(De),e.__h=e.__h.filter((function(e){return!e.__||Be(e)}))}catch(i){t.some((function(e){e.__h&&(e.__h=[])})),t=[],d.__e(i,e.__v)}})),ve&&ve(e,t)},d.unmount=function(e){ye&&ye(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(De)}catch(i){d.__e(i,t.__v)}};var Oe="function"==typeof requestAnimationFrame;function De(e){var t=he;"function"==typeof e.__c&&e.__c(),he=t}function Be(e){var t=he;e.__c=e.__(),he=t}function Le(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function Me(e,t){return"function"==typeof t?t(e):t}var $e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Te={},Re={},je={};Object.defineProperty(je,"__esModule",{value:!0}),je.ModelPath=je.Path=je.relativePath=void 0,je.relativePath=function(e,t){return t.reduce(((e,t)=>"pop"===t?e.pop():e.push(t.push)),e)};class Ie{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new Ie(this.modelArr.slice(e,t),this.contextArr)}shift(){return new Ie(this.modelArr.slice(1),this.contextArr)}pop(){return new Ie(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Ie([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new Ie([...this.modelArr],[...this.contextArr,t])}copy(){return new Ie([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new Pe(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every(((e,t)=>e===this.modelArr[t]))}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t]))}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every(((e,i)=>e===this.modelArr[t+i]))}toString(){return this.modelArr.map((e=>"string"==typeof e?`.${e}`:`[${e}]`)).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}je.Path=Ie;class Pe extends Ie{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new Pe(this.model,super.slice(e,t))}shift(){return new Pe(this.model,super.shift())}pop(){return new Pe(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new Pe(this.model,super.modelPush(e))}contextPush(e){return new Pe(this.model,super.contextPush(e))}copy(){return new Pe(this.model,super.copy())}}je.ModelPath=Pe;var ze={};Object.defineProperty(ze,"__esModule",{value:!0}),ze.Errors=void 0;class Ue{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter((t=>t.path.equals(e))):this.errors.filter((t=>t.path.startsWith(e)))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}ze.Errors=Ue;var We={};function He(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(We,"__esModule",{value:!0}),We.hexId=We.quoteString=We.escapeString=void 0,We.escapeString=He,We.quoteString=function(e){return`"${He(e)}"`};const qe=e=>("0"+e.toString(16)).substr(-2);We.hexId=function(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,qe).join("")},Object.defineProperty(Re,"__esModule",{value:!0}),Re.DataModel=void 0;const Ve=je,Ke=ze,Ge=We;class Xe{constructor(e,t){var i,n,r,o;this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50,this.verbose=null!==(n=null==t?void 0:t.verbose)&&void 0!==n&&n,this.wrapLists=null!==(r=null==t?void 0:t.wrapLists)&&void 0!==r&&r,this.schema=e;const a=null!==(o=null==t?void 0:t.initialData)&&void 0!==o?o:e.default();this.data=this.wrapLists?Xe.wrapLists(a):a,this.listeners=[],this.errors=new Ke.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach((e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)}))}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach((e=>{if(void 0===t)return t;t=this.wrapLists&&"number"==typeof e?t[e].node:t[e]})),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let n=this.data;e.pop().forEach((e=>{void 0!==n[e]&&"string"!=typeof n[e]&&"number"!=typeof n[e]||(this.wrapLists&&"number"==typeof e?n[e]={node:{},id:Ge.hexId()}:n[e]={}),n=this.wrapLists&&"number"==typeof e?n[e].node:n[e]})),null!==n&&(void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?n.splice(e.last(),1):delete n[e.last()]:this.wrapLists&&"number"==typeof e.last()?n[e.last()]={node:t,id:Ge.hexId()}:n[e.last()]=t,i||(this.verbose&&console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate()))}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(n)}))}static wrapLists(e){if(Array.isArray(e)){const t=e.map((e=>({node:this.wrapLists(e),id:Ge.hexId()})));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.wrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}static unwrapLists(e){if(Array.isArray(e)){const t=e.map((e=>this.unwrapLists(e.node)));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}if("object"==typeof e&&null!==e){const t={};Object.entries(e).map((([e,i])=>{t[e]=this.unwrapLists(i)}));for(const i of Object.getOwnPropertySymbols(e))t[i]=e[i];return t}return e}}Re.DataModel=Xe;var Je,Ye={};Je=Ye,Object.defineProperty(Je,"__esModule",{value:!0}),Je.Keep=Je.Opt=Je.Has=Je.Mod=Je.Base=void 0,Je.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},Je.Mod=(e,t)=>s(s({},e),"function"==typeof t?t(e):t),Je.Has=(e,t)=>Je.Mod(t,{enabled:t=>void 0!==t.push(e).get()}),Je.Opt=function(e){return c(s({},e),{optional:()=>!0})},Je.Keep=function(e){return c(s({},e),{keep:()=>!0})};var Ze={};Object.defineProperty(Ze,"__esModule",{value:!0}),Ze.BooleanNode=void 0;const Qe=Re,et=Ye;Ze.BooleanNode=()=>c(s({},et.Base),{type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,n){return n.loose&&"boolean"!=typeof t&&(t=n.wrapLists?Qe.DataModel.wrapLists(this.default()):this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var n;return(null!==(n=e.boolean)&&void 0!==n?n:e.base).call(e,{node:this},t,...i)}});var tt={},it={};Object.defineProperty(it,"__esModule",{value:!0}),it.ListNode=void 0;const nt=Re,rt=Ye;it.ListNode=(e,t)=>{var i,n;const r=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,o=null!==(n=null==t?void 0:t.maxLength)&&void 0!==n?n:1/0,a=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return c(s({},rt.Base),{type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(r)].map((t=>e.default())):[],navigate(t,i){const n=i+1;return t.getArray().length<=n?this:e.navigate(t,n)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,n,s){if(s.loose&&!Array.isArray(i)&&(i=s.wrapLists?nt.DataModel.wrapLists(this.default()):this.default()),!Array.isArray(i))return n.add(t,"error.expected_list"),i;a&&(i.lengtho)?r===o?n.add(t,"error.invalid_list_range.exact",i.length,r):n.add(t,"error.invalid_list_range.between",i.length,r,o):i.lengtho&&n.add(t,"error.invalid_list_range.larger",i.length,o);const c=i.map(((i,r)=>{const o=e.validate(t.push(r),s.wrapLists?i.node:i,n,s);return s.wrapLists?{node:o,id:i.id}:o}));for(const e of Object.getOwnPropertySymbols(i))c[e]=i[e];return c},hook(i,n,...r){var o;return(null!==(o=i.list)&&void 0!==o?o:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},n,...r)}})};var ot={};Object.defineProperty(ot,"__esModule",{value:!0}),ot.SwitchNode=void 0;const at=Ye;ot.SwitchNode=e=>c(s({},at.Base),{type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const n=t+1;return null===(i=this.activeCase(e.slice(0,n)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,n;return null!==(n=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==n?n:e},suggest(t,i){var n,r;return null!==(r=null===(n=this.activeCase(t))||void 0===n?void 0:n.node.suggest(t,i))&&void 0!==r?r:e.filter((e=>e.match(t))).map((e=>e.node.suggest(t,i))).reduce(((e,t)=>e.concat(t)))},validate(e,t,i,n){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,n)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const n=(e,t)=>{var i,n;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(n=e.priority)&&void 0!==n?n:0)},r=e.filter((e=>e.match(t))).sort(n);return i&&0===r.length?e.sort(n)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectOrPreset=e.StringOrList=e.ObjectOrList=e.ChoiceNode=void 0;const t=it,i=ot;e.ChoiceNode=(e,t)=>{const n=i.SwitchNode(e.map((e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node}))));return c(s({},n),{validate(e,t,i,r){let o=n.activeCase(e,!0);return o.node.optional()?t:o.node.validate(e,t,i,r)},hook(i,r,...o){var a;return(null!==(a=i.choice)&&void 0!==a?a:i.base).call(i,{node:this,choices:e,config:null!=t?t:{},switchNode:n},r,...o)}})};const n=i=>(n,r)=>e.ChoiceNode([{type:i,node:n,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:n.default()}},{type:"list",node:t.ListNode(n),change:e=>e?[e]:[]}],r);e.ObjectOrList=n("object"),e.StringOrList=n("string"),e.ObjectOrPreset=(t,i,n)=>e.ChoiceNode([{type:"string",priority:1,node:t,change:e=>Object.keys(n)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=n[e])&&void 0!==t?t:n[Object.keys(n)[0]]}}])}(tt);var st={};Object.defineProperty(st,"__esModule",{value:!0}),st.MapNode=void 0;const ct=Ye,lt=Re;st.MapNode=(e,t,i)=>c(s({},ct.Base),{type:()=>"map",default:()=>({}),navigate(e,i){const n=i+1;return e.getArray().length<=n?this:t.navigate(e,n)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,n,r,o){if(o.loose&&"object"!=typeof n&&(n=o.wrapLists?lt.DataModel.wrapLists(this.default()):this.default()),null===n||"object"!=typeof n)return r.add(i,"error.expected_object"),n;const a={};Object.keys(n).forEach((s=>{e.validate(i,s,r,o),a[s]=t.validate(i.push(s),n[s],r,o)}));for(const e of Object.getOwnPropertySymbols(n))a[e]=n[e];return a},validationOption(t){var n;return null!==(n=null==i?void 0:i.validation)&&void 0!==n?n:e.validationOption(t.push(""))},hook(n,r,...o){var a;return(null!==(a=n.map)&&void 0!==a?a:n.base).call(n,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...o)}});var ut={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.NumberEnum=e.NumberNode=void 0;const t=Te,i=Re,n=Ye;e.NumberNode=e=>{var t,r,o;const a=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,l=(null==e?void 0:e.color)?0:null!==(r=null==e?void 0:e.min)&&void 0!==r?r:-1/0,u=(null==e?void 0:e.color)?16777215:null!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,d=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return c(s({},n.Base),{type:()=>"number",default:()=>l>0?l:0,validate(e,t,n,r){return r.loose&&"number"!=typeof t&&(t=r.wrapLists?i.DataModel.wrapLists(this.default()):this.default()),"number"!=typeof t?n.add(e,"error.expected_number"):a&&!Number.isInteger(t)?n.add(e,"error.expected_integer"):d&&(tu)?n.add(e,"error.invalid_number_range.between",t,l,u):tu&&n.add(e,"error.invalid_number_range.larger",t,u),t},hook(t,i,...n){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:a,min:l,max:u,between:d,config:null!=e?e:{}},i,...n)}})},e.NumberEnum=({integer:i,values:n})=>t.Mod(e.NumberNode({integer:i}),(e=>({validate:(t,i,r,o)=>(i=e.validate(t,i,r,o),n.includes(i)||r.add(t,"error.invalid_number_enum",n.join(", ")),i)})))}(ut);var dt={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ObjectNode=e.Case=e.Switch=void 0;const t=Ye,i=je,a=ze,u=We,d=Re;e.Switch=Symbol("switch"),e.Case=Symbol("case"),e.ObjectNode=(h,p)=>{var m,f;const g=h,{[m=e.Switch]:_,[f=e.Case]:b}=g,v=((e,t)=>{var i={};for(var a in e)r.call(e,a)&&t.indexOf(a)<0&&(i[a]=e[a]);if(null!=e&&n)for(var a of n(e))t.indexOf(a)<0&&o.call(e,a)&&(i[a]=e[a]);return i})(g,[l(m),l(f)]),y=e=>{if(void 0===_)return v;const t=i.relativePath(e,_).get(),n=b[t];return s(s({},v),n)},w=(e,t)=>{var n;const r=_?i.relativePath(e,_).get():void 0,o=_&&null!==(n=b[r])&&void 0!==n?n:{},a=Object.keys(o),s=(null==p?void 0:p.context)?new i.ModelPath(e.getModel(),new i.Path(e.getArray(),[p.context])):e;return(!(null==p?void 0:p.disableSwitchContext)&&r&&a.includes(t)?s.contextPush(r):s).push(t)};return c(s({},t.Base),{type:()=>"object",category:()=>null==p?void 0:p.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,n=e.getArray();if(n.length<=i)return this;const r=y(e.slice(0,i))[n[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>w(e,t.toString()),suggest(e,t){const i=y(e),n=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter((t=>i[t].enabled(e))).filter((e=>!n.includes(e))).map(u.quoteString)},validate(e,t,n,r){if(r.loose&&"object"!=typeof t&&(t=r.wrapLists?d.DataModel.wrapLists(this.default()):this.default()),"object"!=typeof t||null===t)return n.add(e,"error.expected_object"),t;let o=v;if(_){const n=i.relativePath(e,_);let c=n.get();if(e.equals(n.pop())){const i=n.last();c=v[i].validate(e.push(i),t[i],new a.Errors,r)}o=s(s({},o),b[c])}const c=Object.keys(o),l=c.filter((e=>!o[e].optional())),u=new Set([...l,...Object.keys(t)]),h={};u.forEach((i=>{if(c.includes(i)){if(!o[i].enabled(e))return;const a=o[i].validate(e.push(i),t[i],n,r);!o[i].keep()&&o[i].optional()&&(void 0===a||Array.isArray(a)&&0===a.length||a.constructor===Object&&0===Object.keys(a).length)?delete h[i]:(h[i]=a,e.getModel().set(e.push(i),a,!0))}else h[i]=t[i]}));for(const i of Object.getOwnPropertySymbols(t))h[i]=t[i];return h},hook(e,t,...i){var n;return(null!==(n=e.object)&&void 0!==n?n:e.base).call(e,{node:this,fields:v,config:null!=p?p:{},filter:_,cases:b,getActiveFields:y,getChildModelPath:w},t,...i)}})}}(dt);var ht={};Object.defineProperty(ht,"__esModule",{value:!0}),ht.Reference=void 0,ht.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,n)=>e.get(t).transform(i,n),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,n){return e.get(t).navigate.bind(this)(i,n)},pathPush(i,n){return e.get(t).pathPush.bind(this)(i,n)},suggest(i,n){return e.get(t).suggest.bind(this)(i,n)},validate(i,n,r,o){return e.get(t).validate.bind(this)(i,n,r,o)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,n,...r){return e.get(t).hook.bind(this)(i,n,...r)},activeCase(i,n){return e.get(t).activeCase.bind(this)(i,n)},canUpdate(i,n){return e.get(t).canUpdate.bind(this)(i,n)},update(i,n){return e.get(t).update.bind(this)(i,n)}});var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.StringNode=void 0;const mt=Ye,ft=We,gt=Re,_t=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},bt=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};pt.StringNode=(e,t)=>{const i=()=>{var i,n,r,o;if(_t(t))return"string"==typeof t.enum?null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]:t.enum;if("resource"===(null==t?void 0:t.validator)){if("string"==typeof t.params.pool){if(t.params.requireTag)return null!==(n=null==e?void 0:e.get(`tag/${t.params.pool}`).map((e=>`#${e}`)))&&void 0!==n?n:[];const i=t.params.pool.replace(/^\$/,"");return[...t.params.allowTag&&null!==(r=null==e?void 0:e.get(`tag/${i}`).map((e=>`#${e}`)))&&void 0!==r?r:[],...null!==(o=null==e?void 0:e.get(i))&&void 0!==o?o:[]]}return t.params.pool}return[]};return c(s({},mt.Base),{type:()=>"string",default:()=>"",validate(e,n,r,o){if(o.loose&&"string"!=typeof n&&(n=(o.wrapLists?gt.DataModel.wrapLists(this.default()):this.default())||void 0),"string"!=typeof n)return r.add(e,"error.expected_string"),n;if(bt(t)){if("resource"===t.validator&&n.length>0&&!n.includes(":")&&(n=n.startsWith("#")?"#minecraft:"+n.slice(1):"minecraft:"+n),"resource"===t.validator&&"string"==typeof n){let i=n;if(n.startsWith("#")){if("string"==typeof t.params.pool&&t.params.pool.startsWith("$tag/"))return r.add(e,"error.disallowed_tag_prefix"),n;if(!t.params.allowTag&&!t.params.requireTag)return r.add(e,"error.disallowed_tag"),n;i=i.slice(1)}else if(t.params.requireTag)return r.add(e,"error.expected_tag"),n;if(!i.match(/^(?:[_\-a-z0-9.]*:)?[_\-a-z0-9/.]*$/g))return r.add(e,"error.invalid_resource_location"),n}if("resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||(t.params.allowTag||t.params.requireTag)&&n.startsWith("#")||t.params.isDefinition||t.params.allowUnknown))return n}if(_t(t)&&t.additional)return n;const a=i();return a.length>0&&!a.includes(n)&&r.add(e,"error.invalid_enum_option",n),n},suggest:()=>i().map(ft.quoteString),validationOption:()=>bt(t)?t:void 0,hook(e,n,...r){var o;return(null!==(o=e.string)&&void 0!==o?o:e.base).call(e,{node:this,getValues:i,config:t},n,...r)}})};var vt={};Object.defineProperty(vt,"__esModule",{value:!0});var yt={};Object.defineProperty(yt,"__esModule",{value:!0}),yt.CollectionRegistry=yt.SchemaRegistry=void 0;yt.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};yt.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}};var wt={};Object.defineProperty(wt,"__esModule",{value:!0}),function(e){var t=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),i=$e&&$e.__exportStar||function(e,i){for(var n in e)"default"===n||i.hasOwnProperty(n)||t(i,e,n)};Object.defineProperty(e,"__esModule",{value:!0}),i(Re,e),i(je,e),i(ze,e),i(Ye,e),i(Ze,e),i(tt,e),i(it,e),i(st,e),i(ut,e),i(dt,e),i(ht,e),i(pt,e),i(ot,e),i(vt,e),i(yt,e),i(wt,e)}(Te);var xt=function(e){return(e=e||{}).circles?function(e){var t=[],i=[];return e.proto?function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Nt(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o}:function e(r){if("object"!=typeof r||null===r)return r;if(r instanceof Date)return new Date(r);if(Array.isArray(r))return n(r,e);if(r instanceof Map)return new Map(n(Array.from(r),e));if(r instanceof Set)return new Set(n(Array.from(r),e));var o={};for(var a in t.push(r),i.push(o),r)if(!1!==Object.hasOwnProperty.call(r,a)){var s=r[a];if("object"!=typeof s||null===s)o[a]=s;else if(s instanceof Date)o[a]=new Date(s);else if(s instanceof Map)o[a]=new Map(n(Array.from(s),e));else if(s instanceof Set)o[a]=new Set(n(Array.from(s),e));else if(ArrayBuffer.isView(s))o[a]=Nt(s);else{var c=t.indexOf(s);o[a]=-1!==c?i[c]:e(s)}}return t.pop(),i.pop(),o};function n(e,n){for(var r=Object.keys(e),o=new Array(r.length),a=0;a({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0})),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}}}(St);var Ft={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initPredicatesSchemas=e.LocationFields=void 0;const t=Te,i=St;e.initPredicatesSchemas=function(n,r){const o=t.Reference.bind(void 0,n),a=t.StringNode.bind(void 0,r),s=t.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:t.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:!0})),max:t.Opt(t.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:t.BooleanNode(),change:e=>"true"===e||1===e}]);n.register("item_predicate",t.ObjectNode({item:t.Opt(a({validator:"resource",params:{pool:"item"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:t.Opt(i.Range()),durability:t.Opt(i.Range()),potion:t.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:t.Opt(t.ListNode(o("enchantment_predicate")))},{context:"item"})),n.register("enchantment_predicate",t.ObjectNode({enchantment:t.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:t.Opt(i.Range())},{context:"enchantment"})),n.register("block_predicate",t.ObjectNode({block:t.Opt(a({validator:"resource",params:{pool:"block"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:t.Opt(t.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),n.register("fluid_predicate",t.ObjectNode({fluid:t.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:t.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:t.Opt(t.MapNode(a(),s))},{context:"fluid"})),e.LocationFields={position:t.Opt(t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range())})),biome:t.Opt(a({enum:"biome"})),feature:t.Opt(a({enum:"structure_feature"})),dimension:t.Opt(a({enum:"dimension"})),light:t.Opt(t.ObjectNode({light:t.Opt(i.Range({integer:!0,min:0,max:15}))})),block:t.Opt(o("block_predicate")),fluid:t.Opt(o("fluid_predicate"))},n.register("location_predicate",t.ObjectNode(e.LocationFields,{context:"location"})),n.register("statistic_predicate",t.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:i.Range(),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),n.register("player_predicate",t.ObjectNode({gamemode:t.Opt(a({enum:"gamemode"})),level:t.Opt(i.Range()),advancements:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),t.ChoiceNode([{type:"boolean",node:t.BooleanNode(),change:e=>!0},{type:"object",node:t.MapNode(a(),t.BooleanNode())}]))),recipes:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),t.BooleanNode())),stats:t.Opt(t.ListNode(o("statistic_predicate")))},{context:"player"})),n.register("status_effect_predicate",t.ObjectNode({amplifier:t.Opt(i.Range()),duration:t.Opt(i.Range()),ambient:t.Opt(t.BooleanNode()),visible:t.Opt(t.BooleanNode())},{context:"status_effect"})),n.register("distance_predicate",t.ObjectNode({x:t.Opt(i.Range()),y:t.Opt(i.Range()),z:t.Opt(i.Range()),absolute:t.Opt(i.Range()),horizontal:t.Opt(i.Range())},{context:"distance"})),n.register("entity_predicate",t.ObjectNode({type:t.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:t.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:t.Opt(a({validator:"team"})),location:t.Opt(o("location_predicate")),distance:t.Opt(o("distance_predicate")),flags:t.Opt(t.ObjectNode({is_on_fire:t.Opt(t.BooleanNode()),is_sneaking:t.Opt(t.BooleanNode()),is_sprinting:t.Opt(t.BooleanNode()),is_swimming:t.Opt(t.BooleanNode()),is_baby:t.Opt(t.BooleanNode())})),equipment:t.Opt(t.MapNode(a({enum:"slot"}),o("item_predicate"))),player:t.Opt(o("player_predicate")),effects:t.Opt(t.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o("status_effect_predicate")))},{context:"entity"})),n.register("damage_source_predicate",t.ObjectNode({is_explosion:t.Opt(t.BooleanNode()),is_fire:t.Opt(t.BooleanNode()),is_magic:t.Opt(t.BooleanNode()),is_projectile:t.Opt(t.BooleanNode()),is_lightning:t.Opt(t.BooleanNode()),bypasses_armor:t.Opt(t.BooleanNode()),bypasses_invulnerability:t.Opt(t.BooleanNode()),bypasses_magic:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),direct_entity:t.Opt(o("entity_predicate"))},{context:"damage_source"})),n.register("damage_predicate",t.ObjectNode({dealt:t.Opt(i.Range()),taken:t.Opt(i.Range()),blocked:t.Opt(t.BooleanNode()),source_entity:t.Opt(o("entity_predicate")),type:t.Opt(o("damage_source_predicate"))},{context:"damage"}))}}(Ft),Object.defineProperty(Et,"__esModule",{value:!0}),Et.initAdvancementSchemas=void 0;const Ot=Te,Dt=St,Bt=Ft;Et.initAdvancementSchemas=function(e,t){const i=Ot.Reference.bind(void 0,e),n=Ot.StringNode.bind(void 0,t);e.register("advancement",Ot.Mod(Ot.ObjectNode({display:Ot.Opt(Ot.Mod(Ot.ObjectNode({icon:Ot.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ot.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Ot.Opt(n()),frame:Ot.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ot.Opt(Ot.BooleanNode()),announce_to_chat:Ot.Opt(Ot.BooleanNode()),hidden:Ot.Opt(Ot.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ot.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ot.MapNode(n(),i("advancement_criteria")),requirements:Ot.Opt(Ot.ListNode(Ot.ListNode(n()))),rewards:Ot.Opt(Ot.ObjectNode({function:Ot.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ot.Opt(Ot.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ot.Opt(Ot.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ot.Opt(Ot.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ot.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ot.Opt(Ot.ObjectNode({[Ot.Switch]:["pop",{push:"trigger"}],[Ot.Case]:{"minecraft:bee_nest_destroyed":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ot.Opt(Ot.NumberNode({integer:!0})),item:Ot.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:Ot.Opt(i("entity_predicate")),partner:Ot.Opt(i("entity_predicate")),child:Ot.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:Ot.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ot.Opt(n({enum:"dimension"})),to:Ot.Opt(n({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:Ot.Opt(Ot.ListNode(Ot.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:Ot.Opt(Dt.Range())},"minecraft:consume_item":{item:Ot.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:Ot.Opt(i("entity_predicate")),zombie:Ot.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:Ot.Opt(Ot.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ot.Opt(Ot.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ot.Opt(Dt.Range()),item:Ot.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ot.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:Ot.Opt(i("entity_predicate")),killing_blow:Ot.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ot.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:Ot.Opt(i("entity_predicate")),item:Ot.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":Bt.LocationFields,"minecraft:inventory_changed":{slots:Ot.Opt(Ot.ObjectNode({empty:Ot.Opt(Dt.Range()),occupied:Ot.Opt(Dt.Range()),full:Ot.Opt(Dt.Range())})),items:Ot.Opt(Ot.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Ot.Opt(Dt.Range()),durability:Ot.Opt(Dt.Range()),item:Ot.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ot.Opt(Dt.Range()),victims:Ot.Opt(Ot.ListNode(Ot.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:Ot.Opt(Dt.Range()),duration:Ot.Opt(Dt.Range())},"minecraft:location":Bt.LocationFields,"minecraft:nether_travel":{distance:Ot.Opt(Dt.Range()),entered:Ot.Opt(i("location_predicate")),exited:Ot.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ot.Opt(Ot.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ot.Opt(i("item_predicate")),location:Ot.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:Ot.Opt(i("damage_predicate")),entity:Ot.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:Ot.Opt(i("entity_predicate")),killing_blow:Ot.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:Ot.Opt(Ot.ObjectNode({block:Ot.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Ot.Opt(n({validator:"resource",params:{pool:"$tag/block"}}))})),item:Ot.Opt(i("item_predicate"))},"minecraft:slept_in_bed":Bt.LocationFields,"minecraft:slide_down_block":{block:Ot.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ot.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:Ot.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:Ot.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:Ot.Opt(Dt.Range())},"minecraft:used_totem":{item:Ot.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Ot.Opt(i("entity_predicate")),item:Ot.Opt(i("item_predicate"))},"minecraft:voluntary_exile":Bt.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Lt={},Mt={};Object.defineProperty(Mt,"__esModule",{value:!0}),Mt.initModelSchemas=void 0;const $t=Te;Mt.initModelSchemas=function(e,t){$t.Reference.bind(void 0,e);const i=$t.StringNode.bind(void 0,t),n=(e,t,i)=>$t.ListNode($t.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=$t.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",$t.Mod($t.ObjectNode({parent:$t.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:$t.Opt($t.BooleanNode()),gui_light:$t.Opt(i({enum:"gui_light"})),textures:$t.Opt($t.MapNode(i(),r)),elements:$t.Opt($t.ListNode($t.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:$t.Opt($t.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:$t.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:$t.Opt($t.BooleanNode())})),shade:$t.Opt($t.BooleanNode()),faces:$t.MapNode(i({enum:"direction"}),$t.ObjectNode({texture:r,uv:$t.Opt(n(4)),cullface:$t.Opt(i({enum:"direction"})),rotation:$t.Opt($t.NumberNode({integer:!0})),tintindex:$t.Opt($t.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:$t.Opt($t.MapNode(i({enum:"display_position"}),$t.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:$t.Opt($t.ListNode($t.ObjectNode({predicate:$t.MapNode(i({enum:"item_model_predicates"}),$t.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Tt={};Object.defineProperty(Tt,"__esModule",{value:!0}),Tt.initBlockDefinitionSchemas=void 0;const Rt=Te;Tt.initBlockDefinitionSchemas=function(e,t){const i=Rt.Reference.bind(void 0,e),n=Rt.StringNode.bind(void 0,t);e.register("block_definition",Rt.Mod(Rt.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Rt.ObjectNode({variants:Rt.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Rt.ObjectNode({multipart:Rt.ListNode(Rt.ObjectNode({when:Rt.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Rt.Opt(Rt.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Rt.Opt(Rt.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Rt.Opt(Rt.BooleanNode())};e.register("model_variant",Rt.ChoiceNode([{type:"object",node:Rt.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Rt.ListNode(Rt.ObjectNode(c(s({},r),{weight:Rt.Opt(Rt.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Rt.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Rt.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Rt.ObjectNode({OR:Rt.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Lt,"__esModule",{value:!0}),Lt.initAssetsSchemas=void 0;const jt=Mt,It=Tt;Lt.initAssetsSchemas=function(e,t){It.initBlockDefinitionSchemas(e,t),jt.initModelSchemas(e,t)};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.initConditionSchemas=void 0;const zt=Te,Ut=St;Pt.initConditionSchemas=function(e,t){const i=zt.Reference.bind(void 0,e),n=zt.StringNode.bind(void 0,t);e.register("predicate",zt.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",zt.Mod(zt.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[zt.Switch]:[{push:"condition"}],[zt.Case]:Ut.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Wt={},Ht={};Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.LootFunctions=Ht.LootConditions=Ht.LootCopySources=Ht.LootEntitySources=Ht.LootTableTypes=void 0,Ht.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ht.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ht.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ht.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ht.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Wt,"__esModule",{value:!0}),Wt.initLootTableSchemas=void 0;const qt=Te,Vt=Ht,Kt=St;Wt.initLootTableSchemas=function(e,t){const i=qt.Reference.bind(void 0,e),n=qt.StringNode.bind(void 0,t),r={conditions:qt.Opt(qt.ListNode(i("loot_condition")))},o=s({functions:qt.Opt(qt.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Vt.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new qt.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),qt.SwitchNode(r)}const l=a(Vt.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Vt.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Vt.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Vt.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",qt.Mod(qt.ObjectNode({type:qt.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:qt.Opt(qt.ListNode(qt.Mod(qt.ObjectNode(s({rolls:Kt.Range({allowBinomial:!0,integer:!0}),bonus_rolls:qt.Opt(Kt.Range({integer:!0})),entries:qt.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:qt.Opt(qt.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",qt.Mod(qt.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:qt.Opt(qt.Mod(qt.NumberNode({integer:!0,min:1}),p)),quality:qt.Opt(qt.Mod(qt.NumberNode({integer:!0}),p)),[qt.Switch]:[{push:"type"}],[qt.Case]:{"minecraft:alternatives":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:qt.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:qt.Opt(qt.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",qt.Mod(qt.ObjectNode({function:u,[qt.Switch]:[{push:"function"}],[qt.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:qt.Mod(qt.ObjectNode({bonusMultiplier:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:qt.Mod(qt.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:qt.ListNode(qt.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:qt.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:qt.Opt(qt.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Kt.Range({allowBinomial:!0}),treasure:qt.Opt(qt.BooleanNode())},"minecraft:exploration_map":{destination:qt.Opt(n({enum:"structure_feature"})),decoration:qt.Opt(n({enum:"map_decoration"})),zoom:qt.Opt(qt.NumberNode({integer:!0})),search_radius:qt.Opt(qt.NumberNode({integer:!0})),skip_existing_chunks:qt.Opt(qt.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Kt.Range({bounds:!0})},"minecraft:looting_enchant":{count:Kt.Range({bounds:!0}),limit:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:qt.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:qt.ListNode(i("loot_entry"))},"minecraft:set_count":{count:Kt.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Kt.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:qt.Opt(qt.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:qt.Opt(d),lore:qt.ListNode(i("text_component")),replace:qt.Opt(qt.BooleanNode())},"minecraft:set_name":{entity:qt.Opt(d),name:qt.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:qt.Opt(qt.ListNode(qt.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Kt.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",qt.Mod(qt.ObjectNode({condition:l,[qt.Switch]:[{push:"condition"}],[qt.Case]:c(s({},Kt.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:qt.MapNode(n({validator:"objective"}),Kt.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",qt.Mod(qt.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Kt.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:qt.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0}),Gt.initPackMcmetaSchemas=void 0;const Xt=Te;Gt.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Xt.Mod(Xt.ObjectNode({pack:Xt.Mod(Xt.ObjectNode({pack_format:Xt.Mod(Xt.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:Xt.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))};var Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.initRecipeSchemas=void 0;const Yt=Te;Jt.initRecipeSchemas=function(e,t){const i=Yt.Reference.bind(void 0,e),n=Yt.StringNode.bind(void 0,t);e.register("recipe",Yt.Mod(Yt.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Yt.Switch]:[{push:"type"}],[Yt.Case]:{"minecraft:crafting_shaped":{group:Yt.Opt(n({enum:"recipe_group",additional:!0})),pattern:Yt.ListNode(n()),key:Yt.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Yt.Opt(n()),ingredients:Yt.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Yt.Opt(Yt.NumberNode()),cookingtime:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Yt.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Yt.NumberNode({integer:!0})},"minecraft:smithing":{group:Yt.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Yt.Mod(Yt.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Yt.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Yt.Mod(Yt.ObjectNode({item:Yt.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Yt.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Yt.Mod(Yt.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Yt.Opt(Yt.Mod(Yt.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Zt={};Object.defineProperty(Zt,"__esModule",{value:!0}),Zt.initTagsSchemas=void 0;const Qt=Te;Zt.initTagsSchemas=function(e,t){const i=Qt.StringNode.bind(void 0,t),n=e=>Qt.Mod(Qt.ObjectNode({replace:Qt.Opt(Qt.BooleanNode()),values:Qt.ListNode(Qt.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Qt.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Qt.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.initTextComponentSchemas=void 0;const ti=Te;ei.initTextComponentSchemas=function(e,t){const i=ti.Reference.bind(void 0,e),n=ti.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",ti.Mod(ti.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:ti.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:ti.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={bold:ti.Opt(ti.BooleanNode()),italic:ti.Opt(ti.BooleanNode()),underlined:ti.Opt(ti.BooleanNode()),strikethrough:ti.Opt(ti.BooleanNode()),obfuscated:ti.Opt(ti.BooleanNode()),insertion:ti.Opt(n()),clickEvent:ti.Opt(ti.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[ti.Switch]:[{push:"action"}],[ti.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:ti.Opt(ti.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[ti.Switch]:[{push:"action"}],[ti.Case]:{show_text:{value:ti.Opt(i("text_component"))},show_item:{value:ti.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:ti.Opt(ti.ObjectNode({name:ti.Opt(n()),type:ti.Opt(n()),id:ti.Opt(n())}))}}})),extra:ti.Opt(i("text_component_list"))};e.register("text_component_object",ti.Mod(ti.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:ti.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:ti.ObjectNode(s({translate:n(),with:ti.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:ti.ObjectNode(s({score:ti.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:ti.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:ti.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:ti.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:ti.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:ti.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:ti.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:ti.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:ti.Opt(ti.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",ti.Mod(ti.ListNode(i("text_component")),{default:()=>[{text:""}]}))},Object.defineProperty(Ct,"__esModule",{value:!0}),Ct.initSchemas=void 0;const ii=Et,ni=Lt,ri=St,oi=Pt,ai=Wt,si=Gt,ci=Ft,li=Jt,ui=Zt,di=ei;Ct.initSchemas=function(e,t){ri.initCommonSchemas(e,t),ci.initPredicatesSchemas(e,t),ii.initAdvancementSchemas(e,t),ni.initAssetsSchemas(e,t),oi.initConditionSchemas(e,t),ai.initLootTableSchemas(e,t),si.initPackMcmetaSchemas(e,t),li.initRecipeSchemas(e,t),ui.initTagsSchemas(e,t),di.initTextComponentSchemas(e,t)};var hi=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),pi=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mi=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&hi(t,e,i);return pi(t,e),t};Object.defineProperty(At,"__esModule",{value:!0});var fi=At.getSchemas=At.getCollections=void 0;const gi=Te,_i=kt,bi=Ct;var vi=At.lootContext=mi(Ht);var yi=At.getCollections=function(){const e=new gi.CollectionRegistry;return _i.initCollections(e),e};fi=At.getSchemas=function(e){const t=new gi.SchemaRegistry;return bi.initSchemas(t,e),t};var wi=Object.freeze(Object.assign(Object.create(null),At,{[Symbol.toStringTag]:"Module",get getSchemas(){return fi},get getCollections(){return yi},lootContext:vi,default:At})),xi={},Ni={};Object.defineProperty(Ni,"__esModule",{value:!0}),Ni.initCollections=void 0,Ni.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])};var Ai={},ki={},Ci={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.UniformInt=e.Range=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),e.Range=e=>t.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:t.NumberNode(e),change:e=>{var t,i,n;return void 0===e?0:null!==(n=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==n?n:0}}],{type:"object",priority:-1,node:t.ObjectNode({min:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e)),max:(null==e?void 0:e.bounds)?t.NumberNode(e):t.Opt(t.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:t.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:t.NumberNode({integer:!0,min:0}),p:t.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),e.UniformInt=e=>t.ChoiceNode([{type:"number",node:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:t.ObjectNode({base:t.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:t.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),e.ConditionCases={"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:t.MapNode(r({validator:"objective"}),e.Range({forceRange:!0}))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:e.Range(),period:t.Opt(t.NumberNode())},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Ci),Object.defineProperty(ki,"__esModule",{value:!0}),ki.initAdvancementSchemas=void 0;const Ei=Te,Si=Ci;ki.initAdvancementSchemas=function(e,t){const i=Ei.Reference.bind(void 0,e),n=Ei.StringNode.bind(void 0,t),r=Ei.ChoiceNode([{type:"object",node:Ei.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:Ei.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",Ei.Mod(Ei.ObjectNode({display:Ei.Opt(Ei.Mod(Ei.ObjectNode({icon:Ei.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:Ei.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:Ei.Opt(n()),frame:Ei.Opt(n({enum:["task","challenge","goal"]})),show_toast:Ei.Opt(Ei.BooleanNode()),announce_to_chat:Ei.Opt(Ei.BooleanNode()),hidden:Ei.Opt(Ei.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:Ei.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:Ei.MapNode(n(),i("advancement_criteria")),requirements:Ei.Opt(Ei.ListNode(Ei.ListNode(n()))),rewards:Ei.Opt(Ei.ObjectNode({function:Ei.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:Ei.Opt(Ei.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:Ei.Opt(Ei.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:Ei.Opt(Ei.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",Ei.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:Ei.Opt(Ei.ObjectNode({player:Ei.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[Ei.Switch]:["pop",{push:"trigger"}],[Ei.Case]:{"minecraft:bee_nest_destroyed":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:Ei.Opt(Ei.NumberNode({integer:!0})),item:Ei.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:Ei.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:Ei.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:Ei.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:Ei.Opt(Ei.ListNode(r))},"minecraft:construct_beacon":{level:Ei.Opt(Si.Range())},"minecraft:consume_item":{item:Ei.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:Ei.Opt(Ei.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ei.Opt(Ei.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:Ei.Opt(Si.Range()),item:Ei.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:Ei.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:Ei.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:Ei.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:Ei.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:Ei.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:Ei.Opt(Ei.ObjectNode({empty:Ei.Opt(Si.Range()),occupied:Ei.Opt(Si.Range()),full:Ei.Opt(Si.Range())})),items:Ei.Opt(Ei.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:Ei.Opt(Si.Range()),durability:Ei.Opt(Si.Range()),item:Ei.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:Ei.Opt(i("item_predicate")),location:Ei.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:Ei.Opt(Si.Range()),victims:Ei.Opt(Ei.ListNode(r))},"minecraft:levitation":{distance:Ei.Opt(Si.Range()),duration:Ei.Opt(Si.Range())},"minecraft:location":{location:Ei.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:Ei.Opt(Si.Range()),entered:Ei.Opt(i("location_predicate")),exited:Ei.Opt(i("location_predicate"))},"minecraft:placed_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}})),state:Ei.Opt(Ei.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:Ei.Opt(i("item_predicate")),location:Ei.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:Ei.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:Ei.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:Ei.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:Ei.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:Ei.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:Ei.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:Ei.Opt(Si.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:Ei.Opt(i("entity_predicate")),item:Ei.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:Ei.Opt(Si.Range())},"minecraft:used_totem":{item:Ei.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:Ei.Opt(i("entity_predicate")),item:Ei.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var Fi={},Oi={};Object.defineProperty(Oi,"__esModule",{value:!0}),Oi.initModelSchemas=void 0;const Di=Te;Oi.initModelSchemas=function(e,t){Di.Reference.bind(void 0,e);const i=Di.StringNode.bind(void 0,t),n=(e,t,i)=>Di.ListNode(Di.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=Di.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",Di.Mod(Di.ObjectNode({parent:Di.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:Di.Opt(Di.BooleanNode()),gui_light:Di.Opt(i({enum:"gui_light"})),textures:Di.Opt(Di.MapNode(i(),r)),elements:Di.Opt(Di.ListNode(Di.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:Di.Opt(Di.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:Di.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:Di.Opt(Di.BooleanNode())})),shade:Di.Opt(Di.BooleanNode()),faces:Di.MapNode(i({enum:"direction"}),Di.ObjectNode({texture:r,uv:Di.Opt(n(4)),cullface:Di.Opt(i({enum:"direction"})),rotation:Di.Opt(Di.NumberNode({integer:!0})),tintindex:Di.Opt(Di.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:Di.Opt(Di.MapNode(i({enum:"display_position"}),Di.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:Di.Opt(Di.ListNode(Di.ObjectNode({predicate:Di.MapNode(i({enum:"item_model_predicates"}),Di.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var Bi={};Object.defineProperty(Bi,"__esModule",{value:!0}),Bi.initBlockDefinitionSchemas=void 0;const Li=Te;Bi.initBlockDefinitionSchemas=function(e,t){const i=Li.Reference.bind(void 0,e),n=Li.StringNode.bind(void 0,t);e.register("block_definition",Li.Mod(Li.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:Li.ObjectNode({variants:Li.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:Li.ObjectNode({multipart:Li.ListNode(Li.ObjectNode({when:Li.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:Li.Opt(Li.NumberEnum({integer:!0,values:[0,90,180,270]})),y:Li.Opt(Li.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:Li.Opt(Li.BooleanNode())};e.register("model_variant",Li.ChoiceNode([{type:"object",node:Li.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:Li.ListNode(Li.ObjectNode(c(s({},r),{weight:Li.Opt(Li.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",Li.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:Li.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:Li.ObjectNode({OR:Li.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.initAssetsSchemas=void 0;const Mi=Oi,$i=Bi;Fi.initAssetsSchemas=function(e,t){$i.initBlockDefinitionSchemas(e,t),Mi.initModelSchemas(e,t)};var Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.initConditionSchemas=void 0;const Ri=Te,ji=Ci;Ti.initConditionSchemas=function(e,t){const i=Ri.Reference.bind(void 0,e),n=Ri.StringNode.bind(void 0,t);e.register("predicate",Ri.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",Ri.Mod(Ri.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[Ri.Switch]:[{push:"condition"}],[Ri.Case]:ji.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0}),Ii.initDimensionSchemas=void 0;const Pi=Te,zi=Ci;Ii.initDimensionSchemas=function(e,t){const i=Pi.Reference.bind(void 0,e),n=Pi.StringNode.bind(void 0,t),r=e=>Pi.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Pi.Mod(Pi.ObjectNode({type:zi.DimensionTypePresets(i("dimension_type")),generator:Pi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Pi.Switch]:[{push:"type"}],[Pi.Case]:{"minecraft:noise":{seed:Pi.NumberNode({integer:!0}),settings:zi.NoiseSettingsPresets(i("noise_settings")),biome_source:Pi.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Pi.Switch]:[{push:"type"}],[Pi.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Pi.NumberNode({integer:!0}),preset:Pi.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(Pi.Mod(Pi.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Pi.Opt(Pi.NumberNode({integer:!0,min:0,max:62})),biomes:Pi.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Pi.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Pi.NumberNode({integer:!0}),large_biomes:Pi.Opt(Pi.BooleanNode()),legacy_biome_init_layer:Pi.Opt(Pi.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Pi.ObjectNode({biome:Pi.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Pi.Opt(Pi.BooleanNode()),features:Pi.Opt(Pi.BooleanNode()),layers:Pi.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Pi.Mod(Pi.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Pi.ObjectNode({altitude:Pi.NumberNode(),temperature:Pi.NumberNode(),humidity:Pi.NumberNode(),weirdness:Pi.NumberNode(),offset:Pi.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Pi.Mod(Pi.ObjectNode({firstOctave:Pi.NumberNode({integer:!0}),amplitudes:Pi.ListNode(Pi.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Ui={};Object.defineProperty(Ui,"__esModule",{value:!0}),Ui.initDimensionTypeSchemas=void 0;const Wi=Te,Hi=Ci;Ui.initDimensionTypeSchemas=function(e,t){const i=Wi.StringNode.bind(void 0,t);e.register("dimension_type",Wi.Mod(Wi.ObjectNode({name:Wi.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Wi.BooleanNode(),natural:Wi.BooleanNode(),piglin_safe:Wi.BooleanNode(),respawn_anchor_works:Wi.BooleanNode(),bed_works:Wi.BooleanNode(),has_raids:Wi.BooleanNode(),has_skylight:Wi.BooleanNode(),has_ceiling:Wi.BooleanNode(),coordinate_scale:Wi.NumberNode({min:1e-5,max:3e7}),ambient_light:Wi.NumberNode(),fixed_time:Wi.Opt(Wi.NumberNode({integer:!0})),logical_height:Wi.NumberNode({integer:!0,min:0,max:256}),effects:Wi.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>Hi.DefaultDimensionType}))};var qi={},Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.LootFunctions=Vi.LootConditions=Vi.LootCopySources=Vi.LootEntitySources=Vi.LootTableTypes=void 0,Vi.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Vi.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Vi.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Vi.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Vi.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(qi,"__esModule",{value:!0}),qi.initLootTableSchemas=void 0;const Ki=Te,Gi=Vi,Xi=Ci;qi.initLootTableSchemas=function(e,t){const i=Ki.Reference.bind(void 0,e),n=Ki.StringNode.bind(void 0,t),r={conditions:Ki.Opt(Ki.ListNode(i("loot_condition")))},o=s({functions:Ki.Opt(Ki.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Gi.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ki.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Ki.SwitchNode(r)}const l=a(Gi.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),u=a(Gi.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),d=a(Gi.LootEntitySources,"entity_source",(e=>n({enum:e}))),h=a(Gi.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Ki.Mod(Ki.ObjectNode({type:Ki.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ki.Opt(Ki.ListNode(Ki.Mod(Ki.ObjectNode(s({rolls:Xi.Range({allowBinomial:!0,integer:!0}),bonus_rolls:Ki.Opt(Xi.Range({integer:!0})),entries:Ki.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ki.Opt(Ki.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const p={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Ki.Mod(Ki.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ki.Opt(Ki.Mod(Ki.NumberNode({integer:!0,min:1}),p)),quality:Ki.Opt(Ki.Mod(Ki.NumberNode({integer:!0}),p)),[Ki.Switch]:[{push:"type"}],[Ki.Case]:{"minecraft:alternatives":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Ki.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Ki.Opt(Ki.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ki.Mod(Ki.ObjectNode({function:u,[Ki.Switch]:[{push:"function"}],[Ki.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:n({validator:"resource",params:{pool:"enchantment"}}),formula:n({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:Ki.Mod(Ki.ObjectNode({bonusMultiplier:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:Ki.Mod(Ki.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:h},"minecraft:copy_nbt":{source:h,ops:Ki.ListNode(Ki.ObjectNode({source:n({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:n({validator:"nbt_path",params:{category:"minecraft:item"}}),op:n({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:n({validator:"resource",params:{pool:"block"}}),properties:Ki.ListNode(n({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:Ki.Opt(Ki.ListNode(n({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:Xi.Range({allowBinomial:!0}),treasure:Ki.Opt(Ki.BooleanNode())},"minecraft:exploration_map":{destination:Ki.Opt(n({enum:"map_feature"})),decoration:Ki.Opt(n({enum:"map_decoration"})),zoom:Ki.Opt(Ki.NumberNode({integer:!0})),search_radius:Ki.Opt(Ki.NumberNode({integer:!0})),skip_existing_chunks:Ki.Opt(Ki.BooleanNode())},"minecraft:fill_player_head":{entity:d},"minecraft:limit_count":{limit:Xi.Range({bounds:!0})},"minecraft:looting_enchant":{count:Xi.Range({bounds:!0}),limit:Ki.Opt(Ki.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:Ki.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:Ki.ListNode(i("loot_entry"))},"minecraft:set_count":{count:Xi.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:Xi.Range({forceRange:!0})},"minecraft:set_loot_table":{name:n({validator:"resource",params:{pool:"$loot_table"}}),seed:Ki.Opt(Ki.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:Ki.Opt(d),lore:Ki.ListNode(i("text_component")),replace:Ki.Opt(Ki.BooleanNode())},"minecraft:set_name":{entity:Ki.Opt(d),name:Ki.Opt(i("text_component"))},"minecraft:set_nbt":{tag:n({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:Ki.Opt(Ki.ListNode(Ki.ObjectNode({type:n({validator:"resource",params:{pool:"mob_effect"}}),duration:Xi.Range()})))}},o={};return t.get("loot_function_type").forEach((t=>{o[t]=s(s({},e[t]),r)})),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ki.Mod(Ki.ObjectNode({condition:l,[Ki.Switch]:[{push:"condition"}],[Ki.Case]:c(s({},Xi.ConditionCases),{"minecraft:entity_properties":{entity:d,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:d,scores:Ki.MapNode(n({validator:"objective"}),Xi.Range({bounds:!0}))}})},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ki.Mod(Ki.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:Xi.Range({bounds:!0}),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Ki.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Ji={};Object.defineProperty(Ji,"__esModule",{value:!0}),Ji.initPackMcmetaSchemas=void 0;const Yi=Te;Ji.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Yi.Mod(Yi.ObjectNode({pack:Yi.Mod(Yi.ObjectNode({pack_format:Yi.Mod(Yi.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:Yi.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))};var Zi={};Object.defineProperty(Zi,"__esModule",{value:!0}),Zi.initPredicatesSchemas=void 0;const Qi=Te,en=Ci;Zi.initPredicatesSchemas=function(e,t){const i=Qi.Reference.bind(void 0,e),n=Qi.StringNode.bind(void 0,t),r=Qi.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Qi.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Qi.ObjectNode({min:Qi.Opt(Qi.NumberNode({integer:!0})),max:Qi.Opt(Qi.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Qi.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Qi.ObjectNode({item:Qi.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:Qi.Opt(en.Range()),durability:Qi.Opt(en.Range()),potion:Qi.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Qi.Opt(Qi.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Qi.ObjectNode({enchantment:Qi.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:Qi.Opt(en.Range())},{context:"enchantment"})),e.register("block_predicate",Qi.ObjectNode({block:Qi.Opt(n({validator:"resource",params:{pool:"block"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Qi.Opt(Qi.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Qi.ObjectNode({fluid:Qi.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Qi.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Qi.Opt(Qi.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Qi.ObjectNode({position:Qi.Opt(Qi.ObjectNode({x:Qi.Opt(en.Range()),y:Qi.Opt(en.Range()),z:Qi.Opt(en.Range())})),biome:Qi.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Qi.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Qi.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Qi.Opt(Qi.ObjectNode({light:Qi.Opt(en.Range({integer:!0,min:0,max:15}))})),smokey:Qi.Opt(Qi.BooleanNode()),block:Qi.Opt(i("block_predicate")),fluid:Qi.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Qi.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:en.Range(),[Qi.Switch]:[{push:"type"}],[Qi.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Qi.ObjectNode({gamemode:Qi.Opt(n({enum:"gamemode"})),level:Qi.Opt(en.Range()),advancements:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Qi.ChoiceNode([{type:"boolean",node:Qi.BooleanNode(),change:e=>!0},{type:"object",node:Qi.MapNode(n(),Qi.BooleanNode())}]))),recipes:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Qi.BooleanNode())),stats:Qi.Opt(Qi.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",Qi.ObjectNode({amplifier:Qi.Opt(en.Range()),duration:Qi.Opt(en.Range()),ambient:Qi.Opt(Qi.BooleanNode()),visible:Qi.Opt(Qi.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Qi.ObjectNode({x:Qi.Opt(en.Range()),y:Qi.Opt(en.Range()),z:Qi.Opt(en.Range()),absolute:Qi.Opt(en.Range()),horizontal:Qi.Opt(en.Range())},{context:"distance"})),e.register("entity_predicate",Qi.ObjectNode({type:Qi.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Qi.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Qi.Opt(n({validator:"team"})),location:Qi.Opt(i("location_predicate")),distance:Qi.Opt(i("distance_predicate")),flags:Qi.Opt(Qi.ObjectNode({is_on_fire:Qi.Opt(Qi.BooleanNode()),is_sneaking:Qi.Opt(Qi.BooleanNode()),is_sprinting:Qi.Opt(Qi.BooleanNode()),is_swimming:Qi.Opt(Qi.BooleanNode()),is_baby:Qi.Opt(Qi.BooleanNode())})),equipment:Qi.Opt(Qi.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:Qi.Opt(i("entity_predicate")),targeted_entity:Qi.Opt(i("entity_predicate")),player:Qi.Opt(i("player_predicate")),fishing_hook:Qi.Opt(Qi.ObjectNode({in_open_water:Qi.Opt(Qi.BooleanNode())})),effects:Qi.Opt(Qi.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Qi.ObjectNode({is_explosion:Qi.Opt(Qi.BooleanNode()),is_fire:Qi.Opt(Qi.BooleanNode()),is_magic:Qi.Opt(Qi.BooleanNode()),is_projectile:Qi.Opt(Qi.BooleanNode()),is_lightning:Qi.Opt(Qi.BooleanNode()),bypasses_armor:Qi.Opt(Qi.BooleanNode()),bypasses_invulnerability:Qi.Opt(Qi.BooleanNode()),bypasses_magic:Qi.Opt(Qi.BooleanNode()),source_entity:Qi.Opt(i("entity_predicate")),direct_entity:Qi.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Qi.ObjectNode({dealt:Qi.Opt(en.Range()),taken:Qi.Opt(en.Range()),blocked:Qi.Opt(Qi.BooleanNode()),source_entity:Qi.Opt(i("entity_predicate")),type:Qi.Opt(i("damage_source_predicate"))},{context:"damage"}))};var tn={};Object.defineProperty(tn,"__esModule",{value:!0}),tn.initRecipeSchemas=void 0;const nn=Te;tn.initRecipeSchemas=function(e,t){const i=nn.Reference.bind(void 0,e),n=nn.StringNode.bind(void 0,t);e.register("recipe",nn.Mod(nn.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[nn.Switch]:[{push:"type"}],[nn.Case]:{"minecraft:crafting_shaped":{group:nn.Opt(n({enum:"recipe_group",additional:!0})),pattern:nn.ListNode(n()),key:nn.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:nn.Opt(n()),ingredients:nn.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:nn.Opt(nn.NumberNode()),cookingtime:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:nn.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:nn.NumberNode({integer:!0})},"minecraft:smithing":{group:nn.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",nn.Mod(nn.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:nn.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",nn.Mod(nn.ObjectNode({item:nn.Opt(n({validator:"resource",params:{pool:"item"}})),tag:nn.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",nn.Mod(nn.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:nn.Opt(nn.Mod(nn.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var rn={};Object.defineProperty(rn,"__esModule",{value:!0}),rn.initTagsSchemas=void 0;const on=Te;rn.initTagsSchemas=function(e,t){const i=on.StringNode.bind(void 0,t),n=e=>on.Mod(on.ObjectNode({replace:on.Opt(on.BooleanNode()),values:on.ListNode(on.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:on.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:on.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("item_tag",n("item"))};var an={};Object.defineProperty(an,"__esModule",{value:!0}),an.initTextComponentSchemas=void 0;const sn=Te;an.initTextComponentSchemas=function(e,t){const i=sn.Reference.bind(void 0,e),n=sn.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",sn.Mod(sn.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:sn.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:sn.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:sn.Opt(n()),font:sn.Opt(n()),bold:sn.Opt(sn.BooleanNode()),italic:sn.Opt(sn.BooleanNode()),underlined:sn.Opt(sn.BooleanNode()),strikethrough:sn.Opt(sn.BooleanNode()),obfuscated:sn.Opt(sn.BooleanNode()),insertion:sn.Opt(n()),clickEvent:sn.Opt(sn.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:sn.Opt(sn.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[sn.Switch]:[{push:"action"}],[sn.Case]:{show_text:{value:sn.Opt(i("text_component")),contents:sn.Opt(i("text_component"))},show_item:{value:sn.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:sn.Opt(sn.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:sn.Opt(sn.NumberNode({integer:!0})),tag:sn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:sn.Opt(sn.ObjectNode({name:sn.Opt(n()),type:sn.Opt(n()),id:sn.Opt(n())})),contents:sn.Opt(sn.Mod(sn.ObjectNode({name:sn.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:sn.Opt(i("text_component_list"))};e.register("text_component_object",sn.Mod(sn.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:sn.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:sn.ObjectNode(s({translate:n(),with:sn.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:sn.ObjectNode(s({score:sn.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:sn.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:sn.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}})},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:sn.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:sn.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:sn.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:sn.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:sn.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:sn.Opt(sn.BooleanNode())},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",sn.Mod(sn.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var cn={},ln={};Object.defineProperty(ln,"__esModule",{value:!0}),ln.initBiomeSchemas=void 0;const un=Te;ln.initBiomeSchemas=function(e,t){const i=un.StringNode.bind(void 0,t);e.register("biome",un.Mod(un.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:un.NumberNode(),scale:un.NumberNode(),temperature:un.NumberNode(),downfall:un.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:un.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:un.Opt(un.BooleanNode()),creature_spawn_probability:un.Opt(un.NumberNode({min:0,max:1})),effects:un.ObjectNode({sky_color:un.NumberNode({color:!0}),fog_color:un.NumberNode({color:!0}),water_color:un.NumberNode({color:!0}),water_fog_color:un.NumberNode({color:!0}),grass_color:un.Opt(un.NumberNode({color:!0})),foliage_color:un.Opt(un.NumberNode({color:!0})),grass_color_modifier:un.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:un.Opt(i()),mood_sound:un.Opt(un.ObjectNode({sound:i(),tick_delay:un.NumberNode({integer:!0}),block_search_extent:un.NumberNode({integer:!0}),offset:un.NumberNode()})),additions_sound:un.Opt(un.ObjectNode({sound:i(),tick_chance:un.NumberNode({min:0,max:1})})),music:un.Opt(un.ObjectNode({sound:i(),min_delay:un.NumberNode({integer:!0,min:0}),max_delay:un.NumberNode({integer:!0,min:0}),replace_current_music:un.BooleanNode()})),particle:un.Opt(un.ObjectNode({options:un.ObjectNode({type:i()}),probability:un.NumberNode({min:0,max:1})}))}),starts:un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:un.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),un.Mod(un.ListNode(un.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:un.NumberNode({integer:!0}),minCount:un.NumberNode({integer:!0}),maxCount:un.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:un.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),un.Mod(un.ObjectNode({energy_budget:un.NumberNode(),charge:un.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:un.MapNode(i({enum:["air","liquid"]}),un.Mod(un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:un.ListNode(un.Mod(un.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var dn={};Object.defineProperty(dn,"__esModule",{value:!0}),dn.initCarverSchemas=void 0;const hn=Te;dn.initCarverSchemas=function(e,t){const i=hn.StringNode.bind(void 0,t);e.register("configured_carver",hn.Mod(hn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:hn.ObjectNode({probability:hn.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var pn={};Object.defineProperty(pn,"__esModule",{value:!0}),pn.initDecoratorSchemas=void 0;const mn=Te,fn=Ci;pn.initDecoratorSchemas=function(e,t){const i=mn.Reference.bind(void 0,e),n=mn.StringNode.bind(void 0,t),r={maximum:mn.NumberNode({integer:!0}),bottom_offset:mn.NumberNode({integer:!0}),top_offset:mn.NumberNode({integer:!0})},o={chance:mn.NumberNode({integer:!0,min:0})},a={count:fn.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",mn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:mn.ObjectNode({[mn.Switch]:["pop",{push:"type"}],[mn.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:mn.NumberNode({min:0,max:1})},"minecraft:chance":o,"minecraft:count":a,"minecraft:count_extra":{count:mn.NumberNode({integer:!0}),extra_count:mn.NumberNode({integer:!0}),extra_chance:mn.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:mn.NumberNode(),below_noise:mn.NumberNode({integer:!0}),above_noise:mn.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:mn.NumberNode({integer:!0}),noise_factor:mn.NumberNode(),noise_offset:mn.Opt(mn.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:mn.NumberNode({integer:!0}),spread:mn.NumberNode({integer:!0})},"minecraft:fire":a,"minecraft:glowstone":a,"minecraft:lava_lake":o,"minecraft:range":r,"minecraft:range_biased":r,"minecraft:range_very_biased":r,"minecraft:water_lake":o}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var gn={},_n={};Object.defineProperty(_n,"__esModule",{value:!0}),_n.initProcessorListSchemas=void 0;const bn=Te;_n.initProcessorListSchemas=function(e,t){const i=bn.Reference.bind(void 0,e),n=bn.StringNode.bind(void 0,t);e.register("processor_list",bn.Mod(bn.ObjectNode({processors:bn.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",bn.Mod(bn.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[bn.Switch]:[{push:"processor_type"}],[bn.Case]:{"minecraft:block_age":{mossiness:bn.NumberNode()},"minecraft:block_ignore":{blocks:bn.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:bn.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:bn.NumberNode({integer:!0})},"minecraft:rule":{rules:bn.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",bn.Mod(bn.ObjectNode({position_predicate:bn.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:bn.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:bn.NumberNode({min:0,max:255,integer:!0}),max_dist:bn.NumberNode({min:0,max:255,integer:!0}),min_chance:bn.NumberNode({min:0,max:1}),max_chance:bn.NumberNode({min:0,max:1})};e.register("pos_rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",bn.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[bn.Switch]:[{push:"predicate_type"}],[bn.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:bn.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:bn.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(gn,"__esModule",{value:!0}),gn.initFeatureSchemas=void 0;const vn=Te,yn=Ci;gn.initFeatureSchemas=function(e,t){const i=vn.Reference.bind(void 0,e),n=vn.StringNode.bind(void 0,t),r={can_replace:vn.BooleanNode(),project:vn.BooleanNode(),need_water:vn.BooleanNode(),xspread:vn.NumberNode({integer:!0}),yspread:vn.NumberNode({integer:!0}),zspread:vn.NumberNode({integer:!0}),tries:vn.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:vn.ListNode(i("block_state")),blacklist:vn.ListNode(i("block_state"))},o={state:i("block_state"),radius:yn.UniformInt({min:0,max:4,maxSpread:4}),half_height:vn.NumberNode({integer:!0,min:0,max:4}),targets:vn.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:vn.Opt(vn.NumberNode({integer:!0}))},s={state:i("block_state"),size:vn.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},c={count:yn.UniformInt({min:-10,max:128,maxSpread:128})},l=vn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:vn.ObjectNode({[vn.Switch]:["pop",{push:"type"}],[vn.Case]:{"minecraft:bamboo":{probability:vn.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:yn.UniformInt({min:0,max:2,maxSpread:1}),height:yn.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:yn.UniformInt({min:0,max:8,maxSpread:8}),rim_size:yn.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":o,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:vn.BooleanNode(),exit:vn.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:vn.Opt(vn.BooleanNode()),crystal_beam_target:vn.Opt(i("block_pos")),spikes:vn.ListNode(vn.ObjectNode({centerX:vn.Opt(vn.NumberNode({integer:!0})),centerZ:vn.Opt(vn.NumberNode({integer:!0})),radius:vn.Opt(vn.NumberNode({integer:!0})),height:vn.Opt(vn.NumberNode({integer:!0})),guarded:vn.Opt(vn.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:vn.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:vn.Opt(vn.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:yn.UniformInt()},"minecraft:no_bonemeal_flower":r,"minecraft:no_surface_ore":s,"minecraft:ore":s,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:vn.ListNode(vn.ObjectNode({chance:vn.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:sea_pickle":c,"minecraft:seagrass":{probability:vn.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:vn.ListNode(i("block_state")),place_in:vn.ListNode(i("block_state")),place_under:vn.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:vn.ListNode(l)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:vn.NumberNode({integer:!0}),hole_count:vn.NumberNode({integer:!0}),requires_block_below:vn.BooleanNode(),valid_blocks:vn.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:vn.NumberNode({integer:!0}),ignore_vines:vn.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:vn.NumberNode({integer:!0,min:0,max:32}),height_rand_a:vn.NumberNode({integer:!0,min:0,max:24}),height_rand_b:vn.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:yn.UniformInt({min:0,max:8,maxSpread:8}),offset:yn.UniformInt({min:0,max:8,maxSpread:8}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:blob_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:vn.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:yn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:yn.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:yn.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:vn.ListNode(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:vn.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:vn.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:vn.Opt(vn.NumberNode({min:0,max:80})),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:two_layers_feature_size":{limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:81})),lower_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),upper_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:80})),upper_limit:vn.Opt(vn.NumberNode({integer:!0,min:0,max:80})),lower_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),middle_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16})),upper_size:vn.Opt(vn.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:vn.ListNode(vn.Mod(vn.ObjectNode({weight:vn.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",vn.Mod(vn.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[vn.Switch]:[{push:"type"}],[vn.Case]:{"minecraft:column_placer":{min_size:vn.NumberNode({integer:!0}),extra_size:vn.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var wn={};Object.defineProperty(wn,"__esModule",{value:!0}),wn.initNoiseSettingsSchemas=void 0;const xn=Te,Nn=Ci;wn.initNoiseSettingsSchemas=function(e,t){const i=xn.Reference.bind(void 0,e),n=xn.StringNode.bind(void 0,t);e.register("noise_settings",xn.Mod(xn.ObjectNode({name:xn.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:xn.NumberNode({integer:!0}),bedrock_floor_position:xn.NumberNode({integer:!0}),sea_level:xn.NumberNode({integer:!0}),disable_mob_generation:xn.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:xn.ObjectNode({height:xn.NumberNode({integer:!0}),density_factor:xn.NumberNode(),density_offset:xn.NumberNode(),size_horizontal:xn.NumberNode({integer:!0}),size_vertical:xn.NumberNode({integer:!0}),simplex_surface_noise:xn.BooleanNode(),random_density_offset:xn.Opt(xn.BooleanNode()),island_noise_override:xn.Opt(xn.BooleanNode()),amplified:xn.Opt(xn.BooleanNode()),sampling:xn.ObjectNode({xz_scale:xn.NumberNode(),y_scale:xn.NumberNode(),xz_factor:xn.NumberNode(),y_factor:xn.NumberNode()}),bottom_slide:xn.ObjectNode({target:xn.NumberNode({integer:!0}),size:xn.NumberNode({integer:!0}),offset:xn.NumberNode({integer:!0})}),top_slide:xn.ObjectNode({target:xn.NumberNode({integer:!0}),size:xn.NumberNode({integer:!0}),offset:xn.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>Nn.DefaultNoiseSettings})),e.register("generator_structures",xn.ObjectNode({stronghold:xn.Opt(xn.ObjectNode({distance:xn.NumberNode({integer:!0,min:0,max:1023}),spread:xn.NumberNode({integer:!0,min:0,max:1023}),count:xn.NumberNode({integer:!0,min:1,max:4095})})),structures:xn.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),xn.Mod(xn.ObjectNode({spacing:xn.NumberNode({integer:!0,min:0,max:4096}),separation:xn.Mod(xn.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:xn.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",xn.Mod(xn.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:xn.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var An={};Object.defineProperty(An,"__esModule",{value:!0}),An.initStructureFeatureSchemas=void 0;const kn=Te;An.initStructureFeatureSchemas=function(e,t){const i=kn.StringNode.bind(void 0,t),n={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:kn.NumberNode({integer:!0})};e.register("configured_structure_feature",kn.Mod(kn.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:kn.ObjectNode({[kn.Switch]:["pop",{push:"type"}],[kn.Case]:{"minecraft:bastion_remnant":n,"minecraft:buried_treasure":{probability:kn.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:kn.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:kn.NumberNode({min:0,max:1}),cluster_probability:kn.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":n,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:kn.Opt(kn.BooleanNode())},"minecraft:village":n}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var Cn={};Object.defineProperty(Cn,"__esModule",{value:!0}),Cn.initSurfaceBuilderSchemas=void 0;const En=Te;Cn.initSurfaceBuilderSchemas=function(e,t){const i=En.StringNode.bind(void 0,t),n=En.Reference.bind(void 0,e);e.register("configured_surface_builder",En.Mod(En.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:En.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0}),Sn.initTemplatePoolSchemas=void 0;const Fn=Te;Sn.initTemplatePoolSchemas=function(e,t){const i=Fn.Reference.bind(void 0,e),n=Fn.StringNode.bind(void 0,t),r=Fn.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",Fn.Mod(Fn.ObjectNode({name:n(),fallback:n(),elements:Fn.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",Fn.Mod(Fn.ObjectNode({weight:Fn.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",Fn.Mod(Fn.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[Fn.Switch]:[{push:"element_type"}],[Fn.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r},"minecraft:list_pool_element":{elements:Fn.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(cn,"__esModule",{value:!0}),cn.initWorldgenSchemas=void 0;const On=ln,Dn=dn,Bn=pn,Ln=gn,Mn=wn,$n=_n,Tn=An,Rn=Cn,jn=Sn;cn.initWorldgenSchemas=function(e,t){On.initBiomeSchemas(e,t),Dn.initCarverSchemas(e,t),Bn.initDecoratorSchemas(e,t),Ln.initFeatureSchemas(e,t),Mn.initNoiseSettingsSchemas(e,t),$n.initProcessorListSchemas(e,t),Tn.initStructureFeatureSchemas(e,t),Rn.initSurfaceBuilderSchemas(e,t),jn.initTemplatePoolSchemas(e,t)};var In={};Object.defineProperty(In,"__esModule",{value:!0}),In.initWorldSettingsSchemas=void 0;const Pn=Te;In.initWorldSettingsSchemas=function(e,t){const i=Pn.Reference.bind(void 0,e),n=Pn.StringNode.bind(void 0,t);e.register("world_settings",Pn.Mod(Pn.ObjectNode({generate_features:Pn.BooleanNode(),bonus_chest:Pn.BooleanNode(),seed:Pn.NumberNode({integer:!0}),dimensions:Pn.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.initSchemas=void 0;const zn=ki,Un=Fi,Wn=Ci,Hn=Ti,qn=Ii,Vn=Ui,Kn=qi,Gn=Ji,Xn=Zi,Jn=tn,Yn=rn,Zn=an,Qn=cn,er=In;Ai.initSchemas=function(e,t){Wn.initCommonSchemas(e,t),zn.initAdvancementSchemas(e,t),Un.initAssetsSchemas(e,t),Hn.initConditionSchemas(e,t),Vn.initDimensionTypeSchemas(e,t),qn.initDimensionSchemas(e,t),Kn.initLootTableSchemas(e,t),Gn.initPackMcmetaSchemas(e,t),Xn.initPredicatesSchemas(e,t),Jn.initRecipeSchemas(e,t),Yn.initTagsSchemas(e,t),Zn.initTextComponentSchemas(e,t),Qn.initWorldgenSchemas(e,t),er.initWorldSettingsSchemas(e,t)};var tr=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),ir=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nr=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&tr(t,e,i);return ir(t,e),t};Object.defineProperty(xi,"__esModule",{value:!0});var rr=xi.getSchemas=xi.getCollections=void 0;const or=Te,ar=Ni,sr=Ai;var cr=xi.lootContext=nr(Vi);var lr=xi.getCollections=function(){const e=new or.CollectionRegistry;return ar.initCollections(e),e};rr=xi.getSchemas=function(e){const t=new or.SchemaRegistry;return sr.initSchemas(t,e),t};var ur=Object.freeze(Object.assign(Object.create(null),xi,{[Symbol.toStringTag]:"Module",get getSchemas(){return rr},get getCollections(){return lr},lootContext:cr,default:xi})),dr={},hr={};Object.defineProperty(hr,"__esModule",{value:!0}),hr.initCollections=void 0,hr.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])};var pr={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.initAdvancementSchemas=void 0;const fr=Te;mr.initAdvancementSchemas=function(e,t){const i=fr.Reference.bind(void 0,e),n=fr.StringNode.bind(void 0,t),r=fr.ChoiceNode([{type:"object",node:fr.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:fr.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",fr.Mod(fr.ObjectNode({display:fr.Opt(fr.Mod(fr.ObjectNode({icon:fr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:fr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:fr.Opt(n()),frame:fr.Opt(n({enum:["task","challenge","goal"]})),show_toast:fr.Opt(fr.BooleanNode()),announce_to_chat:fr.Opt(fr.BooleanNode()),hidden:fr.Opt(fr.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:fr.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:fr.MapNode(n(),i("advancement_criteria")),requirements:fr.Opt(fr.ListNode(fr.ListNode(n()))),rewards:fr.Opt(fr.ObjectNode({function:fr.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:fr.Opt(fr.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:fr.Opt(fr.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:fr.Opt(fr.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",fr.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:fr.Opt(fr.ObjectNode({player:fr.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[fr.Switch]:["pop",{push:"trigger"}],[fr.Case]:{"minecraft:bee_nest_destroyed":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:fr.Opt(fr.NumberNode({integer:!0})),item:fr.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:fr.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:fr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:fr.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:fr.Opt(fr.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:fr.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:fr.Opt(fr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),fr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:fr.Opt(r)},"minecraft:enter_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:fr.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:fr.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:fr.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:fr.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:fr.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:fr.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:fr.Opt(fr.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:fr.Opt(fr.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:fr.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:fr.Opt(i("item_predicate")),location:fr.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:fr.Opt(fr.ListNode(r))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:fr.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:fr.Opt(i("location_predicate")),exited:fr.Opt(i("location_predicate"))},"minecraft:placed_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}})),state:fr.Opt(fr.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:fr.Opt(i("item_predicate")),location:fr.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:fr.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:fr.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:fr.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:fr.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:fr.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:fr.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:fr.Opt(i("entity_predicate")),item:fr.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:fr.Opt(i("item_predicate"))},"minecraft:using_item":{item:fr.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:fr.Opt(i("entity_predicate")),item:fr.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var gr={},_r={};Object.defineProperty(_r,"__esModule",{value:!0}),_r.initModelSchemas=void 0;const br=Te;_r.initModelSchemas=function(e,t){br.Reference.bind(void 0,e);const i=br.StringNode.bind(void 0,t),n=(e,t,i)=>br.ListNode(br.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=br.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",br.Mod(br.ObjectNode({parent:br.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:br.Opt(br.BooleanNode()),gui_light:br.Opt(i({enum:"gui_light"})),textures:br.Opt(br.MapNode(i(),r)),elements:br.Opt(br.ListNode(br.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:br.Opt(br.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:br.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:br.Opt(br.BooleanNode())})),shade:br.Opt(br.BooleanNode()),faces:br.MapNode(i({enum:"direction"}),br.ObjectNode({texture:r,uv:br.Opt(n(4)),cullface:br.Opt(i({enum:"direction"})),rotation:br.Opt(br.NumberNode({integer:!0})),tintindex:br.Opt(br.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:br.Opt(br.MapNode(i({enum:"display_position"}),br.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:br.Opt(br.ListNode(br.ObjectNode({predicate:br.MapNode(i({enum:"item_model_predicates"}),br.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),vr.initBlockDefinitionSchemas=void 0;const yr=Te;vr.initBlockDefinitionSchemas=function(e,t){const i=yr.Reference.bind(void 0,e),n=yr.StringNode.bind(void 0,t);e.register("block_definition",yr.Mod(yr.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:yr.ObjectNode({variants:yr.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:yr.ObjectNode({multipart:yr.ListNode(yr.ObjectNode({when:yr.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:yr.Opt(yr.NumberEnum({integer:!0,values:[0,90,180,270]})),y:yr.Opt(yr.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:yr.Opt(yr.BooleanNode())};e.register("model_variant",yr.ChoiceNode([{type:"object",node:yr.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:yr.ListNode(yr.ObjectNode(c(s({},r),{weight:yr.Opt(yr.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",yr.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:yr.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:yr.ObjectNode({OR:yr.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(gr,"__esModule",{value:!0}),gr.initAssetsSchemas=void 0;const wr=_r,xr=vr;gr.initAssetsSchemas=function(e,t){xr.initBlockDefinitionSchemas(e,t),wr.initModelSchemas(e,t)};var Nr={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}}(Nr);var Ar={};Object.defineProperty(Ar,"__esModule",{value:!0}),Ar.initConditionSchemas=void 0;const kr=Te,Cr=Nr;Ar.initConditionSchemas=function(e,t){const i=kr.Reference.bind(void 0,e),n=kr.StringNode.bind(void 0,t);e.register("predicate",kr.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",kr.Mod(kr.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[kr.Switch]:[{push:"condition"}],[kr.Case]:Cr.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var Er={};Object.defineProperty(Er,"__esModule",{value:!0}),Er.initDimensionSchemas=void 0;const Sr=Te,Fr=Nr;Er.initDimensionSchemas=function(e,t){const i=Sr.Reference.bind(void 0,e),n=Sr.StringNode.bind(void 0,t),r=e=>Sr.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",Sr.Mod(Sr.ObjectNode({type:Fr.DimensionTypePresets(i("dimension_type")),generator:Sr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[Sr.Switch]:[{push:"type"}],[Sr.Case]:{"minecraft:noise":{seed:Sr.NumberNode({integer:!0}),settings:Fr.NoiseSettingsPresets(i("noise_settings")),biome_source:Sr.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[Sr.Switch]:[{push:"type"}],[Sr.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:Sr.NumberNode({integer:!0}),preset:Sr.Opt(n({enum:["nether"]})),altitude_noise:r(i("generator_biome_noise")),temperature_noise:r(i("generator_biome_noise")),humidity_noise:r(i("generator_biome_noise")),weirdness_noise:r(i("generator_biome_noise")),biomes:r(Sr.Mod(Sr.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:Sr.Opt(Sr.NumberNode({integer:!0,min:0,max:62})),biomes:Sr.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:Sr.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:Sr.NumberNode({integer:!0}),large_biomes:Sr.Opt(Sr.BooleanNode()),legacy_biome_init_layer:Sr.Opt(Sr.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:Sr.ObjectNode({biome:Sr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:Sr.Opt(Sr.BooleanNode()),features:Sr.Opt(Sr.BooleanNode()),layers:Sr.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",Sr.Mod(Sr.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:Sr.ObjectNode({altitude:Sr.NumberNode(),temperature:Sr.NumberNode(),humidity:Sr.NumberNode(),weirdness:Sr.NumberNode(),offset:Sr.NumberNode()})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",Sr.Mod(Sr.ObjectNode({firstOctave:Sr.NumberNode({integer:!0}),amplitudes:Sr.ListNode(Sr.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))};var Or={};Object.defineProperty(Or,"__esModule",{value:!0}),Or.initDimensionTypeSchemas=void 0;const Dr=Te,Br=Nr;Or.initDimensionTypeSchemas=function(e,t){const i=Dr.StringNode.bind(void 0,t);e.register("dimension_type",Dr.Mod(Dr.ObjectNode({name:Dr.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:Dr.BooleanNode(),natural:Dr.BooleanNode(),piglin_safe:Dr.BooleanNode(),respawn_anchor_works:Dr.BooleanNode(),bed_works:Dr.BooleanNode(),has_raids:Dr.BooleanNode(),has_skylight:Dr.BooleanNode(),has_ceiling:Dr.BooleanNode(),coordinate_scale:Dr.NumberNode({min:1e-5,max:3e7}),ambient_light:Dr.NumberNode(),fixed_time:Dr.Opt(Dr.NumberNode({integer:!0})),logical_height:Dr.NumberNode({integer:!0,min:0,max:4096}),effects:Dr.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:Dr.NumberNode({integer:!0,min:-2048,max:2047}),height:Dr.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Br.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Lr={};Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.initItemModifierSchemas=void 0;const Mr=Te,$r=Nr;Lr.initItemModifierSchemas=function(e,t){const i=Mr.Reference.bind(void 0,e),n=Mr.StringNode.bind(void 0,t);e.register("item_modifier",Mr.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Mr.Opt(Mr.ListNode(i("condition")))};e.register("function",Mr.Mod(Mr.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Mr.Switch]:[{push:"function"}],[Mr.Case]:$r.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Tr={},Rr={};Object.defineProperty(Rr,"__esModule",{value:!0}),Rr.LootFunctions=Rr.LootConditions=Rr.LootCopySources=Rr.LootEntitySources=Rr.LootTableTypes=void 0,Rr.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Rr.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Rr.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Rr.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Rr.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Tr,"__esModule",{value:!0}),Tr.initLootTableSchemas=void 0;const jr=Te,Ir=Rr,Pr=Nr;Tr.initLootTableSchemas=function(e,t){const i=jr.Reference.bind(void 0,e),n=jr.StringNode.bind(void 0,t),r={conditions:jr.Opt(jr.ListNode(i("loot_condition")))},o=s({functions:jr.Opt(jr.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Ir.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new jr.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),jr.SwitchNode(r)}const c=a(Ir.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Ir.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Ir.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Ir.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",jr.Mod(jr.ObjectNode({type:jr.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:jr.Opt(jr.ListNode(jr.Mod(jr.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:jr.Opt(i("number_provider")),entries:jr.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:jr.Opt(jr.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",jr.Mod(jr.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:jr.Opt(jr.Mod(jr.NumberNode({integer:!0,min:1}),h)),quality:jr.Opt(jr.Mod(jr.NumberNode({integer:!0}),h)),[jr.Switch]:[{push:"type"}],[jr.Case]:{"minecraft:alternatives":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:jr.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:jr.Opt(jr.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",jr.Mod(jr.ObjectNode({function:l,[jr.Switch]:[{push:"function"}],[jr.Case]:Pr.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",jr.Mod(jr.ObjectNode({condition:c,[jr.Switch]:[{push:"condition"}],[jr.Case]:Pr.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",jr.Mod(jr.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:jr.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.initPackMcmetaSchemas=void 0;const Ur=Te;zr.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Ur.Mod(Ur.ObjectNode({pack:Ur.Mod(Ur.ObjectNode({pack_format:Ur.Mod(Ur.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:Ur.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))};var Wr={};Object.defineProperty(Wr,"__esModule",{value:!0}),Wr.initPredicatesSchemas=void 0;const Hr=Te;Wr.initPredicatesSchemas=function(e,t){const i=Hr.Reference.bind(void 0,e),n=Hr.StringNode.bind(void 0,t),r=Hr.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Hr.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Hr.ObjectNode({min:Hr.Opt(Hr.NumberNode({integer:!0})),max:Hr.Opt(Hr.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Hr.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Hr.ObjectNode({items:Hr.Opt(Hr.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Hr.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Hr.Opt(Hr.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Hr.ObjectNode({enchantment:Hr.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Hr.ObjectNode({blocks:Hr.Opt(Hr.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Hr.Opt(Hr.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Hr.ObjectNode({fluid:Hr.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Hr.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Hr.Opt(Hr.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Hr.ObjectNode({position:Hr.Opt(Hr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Hr.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Hr.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:Hr.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Hr.Opt(Hr.ObjectNode({light:i("int_bounds")})),smokey:Hr.Opt(Hr.BooleanNode()),block:Hr.Opt(i("block_predicate")),fluid:Hr.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Hr.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Hr.Switch]:[{push:"type"}],[Hr.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Hr.ObjectNode({gamemode:Hr.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Hr.ChoiceNode([{type:"boolean",node:Hr.BooleanNode(),change:e=>!0},{type:"object",node:Hr.MapNode(n(),Hr.BooleanNode())}]))),recipes:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Hr.BooleanNode())),stats:Hr.Opt(Hr.ListNode(i("statistic_predicate"))),looking_at:Hr.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Hr.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Hr.Opt(Hr.BooleanNode()),visible:Hr.Opt(Hr.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Hr.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Hr.ObjectNode({type:Hr.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Hr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Hr.Opt(n({validator:"team"})),location:Hr.Opt(i("location_predicate")),stepping_on:Hr.Opt(i("location_predicate")),distance:Hr.Opt(i("distance_predicate")),flags:Hr.Opt(Hr.ObjectNode({is_on_fire:Hr.Opt(Hr.BooleanNode()),is_sneaking:Hr.Opt(Hr.BooleanNode()),is_sprinting:Hr.Opt(Hr.BooleanNode()),is_swimming:Hr.Opt(Hr.BooleanNode()),is_baby:Hr.Opt(Hr.BooleanNode())})),equipment:Hr.Opt(Hr.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Hr.Opt(i("player_predicate")),vehicle:Hr.Opt(i("entity_predicate")),passenger:Hr.Opt(i("entity_predicate")),targeted_entity:Hr.Opt(i("entity_predicate")),lightning_bolt:Hr.Opt(Hr.ObjectNode({blocks_set_on_fire:Hr.Opt(i("int_bounds")),entity_struck:Hr.Opt(i("entity_predicate"))})),fishing_hook:Hr.Opt(Hr.ObjectNode({in_open_water:Hr.Opt(Hr.BooleanNode())})),effects:Hr.Opt(Hr.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Hr.ObjectNode({is_explosion:Hr.Opt(Hr.BooleanNode()),is_fire:Hr.Opt(Hr.BooleanNode()),is_magic:Hr.Opt(Hr.BooleanNode()),is_projectile:Hr.Opt(Hr.BooleanNode()),is_lightning:Hr.Opt(Hr.BooleanNode()),bypasses_armor:Hr.Opt(Hr.BooleanNode()),bypasses_invulnerability:Hr.Opt(Hr.BooleanNode()),bypasses_magic:Hr.Opt(Hr.BooleanNode()),source_entity:Hr.Opt(i("entity_predicate")),direct_entity:Hr.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Hr.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Hr.Opt(Hr.BooleanNode()),source_entity:Hr.Opt(i("entity_predicate")),type:Hr.Opt(i("damage_source_predicate"))},{context:"damage"}))};var qr={};Object.defineProperty(qr,"__esModule",{value:!0}),qr.initRecipeSchemas=void 0;const Vr=Te;qr.initRecipeSchemas=function(e,t){const i=Vr.Reference.bind(void 0,e),n=Vr.StringNode.bind(void 0,t);e.register("recipe",Vr.Mod(Vr.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Vr.Switch]:[{push:"type"}],[Vr.Case]:{"minecraft:crafting_shaped":{group:Vr.Opt(n({enum:"recipe_group",additional:!0})),pattern:Vr.ListNode(n()),key:Vr.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Vr.Opt(n()),ingredients:Vr.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Vr.Opt(Vr.NumberNode()),cookingtime:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Vr.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Vr.NumberNode({integer:!0})},"minecraft:smithing":{group:Vr.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Vr.Mod(Vr.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Vr.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Vr.Mod(Vr.ObjectNode({item:Vr.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Vr.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Vr.Mod(Vr.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Vr.Opt(Vr.Mod(Vr.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Kr={};Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.initTagsSchemas=void 0;const Gr=Te;Kr.initTagsSchemas=function(e,t){const i=Gr.StringNode.bind(void 0,t),n=e=>Gr.Mod(Gr.ObjectNode({replace:Gr.Opt(Gr.BooleanNode()),values:Gr.ListNode(Gr.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Gr.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Gr.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Xr={};Object.defineProperty(Xr,"__esModule",{value:!0}),Xr.initTextComponentSchemas=void 0;const Jr=Te;Xr.initTextComponentSchemas=function(e,t){const i=Jr.Reference.bind(void 0,e),n=Jr.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Jr.Mod(Jr.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Jr.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Jr.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Jr.Opt(n()),font:Jr.Opt(n()),bold:Jr.Opt(Jr.BooleanNode()),italic:Jr.Opt(Jr.BooleanNode()),underlined:Jr.Opt(Jr.BooleanNode()),strikethrough:Jr.Opt(Jr.BooleanNode()),obfuscated:Jr.Opt(Jr.BooleanNode()),insertion:Jr.Opt(n()),clickEvent:Jr.Opt(Jr.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Jr.Switch]:[{push:"action"}],[Jr.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Jr.Opt(Jr.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Jr.Switch]:[{push:"action"}],[Jr.Case]:{show_text:{value:Jr.Opt(i("text_component")),contents:Jr.Opt(i("text_component"))},show_item:{value:Jr.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Jr.Opt(Jr.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Jr.Opt(Jr.NumberNode({integer:!0})),tag:Jr.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Jr.Opt(Jr.ObjectNode({name:Jr.Opt(n()),type:Jr.Opt(n()),id:Jr.Opt(n())})),contents:Jr.Opt(Jr.Mod(Jr.ObjectNode({name:Jr.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Jr.Opt(i("text_component_list"))};e.register("text_component_object",Jr.Mod(Jr.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Jr.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Jr.ObjectNode(s({translate:n(),with:Jr.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Jr.ObjectNode(s({score:Jr.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Jr.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Jr.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Jr.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Jr.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Jr.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Jr.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Jr.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Jr.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Jr.Opt(Jr.BooleanNode()),separator:Jr.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Jr.Mod(Jr.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var Yr={},Zr={};Object.defineProperty(Zr,"__esModule",{value:!0}),Zr.initBiomeSchemas=void 0;const Qr=Te;Zr.initBiomeSchemas=function(e,t){const i=Qr.StringNode.bind(void 0,t);e.register("biome",Qr.Mod(Qr.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:Qr.NumberNode(),scale:Qr.NumberNode(),temperature:Qr.NumberNode(),downfall:Qr.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Qr.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:Qr.Opt(Qr.BooleanNode()),creature_spawn_probability:Qr.Opt(Qr.NumberNode({min:0,max:1})),effects:Qr.ObjectNode({sky_color:Qr.NumberNode({color:!0}),fog_color:Qr.NumberNode({color:!0}),water_color:Qr.NumberNode({color:!0}),water_fog_color:Qr.NumberNode({color:!0}),grass_color:Qr.Opt(Qr.NumberNode({color:!0})),foliage_color:Qr.Opt(Qr.NumberNode({color:!0})),grass_color_modifier:Qr.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Qr.Opt(i()),mood_sound:Qr.Opt(Qr.ObjectNode({sound:i(),tick_delay:Qr.NumberNode({integer:!0}),block_search_extent:Qr.NumberNode({integer:!0}),offset:Qr.NumberNode()})),additions_sound:Qr.Opt(Qr.ObjectNode({sound:i(),tick_chance:Qr.NumberNode({min:0,max:1})})),music:Qr.Opt(Qr.ObjectNode({sound:i(),min_delay:Qr.NumberNode({integer:!0,min:0}),max_delay:Qr.NumberNode({integer:!0,min:0}),replace_current_music:Qr.BooleanNode()})),particle:Qr.Opt(Qr.ObjectNode({options:Qr.ObjectNode({type:i()}),probability:Qr.NumberNode({min:0,max:1})}))}),starts:Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:Qr.MapNode(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),Qr.Mod(Qr.ListNode(Qr.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Qr.NumberNode({integer:!0}),minCount:Qr.NumberNode({integer:!0}),maxCount:Qr.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Qr.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Qr.Mod(Qr.ObjectNode({energy_budget:Qr.NumberNode(),charge:Qr.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Qr.MapNode(i({enum:["air","liquid"]}),Qr.Mod(Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Qr.ListNode(Qr.Mod(Qr.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var eo={};Object.defineProperty(eo,"__esModule",{value:!0}),eo.initCarverSchemas=void 0;const to=Te,io=Nr;eo.initCarverSchemas=function(e,t){const i=to.Reference.bind(void 0,e),n=to.StringNode.bind(void 0,t),r={vertical_rotation:io.FloatProvider(),shape:to.ObjectNode({distance_factor:io.FloatProvider(),thickness:io.FloatProvider(),width_smoothness:to.NumberNode({integer:!0,min:0}),horizontal_radius_factor:io.FloatProvider(),vertical_radius_default_factor:to.NumberNode(),vertical_radius_center_factor:to.NumberNode()})},o={horizontal_radius_multiplier:io.FloatProvider(),vertical_radius_multiplier:io.FloatProvider(),floor_level:io.FloatProvider({min:-1,max:1})};e.register("configured_carver",to.Mod(to.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:to.ObjectNode({probability:to.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:io.FloatProvider(),lava_level:i("vertical_anchor"),aquifers_enabled:to.BooleanNode(),debug_settings:to.Opt(to.ObjectNode({debug_mode:to.Opt(to.BooleanNode()),air_state:to.Opt(i("block_state")),water_state:to.Opt(i("block_state")),lava_state:to.Opt(i("block_state")),barrier_state:to.Opt(i("block_state"))})),[to.Switch]:["pop",{push:"type"}],[to.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var no={};Object.defineProperty(no,"__esModule",{value:!0}),no.initDecoratorSchemas=void 0;const ro=Te,oo=Nr;no.initDecoratorSchemas=function(e,t){const i=ro.Reference.bind(void 0,e),n=ro.StringNode.bind(void 0,t),r={count:oo.IntProvider({min:0,max:256})};e.register("configured_decorator",ro.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:ro.ObjectNode({[ro.Switch]:["pop",{push:"type"}],[ro.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:ro.NumberNode({integer:!0})},"minecraft:chance":{chance:ro.NumberNode({integer:!0,min:0})},"minecraft:count":r,"minecraft:count_extra":{count:ro.NumberNode({integer:!0,min:0}),extra_count:ro.NumberNode({integer:!0,min:0}),extra_chance:ro.NumberNode({min:0,max:1})},"minecraft:count_multilayer":r,"minecraft:count_noise":{noise_level:ro.NumberNode(),below_noise:ro.NumberNode({integer:!0}),above_noise:ro.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:ro.NumberNode({integer:!0}),noise_factor:ro.NumberNode(),noise_offset:ro.Opt(ro.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:ro.NumberNode({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:ro.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))};var ao={},so={};Object.defineProperty(so,"__esModule",{value:!0}),so.initProcessorListSchemas=so.Processors=void 0;const co=Te;so.initProcessorListSchemas=function(e,t){const i=co.Reference.bind(void 0,e),n=co.StringNode.bind(void 0,t);so.Processors=co.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",co.Mod(co.ObjectNode({processors:co.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",co.Mod(co.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[co.Switch]:[{push:"processor_type"}],[co.Case]:{"minecraft:block_age":{mossiness:co.NumberNode()},"minecraft:block_ignore":{blocks:co.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:co.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:co.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:co.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",co.Mod(co.ObjectNode({position_predicate:co.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:co.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),max_dist:co.Opt(co.NumberNode({min:0,max:255,integer:!0})),min_chance:co.Opt(co.NumberNode({min:0,max:1})),max_chance:co.Opt(co.NumberNode({min:0,max:1}))};e.register("pos_rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",co.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[co.Switch]:[{push:"predicate_type"}],[co.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:co.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:co.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(ao,"__esModule",{value:!0}),ao.initFeatureSchemas=void 0;const lo=Te,uo=Nr,ho=so;ao.initFeatureSchemas=function(e,t){const i=lo.Reference.bind(void 0,e),n=lo.StringNode.bind(void 0,t),r={can_replace:lo.Opt(lo.BooleanNode()),project:lo.Opt(lo.BooleanNode()),need_water:lo.Opt(lo.BooleanNode()),xspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),yspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),zspread:lo.Opt(lo.NumberNode({integer:!0,min:0})),tries:lo.Opt(lo.NumberNode({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:lo.ListNode(i("block_state")),blacklist:lo.ListNode(i("block_state"))},o={state:i("block_state"),radius:uo.IntProvider({min:0,max:8}),half_height:lo.NumberNode({integer:!0,min:0,max:4}),targets:lo.ListNode(i("block_state"))},a={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:lo.Opt(lo.NumberNode({integer:!0}))},s=lo.ObjectNode({target:i("rule_test"),state:i("block_state")}),c={size:lo.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:lo.NumberNode({min:0,max:1}),targets:lo.ListNode(s)},l=lo.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:n({enum:["floor","ceiling"]}),depth:uo.IntProvider({min:1,max:128}),vertical_range:lo.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:lo.NumberNode({min:0,max:1}),extra_edge_column_chance:lo.NumberNode({min:0,max:1}),vegetation_chance:lo.NumberNode({min:0,max:1}),xz_radius:uo.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:l};e.register("configured_feature",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:lo.ObjectNode({[lo.Switch]:["pop",{push:"type"}],[lo.Case]:{"minecraft:bamboo":{probability:lo.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:uo.IntProvider({min:0,max:3}),height:uo.IntProvider({min:1,max:10})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:l},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:l},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:uo.IntProvider({min:0,max:16}),rim_size:uo.IntProvider({min:0,max:16})},"minecraft:disk":o,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:lo.NumberNode({integer:!0,min:1,max:512}),height:uo.IntProvider({min:0,max:128}),radius:uo.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:lo.NumberNode({integer:!0,min:0,max:64}),height_deviation:lo.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:uo.IntProvider({min:0,max:128}),density:uo.FloatProvider({min:0,max:2}),wetness:uo.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:lo.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:lo.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:lo.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:lo.BooleanNode(),exit:lo.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:lo.Opt(lo.BooleanNode()),crystal_beam_target:lo.Opt(i("block_pos")),spikes:lo.ListNode(lo.ObjectNode({centerX:lo.Opt(lo.NumberNode({integer:!0})),centerZ:lo.Opt(lo.NumberNode({integer:!0})),radius:lo.Opt(lo.NumberNode({integer:!0})),height:lo.Opt(lo.NumberNode({integer:!0})),guarded:lo.Opt(lo.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:lo.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":r,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:lo.NumberNode({integer:!0,min:0,max:7}),fossil_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:lo.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:ho.Processors,overlay_processors:ho.Processors},"minecraft:geode":{blocks:lo.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:lo.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:lo.ObjectNode({filling:lo.Opt(lo.NumberNode({min:.01,max:50})),inner_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),middle_layer:lo.Opt(lo.NumberNode({min:.01,max:50})),outer_layer:lo.Opt(lo.NumberNode({min:.01,max:50}))}),crack:lo.ObjectNode({generate_crack_chance:lo.Opt(lo.NumberNode({min:0,max:1})),base_crack_size:lo.Opt(lo.NumberNode({min:0,max:5})),crack_point_offset:lo.Opt(lo.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:lo.Opt(lo.NumberNode({min:0,max:1})),use_potential_placements_chance:lo.Opt(lo.NumberNode({min:0,max:1})),use_alternate_layer0_chance:lo.Opt(lo.NumberNode({min:0,max:1})),placements_require_layer0_alternate:lo.Opt(lo.BooleanNode()),outer_wall_distance:lo.Opt(uo.IntProvider({min:1,max:20})),distribution_points:lo.Opt(uo.IntProvider({min:1,max:20})),point_offset:lo.Opt(uo.IntProvider({min:0,max:10})),min_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),max_gen_offset:lo.Opt(lo.NumberNode({integer:!0})),invalid_blocks_threshold:lo.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:lo.Opt(lo.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:lo.Opt(lo.NumberNode({min:0,max:1})),can_place_on_floor:lo.Opt(lo.BooleanNode()),can_place_on_ceiling:lo.Opt(lo.BooleanNode()),can_place_on_wall:lo.Opt(lo.BooleanNode()),can_be_placed_on:lo.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:n({enum:["up","down","north","east","south","west"]}),allow_water:lo.BooleanNode(),height_distribution:lo.ListNode(lo.ObjectNode({weight:lo.NumberNode({integer:!0}),data:uo.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":a,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:lo.Opt(lo.BooleanNode())},"minecraft:huge_red_mushroom":a,"minecraft:ice_patch":o,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:lo.Opt(lo.NumberNode({integer:!0,min:1,max:512})),column_radius:uo.IntProvider({min:0,max:60}),height_scale:uo.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:lo.NumberNode({min:0,max:1}),stalactite_bluntness:uo.FloatProvider({min:.1,max:10}),stalagmite_bluntness:uo.FloatProvider({min:.1,max:10}),wind_speed:uo.FloatProvider({min:0,max:2}),min_radius_for_wind:lo.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:lo.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:uo.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":r,"minecraft:ore":c,"minecraft:random_patch":r,"minecraft:random_boolean_selector":{feature_false:l,feature_true:l},"minecraft:random_selector":{features:lo.ListNode(lo.ObjectNode({chance:lo.NumberNode({min:0,max:1}),feature:l})),default:l},"minecraft:replace_single_block":{targets:lo.ListNode(s)},"minecraft:root_system":{required_vertical_space_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_radius:lo.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:lo.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:lo.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:lo.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:lo.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:lo.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:l},"minecraft:scattered_ore":c,"minecraft:sea_pickle":{count:uo.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:lo.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:lo.Opt(lo.ListNode(i("block_state"))),place_in:lo.Opt(lo.ListNode(i("block_state"))),place_under:lo.Opt(lo.ListNode(i("block_state")))},"minecraft:simple_random_selector":{features:lo.ListNode(l)},"minecraft:small_dripstone":{max_placements:lo.Opt(lo.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:lo.Opt(lo.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:lo.Opt(lo.NumberNode({min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:lo.NumberNode({integer:!0}),hole_count:lo.NumberNode({integer:!0}),requires_block_below:lo.BooleanNode(),valid_blocks:lo.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:lo.Opt(lo.BooleanNode()),force_dirt:lo.Opt(lo.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),sapling_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:lo.NumberNode({integer:!0,min:0,max:32}),height_rand_a:lo.NumberNode({integer:!0,min:0,max:24}),height_rand_b:lo.NumberNode({integer:!0,min:0,max:24}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:bending_trunk_placer":{bend_length:uo.IntProvider({min:1,max:64}),min_height_for_leaves:lo.Opt(lo.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:uo.IntProvider({min:0,max:16}),offset:uo.IntProvider({min:0,max:16}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:blob_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:lo.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:uo.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:uo.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:uo.IntProvider({min:1,max:512}),leaf_placement_attempts:lo.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:uo.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:lo.ListNode(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:lo.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:lo.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:lo.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:lo.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:lo.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:lo.Opt(lo.NumberNode({min:0,max:80})),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:two_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:81})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),upper_limit:lo.Opt(lo.NumberNode({integer:!0,min:0,max:80})),lower_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),middle_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16})),upper_size:lo.Opt(lo.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:randomized_int_state_provider":{property:n(),values:uo.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:lo.ListNode(lo.Mod(lo.ObjectNode({weight:lo.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",lo.Mod(lo.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[lo.Switch]:[{push:"type"}],[lo.Case]:{"minecraft:column_placer":{size:uo.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))};var po={};Object.defineProperty(po,"__esModule",{value:!0}),po.initNoiseSettingsSchemas=void 0;const mo=Te,fo=Nr;po.initNoiseSettingsSchemas=function(e,t){const i=mo.Reference.bind(void 0,e),n=mo.StringNode.bind(void 0,t);e.register("noise_settings",mo.Mod(mo.ObjectNode({name:mo.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:mo.NumberNode({integer:!0}),bedrock_floor_position:mo.NumberNode({integer:!0}),sea_level:mo.NumberNode({integer:!0}),min_surface_level:mo.NumberNode({integer:!0}),disable_mob_generation:mo.BooleanNode(),noise_caves_enabled:mo.BooleanNode(),noodle_caves_enabled:mo.BooleanNode(),aquifers_enabled:mo.BooleanNode(),deepslate_enabled:mo.BooleanNode(),ore_veins_enabled:mo.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:mo.ObjectNode({min_y:mo.NumberNode({integer:!0,min:-2048,max:2047}),height:mo.NumberNode({integer:!0,min:0,max:4096}),density_factor:mo.NumberNode(),density_offset:mo.NumberNode(),size_horizontal:mo.NumberNode({integer:!0}),size_vertical:mo.NumberNode({integer:!0}),simplex_surface_noise:mo.BooleanNode(),random_density_offset:mo.Opt(mo.BooleanNode()),island_noise_override:mo.Opt(mo.BooleanNode()),amplified:mo.Opt(mo.BooleanNode()),sampling:mo.ObjectNode({xz_scale:mo.NumberNode(),y_scale:mo.NumberNode(),xz_factor:mo.NumberNode(),y_factor:mo.NumberNode()}),bottom_slide:mo.ObjectNode({target:mo.NumberNode({integer:!0}),size:mo.NumberNode({integer:!0,min:0}),offset:mo.NumberNode({integer:!0})}),top_slide:mo.ObjectNode({target:mo.NumberNode({integer:!0}),size:mo.NumberNode({integer:!0,min:0}),offset:mo.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>fo.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("generator_structures",mo.ObjectNode({stronghold:mo.Opt(mo.ObjectNode({distance:mo.NumberNode({integer:!0,min:0,max:1023}),spread:mo.NumberNode({integer:!0,min:0,max:1023}),count:mo.NumberNode({integer:!0,min:1,max:4095})})),structures:mo.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),mo.Mod(mo.ObjectNode({spacing:mo.NumberNode({integer:!0,min:0,max:4096}),separation:mo.Mod(mo.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:mo.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",mo.Mod(mo.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:mo.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))};var go={};Object.defineProperty(go,"__esModule",{value:!0}),go.initStructureFeatureSchemas=void 0;const _o=Te;go.initStructureFeatureSchemas=function(e,t){const i=_o.StringNode.bind(void 0,t),n=_o.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:_o.NumberNode({integer:!0})};e.register("configured_structure_feature",_o.Mod(_o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:_o.ObjectNode({[_o.Switch]:["pop",{push:"type"}],[_o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:_o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:_o.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:_o.NumberNode({min:0,max:1}),cluster_probability:_o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:_o.Opt(_o.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var bo={};Object.defineProperty(bo,"__esModule",{value:!0}),bo.initSurfaceBuilderSchemas=void 0;const vo=Te;bo.initSurfaceBuilderSchemas=function(e,t){const i=vo.StringNode.bind(void 0,t),n=vo.Reference.bind(void 0,e);e.register("configured_surface_builder",vo.Mod(vo.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:vo.ObjectNode({top_material:n("block_state"),under_material:n("block_state"),underwater_material:n("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))};var yo={};Object.defineProperty(yo,"__esModule",{value:!0}),yo.initTemplatePoolSchemas=void 0;const wo=Te,xo=so;yo.initTemplatePoolSchemas=function(e,t){const i=wo.Reference.bind(void 0,e),n=wo.StringNode.bind(void 0,t);e.register("template_pool",wo.Mod(wo.ObjectNode({name:n(),fallback:n(),elements:wo.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",wo.Mod(wo.ObjectNode({weight:wo.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",wo.Mod(wo.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[wo.Switch]:[{push:"element_type"}],[wo.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors},"minecraft:list_pool_element":{elements:wo.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:xo.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(Yr,"__esModule",{value:!0}),Yr.initWorldgenSchemas=void 0;const No=Zr,Ao=eo,ko=no,Co=ao,Eo=po,So=so,Fo=go,Oo=bo,Do=yo;Yr.initWorldgenSchemas=function(e,t){So.initProcessorListSchemas(e,t),No.initBiomeSchemas(e,t),Ao.initCarverSchemas(e,t),ko.initDecoratorSchemas(e,t),Co.initFeatureSchemas(e,t),Eo.initNoiseSettingsSchemas(e,t),Fo.initStructureFeatureSchemas(e,t),Oo.initSurfaceBuilderSchemas(e,t),Do.initTemplatePoolSchemas(e,t)};var Bo={};Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.initWorldSettingsSchemas=void 0;const Lo=Te;Bo.initWorldSettingsSchemas=function(e,t){const i=Lo.Reference.bind(void 0,e),n=Lo.StringNode.bind(void 0,t);e.register("world_settings",Lo.Mod(Lo.ObjectNode({generate_features:Lo.BooleanNode(),bonus_chest:Lo.BooleanNode(),seed:Lo.NumberNode({integer:!0}),dimensions:Lo.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(pr,"__esModule",{value:!0}),pr.initSchemas=void 0;const Mo=mr,$o=gr,To=Nr,Ro=Ar,jo=Er,Io=Or,Po=Lr,zo=Tr,Uo=zr,Wo=Wr,Ho=qr,qo=Kr,Vo=Xr,Ko=Yr,Go=Bo;pr.initSchemas=function(e,t){To.initCommonSchemas(e,t),Mo.initAdvancementSchemas(e,t),$o.initAssetsSchemas(e,t),Ro.initConditionSchemas(e,t),Io.initDimensionTypeSchemas(e,t),jo.initDimensionSchemas(e,t),Po.initItemModifierSchemas(e,t),zo.initLootTableSchemas(e,t),Uo.initPackMcmetaSchemas(e,t),Wo.initPredicatesSchemas(e,t),Ho.initRecipeSchemas(e,t),qo.initTagsSchemas(e,t),Vo.initTextComponentSchemas(e,t),Ko.initWorldgenSchemas(e,t),Go.initWorldSettingsSchemas(e,t)};var Xo=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Jo=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Yo=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Xo(t,e,i);return Jo(t,e),t};Object.defineProperty(dr,"__esModule",{value:!0});var Zo=dr.getSchemas=dr.getCollections=void 0;const Qo=Te,ea=hr,ta=pr;var ia=dr.lootContext=Yo(Rr);var na=dr.getCollections=function(){const e=new Qo.CollectionRegistry;return ea.initCollections(e),e};Zo=dr.getSchemas=function(e){const t=new Qo.SchemaRegistry;return ta.initSchemas(t,e),t};var ra=Object.freeze(Object.assign(Object.create(null),dr,{[Symbol.toStringTag]:"Module",get getSchemas(){return Zo},get getCollections(){return na},lootContext:ia,default:dr})),oa={},aa={};Object.defineProperty(aa,"__esModule",{value:!0}),aa.initCollections=void 0,aa.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"])};var sa={},ca={};Object.defineProperty(ca,"__esModule",{value:!0}),ca.initAdvancementSchemas=void 0;const la=Te;ca.initAdvancementSchemas=function(e,t){const i=la.Reference.bind(void 0,e),n=la.StringNode.bind(void 0,t),r=la.ChoiceNode([{type:"object",node:la.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:la.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",la.Mod(la.ObjectNode({display:la.Opt(la.Mod(la.ObjectNode({icon:la.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:la.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:la.Opt(n()),frame:la.Opt(n({enum:["task","challenge","goal"]})),show_toast:la.Opt(la.BooleanNode()),announce_to_chat:la.Opt(la.BooleanNode()),hidden:la.Opt(la.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:la.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:la.MapNode(n(),i("advancement_criteria")),requirements:la.Opt(la.ListNode(la.ListNode(n()))),rewards:la.Opt(la.ObjectNode({function:la.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:la.Opt(la.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:la.Opt(la.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",la.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:la.Opt(la.ObjectNode({player:la.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[la.Switch]:["pop",{push:"trigger"}],[la.Case]:{"minecraft:bee_nest_destroyed":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:la.Opt(la.NumberNode({integer:!0})),item:la.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:la.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:la.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:la.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:la.Opt(la.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:la.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:la.Opt(la.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),la.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:la.Opt(r)},"minecraft:enter_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:la.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:la.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:la.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:la.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:la.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:la.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:la.Opt(la.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:la.Opt(la.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:la.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:la.Opt(i("item_predicate")),location:la.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:la.Opt(la.ListNode(r))},"minecraft:levitation":{distance:la.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:la.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}})),state:la.Opt(la.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:la.Opt(i("item_predicate")),location:la.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:la.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:la.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:la.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:la.Opt(i("location_predicate")),distance:la.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:la.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:la.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:la.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:la.Opt(i("entity_predicate")),item:la.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:la.Opt(i("float_bounds"))},"minecraft:used_totem":{item:la.Opt(i("item_predicate"))},"minecraft:using_item":{item:la.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:la.Opt(i("entity_predicate")),item:la.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:la.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var ua={},da={};Object.defineProperty(da,"__esModule",{value:!0}),da.initModelSchemas=void 0;const ha=Te;da.initModelSchemas=function(e,t){ha.Reference.bind(void 0,e);const i=ha.StringNode.bind(void 0,t),n=(e,t,i)=>ha.ListNode(ha.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=ha.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",ha.Mod(ha.ObjectNode({parent:ha.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:ha.Opt(ha.BooleanNode()),gui_light:ha.Opt(i({enum:"gui_light"})),textures:ha.Opt(ha.MapNode(i(),r)),elements:ha.Opt(ha.ListNode(ha.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:ha.Opt(ha.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:ha.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:ha.Opt(ha.BooleanNode())})),shade:ha.Opt(ha.BooleanNode()),faces:ha.MapNode(i({enum:"direction"}),ha.ObjectNode({texture:r,uv:ha.Opt(n(4)),cullface:ha.Opt(i({enum:"direction"})),rotation:ha.Opt(ha.NumberNode({integer:!0})),tintindex:ha.Opt(ha.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:ha.Opt(ha.MapNode(i({enum:"display_position"}),ha.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:ha.Opt(ha.ListNode(ha.ObjectNode({predicate:ha.MapNode(i({enum:"item_model_predicates"}),ha.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var pa={};Object.defineProperty(pa,"__esModule",{value:!0}),pa.initBlockDefinitionSchemas=void 0;const ma=Te;pa.initBlockDefinitionSchemas=function(e,t){const i=ma.Reference.bind(void 0,e),n=ma.StringNode.bind(void 0,t);e.register("block_definition",ma.Mod(ma.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:ma.ObjectNode({variants:ma.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:ma.ObjectNode({multipart:ma.ListNode(ma.ObjectNode({when:ma.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:ma.Opt(ma.NumberEnum({integer:!0,values:[0,90,180,270]})),y:ma.Opt(ma.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:ma.Opt(ma.BooleanNode())};e.register("model_variant",ma.ChoiceNode([{type:"object",node:ma.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:ma.ListNode(ma.ObjectNode(c(s({},r),{weight:ma.Opt(ma.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",ma.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:ma.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:ma.ObjectNode({OR:ma.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(ua,"__esModule",{value:!0}),ua.initAssetsSchemas=void 0;const fa=da,ga=pa;ua.initAssetsSchemas=function(e,t){ga.initBlockDefinitionSchemas(e,t),fa.initModelSchemas(e,t)};var _a={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256};const i={"minecraft:igloo":{spacing:32,separation:8,salt:14357618},"minecraft:mansion":{spacing:80,separation:20,salt:10387319},"minecraft:jungle_pyramid":{spacing:32,separation:8,salt:14357619},"minecraft:nether_fossil":{spacing:2,separation:1,salt:14357921},"minecraft:stronghold":{spacing:1,separation:0,salt:0},"minecraft:shipwreck":{spacing:24,separation:4,salt:165745295},"minecraft:mineshaft":{spacing:1,separation:0,salt:0},"minecraft:desert_pyramid":{spacing:32,separation:8,salt:14357617},"minecraft:ruined_portal":{spacing:40,separation:15,salt:34222645},"minecraft:fortress":{spacing:27,separation:4,salt:30084232},"minecraft:pillager_outpost":{spacing:32,separation:8,salt:165745296},"minecraft:village":{spacing:32,separation:8,salt:10387312},"minecraft:endcity":{spacing:20,separation:11,salt:10387313},"minecraft:buried_treasure":{spacing:1,separation:0,salt:0},"minecraft:ocean_ruin":{spacing:20,separation:8,salt:14357621},"minecraft:bastion_remnant":{spacing:27,separation:4,salt:30084232},"minecraft:swamp_hut":{spacing:32,separation:8,salt:14357620},"minecraft:monument":{spacing:32,separation:5,salt:10387313}};e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},e.initCommonSchemas=function(n,r){const o=t.StringNode.bind(void 0,r),a=t.Reference.bind(void 0,n);n.register("block_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),n.register("fluid_state",t.Mod(t.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),n.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const c=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));n.register("int_bounds",c(!0)),n.register("float_bounds",c()),n.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(a("number_provider")),max:t.Opt(a("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const l=(e,i,n,r,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[r][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};n.register("number_provider",l("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:a("number_provider"),max:a("number_provider")},"minecraft:binomial":{n:a("number_provider"),p:a("number_provider")},"minecraft:score":{target:a("scoreboard_name_provider"),score:o({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),n.register("scoreboard_name_provider",l("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),n.register("nbt_provider",l("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>l("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),n.register("float_provider",e.FloatProvider()),e.IntProvider=e=>l("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:a("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:a("int_provider")}))}}),n.register("int_provider",e.IntProvider()),n.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),n.register("height_provider",l("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:a("vertical_anchor")},"minecraft:uniform":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:a("vertical_anchor"),max_inclusive:a("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),n.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(a("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:a("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:a("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(o({validator:"objective"}),a("int_range"))},"minecraft:inverted":{term:a("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:a("location_predicate")},"minecraft:match_tool":{predicate:a("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:a("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:a("number_provider"),range:a("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=o({enum:"copy_source"}),n=o({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:r.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:a("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:a("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(o({enum:"map_feature"})),decoration:t.Opt(o({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:n},"minecraft:limit_count":{limit:a("int_range")},"minecraft:looting_enchant":{count:a("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(a("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(a("loot_entry"))},"minecraft:set_count":{count:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:a("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),a("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:o({validator:"resource",params:{pool:"block_entity_type"}}),name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(n),lore:t.ListNode(a("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(n),name:t.Opt(a("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:o({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"mob_effect"}}),duration:a("number_provider")})))}},l={};return r.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=n=>t.ObjectOrPreset(o({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),n,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{structures:i}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{stronghold:{distance:32,spread:3,count:128},structures:i}}})}}(_a);var ba={};Object.defineProperty(ba,"__esModule",{value:!0}),ba.initConditionSchemas=void 0;const va=Te,ya=_a;ba.initConditionSchemas=function(e,t){const i=va.Reference.bind(void 0,e),n=va.StringNode.bind(void 0,t);e.register("predicate",va.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",va.Mod(va.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[va.Switch]:[{push:"condition"}],[va.Case]:ya.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var wa={};Object.defineProperty(wa,"__esModule",{value:!0}),wa.initDimensionSchemas=void 0;const xa=Te,Na=_a;wa.initDimensionSchemas=function(e,t){const i=xa.Reference.bind(void 0,e),n=xa.StringNode.bind(void 0,t);e.register("dimension",xa.Mod(xa.ObjectNode({type:Na.DimensionTypePresets(i("dimension_type")),generator:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:noise":{seed:xa.NumberNode({integer:!0}),settings:Na.NoiseSettingsPresets(i("noise_settings")),biome_source:xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[xa.Switch]:[{push:"type"}],[xa.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:xa.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:xa.Mod(xa.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:xa.Opt(xa.NumberNode({integer:!0,min:0,max:62})),biomes:xa.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:the_end":{seed:xa.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:xa.ObjectNode({biome:xa.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:xa.Opt(xa.BooleanNode()),features:xa.Opt(xa.BooleanNode()),layers:xa.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=xa.ChoiceNode([{type:"number",node:xa.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:xa.ListNode(xa.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",xa.Mod(xa.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:xa.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:xa.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var Aa={};Object.defineProperty(Aa,"__esModule",{value:!0}),Aa.initDimensionTypeSchemas=void 0;const ka=Te,Ca=_a;Aa.initDimensionTypeSchemas=function(e,t){const i=ka.StringNode.bind(void 0,t);e.register("dimension_type",ka.Mod(ka.ObjectNode({ultrawarm:ka.BooleanNode(),natural:ka.BooleanNode(),piglin_safe:ka.BooleanNode(),respawn_anchor_works:ka.BooleanNode(),bed_works:ka.BooleanNode(),has_raids:ka.BooleanNode(),has_skylight:ka.BooleanNode(),has_ceiling:ka.BooleanNode(),coordinate_scale:ka.NumberNode({min:1e-5,max:3e7}),ambient_light:ka.NumberNode(),fixed_time:ka.Opt(ka.NumberNode({integer:!0})),logical_height:ka.NumberNode({integer:!0,min:0,max:4096}),effects:ka.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:ka.NumberNode({integer:!0,min:-2048,max:2047}),height:ka.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),(e=>({default:()=>Ca.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&n.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var Ea={};Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.initItemModifierSchemas=void 0;const Sa=Te,Fa=_a;Ea.initItemModifierSchemas=function(e,t){const i=Sa.Reference.bind(void 0,e),n=Sa.StringNode.bind(void 0,t);e.register("item_modifier",Sa.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:Sa.Opt(Sa.ListNode(i("condition")))};e.register("function",Sa.Mod(Sa.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[Sa.Switch]:[{push:"function"}],[Sa.Case]:Fa.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Oa={},Da={};Object.defineProperty(Da,"__esModule",{value:!0}),Da.LootFunctions=Da.LootConditions=Da.LootCopySources=Da.LootEntitySources=Da.LootTableTypes=void 0,Da.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Da.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Da.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Da.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Da.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.initLootTableSchemas=void 0;const Ba=Te,La=Da,Ma=_a;Oa.initLootTableSchemas=function(e,t){const i=Ba.Reference.bind(void 0,e),n=Ba.StringNode.bind(void 0,t),r={conditions:Ba.Opt(Ba.ListNode(i("loot_condition")))},o=s({functions:Ba.Opt(Ba.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of La.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new Ba.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),Ba.SwitchNode(r)}const c=a(La.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(La.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(La.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(La.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",Ba.Mod(Ba.ObjectNode({type:Ba.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:Ba.Opt(Ba.ListNode(Ba.Mod(Ba.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:Ba.Opt(i("number_provider")),entries:Ba.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:Ba.Opt(Ba.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",Ba.Mod(Ba.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0,min:1}),h)),quality:Ba.Opt(Ba.Mod(Ba.NumberNode({integer:!0}),h)),[Ba.Switch]:[{push:"type"}],[Ba.Case]:{"minecraft:alternatives":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:Ba.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:Ba.Opt(Ba.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",Ba.Mod(Ba.ObjectNode({function:l,[Ba.Switch]:[{push:"function"}],[Ba.Case]:Ma.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",Ba.Mod(Ba.ObjectNode({condition:c,[Ba.Switch]:[{push:"condition"}],[Ba.Case]:Ma.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",Ba.Mod(Ba.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:Ba.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var $a={};Object.defineProperty($a,"__esModule",{value:!0}),$a.initPackMcmetaSchemas=void 0;const Ta=Te;$a.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Ta.Mod(Ta.ObjectNode({pack:Ta.Mod(Ta.ObjectNode({pack_format:Ta.Mod(Ta.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Ta.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Ra={};Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.initPredicatesSchemas=void 0;const ja=Te;Ra.initPredicatesSchemas=function(e,t){const i=ja.Reference.bind(void 0,e),n=ja.StringNode.bind(void 0,t),r=ja.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:ja.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:ja.ObjectNode({min:ja.Opt(ja.NumberNode({integer:!0})),max:ja.Opt(ja.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:ja.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",ja.ObjectNode({items:ja.Opt(ja.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:ja.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:ja.Opt(ja.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",ja.ObjectNode({enchantment:ja.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",ja.ObjectNode({blocks:ja.Opt(ja.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:ja.Opt(ja.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",ja.ObjectNode({fluid:ja.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:ja.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:ja.Opt(ja.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",ja.ObjectNode({position:ja.Opt(ja.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:ja.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:ja.Opt(n({enum:t.get("worldgen/structure_feature").map((e=>e.slice(10)))})),dimension:ja.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:ja.Opt(ja.ObjectNode({light:i("int_bounds")})),smokey:ja.Opt(ja.BooleanNode()),block:ja.Opt(i("block_predicate")),fluid:ja.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",ja.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[ja.Switch]:[{push:"type"}],[ja.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",ja.ObjectNode({gamemode:ja.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),ja.ChoiceNode([{type:"boolean",node:ja.BooleanNode(),change:e=>!0},{type:"object",node:ja.MapNode(n(),ja.BooleanNode())}]))),recipes:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),ja.BooleanNode())),stats:ja.Opt(ja.ListNode(i("statistic_predicate"))),looking_at:ja.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",ja.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:ja.Opt(ja.BooleanNode()),visible:ja.Opt(ja.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",ja.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",ja.ObjectNode({type:ja.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:ja.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:ja.Opt(n({validator:"team"})),location:ja.Opt(i("location_predicate")),stepping_on:ja.Opt(i("location_predicate")),distance:ja.Opt(i("distance_predicate")),flags:ja.Opt(ja.ObjectNode({is_on_fire:ja.Opt(ja.BooleanNode()),is_sneaking:ja.Opt(ja.BooleanNode()),is_sprinting:ja.Opt(ja.BooleanNode()),is_swimming:ja.Opt(ja.BooleanNode()),is_baby:ja.Opt(ja.BooleanNode())})),equipment:ja.Opt(ja.MapNode(n({enum:"slot"}),i("item_predicate"))),player:ja.Opt(i("player_predicate")),vehicle:ja.Opt(i("entity_predicate")),passenger:ja.Opt(i("entity_predicate")),targeted_entity:ja.Opt(i("entity_predicate")),lightning_bolt:ja.Opt(ja.ObjectNode({blocks_set_on_fire:ja.Opt(i("int_bounds")),entity_struck:ja.Opt(i("entity_predicate"))})),fishing_hook:ja.Opt(ja.ObjectNode({in_open_water:ja.Opt(ja.BooleanNode())})),effects:ja.Opt(ja.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",ja.ObjectNode({is_explosion:ja.Opt(ja.BooleanNode()),is_fire:ja.Opt(ja.BooleanNode()),is_magic:ja.Opt(ja.BooleanNode()),is_projectile:ja.Opt(ja.BooleanNode()),is_lightning:ja.Opt(ja.BooleanNode()),bypasses_armor:ja.Opt(ja.BooleanNode()),bypasses_invulnerability:ja.Opt(ja.BooleanNode()),bypasses_magic:ja.Opt(ja.BooleanNode()),source_entity:ja.Opt(i("entity_predicate")),direct_entity:ja.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",ja.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:ja.Opt(ja.BooleanNode()),source_entity:ja.Opt(i("entity_predicate")),type:ja.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0}),Ia.initRecipeSchemas=void 0;const Pa=Te;Ia.initRecipeSchemas=function(e,t){const i=Pa.Reference.bind(void 0,e),n=Pa.StringNode.bind(void 0,t);e.register("recipe",Pa.Mod(Pa.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Pa.Switch]:[{push:"type"}],[Pa.Case]:{"minecraft:crafting_shaped":{group:Pa.Opt(n({enum:"recipe_group",additional:!0})),pattern:Pa.ListNode(n()),key:Pa.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Pa.Opt(n()),ingredients:Pa.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Pa.Opt(Pa.NumberNode()),cookingtime:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Pa.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Pa.NumberNode({integer:!0})},"minecraft:smithing":{group:Pa.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Pa.Mod(Pa.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Pa.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Pa.Mod(Pa.ObjectNode({item:Pa.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Pa.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Pa.Mod(Pa.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Pa.Opt(Pa.Mod(Pa.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var za={};Object.defineProperty(za,"__esModule",{value:!0}),za.initTagsSchemas=void 0;const Ua=Te;za.initTagsSchemas=function(e,t){const i=Ua.StringNode.bind(void 0,t),n=e=>Ua.Mod(Ua.ObjectNode({replace:Ua.Opt(Ua.BooleanNode()),values:Ua.ListNode(Ua.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:Ua.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:Ua.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Wa={};Object.defineProperty(Wa,"__esModule",{value:!0}),Wa.initTextComponentSchemas=void 0;const Ha=Te;Wa.initTextComponentSchemas=function(e,t){const i=Ha.Reference.bind(void 0,e),n=Ha.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Ha.Mod(Ha.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Ha.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Ha.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Ha.Opt(n()),font:Ha.Opt(n()),bold:Ha.Opt(Ha.BooleanNode()),italic:Ha.Opt(Ha.BooleanNode()),underlined:Ha.Opt(Ha.BooleanNode()),strikethrough:Ha.Opt(Ha.BooleanNode()),obfuscated:Ha.Opt(Ha.BooleanNode()),insertion:Ha.Opt(n()),clickEvent:Ha.Opt(Ha.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Ha.Switch]:[{push:"action"}],[Ha.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Ha.Opt(Ha.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Ha.Switch]:[{push:"action"}],[Ha.Case]:{show_text:{value:Ha.Opt(i("text_component")),contents:Ha.Opt(i("text_component"))},show_item:{value:Ha.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Ha.Opt(Ha.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Ha.Opt(Ha.NumberNode({integer:!0})),tag:Ha.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Ha.Opt(Ha.ObjectNode({name:Ha.Opt(n()),type:Ha.Opt(n()),id:Ha.Opt(n())})),contents:Ha.Opt(Ha.Mod(Ha.ObjectNode({name:Ha.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Ha.Opt(i("text_component_list"))};e.register("text_component_object",Ha.Mod(Ha.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Ha.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Ha.ObjectNode(s({translate:n(),with:Ha.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Ha.ObjectNode(s({score:Ha.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Ha.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Ha.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Ha.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Ha.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Ha.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Ha.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Ha.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Ha.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Ha.Opt(Ha.BooleanNode()),separator:Ha.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Ha.Mod(Ha.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var qa={},Va={};Object.defineProperty(Va,"__esModule",{value:!0}),Va.initBiomeSchemas=void 0;const Ka=Te;Va.initBiomeSchemas=function(e,t){const i=Ka.StringNode.bind(void 0,t);e.register("biome",Ka.Mod(Ka.ObjectNode({temperature:Ka.NumberNode(),downfall:Ka.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:Ka.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),creature_spawn_probability:Ka.Opt(Ka.NumberNode({min:0,max:1})),effects:Ka.ObjectNode({sky_color:Ka.NumberNode({color:!0}),fog_color:Ka.NumberNode({color:!0}),water_color:Ka.NumberNode({color:!0}),water_fog_color:Ka.NumberNode({color:!0}),grass_color:Ka.Opt(Ka.NumberNode({color:!0})),foliage_color:Ka.Opt(Ka.NumberNode({color:!0})),grass_color_modifier:Ka.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:Ka.Opt(i()),mood_sound:Ka.Opt(Ka.ObjectNode({sound:i(),tick_delay:Ka.NumberNode({integer:!0}),block_search_extent:Ka.NumberNode({integer:!0}),offset:Ka.NumberNode()})),additions_sound:Ka.Opt(Ka.ObjectNode({sound:i(),tick_chance:Ka.NumberNode({min:0,max:1})})),music:Ka.Opt(Ka.ObjectNode({sound:i(),min_delay:Ka.NumberNode({integer:!0,min:0}),max_delay:Ka.NumberNode({integer:!0,min:0}),replace_current_music:Ka.BooleanNode()})),particle:Ka.Opt(Ka.ObjectNode({options:Ka.ObjectNode({type:i()}),probability:Ka.NumberNode({min:0,max:1})}))}),spawners:Ka.MapNode(i({enum:["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"]}),Ka.Mod(Ka.ListNode(Ka.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:Ka.NumberNode({integer:!0}),minCount:Ka.NumberNode({integer:!0}),maxCount:Ka.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:Ka.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),Ka.Mod(Ka.ObjectNode({energy_budget:Ka.NumberNode(),charge:Ka.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:Ka.MapNode(i({enum:["air","liquid"]}),Ka.Mod(Ka.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:Ka.ListNode(Ka.Mod(Ka.ListNode(i({validator:"resource",params:{pool:"$worldgen/placed_feature"}})),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))};var Ga={};Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.initCarverSchemas=void 0;const Xa=Te,Ja=_a;Ga.initCarverSchemas=function(e,t){const i=Xa.Reference.bind(void 0,e),n=Xa.StringNode.bind(void 0,t),r={vertical_rotation:Ja.FloatProvider(),shape:Xa.ObjectNode({distance_factor:Ja.FloatProvider(),thickness:Ja.FloatProvider(),width_smoothness:Xa.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Ja.FloatProvider(),vertical_radius_default_factor:Xa.NumberNode(),vertical_radius_center_factor:Xa.NumberNode()})},o={horizontal_radius_multiplier:Ja.FloatProvider(),vertical_radius_multiplier:Ja.FloatProvider(),floor_level:Ja.FloatProvider({min:-1,max:1})};e.register("configured_carver",Xa.Mod(Xa.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:Xa.ObjectNode({probability:Xa.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Ja.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:Xa.Opt(Xa.ObjectNode({debug_mode:Xa.Opt(Xa.BooleanNode()),air_state:Xa.Opt(i("block_state")),water_state:Xa.Opt(i("block_state")),lava_state:Xa.Opt(i("block_state")),barrier_state:Xa.Opt(i("block_state"))})),[Xa.Switch]:["pop",{push:"type"}],[Xa.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Ya={};Object.defineProperty(Ya,"__esModule",{value:!0}),Ya.initDecoratorSchemas=void 0;const Za=Te,Qa=_a;Ya.initDecoratorSchemas=function(e,t){const i=Za.Reference.bind(void 0,e),n=Za.StringNode.bind(void 0,t);e.register("decorator",Za.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Za.Switch]:[{push:"type"}],[Za.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Za.NumberNode({integer:!0,min:0})},"minecraft:count":{count:Qa.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:Qa.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Za.NumberNode(),below_noise:Za.NumberNode({integer:!0}),above_noise:Za.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Za.NumberNode({integer:!0}),noise_factor:Za.NumberNode(),noise_offset:Za.Opt(Za.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Za.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Za.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:Qa.IntProvider({min:-16,max:16}),y_spread:Qa.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Za.Opt(Za.NumberNode({integer:!0})),max_inclusive:Za.Opt(Za.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Za.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var es={},ts={};Object.defineProperty(ts,"__esModule",{value:!0}),ts.initProcessorListSchemas=ts.Processors=void 0;const is=Te;ts.initProcessorListSchemas=function(e,t){const i=is.Reference.bind(void 0,e),n=is.StringNode.bind(void 0,t);ts.Processors=is.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",is.Mod(is.ObjectNode({processors:is.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",is.Mod(is.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[is.Switch]:[{push:"processor_type"}],[is.Case]:{"minecraft:block_age":{mossiness:is.NumberNode()},"minecraft:block_ignore":{blocks:is.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:is.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:is.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"minecraft:rule":{rules:is.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",is.Mod(is.ObjectNode({position_predicate:is.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:is.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:is.Opt(is.NumberNode({min:0,max:255,integer:!0})),max_dist:is.Opt(is.NumberNode({min:0,max:255,integer:!0})),min_chance:is.Opt(is.NumberNode({min:0,max:1})),max_chance:is.Opt(is.NumberNode({min:0,max:1}))};e.register("pos_rule_test",is.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[is.Switch]:[{push:"predicate_type"}],[is.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",is.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[is.Switch]:[{push:"predicate_type"}],[is.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:is.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:is.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(es,"__esModule",{value:!0}),es.initFeatureSchemas=void 0;const ns=Te,rs=_a,os=ts;es.initFeatureSchemas=function(e,t){const i=ns.Reference.bind(void 0,e),n=ns.StringNode.bind(void 0,t),r=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=ns.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:ns.Opt(ns.NumberNode({integer:!0,min:1})),xz_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),y_spread:ns.Opt(ns.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:rs.IntProvider({min:0,max:8}),half_height:ns.NumberNode({integer:!0,min:0,max:4}),targets:ns.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:ns.Opt(ns.NumberNode({integer:!0}))},d=ns.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:ns.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:ns.NumberNode({min:0,max:1}),targets:ns.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:rs.IntProvider({min:1,max:128}),vertical_range:ns.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:ns.NumberNode({min:0,max:1}),extra_edge_column_chance:ns.NumberNode({min:0,max:1}),vegetation_chance:ns.NumberNode({min:0,max:1}),xz_radius:rs.IntProvider(),replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:ns.ObjectNode({[ns.Switch]:["pop",{push:"type"}],[ns.Case]:{"minecraft:bamboo":{probability:ns.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:rs.IntProvider({min:0,max:3}),height:rs.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:ns.BooleanNode(),layers:ns.ListNode(ns.ObjectNode({height:rs.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:rs.IntProvider({min:0,max:16}),rim_size:rs.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:ns.NumberNode({integer:!0,min:1,max:512}),height:rs.IntProvider({min:0,max:128}),radius:rs.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:ns.NumberNode({integer:!0,min:0,max:64}),height_deviation:ns.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:rs.IntProvider({min:0,max:128}),density:rs.FloatProvider({min:0,max:2}),wetness:rs.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:ns.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:ns.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:ns.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:ns.BooleanNode(),exit:ns.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:ns.Opt(ns.BooleanNode()),crystal_beam_target:ns.Opt(i("block_pos")),spikes:ns.ListNode(ns.ObjectNode({centerX:ns.Opt(ns.NumberNode({integer:!0})),centerZ:ns.Opt(ns.NumberNode({integer:!0})),radius:ns.Opt(ns.NumberNode({integer:!0})),height:ns.Opt(ns.NumberNode({integer:!0})),guarded:ns.Opt(ns.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:ns.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:ns.NumberNode({integer:!0,min:0,max:7}),fossil_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:ns.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:os.Processors,overlay_processors:os.Processors},"minecraft:geode":{blocks:ns.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:ns.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:n({validator:"resource",params:{pool:"$tag/block"}})}),layers:ns.ObjectNode({filling:ns.Opt(ns.NumberNode({min:.01,max:50})),inner_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),middle_layer:ns.Opt(ns.NumberNode({min:.01,max:50})),outer_layer:ns.Opt(ns.NumberNode({min:.01,max:50}))}),crack:ns.ObjectNode({generate_crack_chance:ns.Opt(ns.NumberNode({min:0,max:1})),base_crack_size:ns.Opt(ns.NumberNode({min:0,max:5})),crack_point_offset:ns.Opt(ns.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:ns.Opt(ns.NumberNode({min:0,max:1})),use_potential_placements_chance:ns.Opt(ns.NumberNode({min:0,max:1})),use_alternate_layer0_chance:ns.Opt(ns.NumberNode({min:0,max:1})),placements_require_layer0_alternate:ns.Opt(ns.BooleanNode()),outer_wall_distance:ns.Opt(rs.IntProvider({min:1,max:20})),distribution_points:ns.Opt(rs.IntProvider({min:1,max:20})),point_offset:ns.Opt(rs.IntProvider({min:0,max:10})),min_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),max_gen_offset:ns.Opt(ns.NumberNode({integer:!0})),invalid_blocks_threshold:ns.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:ns.Opt(ns.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:ns.Opt(ns.NumberNode({min:0,max:1})),can_place_on_floor:ns.Opt(ns.BooleanNode()),can_place_on_ceiling:ns.Opt(ns.BooleanNode()),can_place_on_wall:ns.Opt(ns.BooleanNode()),can_be_placed_on:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:ns.Opt(ns.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:ns.Opt(ns.NumberNode({integer:!0,min:1,max:512})),column_radius:rs.IntProvider({min:0,max:60}),height_scale:rs.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:ns.NumberNode({min:0,max:1}),stalactite_bluntness:rs.FloatProvider({min:.1,max:10}),stalagmite_bluntness:rs.FloatProvider({min:.1,max:10}),wind_speed:rs.FloatProvider({min:0,max:2}),min_radius_for_wind:ns.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:ns.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:rs.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_directional_spread:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius2:ns.Opt(ns.NumberNode({min:0,max:1})),chance_of_spread_radius3:ns.Opt(ns.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:ns.ListNode(ns.ObjectNode({chance:ns.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:ns.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_radius:ns.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:ns.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:ns.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:ns.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:ns.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:ns.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:rs.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:ns.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:ns.ListNode(o)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:ns.NumberNode({integer:!0}),hole_count:ns.NumberNode({integer:!0}),requires_block_below:ns.BooleanNode(),valid_blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:ns.Opt(ns.BooleanNode()),force_dirt:ns.Opt(ns.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:ns.NumberNode({integer:!0,min:0,max:32}),height_rand_a:ns.NumberNode({integer:!0,min:0,max:24}),height_rand_b:ns.NumberNode({integer:!0,min:0,max:24}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:bending_trunk_placer":{bend_length:rs.IntProvider({min:1,max:64}),min_height_for_leaves:ns.Opt(ns.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:rs.IntProvider({min:0,max:16}),offset:rs.IntProvider({min:0,max:16}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:blob_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:ns.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:rs.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:rs.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:rs.IntProvider({min:1,max:512}),leaf_placement_attempts:ns.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:rs.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:ns.ListNode(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:ns.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:ns.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:ns.NumberNode({integer:!0,min:1}),spread_height:ns.NumberNode({integer:!0,min:1}),max_height:ns.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:ns.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:ns.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:ns.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",ns.Mod(ns.ObjectNode({feature:r,placement:ns.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:ns.Opt(ns.NumberNode({min:0,max:80})),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:two_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:81})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),upper_limit:ns.Opt(ns.NumberNode({integer:!0,min:0,max:80})),lower_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),middle_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16})),upper_size:ns.Opt(ns.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:ns.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:rs.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:ns.Mod(ns.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:ns.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:ns.NumberNode({min:-1,max:1}),high_chance:ns.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:ns.ListNode(i("block_state")),high_states:ns.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:ns.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:rs.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:ns.ListNode(ns.Mod(ns.ObjectNode({weight:ns.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:ns.Opt(ns.ListNode(ns.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",ns.Mod(ns.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[ns.Switch]:[{push:"type"}],[ns.Case]:{"minecraft:all_of":{predicates:ns.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:ns.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:ns.ListNode(n({validator:"resource",params:{pool:"block"}}))}),"minecraft:matching_fluids":c(s({},f),{fluids:ns.ListNode(n({validator:"resource",params:{pool:"fluid"}}))}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var as={};Object.defineProperty(as,"__esModule",{value:!0}),as.initNoiseSettingsSchemas=void 0;const ss=Te,cs=_a;as.initNoiseSettingsSchemas=function(e,t){const i=ss.Reference.bind(void 0,e),n=ss.StringNode.bind(void 0,t);e.register("noise_settings",ss.Mod(ss.ObjectNode({sea_level:ss.NumberNode({integer:!0}),disable_mob_generation:ss.BooleanNode(),noise_caves_enabled:ss.BooleanNode(),noodle_caves_enabled:ss.BooleanNode(),aquifers_enabled:ss.BooleanNode(),ore_veins_enabled:ss.BooleanNode(),legacy_random_source:ss.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:ss.ObjectNode({min_y:ss.NumberNode({integer:!0,min:-2048,max:2047}),height:ss.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:ss.NumberNode({integer:!0}),size_vertical:ss.NumberNode({integer:!0}),island_noise_override:ss.Opt(ss.BooleanNode()),amplified:ss.Opt(ss.BooleanNode()),large_biomes:ss.Opt(ss.BooleanNode()),sampling:ss.ObjectNode({xz_scale:ss.NumberNode(),y_scale:ss.NumberNode(),xz_factor:ss.NumberNode(),y_factor:ss.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),surface_rule:i("material_rule"),structures:i("generator_structures")},{context:"noise_settings"}),(e=>({default:()=>cs.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",ss.ObjectNode({target:ss.NumberNode(),size:ss.NumberNode({integer:!0,min:0}),offset:ss.NumberNode({integer:!0})})),e.register("generator_structures",ss.ObjectNode({stronghold:ss.Opt(ss.ObjectNode({distance:ss.NumberNode({integer:!0,min:0,max:1023}),spread:ss.NumberNode({integer:!0,min:0,max:1023}),count:ss.NumberNode({integer:!0,min:1,max:4095})})),structures:ss.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),ss.Mod(ss.ObjectNode({spacing:ss.NumberNode({integer:!0,min:0,max:4096}),separation:ss.Mod(ss.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:ss.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",ss.Mod(ss.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:ss.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",ss.Mod(ss.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",ss.Mod(ss.ChoiceNode([{type:"number",node:ss.NumberNode()},{type:"object",node:ss.ObjectNode({coordinate:ss.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:ss.ListNode(ss.ObjectNode({location:ss.NumberNode(),derivative:ss.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var ls={};Object.defineProperty(ls,"__esModule",{value:!0}),ls.initStructureFeatureSchemas=void 0;const us=Te;ls.initStructureFeatureSchemas=function(e,t){const i=us.StringNode.bind(void 0,t),n=us.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:us.NumberNode({integer:!0})};e.register("configured_structure_feature",us.Mod(us.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:us.ObjectNode({[us.Switch]:["pop",{push:"type"}],[us.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:us.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:us.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:us.NumberNode({min:0,max:1}),cluster_probability:us.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:us.Opt(us.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var ds={};Object.defineProperty(ds,"__esModule",{value:!0}),ds.initSurfaceRuleSchemas=void 0;const hs=Te;ds.initSurfaceRuleSchemas=function(e,t){const i=hs.StringNode.bind(void 0,t),n=hs.Reference.bind(void 0,e);e.register("material_rule",hs.Mod(hs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[hs.Switch]:[{push:"type"}],[hs.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:hs.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",hs.Mod(hs.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[hs.Switch]:[{push:"type"}],[hs.Case]:{"minecraft:biome":{biome_is:hs.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:hs.NumberNode(),max_threshold:hs.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:hs.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:hs.BooleanNode(),add_surface_secondary_depth:hs.BooleanNode()},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:hs.NumberNode({integer:!0}),surface_depth_multiplier:hs.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:hs.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:hs.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:hs.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var ps={};Object.defineProperty(ps,"__esModule",{value:!0}),ps.initTemplatePoolSchemas=void 0;const ms=Te,fs=ts;ps.initTemplatePoolSchemas=function(e,t){const i=ms.Reference.bind(void 0,e),n=ms.StringNode.bind(void 0,t);e.register("template_pool",ms.Mod(ms.ObjectNode({fallback:n(),elements:ms.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",ms.Mod(ms.ObjectNode({weight:ms.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",ms.Mod(ms.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[ms.Switch]:[{push:"element_type"}],[ms.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors},"minecraft:list_pool_element":{elements:ms.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:fs.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(qa,"__esModule",{value:!0}),qa.initWorldgenSchemas=void 0;const gs=Va,_s=Ga,bs=Ya,vs=es,ys=as,ws=ts,xs=ls,Ns=ds,As=ps;qa.initWorldgenSchemas=function(e,t){ws.initProcessorListSchemas(e,t),gs.initBiomeSchemas(e,t),_s.initCarverSchemas(e,t),bs.initDecoratorSchemas(e,t),vs.initFeatureSchemas(e,t),ys.initNoiseSettingsSchemas(e,t),xs.initStructureFeatureSchemas(e,t),Ns.initSurfaceRuleSchemas(e,t),As.initTemplatePoolSchemas(e,t)};var ks={};Object.defineProperty(ks,"__esModule",{value:!0}),ks.initWorldSettingsSchemas=void 0;const Cs=Te;ks.initWorldSettingsSchemas=function(e,t){const i=Cs.Reference.bind(void 0,e),n=Cs.StringNode.bind(void 0,t);e.register("world_settings",Cs.Mod(Cs.ObjectNode({generate_features:Cs.BooleanNode(),bonus_chest:Cs.BooleanNode(),seed:Cs.NumberNode({integer:!0}),dimensions:Cs.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(sa,"__esModule",{value:!0}),sa.initSchemas=void 0;const Es=ca,Ss=ua,Fs=_a,Os=ba,Ds=wa,Bs=Aa,Ls=Ea,Ms=Oa,$s=$a,Ts=Ra,Rs=Ia,js=za,Is=Wa,Ps=qa,zs=ks;sa.initSchemas=function(e,t){Fs.initCommonSchemas(e,t),Es.initAdvancementSchemas(e,t),Ss.initAssetsSchemas(e,t),Os.initConditionSchemas(e,t),Bs.initDimensionTypeSchemas(e,t),Ds.initDimensionSchemas(e,t),Ls.initItemModifierSchemas(e,t),Ms.initLootTableSchemas(e,t),$s.initPackMcmetaSchemas(e,t),Ts.initPredicatesSchemas(e,t),Rs.initRecipeSchemas(e,t),js.initTagsSchemas(e,t),Is.initTextComponentSchemas(e,t),Ps.initWorldgenSchemas(e,t),zs.initWorldSettingsSchemas(e,t)};var Us=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Ws=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hs=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Us(t,e,i);return Ws(t,e),t};Object.defineProperty(oa,"__esModule",{value:!0});var qs=oa.getSchemas=oa.getCollections=void 0;const Vs=Te,Ks=aa,Gs=sa;var Xs=oa.lootContext=Hs(Da);var Js=oa.getCollections=function(){const e=new Vs.CollectionRegistry;return Ks.initCollections(e),e};qs=oa.getSchemas=function(e){const t=new Vs.SchemaRegistry;return Gs.initSchemas(t,e),t};var Ys=Object.freeze(Object.assign(Object.create(null),oa,{[Symbol.toStringTag]:"Module",get getSchemas(){return qs},get getCollections(){return Js},lootContext:Xs,default:oa})),Zs={},Qs={};Object.defineProperty(Qs,"__esModule",{value:!0}),Qs.initCollections=void 0,Qs.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:fall_from_height","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:lightning_strike","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:ride_entity_in_lava","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:started_riding","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:using_item","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mountain","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end","underground"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"]),e.register("cave_surface",["floor","ceiling"]),e.register("direction",["down","up","north","east","south","west"]),e.register("axis",["x","y","z"]),e.register("display_position",["firstperson_righthand","firstperson_lefthand","thirdperson_righthand","thirdperson_lefthand","gui","head","ground","fixed"]),e.register("gui_light",["front","side"]),e.register("item_model_predicates",["angle","blocking","broken","cast","charged","cooldown","custom_model_data","damage","damaged","firework","lefthanded","pull","pulling","throwing","time"]),e.register("mob_category",["monster","creature","ambient","axolotls","underground_water_creature","water_creature","water_ambient","misc"])};var ec={},tc={};Object.defineProperty(tc,"__esModule",{value:!0}),tc.initAdvancementSchemas=void 0;const ic=Te;tc.initAdvancementSchemas=function(e,t){const i=ic.Reference.bind(void 0,e),n=ic.StringNode.bind(void 0,t),r=ic.ChoiceNode([{type:"object",node:ic.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:ic.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",ic.Mod(ic.ObjectNode({display:ic.Opt(ic.Mod(ic.ObjectNode({icon:ic.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:ic.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:ic.Opt(n()),frame:ic.Opt(n({enum:["task","challenge","goal"]})),show_toast:ic.Opt(ic.BooleanNode()),announce_to_chat:ic.Opt(ic.BooleanNode()),hidden:ic.Opt(ic.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:ic.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:ic.MapNode(n(),i("advancement_criteria")),requirements:ic.Opt(ic.ListNode(ic.ListNode(n()))),rewards:ic.Opt(ic.ObjectNode({function:ic.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:ic.Opt(ic.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:ic.Opt(ic.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:ic.Opt(ic.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",ic.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:ic.Opt(ic.ObjectNode({player:ic.Mod(r,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[ic.Switch]:["pop",{push:"trigger"}],[ic.Case]:{"minecraft:bee_nest_destroyed":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:ic.Opt(ic.NumberNode({integer:!0})),item:ic.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r,partner:r,child:r},"minecraft:brewed_potion":{potion:ic.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:ic.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:ic.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:ic.Opt(ic.ListNode(r))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:ic.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r,zombie:r},"minecraft:effects_changed":{effects:ic.Opt(ic.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),ic.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")}))),source:ic.Opt(r)},"minecraft:enter_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),state:ic.Opt(ic.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:ic.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:ic.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r,killing_blow:ic.Opt(i("damage_source_predicate"))},"minecraft:fall_from_height":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:filled_bucket":{item:ic.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r,item:ic.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:ic.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:ic.Opt(ic.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:ic.Opt(ic.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:ic.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:ic.Opt(i("item_predicate")),location:ic.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:ic.Opt(ic.ListNode(r))},"minecraft:levitation":{distance:ic.Opt(i("distance_predicate")),duration:i("int_bounds")},"minecraft:lightning_strike":{lightning:r,bystander:r},"minecraft:location":{location:ic.Opt(i("location_predicate"))},"minecraft:nether_travel":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:placed_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}})),state:ic.Opt(ic.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:ic.Opt(i("item_predicate")),location:ic.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:ic.Opt(i("damage_predicate")),entity:r},"minecraft:player_interacted_with_entity":{item:ic.Opt(i("item_predicate")),entity:r},"minecraft:player_killed_entity":{entity:r,killing_blow:ic.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:ride_entity_in_lava":{start_position:ic.Opt(i("location_predicate")),distance:ic.Opt(i("distance_predicate"))},"minecraft:slept_in_bed":{location:ic.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:ic.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:ic.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r},"minecraft:tame_animal":{entity:r},"minecraft:target_hit":{projectile:r,shooter:r,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:ic.Opt(i("entity_predicate")),item:ic.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:ic.Opt(i("float_bounds"))},"minecraft:used_totem":{item:ic.Opt(i("item_predicate"))},"minecraft:using_item":{item:ic.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:ic.Opt(i("entity_predicate")),item:ic.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:ic.Opt(i("location_predicate"))}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))};var nc={},rc={};Object.defineProperty(rc,"__esModule",{value:!0}),rc.initModelSchemas=void 0;const oc=Te;rc.initModelSchemas=function(e,t){oc.Reference.bind(void 0,e);const i=oc.StringNode.bind(void 0,t),n=(e,t,i)=>oc.ListNode(oc.NumberNode({min:t,max:i}),{minLength:e,maxLength:e}),r=oc.ChoiceNode([{type:"alias",match:e=>"string"==typeof e&&e.startsWith("#"),node:i(),change:e=>"string"==typeof e?`#${e}`:"#0"},{type:"reference",match:e=>"string"==typeof e,node:i({validator:"resource",params:{pool:"$texture"}}),change:e=>"string"==typeof e?e.replace(/^#/,""):""}],{choiceContext:"texture"});e.register("model",oc.Mod(oc.ObjectNode({parent:oc.Opt(i({validator:"resource",params:{pool:"$model"}})),ambientocclusion:oc.Opt(oc.BooleanNode()),gui_light:oc.Opt(i({enum:"gui_light"})),textures:oc.Opt(oc.MapNode(i(),r)),elements:oc.Opt(oc.ListNode(oc.ObjectNode({from:n(3,-16,32),to:n(3,-16,32),rotation:oc.Opt(oc.ObjectNode({origin:n(3),axis:i({enum:"axis"}),angle:oc.NumberEnum({values:[-45,-22.5,0,22.5,45]}),rescale:oc.Opt(oc.BooleanNode())})),shade:oc.Opt(oc.BooleanNode()),faces:oc.MapNode(i({enum:"direction"}),oc.ObjectNode({texture:r,uv:oc.Opt(n(4)),cullface:oc.Opt(i({enum:"direction"})),rotation:oc.Opt(oc.NumberNode({integer:!0})),tintindex:oc.Opt(oc.NumberNode({integer:!0}))}))},{context:"model_element"}))),display:oc.Opt(oc.MapNode(i({enum:"display_position"}),oc.ObjectNode({rotation:n(3),translation:n(3,-80,80),scale:n(3,-4,4)},{context:"item_transform"}))),overrides:oc.Opt(oc.ListNode(oc.ObjectNode({predicate:oc.MapNode(i({enum:"item_model_predicates"}),oc.NumberNode()),model:i({validator:"resource",params:{pool:"$model"}})},{context:"model_override"})))},{context:"model"}),{default:()=>({parent:"minecraft:item/generated",textures:{layer0:"minecraft:item/diamond"}})}))};var ac={};Object.defineProperty(ac,"__esModule",{value:!0}),ac.initBlockDefinitionSchemas=void 0;const sc=Te;ac.initBlockDefinitionSchemas=function(e,t){const i=sc.Reference.bind(void 0,e),n=sc.StringNode.bind(void 0,t);e.register("block_definition",sc.Mod(sc.ChoiceNode([{type:"variants",match:e=>void 0!==e.variants,node:sc.ObjectNode({variants:sc.MapNode(n(),i("model_variant"))}),change:e=>({variants:{"":{}}})},{type:"multipart",match:e=>void 0!==e.multipart,node:sc.ObjectNode({multipart:sc.ListNode(sc.ObjectNode({when:sc.Opt(i("multipart_condition")),apply:i("model_variant")}))}),change:e=>({multipart:{when:{},apply:{}}})}],{context:"block_definition"}),{default:()=>({variants:{"":{model:"minecraft:block/stone"}}})}));const r={model:n({validator:"resource",params:{pool:"$model"}}),x:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),y:sc.Opt(sc.NumberEnum({integer:!0,values:[0,90,180,270]})),uvlock:sc.Opt(sc.BooleanNode())};e.register("model_variant",sc.ChoiceNode([{type:"object",node:sc.ObjectNode(r),change:e=>Array.isArray(e)&&e.length>0?e[0]:{}},{type:"list",node:sc.ListNode(sc.ObjectNode(c(s({},r),{weight:sc.Opt(sc.NumberNode({integer:!0,min:1}))}),{context:"model_variant"})),change:e=>[s({weight:1},e)]}],{context:"model_variant"})),e.register("multipart_condition",sc.ChoiceNode([{type:"object",priority:-1,match:()=>!0,node:sc.MapNode(n(),n()),change:e=>"object"==typeof e&&Array.isArray(null==e?void 0:e.OR)&&e.OR.length>0?e.OR[0]:{}},{type:"or",match:e=>"object"==typeof e&&void 0!==(null==e?void 0:e.OR),node:sc.ObjectNode({OR:sc.ListNode(i("multipart_condition"))}),change:e=>({OR:[null!=e?e:{}]})}],{context:"multipart_condition"}))},Object.defineProperty(nc,"__esModule",{value:!0}),nc.initAssetsSchemas=void 0;const cc=rc,lc=ac;nc.initAssetsSchemas=function(e,t){lc.initBlockDefinitionSchemas(e,t),cc.initModelSchemas(e,t)};var uc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initCommonSchemas=e.Tag=e.InclusiveRange=e.IntProvider=e.FloatProvider=e.NoiseSettingsPresets=e.DefaultNoiseSettings=e.DimensionTypePresets=e.DefaultDimensionType=e.FunctionCases=e.ConditionCases=void 0;const t=Te;e.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"#minecraft:infiniburn_overworld",min_y:0,height:256},e.DefaultNoiseSettings={bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},e.initCommonSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);i.register("block_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:t.Opt(t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),i.register("fluid_state",t.Mod(t.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:t.Opt(t.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),i.register("block_pos",t.Mod(t.ListNode(t.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>t.Opt(t.ChoiceNode([{type:"number",node:t.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:t.ObjectNode({min:t.Opt(t.NumberNode({integer:e})),max:t.Opt(t.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));i.register("int_bounds",a(!0)),i.register("float_bounds",a()),i.register("int_range",t.ChoiceNode([{type:"object",node:t.ObjectNode({min:t.Opt(o("number_provider")),max:t.Opt(o("number_provider"))})},{type:"number",node:t.NumberNode({integer:!0})}],{context:"range"}));const c=(e,i,n,o,a,c,l)=>{let u={};a&&Object.keys(l[a]).forEach((e=>{u[e]=t.Mod(l[a][e],{enabled:e=>void 0===e.push("type").get()})}));const d=t.ObjectNode(s({type:t.Mod(t.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[t.Switch]:[{push:"type"}],[t.Case]:l},u),{context:c,disableSwitchContext:!0}),h=[{type:i,node:l[o][n]}];return a&&h.push({type:"object",priority:-1,node:d}),Object.keys(l).forEach((e=>{h.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const n=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==n?void 0:n.length)||1===(null==n?void 0:n.length)&&"type"===(null==n?void 0:n[0]))},node:d,change:t=>({type:e})})})),t.ChoiceNode(h,{context:c,choiceContext:`${c}.type`})};i.register("number_provider",c("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:t.NumberNode()},"minecraft:uniform":{min:o("number_provider"),max:o("number_provider")},"minecraft:binomial":{n:o("number_provider"),p:o("number_provider")},"minecraft:score":{target:o("scoreboard_name_provider"),score:r({validator:"objective"}),scale:t.Opt(t.NumberNode())}})),i.register("scoreboard_name_provider",c("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:t.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),i.register("nbt_provider",c("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:t.Mod(r({enum:"copy_source"}),{default:()=>"this"})}})),e.FloatProvider=e=>c("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:t.NumberNode(e)},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(e),max_exclusive:t.NumberNode(e)})},"minecraft:clamped_normal":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:trapezoid":{value:t.ObjectNode({min:t.NumberNode(),max:t.NumberNode(),plateau:t.NumberNode()})}}),i.register("float_provider",e.FloatProvider()),e.IntProvider=e=>c("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:t.NumberNode(s({integer:!0},e))},"minecraft:uniform":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:biased_to_bottom":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e))})},"minecraft:clamped":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),source:o("int_provider")})},"minecraft:clamped_normal":{value:t.ObjectNode({min_inclusive:t.NumberNode(s({integer:!0},e)),max_inclusive:t.NumberNode(s({integer:!0},e)),mean:t.NumberNode(),deviation:t.NumberNode()})},"minecraft:weighted_list":{distribution:t.ListNode(t.ObjectNode({weight:t.NumberNode({integer:!0}),data:o("int_provider")}))}}),i.register("int_provider",e.IntProvider()),i.register("vertical_anchor",t.ChoiceNode(["absolute","above_bottom","below_top"].map((e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,n,r;return{[e]:null!==(r=null!==(n=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==n?n:t.below_top)&&void 0!==r?r:0}},node:t.ObjectNode({[e]:t.NumberNode({integer:!0,min:-2048,max:2047})})}))),{context:"vertical_anchor"})),i.register("height_provider",c("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:o("vertical_anchor")},"minecraft:uniform":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),inner:t.Opt(t.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:o("vertical_anchor"),max_inclusive:o("vertical_anchor"),plateau:t.Opt(t.NumberNode({integer:!0}))}})),e.InclusiveRange=e=>t.ObjectNode({min_inclusive:t.NumberNode(e),max_inclusive:t.NumberNode(e)},{context:"range"}),i.register("noise_parameters",t.Mod(t.ObjectNode({firstOctave:t.NumberNode({integer:!0}),amplitudes:t.ListNode(t.NumberNode())},{context:"noise_parameters"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})})),e.Tag=e=>t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource,allowTag:!0}}),change:e=>{if(Array.isArray(e)&&"string"==typeof e[0]&&!e[0].startsWith("#"))return e[0]}},{type:"list",node:t.ListNode(e.inlineSchema?t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:e.resource}})},{type:"object",node:o(e.inlineSchema)}],{choiceContext:"tag.list"}):r({validator:"resource",params:{pool:e.resource}})),change:e=>"string"!=typeof e||e.startsWith("#")?[]:[e]}],{choiceContext:"tag"}),e.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:t.ListNode(o("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:o("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:o("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:t.MapNode(r({validator:"objective"}),o("int_range"))},"minecraft:inverted":{term:o("condition")},"minecraft:killed_by_player":{inverse:t.Opt(t.BooleanNode())},"minecraft:location_check":{offsetX:t.Opt(t.NumberNode({integer:!0})),offsetY:t.Opt(t.NumberNode({integer:!0})),offsetZ:t.Opt(t.NumberNode({integer:!0})),predicate:o("location_predicate")},"minecraft:match_tool":{predicate:o("item_predicate")},"minecraft:random_chance":{chance:t.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:t.NumberNode({min:0,max:1}),looting_multiplier:t.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:t.ListNode(t.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:o("int_range"),period:t.Opt(t.NumberNode({integer:!0}))},"minecraft:value_check":{value:o("number_provider"),range:o("int_range")},"minecraft:weather_check":{raining:t.Opt(t.BooleanNode()),thundering:t.Opt(t.BooleanNode())}}),e.FunctionCases=(e,i=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const c={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:n.get("loot_table_apply_bonus_formula")}}),parameters:t.Mod(t.ObjectNode({bonusMultiplier:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:t.Mod(t.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:i},"minecraft:copy_nbt":{source:o("nbt_provider"),ops:t.ListNode(t.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:t.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:t.Opt(t.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:o("number_provider"),treasure:t.Opt(t.BooleanNode())},"minecraft:exploration_map":{destination:t.Opt(r({enum:"map_feature"})),decoration:t.Opt(r({enum:"map_decoration"})),zoom:t.Opt(t.NumberNode({integer:!0})),search_radius:t.Opt(t.NumberNode({integer:!0})),skip_existing_chunks:t.Opt(t.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:o("int_range")},"minecraft:looting_enchant":{count:o("number_provider"),limit:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:t.ListNode(o("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:t.ListNode(t.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:t.Opt(t.BooleanNode())},"minecraft:set_contents":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),entries:t.ListNode(o("loot_entry"))},"minecraft:set_count":{count:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_damage":{damage:o("number_provider"),add:t.Opt(t.BooleanNode())},"minecraft:set_enchantments":{enchantments:t.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),o("number_provider")),add:t.Opt(t.BooleanNode())},"minecraft:set_loot_table":{type:r({validator:"resource",params:{pool:"block_entity_type"}}),name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:t.Opt(t.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:t.Opt(a),lore:t.ListNode(o("text_component")),replace:t.Opt(t.BooleanNode())},"minecraft:set_name":{entity:t.Opt(a),name:t.Opt(o("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_potion":{id:r({validator:"resource",params:{pool:"potion"}})},"minecraft:set_stew_effect":{effects:t.Opt(t.ListNode(t.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:o("number_provider")})))}},l={};return n.get("loot_function_type").forEach((t=>{l[t]=s(s({},c[t]),e)})),l},e.DimensionTypePresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),i,{"minecraft:overworld":e.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"#minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"#minecraft:infiniburn_end",min_y:0,height:256}}),e.NoiseSettingsPresets=i=>t.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),i,{"minecraft:overworld":e.DefaultNoiseSettings,"minecraft:nether":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:netherrack"},default_fluid:{Properties:{level:"0"},Name:"minecraft:lava"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:end":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:amplified":{bedrock_roof_position:-2147483648,bedrock_floor_position:0,sea_level:63,noise_caves_enabled:!0,deepslate_enabled:!0,ore_veins_enabled:!0,noodle_caves_enabled:!0,disable_mob_generation:!1,aquifers_enabled:!0,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:-64,height:384,size_horizontal:1,size_vertical:2,density_factor:1,density_offset:-.51875,amplified:!0,top_slide:{target:-.078125,size:2,offset:8},bottom_slide:{target:.1171875,size:3,offset:0},sampling:{xz_scale:.9999999814507745,y_scale:.9999999814507745,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:caves":{bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:1,size_vertical:2,density_factor:0,density_offset:-.030078125,top_slide:{target:.9375,size:3,offset:0},bottom_slide:{target:2.5,size:4,offset:-1},sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},terrain_shaper:{offset:0,factor:0,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}},"minecraft:floating_islands":{bedrock_roof_position:-2147483648,bedrock_floor_position:-2147483648,sea_level:0,noise_caves_enabled:!1,deepslate_enabled:!1,ore_veins_enabled:!1,noodle_caves_enabled:!1,disable_mob_generation:!1,aquifers_enabled:!1,default_block:{Name:"minecraft:stone"},default_fluid:{Properties:{level:"0"},Name:"minecraft:water"},noise:{min_y:0,height:128,size_horizontal:2,size_vertical:1,density_factor:0,density_offset:0,island_noise_override:!0,top_slide:{target:-23.4375,size:64,offset:-46},bottom_slide:{target:-.234375,size:7,offset:1},sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},terrain_shaper:{offset:0,factor:1,jaggedness:0}},surface_rule:{type:"minecraft:sequence",sequence:[]},structures:{}}})}}(uc);var dc={};Object.defineProperty(dc,"__esModule",{value:!0}),dc.initConditionSchemas=void 0;const hc=Te,pc=uc;dc.initConditionSchemas=function(e,t){const i=hc.Reference.bind(void 0,e),n=hc.StringNode.bind(void 0,t);e.register("predicate",hc.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",hc.Mod(hc.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[hc.Switch]:[{push:"condition"}],[hc.Case]:pc.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))};var mc={};Object.defineProperty(mc,"__esModule",{value:!0}),mc.initDimensionSchemas=void 0;const fc=Te,gc=uc;mc.initDimensionSchemas=function(e,t){const i=fc.Reference.bind(void 0,e),n=fc.StringNode.bind(void 0,t);e.register("dimension",fc.Mod(fc.ObjectNode({type:gc.DimensionTypePresets(i("dimension_type")),generator:fc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),[fc.Switch]:[{push:"type"}],[fc.Case]:{"minecraft:noise":{seed:fc.NumberNode({integer:!0}),settings:gc.NoiseSettingsPresets(i("noise_settings")),biome_source:fc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[fc.Switch]:[{push:"type"}],[fc.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:fc.Opt(n({validator:"resource",params:{pool:["minecraft:overworld","minecraft:nether"]}})),biomes:fc.Mod(fc.ListNode(i("generator_biome")),{enabled:e=>void 0===e.push("preset").get(),default:()=>[{biome:"minecraft:plains"}]})},"minecraft:checkerboard":{scale:fc.Opt(fc.NumberNode({integer:!0,min:0,max:62})),biomes:gc.Tag({resource:"$worldgen/biome"})},"minecraft:the_end":{seed:fc.NumberNode({integer:!0})}}},{category:"predicate",disableSwitchContext:!0})},"minecraft:flat":{settings:fc.ObjectNode({biome:fc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:fc.Opt(fc.BooleanNode()),features:fc.Opt(fc.BooleanNode()),layers:fc.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}}));const r=fc.ChoiceNode([{type:"number",node:fc.NumberNode({min:-2,max:2}),change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:0}},{type:"list",node:fc.ListNode(fc.NumberNode({min:-2,max:2}),{minLength:2,maxLength:2}),change:e=>[null!=e?e:0,null!=e?e:0]}]);e.register("generator_biome",fc.Mod(fc.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:fc.ObjectNode({temperature:r,humidity:r,continentalness:r,erosion:r,weirdness:r,depth:r,offset:fc.NumberNode({min:0,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})}))};var _c={};Object.defineProperty(_c,"__esModule",{value:!0}),_c.initDimensionTypeSchemas=void 0;const bc=Te,vc=uc;_c.initDimensionTypeSchemas=function(e,t){const i=bc.StringNode.bind(void 0,t);e.register("dimension_type",bc.Mod(bc.ObjectNode({ultrawarm:bc.BooleanNode(),natural:bc.BooleanNode(),piglin_safe:bc.BooleanNode(),respawn_anchor_works:bc.BooleanNode(),bed_works:bc.BooleanNode(),has_raids:bc.BooleanNode(),has_skylight:bc.BooleanNode(),has_ceiling:bc.BooleanNode(),coordinate_scale:bc.NumberNode({min:1e-5,max:3e7}),ambient_light:bc.NumberNode(),fixed_time:bc.Opt(bc.NumberNode({integer:!0})),logical_height:bc.NumberNode({integer:!0,min:0,max:4064}),effects:bc.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"block",requireTag:!0}}),min_y:bc.NumberNode({integer:!0,min:-2032,max:2031}),height:bc.NumberNode({integer:!0,min:16,max:4064})},{context:"dimension_type"}),(e=>({default:()=>vc.DefaultDimensionType,validate:(t,i,n,r)=>((null==(i=e.validate(t,i,n,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2032&&n.add(t.push("height"),"error.min_y_plus_height",2032),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&n.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&n.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&n.add(t.push("min_y"),"error.min_y_multiple",16),i)}))))};var yc={};Object.defineProperty(yc,"__esModule",{value:!0}),yc.initItemModifierSchemas=void 0;const wc=Te,xc=uc;yc.initItemModifierSchemas=function(e,t){const i=wc.Reference.bind(void 0,e),n=wc.StringNode.bind(void 0,t);e.register("item_modifier",wc.ObjectOrList(i("function"),{choiceContext:"function"}));const r={conditions:wc.Opt(wc.ListNode(i("condition")))};e.register("function",wc.Mod(wc.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[wc.Switch]:[{push:"function"}],[wc.Case]:xc.FunctionCases(r)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))};var Nc={},Ac={};Object.defineProperty(Ac,"__esModule",{value:!0}),Ac.LootFunctions=Ac.LootConditions=Ac.LootCopySources=Ac.LootEntitySources=Ac.LootTableTypes=void 0,Ac.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),Ac.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ac.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),Ac.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),Ac.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]]),Object.defineProperty(Nc,"__esModule",{value:!0}),Nc.initLootTableSchemas=void 0;const kc=Te,Cc=Ac,Ec=uc;Nc.initLootTableSchemas=function(e,t){const i=kc.Reference.bind(void 0,e),n=kc.StringNode.bind(void 0,t),r={conditions:kc.Opt(kc.ListNode(i("loot_condition")))},o=s({functions:kc.Opt(kc.ListNode(i("loot_function")))},r);function a(e,i,n){const r=[],o=n=>t.get(i).filter((t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every((e=>n.includes(e)))}));for(const[t,{allows:a,requires:s}]of Cc.LootTableTypes){const e=[...a,...s];r.push({match:e=>e.getModel().get(new kc.Path(["type"]))===t,node:n(o(e))})}return r.push({match:e=>!0,node:n(i)}),kc.SwitchNode(r)}const c=a(Cc.LootConditions,"loot_condition_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}}))),l=a(Cc.LootFunctions,"loot_function_type",(e=>n({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}}))),u=a(Cc.LootEntitySources,"entity_source",(e=>n({enum:e}))),d=a(Cc.LootCopySources,"copy_source",(e=>n({enum:e})));e.register("loot_table",kc.Mod(kc.ObjectNode({type:kc.Opt(n({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:kc.Opt(kc.ListNode(kc.Mod(kc.ObjectNode(s({rolls:i("number_provider"),bonus_rolls:kc.Opt(i("number_provider")),entries:kc.ListNode(i("loot_entry"))},o),{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:kc.Opt(kc.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const h={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",kc.Mod(kc.ObjectNode({type:n({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:kc.Opt(kc.Mod(kc.NumberNode({integer:!0,min:1}),h)),quality:kc.Opt(kc.Mod(kc.NumberNode({integer:!0}),h)),[kc.Switch]:[{push:"type"}],[kc.Case]:{"minecraft:alternatives":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:dynamic":s({name:n()},o),"minecraft:group":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:item":s({name:n({validator:"resource",params:{pool:"item"}})},o),"minecraft:loot_table":s({name:n({validator:"resource",params:{pool:"$loot_table"}})},o),"minecraft:sequence":s({children:kc.ListNode(i("loot_entry"))},o),"minecraft:tag":s({name:n({validator:"resource",params:{pool:"$tag/item"}}),expand:kc.Opt(kc.BooleanNode())},o)}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",kc.Mod(kc.ObjectNode({function:l,[kc.Switch]:[{push:"function"}],[kc.Case]:Ec.FunctionCases(r,d,u)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",kc.Mod(kc.ObjectNode({condition:c,[kc.Switch]:[{push:"condition"}],[kc.Case]:Ec.ConditionCases(u)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",kc.Mod(kc.ObjectNode({attribute:n({validator:"resource",params:{pool:"attribute"}}),name:n(),amount:i("number_provider"),operation:n({enum:["addition","multiply_base","multiply_total"]}),slot:kc.StringOrList(n({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))};var Sc={};Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.initPackMcmetaSchemas=void 0;const Fc=Te;Sc.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",Fc.Mod(Fc.ObjectNode({pack:Fc.Mod(Fc.ObjectNode({pack_format:Fc.Mod(Fc.NumberNode({integer:!0,min:8,max:8}),{default:()=>8,canUpdate:(e,t)=>8!==t,update:()=>[{name:"pack_format",params:[8],newValue:8}]}),description:Fc.Reference(e,"text_component")}),{default:()=>({pack_format:8,description:""})})}),{default:()=>({pack:{pack_format:8,description:""}})}))};var Oc={};Object.defineProperty(Oc,"__esModule",{value:!0}),Oc.initPredicatesSchemas=void 0;const Dc=Te;Oc.initPredicatesSchemas=function(e,t){const i=Dc.Reference.bind(void 0,e),n=Dc.StringNode.bind(void 0,t),r=Dc.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:Dc.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:Dc.ObjectNode({min:Dc.Opt(Dc.NumberNode({integer:!0})),max:Dc.Opt(Dc.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:Dc.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",Dc.ObjectNode({items:Dc.Opt(Dc.ListNode(n({validator:"resource",params:{pool:"item"}}))),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:Dc.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:Dc.Opt(Dc.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",Dc.ObjectNode({enchantment:Dc.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",Dc.ObjectNode({blocks:Dc.Opt(Dc.ListNode(n({validator:"resource",params:{pool:"block"}}))),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:Dc.Opt(Dc.MapNode(n(),r,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",Dc.ObjectNode({fluid:Dc.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:Dc.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:Dc.Opt(Dc.MapNode(n(),r))},{context:"fluid"})),e.register("location_predicate",Dc.ObjectNode({position:Dc.Opt(Dc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:Dc.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:Dc.Opt(n({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),dimension:Dc.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:Dc.Opt(Dc.ObjectNode({light:i("int_bounds")})),smokey:Dc.Opt(Dc.BooleanNode()),block:Dc.Opt(i("block_predicate")),fluid:Dc.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",Dc.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:i("int_bounds"),[Dc.Switch]:[{push:"type"}],[Dc.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",Dc.ObjectNode({gamemode:Dc.Opt(n({enum:"gamemode"})),level:i("int_bounds"),advancements:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),Dc.ChoiceNode([{type:"boolean",node:Dc.BooleanNode(),change:e=>!0},{type:"object",node:Dc.MapNode(n(),Dc.BooleanNode())}]))),recipes:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),Dc.BooleanNode())),stats:Dc.Opt(Dc.ListNode(i("statistic_predicate"))),looking_at:Dc.Opt(i("entity_predicate"))},{context:"player"})),e.register("status_effect_predicate",Dc.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:Dc.Opt(Dc.BooleanNode()),visible:Dc.Opt(Dc.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",Dc.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",Dc.ObjectNode({type:Dc.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:Dc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:Dc.Opt(n({validator:"team"})),location:Dc.Opt(i("location_predicate")),stepping_on:Dc.Opt(i("location_predicate")),distance:Dc.Opt(i("distance_predicate")),flags:Dc.Opt(Dc.ObjectNode({is_on_fire:Dc.Opt(Dc.BooleanNode()),is_sneaking:Dc.Opt(Dc.BooleanNode()),is_sprinting:Dc.Opt(Dc.BooleanNode()),is_swimming:Dc.Opt(Dc.BooleanNode()),is_baby:Dc.Opt(Dc.BooleanNode())})),equipment:Dc.Opt(Dc.MapNode(n({enum:"slot"}),i("item_predicate"))),player:Dc.Opt(i("player_predicate")),vehicle:Dc.Opt(i("entity_predicate")),passenger:Dc.Opt(i("entity_predicate")),targeted_entity:Dc.Opt(i("entity_predicate")),lightning_bolt:Dc.Opt(Dc.ObjectNode({blocks_set_on_fire:Dc.Opt(i("int_bounds")),entity_struck:Dc.Opt(i("entity_predicate"))})),fishing_hook:Dc.Opt(Dc.ObjectNode({in_open_water:Dc.Opt(Dc.BooleanNode())})),effects:Dc.Opt(Dc.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",Dc.ObjectNode({is_explosion:Dc.Opt(Dc.BooleanNode()),is_fire:Dc.Opt(Dc.BooleanNode()),is_magic:Dc.Opt(Dc.BooleanNode()),is_projectile:Dc.Opt(Dc.BooleanNode()),is_lightning:Dc.Opt(Dc.BooleanNode()),bypasses_armor:Dc.Opt(Dc.BooleanNode()),bypasses_invulnerability:Dc.Opt(Dc.BooleanNode()),bypasses_magic:Dc.Opt(Dc.BooleanNode()),source_entity:Dc.Opt(i("entity_predicate")),direct_entity:Dc.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",Dc.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:Dc.Opt(Dc.BooleanNode()),source_entity:Dc.Opt(i("entity_predicate")),type:Dc.Opt(i("damage_source_predicate"))},{context:"damage"}))};var Bc={};Object.defineProperty(Bc,"__esModule",{value:!0}),Bc.initRecipeSchemas=void 0;const Lc=Te;Bc.initRecipeSchemas=function(e,t){const i=Lc.Reference.bind(void 0,e),n=Lc.StringNode.bind(void 0,t);e.register("recipe",Lc.Mod(Lc.ObjectNode({type:n({validator:"resource",params:{pool:"recipe_serializer"}}),[Lc.Switch]:[{push:"type"}],[Lc.Case]:{"minecraft:crafting_shaped":{group:Lc.Opt(n({enum:"recipe_group",additional:!0})),pattern:Lc.ListNode(n()),key:Lc.MapNode(n(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:Lc.Opt(n()),ingredients:Lc.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),experience:Lc.Opt(Lc.NumberNode()),cookingtime:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:Lc.Opt(n()),ingredient:i("recipe_ingredient"),result:n({validator:"resource",params:{pool:"item"}}),count:Lc.NumberNode({integer:!0})},"minecraft:smithing":{group:Lc.Opt(n()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe",disableSwitchContext:!0}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",Lc.Mod(Lc.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:Lc.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",Lc.Mod(Lc.ObjectNode({item:Lc.Opt(n({validator:"resource",params:{pool:"item"}})),tag:Lc.Opt(n({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",Lc.Mod(Lc.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),count:Lc.Opt(Lc.Mod(Lc.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))};var Mc={};Object.defineProperty(Mc,"__esModule",{value:!0}),Mc.initTagsSchemas=void 0;const $c=Te;Mc.initTagsSchemas=function(e,t){const i=$c.StringNode.bind(void 0,t),n=e=>$c.Mod($c.ObjectNode({replace:$c.Opt($c.BooleanNode()),values:$c.ListNode($c.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:$c.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:$c.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",n("block")),e.register("entity_type_tag",n("entity_type")),e.register("fluid_tag",n("fluid")),e.register("function_tag",n("$function")),e.register("game_event_tag",n("game_event")),e.register("item_tag",n("item"))};var Tc={};Object.defineProperty(Tc,"__esModule",{value:!0}),Tc.initTextComponentSchemas=void 0;const Rc=Te;Tc.initTextComponentSchemas=function(e,t){const i=Rc.Reference.bind(void 0,e),n=Rc.StringNode.bind(void 0,t),r=e=>{var t;return e instanceof Array?r(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",Rc.Mod(Rc.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:r(e[0])}:"object"==typeof e?e:{text:r(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:n(),change:r},{type:"number",node:Rc.NumberNode(),change:e=>{const t=parseFloat(r(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:Rc.BooleanNode(),change:e=>{const t=r(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const o={color:Rc.Opt(n()),font:Rc.Opt(n()),bold:Rc.Opt(Rc.BooleanNode()),italic:Rc.Opt(Rc.BooleanNode()),underlined:Rc.Opt(Rc.BooleanNode()),strikethrough:Rc.Opt(Rc.BooleanNode()),obfuscated:Rc.Opt(Rc.BooleanNode()),insertion:Rc.Opt(n()),clickEvent:Rc.Opt(Rc.ObjectNode({action:n({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[Rc.Switch]:[{push:"action"}],[Rc.Case]:{change_page:{value:n()},copy_to_clipboard:{value:n()},open_file:{value:n()},open_url:{value:n()},run_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:n({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:Rc.Opt(Rc.ObjectNode({action:n({enum:["show_text","show_item","show_entity"]}),[Rc.Switch]:[{push:"action"}],[Rc.Case]:{show_text:{value:Rc.Opt(i("text_component")),contents:Rc.Opt(i("text_component"))},show_item:{value:Rc.Opt(n({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:Rc.Opt(Rc.ObjectNode({id:n({validator:"resource",params:{pool:"item"}}),count:Rc.Opt(Rc.NumberNode({integer:!0})),tag:Rc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:Rc.Opt(Rc.ObjectNode({name:Rc.Opt(n()),type:Rc.Opt(n()),id:Rc.Opt(n())})),contents:Rc.Opt(Rc.Mod(Rc.ObjectNode({name:Rc.Opt(i("text_component")),type:n({validator:"resource",params:{pool:"entity_type"}}),id:n({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:Rc.Opt(i("text_component_list"))};e.register("text_component_object",Rc.Mod(Rc.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:Rc.ObjectNode(s({text:n()},o))},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:Rc.ObjectNode(s({translate:n(),with:Rc.Opt(i("text_component_list"))},o))},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:Rc.ObjectNode(s({score:Rc.ObjectNode({name:n({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:n({validator:"objective"}),value:Rc.Opt(n())})},o))},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:Rc.ObjectNode(s({selector:n({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:Rc.Opt(i("text_component"))},o))},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:Rc.ObjectNode(s({keybind:n({enum:"keybind",additional:!0})},o))},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:Rc.ObjectNode(s({nbt:n({validator:"nbt_path"}),block:Rc.Opt(n({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:Rc.Opt(n({validator:"entity",params:{amount:"multiple",type:"entities"}})),storage:Rc.Opt(n({validator:"resource",params:{pool:"$storage"}})),interpret:Rc.Opt(Rc.BooleanNode()),separator:Rc.Opt(i("text_component"))},o))}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",Rc.Mod(Rc.ListNode(i("text_component")),{default:()=>[{text:""}]}))};var jc={},Ic={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initBiomeSchemas=e.SpawnSettings=void 0;const t=Te,i=uc;e.initBiomeSchemas=function(n,r){const o=t.StringNode.bind(void 0,r);e.SpawnSettings=t.MapNode(o({enum:"mob_category"}),t.Mod(t.ListNode(t.ObjectNode({type:o({validator:"resource",params:{pool:"entity_type"}}),weight:t.NumberNode({integer:!0}),minCount:t.NumberNode({integer:!0}),maxCount:t.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),n.register("biome",t.Mod(t.ObjectNode({temperature:t.NumberNode(),downfall:t.NumberNode(),precipitation:o({enum:["none","rain","snow"]}),temperature_modifier:t.Opt(o({enum:["none","frozen"]})),category:o({enum:"biome_category"}),creature_spawn_probability:t.Opt(t.NumberNode({min:0,max:1})),effects:t.ObjectNode({sky_color:t.NumberNode({color:!0}),fog_color:t.NumberNode({color:!0}),water_color:t.NumberNode({color:!0}),water_fog_color:t.NumberNode({color:!0}),grass_color:t.Opt(t.NumberNode({color:!0})),foliage_color:t.Opt(t.NumberNode({color:!0})),grass_color_modifier:t.Opt(o({enum:["none","dark_forest","swamp"]})),ambient_sound:t.Opt(o()),mood_sound:t.Opt(t.ObjectNode({sound:o(),tick_delay:t.NumberNode({integer:!0}),block_search_extent:t.NumberNode({integer:!0}),offset:t.NumberNode()})),additions_sound:t.Opt(t.ObjectNode({sound:o(),tick_chance:t.NumberNode({min:0,max:1})})),music:t.Opt(t.ObjectNode({sound:o(),min_delay:t.NumberNode({integer:!0,min:0}),max_delay:t.NumberNode({integer:!0,min:0}),replace_current_music:t.BooleanNode()})),particle:t.Opt(t.ObjectNode({options:t.ObjectNode({type:o()}),probability:t.NumberNode({min:0,max:1})}))}),spawners:e.SpawnSettings,spawn_costs:t.MapNode(o({validator:"resource",params:{pool:"entity_type"}}),t.Mod(t.ObjectNode({energy_budget:t.NumberNode(),charge:t.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:t.MapNode(o({enum:["air","liquid"]}),t.Mod(i.Tag({resource:"$worldgen/configured_carver",inlineSchema:"configured_carver"}),{default:()=>["minecraft:cave"]})),features:t.ListNode(t.Mod(i.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"}),{category:()=>"predicate"}),{maxLength:11})},{context:"biome"}),{default:()=>({temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}}(Ic);var Pc={};Object.defineProperty(Pc,"__esModule",{value:!0}),Pc.initCarverSchemas=void 0;const zc=Te,Uc=uc;Pc.initCarverSchemas=function(e,t){const i=zc.Reference.bind(void 0,e),n=zc.StringNode.bind(void 0,t),r={vertical_rotation:Uc.FloatProvider(),shape:zc.ObjectNode({distance_factor:Uc.FloatProvider(),thickness:Uc.FloatProvider(),width_smoothness:zc.NumberNode({integer:!0,min:0}),horizontal_radius_factor:Uc.FloatProvider(),vertical_radius_default_factor:zc.NumberNode(),vertical_radius_center_factor:zc.NumberNode()})},o={horizontal_radius_multiplier:Uc.FloatProvider(),vertical_radius_multiplier:Uc.FloatProvider(),floor_level:Uc.FloatProvider({min:-1,max:1})};e.register("configured_carver",zc.Mod(zc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:zc.ObjectNode({probability:zc.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:Uc.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:zc.Opt(zc.ObjectNode({debug_mode:zc.Opt(zc.BooleanNode()),air_state:zc.Opt(i("block_state")),water_state:zc.Opt(i("block_state")),lava_state:zc.Opt(i("block_state")),barrier_state:zc.Opt(i("block_state"))})),[zc.Switch]:["pop",{push:"type"}],[zc.Case]:{"minecraft:canyon":r,"minecraft:cave":o,"minecraft:nether_cave":o}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))};var Wc={};Object.defineProperty(Wc,"__esModule",{value:!0}),Wc.initDecoratorSchemas=void 0;const Hc=Te,qc=uc;Wc.initDecoratorSchemas=function(e,t){const i=Hc.Reference.bind(void 0,e),n=Hc.StringNode.bind(void 0,t);e.register("decorator",Hc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/placement_modifier_type"}}),[Hc.Switch]:[{push:"type"}],[Hc.Case]:{"minecraft:block_predicate_filter":{predicate:i("block_predicate_worldgen")},"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:rarity_filter":{chance:Hc.NumberNode({integer:!0,min:0})},"minecraft:count":{count:qc.IntProvider({min:0,max:256})},"minecraft:count_on_every_layer":{count:qc.IntProvider({min:0,max:256})},"minecraft:noise_threshold_count":{noise_level:Hc.NumberNode(),below_noise:Hc.NumberNode({integer:!0}),above_noise:Hc.NumberNode({integer:!0})},"minecraft:noise_based_count":{noise_to_count_ratio:Hc.NumberNode({integer:!0}),noise_factor:Hc.NumberNode(),noise_offset:Hc.Opt(Hc.NumberNode())},"minecraft:environment_scan":{direction_of_search:n({enum:["up","down"]}),max_steps:Hc.NumberNode({integer:!0,min:1,max:32}),target_condition:i("block_predicate_worldgen"),allowed_search_condition:Hc.Opt(i("block_predicate_worldgen"))},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:height_range":{height:i("height_provider")},"minecraft:random_offset":{xz_spread:qc.IntProvider({min:-16,max:16}),y_spread:qc.IntProvider({min:-16,max:16})},"minecraft:surface_relative_threshold_filter":{heightmap:n({enum:"heightmap_type"}),min_inclusive:Hc.Opt(Hc.NumberNode({integer:!0})),max_inclusive:Hc.Opt(Hc.NumberNode({integer:!0}))},"minecraft:surface_water_depth_filter":{max_water_depth:Hc.NumberNode({integer:!0})}}},{context:"decorator",category:"predicate"}))};var Vc={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.initDensityFunctionSchemas=e.DensityFunction=void 0;const t=Te;e.initDensityFunctionSchemas=function(i,n){const r=t.StringNode.bind(void 0,n),o=t.Reference.bind(void 0,i);e.DensityFunction=t.Mod(t.ChoiceNode([{type:"number",node:t.NumberNode(),change:()=>0},{type:"string",priority:1,node:r({validator:"resource",params:{pool:"$worldgen/density_function"}}),change:()=>{}},{type:"object",node:o("density_function"),change:()=>({})}],{choiceContext:"density_function"}),{default:()=>0});const a=t.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/noise"}}),change:()=>{}},{type:"object",node:o("noise_parameters")}],{choiceContext:"noise_parameters"}),s=t.NumberNode({min:-1e6,max:1e6}),c=t.NumberNode({integer:!0,min:-4064,max:4062});i.register("density_function",t.Mod(t.ObjectNode({type:r({validator:"resource",params:{pool:"worldgen/density_function_type"}}),[t.Switch]:[{push:"type"}],[t.Case]:{"minecraft:abs":{argument:e.DensityFunction},"minecraft:add":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:cache_2d":{argument:e.DensityFunction},"minecraft:cache_all_in_cell":{argument:e.DensityFunction},"minecraft:cache_once":{argument:e.DensityFunction},"minecraft:clamp":{input:e.DensityFunction,min:s,max:s},"minecraft:cube":{argument:e.DensityFunction},"minecraft:flat_cache":{argument:e.DensityFunction},"minecraft:half_negative":{argument:e.DensityFunction},"minecraft:interpolated":{argument:e.DensityFunction},"minecraft:max":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:min":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:mul":{argument1:e.DensityFunction,argument2:e.DensityFunction},"minecraft:noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode()},"minecraft:quarter_negative":{argument:e.DensityFunction},"minecraft:range_choice":{input:e.DensityFunction,min_inclusive:s,max_exclusive:s,when_in_range:e.DensityFunction,when_out_of_range:e.DensityFunction},"minecraft:shift":{argument:e.DensityFunction},"minecraft:shift_a":{argument:e.DensityFunction},"minecraft:shift_b":{argument:e.DensityFunction},"minecraft:shifted_noise":{noise:a,xz_scale:t.NumberNode(),y_scale:t.NumberNode(),shift_x:e.DensityFunction,shift_y:e.DensityFunction,shift_z:e.DensityFunction},"minecraft:slide":{argument:e.DensityFunction},"minecraft:square":{argument:e.DensityFunction},"minecraft:squeeze":{argument:e.DensityFunction},"minecraft:terrain_shaper_spline":{spline:r({enum:["offset","factor","jaggedness"]}),min_value:s,max_value:s,continentalness:e.DensityFunction,erosion:e.DensityFunction,weirdness:e.DensityFunction},"minecraft:weird_scaled_sampler":{rarity_value_mapper:r({enum:["type_1","type_2"]}),noise:a,input:e.DensityFunction},"minecraft:y_clamped_gradient":{from_y:c,to_y:c,from_value:s,to_value:s}}},{context:"density_function",disableSwitchContext:!0}),(e=>({default:()=>({type:"minecraft:noise",noise:"minecraft:cave_entrance",xz_scale:.75,y_scale:.5}),validate:(t,i,n,r)=>"object"==typeof(i=e.validate(t,i,n,r))&&null!==i&&"minecraft:constant"===i.type?0:i}))))}}(Vc);var Kc={},Gc={};Object.defineProperty(Gc,"__esModule",{value:!0}),Gc.initProcessorListSchemas=Gc.Processors=void 0;const Xc=Te;Gc.initProcessorListSchemas=function(e,t){const i=Xc.Reference.bind(void 0,e),n=Xc.StringNode.bind(void 0,t);Gc.Processors=Xc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",Xc.Mod(Xc.ObjectNode({processors:Xc.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",Xc.Mod(Xc.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[Xc.Switch]:[{push:"processor_type"}],[Xc.Case]:{"minecraft:block_age":{mossiness:Xc.NumberNode()},"minecraft:block_ignore":{blocks:Xc.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:Xc.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:Xc.NumberNode({integer:!0})},"minecraft:protected_blocks":{value:n({validator:"resource",params:{pool:"block",requireTag:!0}})},"minecraft:rule":{rules:Xc.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",Xc.Mod(Xc.ObjectNode({position_predicate:Xc.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:Xc.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const r={min_dist:Xc.Opt(Xc.NumberNode({min:0,max:255,integer:!0})),max_dist:Xc.Opt(Xc.NumberNode({min:0,max:255,integer:!0})),min_chance:Xc.Opt(Xc.NumberNode({min:0,max:1})),max_chance:Xc.Opt(Xc.NumberNode({min:0,max:1}))};e.register("pos_rule_test",Xc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[Xc.Switch]:[{push:"predicate_type"}],[Xc.Case]:{"minecraft:axis_aligned_linear_pos":s({axis:n({enum:["x","y","z"]})},r),"minecraft:linear_pos":r}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",Xc.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[Xc.Switch]:[{push:"predicate_type"}],[Xc.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:Xc.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:Xc.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))},Object.defineProperty(Kc,"__esModule",{value:!0}),Kc.initFeatureSchemas=void 0;const Jc=Te,Yc=uc,Zc=Gc;Kc.initFeatureSchemas=function(e,t){const i=Jc.Reference.bind(void 0,e),n=Jc.StringNode.bind(void 0,t),r=Jc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),o=Jc.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},{type:"object",node:i("placed_feature")}],{choiceContext:"placed_feature"}),a={tries:Jc.Opt(Jc.NumberNode({integer:!0,min:1})),xz_spread:Jc.Opt(Jc.NumberNode({integer:!0,min:0})),y_spread:Jc.Opt(Jc.NumberNode({integer:!0,min:0})),feature:o},l={state:i("block_state"),radius:Yc.IntProvider({min:0,max:8}),half_height:Jc.NumberNode({integer:!0,min:0,max:4}),targets:Jc.ListNode(i("block_state"))},u={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:Jc.Opt(Jc.NumberNode({integer:!0}))},d=Jc.ObjectNode({target:i("rule_test"),state:i("block_state")}),h={size:Jc.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:Jc.NumberNode({min:0,max:1}),targets:Jc.ListNode(d)},p={surface:n({enum:"cave_surface"}),depth:Yc.IntProvider({min:1,max:128}),vertical_range:Jc.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:Jc.NumberNode({min:0,max:1}),extra_edge_column_chance:Jc.NumberNode({min:0,max:1}),vegetation_chance:Jc.NumberNode({min:0,max:1}),xz_radius:Yc.IntProvider(),replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),ground_state:i("block_state_provider"),vegetation_feature:o};e.register("configured_feature",Jc.Mod(Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:Jc.ObjectNode({[Jc.Switch]:["pop",{push:"type"}],[Jc.Case]:{"minecraft:bamboo":{probability:Jc.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:Yc.IntProvider({min:0,max:3}),height:Yc.IntProvider({min:1,max:10})},"minecraft:block_column":{direction:n({enum:["up","down","north","east","south","west"]}),allowed_placement:i("block_predicate_worldgen"),prioritize_tip:Jc.BooleanNode(),layers:Jc.ListNode(Jc.ObjectNode({height:Yc.IntProvider({min:0}),provider:i("block_state_provider")}))},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:Yc.IntProvider({min:0,max:16}),rim_size:Yc.IntProvider({min:0,max:16})},"minecraft:disk":l,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:Jc.NumberNode({integer:!0,min:1,max:512}),height:Yc.IntProvider({min:0,max:128}),radius:Yc.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:Jc.NumberNode({integer:!0,min:0,max:64}),height_deviation:Jc.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:Yc.IntProvider({min:0,max:128}),density:Yc.FloatProvider({min:0,max:2}),wetness:Yc.FloatProvider({min:0,max:2}),chance_of_dripstone_column_at_max_distance_from_center:Jc.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:Jc.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:Jc.NumberNode({integer:!0,min:1,max:64})},"minecraft:end_gateway":{exact:Jc.BooleanNode(),exit:Jc.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:Jc.Opt(Jc.BooleanNode()),crystal_beam_target:Jc.Opt(i("block_pos")),spikes:Jc.ListNode(Jc.ObjectNode({centerX:Jc.Opt(Jc.NumberNode({integer:!0})),centerZ:Jc.Opt(Jc.NumberNode({integer:!0})),radius:Jc.Opt(Jc.NumberNode({integer:!0})),height:Jc.Opt(Jc.NumberNode({integer:!0})),guarded:Jc.Opt(Jc.BooleanNode())}))},"minecraft:fill_layer":{state:i("block_state"),height:Jc.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:Jc.NumberNode({integer:!0,min:0,max:7}),fossil_structures:Jc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),overlay_structures:Jc.ListNode(n({validator:"resource",params:{pool:"$structure"}})),fossil_processors:Zc.Processors,overlay_processors:Zc.Processors},"minecraft:geode":{blocks:Jc.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:Jc.ListNode(i("block_state")),cannot_replace:n({validator:"resource",params:{pool:"block",requireTag:!0}}),invalid_blocks:n({validator:"resource",params:{pool:"block",requireTag:!0}})}),layers:Jc.ObjectNode({filling:Jc.Opt(Jc.NumberNode({min:.01,max:50})),inner_layer:Jc.Opt(Jc.NumberNode({min:.01,max:50})),middle_layer:Jc.Opt(Jc.NumberNode({min:.01,max:50})),outer_layer:Jc.Opt(Jc.NumberNode({min:.01,max:50}))}),crack:Jc.ObjectNode({generate_crack_chance:Jc.Opt(Jc.NumberNode({min:0,max:1})),base_crack_size:Jc.Opt(Jc.NumberNode({min:0,max:5})),crack_point_offset:Jc.Opt(Jc.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:Jc.Opt(Jc.NumberNode({min:0,max:1})),use_potential_placements_chance:Jc.Opt(Jc.NumberNode({min:0,max:1})),use_alternate_layer0_chance:Jc.Opt(Jc.NumberNode({min:0,max:1})),placements_require_layer0_alternate:Jc.Opt(Jc.BooleanNode()),outer_wall_distance:Jc.Opt(Yc.IntProvider({min:1,max:20})),distribution_points:Jc.Opt(Yc.IntProvider({min:1,max:20})),point_offset:Jc.Opt(Yc.IntProvider({min:0,max:10})),min_gen_offset:Jc.Opt(Jc.NumberNode({integer:!0})),max_gen_offset:Jc.Opt(Jc.NumberNode({integer:!0})),invalid_blocks_threshold:Jc.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:Jc.Opt(Jc.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:Jc.Opt(Jc.NumberNode({min:0,max:1})),can_place_on_floor:Jc.Opt(Jc.BooleanNode()),can_place_on_ceiling:Jc.Opt(Jc.BooleanNode()),can_place_on_wall:Jc.Opt(Jc.BooleanNode()),can_be_placed_on:Yc.Tag({resource:"block"})},"minecraft:huge_brown_mushroom":u,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:Jc.Opt(Jc.BooleanNode())},"minecraft:huge_red_mushroom":u,"minecraft:ice_patch":l,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{fluid:i("block_state_provider"),barrier:i("block_state_provider")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:Jc.Opt(Jc.NumberNode({integer:!0,min:1,max:512})),column_radius:Yc.IntProvider({min:0,max:60}),height_scale:Yc.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:Jc.NumberNode({min:0,max:1}),stalactite_bluntness:Yc.FloatProvider({min:.1,max:10}),stalagmite_bluntness:Yc.FloatProvider({min:.1,max:10}),wind_speed:Yc.FloatProvider({min:0,max:2}),min_radius_for_wind:Jc.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:Jc.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider"),spread_width:Jc.NumberNode({integer:!0,min:1}),spread_height:Jc.NumberNode({integer:!0,min:1})},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:Yc.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":a,"minecraft:ore":h,"minecraft:pointed_dripstone":{chance_of_taller_dripstone:Jc.Opt(Jc.NumberNode({min:0,max:1})),chance_of_directional_spread:Jc.Opt(Jc.NumberNode({min:0,max:1})),chance_of_spread_radius2:Jc.Opt(Jc.NumberNode({min:0,max:1})),chance_of_spread_radius3:Jc.Opt(Jc.NumberNode({min:0,max:1}))},"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:o,feature_true:o},"minecraft:random_selector":{features:Jc.ListNode(Jc.ObjectNode({chance:Jc.NumberNode({min:0,max:1}),feature:o})),default:o},"minecraft:replace_single_block":{targets:Jc.ListNode(d)},"minecraft:root_system":{required_vertical_space_for_tree:Jc.NumberNode({integer:!0,min:1,max:64}),root_radius:Jc.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:Jc.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:Jc.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:Jc.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:Jc.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:Jc.NumberNode({integer:!0,min:0,max:256}),allowed_vertical_water_for_tree:Jc.NumberNode({integer:!0,min:1,max:64}),root_replaceable:n({validator:"resource",params:{pool:"block",requireTag:!0}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),allowed_tree_position:i("block_predicate_worldgen"),feature:o},"minecraft:scattered_ore":h,"minecraft:sea_pickle":{count:Yc.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:Jc.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider")},"minecraft:simple_random_selector":{features:Yc.Tag({resource:"$worldgen/placed_feature",inlineSchema:"placed_feature"})},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:Jc.NumberNode({integer:!0}),hole_count:Jc.NumberNode({integer:!0}),requires_block_below:Jc.BooleanNode(),valid_blocks:Yc.Tag({resource:"block"})},"minecraft:tree":{ignore_vines:Jc.Opt(Jc.BooleanNode()),force_dirt:Jc.Opt(Jc.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:Jc.NumberNode({integer:!0,min:0,max:32}),height_rand_a:Jc.NumberNode({integer:!0,min:0,max:24}),height_rand_b:Jc.NumberNode({integer:!0,min:0,max:24}),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:bending_trunk_placer":{bend_length:Yc.IntProvider({min:1,max:64}),min_height_for_leaves:Jc.Opt(Jc.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:Yc.IntProvider({min:0,max:16}),offset:Yc.IntProvider({min:0,max:16}),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:blob_foliage_placer":{height:Jc.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:Jc.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:Jc.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:Jc.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:Yc.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:Yc.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:Yc.IntProvider({min:1,max:512}),leaf_placement_attempts:Jc.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:Yc.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:Jc.ListNode(Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:Jc.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:Jc.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:twisting_vines":{spread_width:Jc.NumberNode({integer:!0,min:1}),spread_height:Jc.NumberNode({integer:!0,min:1}),max_height:Jc.NumberNode({integer:!0,min:1})},"minecraft:underwater_magma":{floor_search_range:Jc.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:Jc.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:Jc.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:tree",config:{minimum_size:{type:"minecraft:two_layers_feature_size"},trunk_placer:{type:"minecraft:straight_trunk_placer",base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{type:"minecraft:blob_foliage_placer",radius:2,offset:0,height:3}}})})),e.register("placed_feature",Jc.Mod(Jc.ObjectNode({feature:r,placement:Jc.ListNode(i("decorator"))},{context:"placed_feature"}),{default:()=>({feature:"minecraft:oak",placement:[{type:"minecraft:count",count:4},{type:"minecraft:in_square"},{type:"minecraft:heightmap",heightmap:"OCEAN_FLOOR"}]})})),e.register("feature_size",Jc.Mod(Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:Jc.Opt(Jc.NumberNode({min:0,max:80})),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:two_layers_feature_size":{limit:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:81})),lower_size:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:16})),upper_size:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:80})),upper_limit:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:80})),lower_size:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:16})),middle_size:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:16})),upper_size:Jc.Opt(Jc.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})}));const m={seed:Jc.NumberNode({integer:!0}),noise:i("noise_parameters"),scale:Jc.Mod(Jc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1})};e.register("block_state_provider",Jc.Mod(Jc.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:dual_noise_provider":c(s({},m),{variety:Yc.InclusiveRange({integer:!0,min:1,max:64}),slow_noise:i("noise_parameters"),slow_scale:Jc.Mod(Jc.NumberNode({min:Number.MIN_VALUE}),{default:()=>1}),states:Jc.ListNode(i("block_state"))}),"minecraft:noise_threshold_provider":c(s({},m),{threshold:Jc.NumberNode({min:-1,max:1}),high_chance:Jc.NumberNode({min:0,max:1}),default_state:i("block_state"),low_states:Jc.ListNode(i("block_state")),high_states:Jc.ListNode(i("block_state"))}),"minecraft:noise_provider":c(s({},m),{states:Jc.ListNode(i("block_state"))}),"minecraft:randomized_int_state_provider":{property:n(),values:Yc.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:Jc.ListNode(Jc.Mod(Jc.ObjectNode({weight:Jc.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})}));const f={offset:Jc.Opt(Jc.ListNode(Jc.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))};e.register("block_predicate_worldgen",Jc.Mod(Jc.ObjectNode({type:n({validator:"resource",params:{pool:"block_predicate_type"}}),[Jc.Switch]:[{push:"type"}],[Jc.Case]:{"minecraft:all_of":{predicates:Jc.ListNode(i("block_predicate_worldgen"))},"minecraft:any_of":{predicates:Jc.ListNode(i("block_predicate_worldgen"))},"minecraft:has_sturdy_face":c(s({},f),{direction:n({enum:"direction"})}),"minecraft:inside_world_bounds":s({},f),"minecraft:matching_block_tag":c(s({},f),{tag:n({validator:"resource",params:{pool:"$tag/block"}})}),"minecraft:matching_blocks":c(s({},f),{blocks:Yc.Tag({resource:"block"})}),"minecraft:matching_fluids":c(s({},f),{fluids:Yc.Tag({resource:"fluid"})}),"minecraft:not":{predicate:i("block_predicate_worldgen")},"minecraft:would_survive":c(s({},f),{state:i("block_state")})}},{context:"block_predicate"}),{default:()=>({type:"minecraft:true"})}))};var Qc={};Object.defineProperty(Qc,"__esModule",{value:!0}),Qc.initNoiseSettingsSchemas=void 0;const el=Te,tl=uc,il=Vc;Qc.initNoiseSettingsSchemas=function(e,t){const i=el.Reference.bind(void 0,e),n=el.StringNode.bind(void 0,t);e.register("noise_settings",el.Mod(el.ObjectNode({sea_level:el.NumberNode({integer:!0}),disable_mob_generation:el.BooleanNode(),aquifers_enabled:el.BooleanNode(),ore_veins_enabled:el.BooleanNode(),legacy_random_source:el.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:el.ObjectNode({min_y:el.NumberNode({integer:!0,min:-2048,max:2047}),height:el.NumberNode({integer:!0,min:0,max:4096}),size_horizontal:el.NumberNode({integer:!0}),size_vertical:el.NumberNode({integer:!0}),island_noise_override:el.Opt(el.BooleanNode()),amplified:el.Opt(el.BooleanNode()),large_biomes:el.Opt(el.BooleanNode()),sampling:el.ObjectNode({xz_scale:el.NumberNode(),y_scale:el.NumberNode(),xz_factor:el.NumberNode(),y_factor:el.NumberNode()}),bottom_slide:i("noise_slider"),top_slide:i("noise_slider"),terrain_shaper:i("terrain_shaper")}),noise_router:el.ObjectNode({barrier:il.DensityFunction,fluid_level_floodedness:il.DensityFunction,fluid_level_spread:il.DensityFunction,lava:il.DensityFunction,temperature:il.DensityFunction,vegetation:il.DensityFunction,continents:il.DensityFunction,erosion:il.DensityFunction,depth:il.DensityFunction,initial_density_without_jaggedness:il.DensityFunction,final_density:il.DensityFunction,vein_toggle:il.DensityFunction,vein_ridged:il.DensityFunction,vein_gap:il.DensityFunction}),surface_rule:i("material_rule")},{context:"noise_settings"}),(e=>({default:()=>tl.DefaultNoiseSettings,validate:(t,i,n,r)=>{var o,a,s,c;return(null===(o=null==(i=e.validate(t,i,n,r))?void 0:i.noise)||void 0===o?void 0:o.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&n.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&n.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&n.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}})))),e.register("noise_slider",el.ObjectNode({target:el.NumberNode(),size:el.NumberNode({integer:!0,min:0}),offset:el.NumberNode({integer:!0})})),e.register("generator_layer",el.Mod(el.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:el.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})})),e.register("terrain_shaper",el.Mod(el.ObjectNode({offset:i("terrain_spline"),factor:i("terrain_spline"),jaggedness:i("terrain_spline")},{context:"terrain_shaper"}),{default:()=>({offset:0,factor:0,jaggedness:0})})),e.register("terrain_spline",el.Mod(el.ChoiceNode([{type:"number",node:el.NumberNode()},{type:"object",node:el.ObjectNode({coordinate:el.Mod(n({enum:["continents","erosion","weirdness","ridges"]}),{default:()=>"continents"}),points:el.ListNode(el.ObjectNode({location:el.NumberNode(),derivative:el.NumberNode(),value:i("terrain_spline")}))},{category:"function"})}],{context:"terrain_spline",choiceContext:"terrain_spline"}),{default:()=>0}))};var nl={};Object.defineProperty(nl,"__esModule",{value:!0}),nl.initStructureFeatureSchemas=void 0;const rl=Te,ol=uc,al=Ic;nl.initStructureFeatureSchemas=function(e,t){const i=rl.StringNode.bind(void 0,t),n=rl.Reference.bind(void 0,e),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:rl.NumberNode({integer:!0})};e.register("configured_structure_feature",rl.Mod(rl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),biomes:ol.Tag({resource:"$worldgen/biome"}),adapt_noise:rl.Opt(rl.BooleanNode()),spawn_overrides:rl.MapNode(i({enum:"mob_category"}),rl.ObjectNode({bounding_box:i({enum:["piece","full"]}),spawns:al.SpawnSettings})),config:rl.ObjectNode({[rl.Switch]:["pop",{push:"type"}],[rl.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:rl.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:rl.NumberNode({min:0,max:1})},"minecraft:nether_fossil":{height:n("height_provider")},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:rl.NumberNode({min:0,max:1}),cluster_probability:rl.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:rl.Opt(rl.BooleanNode())},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))};var sl={};Object.defineProperty(sl,"__esModule",{value:!0}),sl.initStructureSetSchemas=void 0;const cl=Te,ll=uc;sl.initStructureSetSchemas=function(e,t){const i=cl.StringNode.bind(void 0,t),n=cl.Reference.bind(void 0,e);e.register("structure_set",cl.ObjectNode({structures:cl.ListNode(cl.ObjectNode({structure:ll.Tag({resource:"$worldgen/configured_structure_feature"}),weight:cl.NumberNode({integer:!0,min:1})})),placement:n("structure_placement")},{context:"structure_set"})),e.register("structure_placement",cl.Mod(cl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_placement"}}),[cl.Switch]:[{push:"type"}],[cl.Case]:{"minecraft:concentric_rings":{distance:cl.NumberNode({integer:!0,min:0,max:1023}),spread:cl.NumberNode({integer:!0,min:0,max:1023}),count:cl.NumberNode({integer:!0,min:1,max:4095})},"minecraft:random_spread":{spread_type:cl.Opt(i({enum:["linear","triangular"]})),spacing:cl.NumberNode({integer:!0,min:0,max:4096}),separation:cl.Mod(cl.NumberNode({integer:!0,min:0,max:4096}),(e=>({validate:(t,i,n,r)=>(t.pop().push("spacing").get()<=i&&n.add(t,"error.separation_smaller_spacing"),e.validate(t,i,n,r))}))),salt:cl.NumberNode({integer:!0,min:0}),locate_offset:cl.Opt(cl.ListNode(cl.NumberNode({integer:!0,min:-16,max:16}),{minLength:3,maxLength:3}))}}},{context:"structure_placement"}),{default:()=>({type:"minecraft:random_spread",spacing:10,separation:5,salt:Math.floor(2147483647*Math.random())})}))};var ul={};Object.defineProperty(ul,"__esModule",{value:!0}),ul.initSurfaceRuleSchemas=void 0;const dl=Te;ul.initSurfaceRuleSchemas=function(e,t){const i=dl.StringNode.bind(void 0,t),n=dl.Reference.bind(void 0,e);e.register("material_rule",dl.Mod(dl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_rule"}}),[dl.Switch]:[{push:"type"}],[dl.Case]:{"minecraft:block":{result_state:n("block_state")},"minecraft:condition":{if_true:n("material_condition"),then_run:n("material_rule")},"minecraft:sequence":{sequence:dl.ListNode(n("material_rule"))}}},{context:"material_rule",category:"pool"}),{default:()=>({type:"minecraft:block",result_state:{Name:"minecraft:stone"}})})),e.register("material_condition",dl.Mod(dl.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/material_condition"}}),[dl.Switch]:[{push:"type"}],[dl.Case]:{"minecraft:biome":{biome_is:dl.ListNode(i({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:noise_threshold":{noise:i({validator:"resource",params:{pool:"$worldgen/noise"}}),min_threshold:dl.NumberNode(),max_threshold:dl.NumberNode()},"minecraft:not":{invert:n("material_condition")},"minecraft:stone_depth":{offset:dl.NumberNode({integer:!0}),surface_type:i({enum:"cave_surface"}),add_surface_depth:dl.BooleanNode(),secondary_depth_range:dl.NumberNode({integer:!0})},"minecraft:vertical_gradient":{random_name:i(),true_at_and_below:n("vertical_anchor"),false_at_and_above:n("vertical_anchor")},"minecraft:water":{offset:dl.NumberNode({integer:!0}),surface_depth_multiplier:dl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:dl.BooleanNode()},"minecraft:y_above":{anchor:n("vertical_anchor"),surface_depth_multiplier:dl.NumberNode({integer:!0,min:-20,max:20}),add_stone_depth:dl.BooleanNode()}}},{context:"material_condition"}),{default:()=>({type:"minecraft:biome",is_biome:"minecraft:plains"})}))};var hl={};Object.defineProperty(hl,"__esModule",{value:!0}),hl.initTemplatePoolSchemas=void 0;const pl=Te,ml=Gc;hl.initTemplatePoolSchemas=function(e,t){const i=pl.Reference.bind(void 0,e),n=pl.StringNode.bind(void 0,t);e.register("template_pool",pl.Mod(pl.ObjectNode({fallback:n(),elements:pl.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",pl.Mod(pl.ObjectNode({weight:pl.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",pl.Mod(pl.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[pl.Switch]:[{push:"element_type"}],[pl.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/placed_feature"}})},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ml.Processors},"minecraft:list_pool_element":{elements:pl.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:ml.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))},Object.defineProperty(jc,"__esModule",{value:!0}),jc.initWorldgenSchemas=void 0;const fl=Ic,gl=Pc,_l=Wc,bl=Vc,vl=Kc,yl=Qc,wl=Gc,xl=nl,Nl=sl,Al=ul,kl=hl;jc.initWorldgenSchemas=function(e,t){wl.initProcessorListSchemas(e,t),bl.initDensityFunctionSchemas(e,t),fl.initBiomeSchemas(e,t),gl.initCarverSchemas(e,t),_l.initDecoratorSchemas(e,t),vl.initFeatureSchemas(e,t),yl.initNoiseSettingsSchemas(e,t),xl.initStructureFeatureSchemas(e,t),Nl.initStructureSetSchemas(e,t),Al.initSurfaceRuleSchemas(e,t),kl.initTemplatePoolSchemas(e,t)};var Cl={};Object.defineProperty(Cl,"__esModule",{value:!0}),Cl.initWorldSettingsSchemas=void 0;const El=Te;Cl.initWorldSettingsSchemas=function(e,t){const i=El.Reference.bind(void 0,e),n=El.StringNode.bind(void 0,t);e.register("world_settings",El.Mod(El.ObjectNode({generate_features:El.BooleanNode(),bonus_chest:El.BooleanNode(),seed:El.NumberNode({integer:!0}),dimensions:El.MapNode(n({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:overworld"},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",preset:"minecraft:nether"},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))},Object.defineProperty(ec,"__esModule",{value:!0}),ec.initSchemas=void 0;const Sl=tc,Fl=nc,Ol=uc,Dl=dc,Bl=mc,Ll=_c,Ml=yc,$l=Nc,Tl=Sc,Rl=Oc,jl=Bc,Il=Mc,Pl=Tc,zl=jc,Ul=Cl;ec.initSchemas=function(e,t){Ol.initCommonSchemas(e,t),Sl.initAdvancementSchemas(e,t),Fl.initAssetsSchemas(e,t),Dl.initConditionSchemas(e,t),Ll.initDimensionTypeSchemas(e,t),Bl.initDimensionSchemas(e,t),Ml.initItemModifierSchemas(e,t),$l.initLootTableSchemas(e,t),Tl.initPackMcmetaSchemas(e,t),Rl.initPredicatesSchemas(e,t),jl.initRecipeSchemas(e,t),Il.initTagsSchemas(e,t),Pl.initTextComponentSchemas(e,t),zl.initWorldgenSchemas(e,t),Ul.initWorldSettingsSchemas(e,t)};var Wl=$e&&$e.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),Hl=$e&&$e.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ql=$e&&$e.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&Wl(t,e,i);return Hl(t,e),t};Object.defineProperty(Zs,"__esModule",{value:!0});var Vl=Zs.getSchemas=Zs.getCollections=void 0;const Kl=Te,Gl=Qs,Xl=ec;var Jl=Zs.lootContext=ql(Ac);var Yl=Zs.getCollections=function(){const e=new Kl.CollectionRegistry;return Gl.initCollections(e),e};Vl=Zs.getSchemas=function(e){const t=new Kl.SchemaRegistry;return Xl.initSchemas(t,e),t};var Zl=Object.freeze(Object.assign(Object.create(null),Zs,{[Symbol.toStringTag]:"Module",get getSchemas(){return Vl},get getCollections(){return Yl},lootContext:Jl,default:Zs})); +/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */function Ql(e){let t=e.length;for(;--t>=0;)e[t]=0}const eu=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),tu=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),iu=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),nu=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ru=new Array(576);Ql(ru);const ou=new Array(60);Ql(ou);const au=new Array(512);Ql(au);const su=new Array(256);Ql(su);const cu=new Array(29);Ql(cu);const lu=new Array(30);function uu(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}let du,hu,pu;function mu(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}Ql(lu);const fu=e=>e<256?au[e]:au[256+(e>>>7)],gu=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},_u=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{_u(e,i[2*t],i[2*t+1])},vu=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},yu=(e,t,i)=>{const n=new Array(16);let r,o,a=0;for(r=1;r<=15;r++)n[r]=a=a+i[r-1]<<1;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=vu(n[t]++,t))}},wu=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0},xu=e=>{e.bi_valid>8?gu(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Nu=(e,t,i,n)=>{const r=2*t,o=2*i;return e[r]{const n=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let n,r,o,a,s=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*s]<<8|e.pending_buf[e.d_buf+2*s+1],r=e.pending_buf[e.l_buf+s],s++,0===n?bu(e,r,t):(o=su[r],bu(e,o+256+1,t),a=eu[o],0!==a&&(r-=cu[o],_u(e,r,a)),n--,o=fu(n),bu(e,o,i),a=tu[o],0!==a&&(n-=lu[o],_u(e,n,a)))}while(s{const i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let a,s,c,l=-1;for(e.heap_len=0,e.heap_max=573,a=0;a>1;a>=1;a--)Au(e,i,a);c=o;do{a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Au(e,i,1),s=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=s,i[2*c]=i[2*a]+i[2*s],e.depth[c]=(e.depth[a]>=e.depth[s]?e.depth[a]:e.depth[s])+1,i[2*a+1]=i[2*s+1]=c,e.heap[1]=c++,Au(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,a=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length;let l,u,d,h,p,m,f=0;for(h=0;h<=15;h++)e.bl_count[h]=0;for(i[2*e.heap[e.heap_max]+1]=0,l=e.heap_max+1;l<573;l++)u=e.heap[l],h=i[2*i[2*u+1]+1]+1,h>c&&(h=c,f++),i[2*u+1]=h,u>n||(e.bl_count[h]++,p=0,u>=s&&(p=a[u-s]),m=i[2*u],e.opt_len+=m*(h+p),o&&(e.static_len+=m*(r[2*u+1]+p)));if(0!==f){do{for(h=c-1;0===e.bl_count[h];)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,f-=2}while(f>0);for(h=c;0!==h;h--)for(u=e.bl_count[h];0!==u;)d=e.heap[--l],d>n||(i[2*d+1]!==h&&(e.opt_len+=(h-i[2*d+1])*i[2*d],i[2*d+1]=h),u--)}})(e,t),yu(i,l,e.bl_count)},Eu=(e,t,i)=>{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),t[2*(i+1)+1]=65535,n=0;n<=i;n++)r=a,a=t[2*(n+1)+1],++s{let n,r,o=-1,a=t[1],s=0,c=7,l=4;for(0===a&&(c=138,l=3),n=0;n<=i;n++)if(r=a,a=t[2*(n+1)+1],!(++s{_u(e,0+(n?1:0),3),((e,t,i,n)=>{xu(e),n&&(gu(e,i),gu(e,~i)),e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i})(e,t,i,!0)};var Du={_tr_init:e=>{Fu||((()=>{let e,t,i,n,r;const o=new Array(16);for(i=0,n=0;n<28;n++)for(cu[n]=i,e=0;e<1<>=7;n<30;n++)for(lu[n]=r<<7,e=0;e<1<{let r,o,a=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),Cu(e,e.l_desc),Cu(e,e.d_desc),a=(e=>{let t;for(Eu(e,e.dyn_ltree,e.l_desc.max_code),Eu(e,e.dyn_dtree,e.d_desc.max_code),Cu(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*nu[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,o=e.static_len+3+7>>>3,o<=r&&(r=o)):r=o=i+5,i+4<=r&&-1!==t?Ou(e,t,i,n):4===e.strategy||o===r?(_u(e,2+(n?1:0),3),ku(e,ru,ou)):(_u(e,4+(n?1:0),3),((e,t,i,n)=>{let r;for(_u(e,t-257,5),_u(e,i-1,5),_u(e,n-4,4),r=0;r(e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&i,e.last_lit++,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(su[i]+256+1)]++,e.dyn_dtree[2*fu(t)]++),e.last_lit===e.lit_bufsize-1),_tr_align:e=>{_u(e,2,3),bu(e,256,ru),(e=>{16===e.bi_valid?(gu(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}};var Bu=(e,t,i,n)=>{let r=65535&e|0,o=e>>>16&65535|0,a=0;for(;0!==i;){a=i>2e3?2e3:i,i-=a;do{r=r+t[n++]|0,o=o+r|0}while(--a);r%=65521,o%=65521}return r|o<<16|0};const Lu=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var Mu=(e,t,i,n)=>{const r=Lu,o=n+i;e^=-1;for(let a=n;a>>8^r[255&(e^t[a])];return-1^e},$u={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Tu={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Ru,_tr_stored_block:ju,_tr_flush_block:Iu,_tr_tally:Pu,_tr_align:zu}=Du,{Z_NO_FLUSH:Uu,Z_PARTIAL_FLUSH:Wu,Z_FULL_FLUSH:Hu,Z_FINISH:qu,Z_BLOCK:Vu,Z_OK:Ku,Z_STREAM_END:Gu,Z_STREAM_ERROR:Xu,Z_DATA_ERROR:Ju,Z_BUF_ERROR:Yu,Z_DEFAULT_COMPRESSION:Zu,Z_FILTERED:Qu,Z_HUFFMAN_ONLY:ed,Z_RLE:td,Z_FIXED:id,Z_DEFAULT_STRATEGY:nd,Z_UNKNOWN:rd,Z_DEFLATED:od}=Tu,ad=(e,t)=>(e.msg=$u[t],t),sd=e=>(e<<1)-(e>4?9:0),cd=e=>{let t=e.length;for(;--t>=0;)e[t]=0};let ld=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},dd=(e,t)=>{Iu(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ud(e.strm)},hd=(e,t)=>{e.pending_buf[e.pending++]=t},pd=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},md=(e,t,i,n)=>{let r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=Bu(e.adler,t,r,i):2===e.state.wrap&&(e.adler=Mu(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},fd=(e,t)=>{let i,n,r=e.max_chain_length,o=e.strstart,a=e.prev_length,s=e.nice_match;const c=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,l=e.window,u=e.w_mask,d=e.prev,h=e.strstart+258;let p=l[o+a-1],m=l[o+a];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do{if(i=t,l[i+a]===m&&l[i+a-1]===p&&l[i]===l[o]&&l[++i]===l[o+1]){o+=2,i++;do{}while(l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&l[++o]===l[++i]&&oa){if(e.match_start=t,a=n,n>=s)break;p=l[o+a-1],m=l[o+a]}}}while((t=d[t&u])>c&&0!=--r);return a<=e.lookahead?a:e.lookahead},gd=e=>{const t=e.w_size;let i,n,r,o,a;do{if(o=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-262)){e.window.set(e.window.subarray(t,t+t),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do{r=e.head[--i],e.head[i]=r>=t?r-t:0}while(--n);n=t,i=n;do{r=e.prev[--i],e.prev[i]=r>=t?r-t:0}while(--n);o+=t}if(0===e.strm.avail_in)break;if(n=md(e.strm,e.window,e.strstart+e.lookahead,o),e.lookahead+=n,e.lookahead+e.insert>=3)for(a=e.strstart-e.insert,e.ins_h=e.window[a],e.ins_h=ld(e,e.ins_h,e.window[a+1]);e.insert&&(e.ins_h=ld(e,e.ins_h,e.window[a+3-1]),e.prev[a&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=a,a++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},_d=(e,t)=>{let i,n;for(;;){if(e.lookahead<262){if(gd(e),e.lookahead<262&&t===Uu)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=ld(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-262&&(e.match_length=fd(e,i)),e.match_length>=3)if(n=Pu(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=ld(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=ld(e,e.ins_h,e.window[e.strstart+1]);else n=Pu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(dd(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===qu?(dd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(dd(e,!1),0===e.strm.avail_out)?1:2},bd=(e,t)=>{let i,n,r;for(;;){if(e.lookahead<262){if(gd(e),e.lookahead<262&&t===Uu)return 1;if(0===e.lookahead)break}if(i=0,e.lookahead>=3&&(e.ins_h=ld(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=Pu(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=ld(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(dd(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(n=Pu(e,0,e.window[e.strstart-1]),n&&dd(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Pu(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===qu?(dd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(dd(e,!1),0===e.strm.avail_out)?1:2};function vd(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}const yd=[new vd(0,0,0,0,((e,t)=>{let i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(gd(e),0===e.lookahead&&t===Uu)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;const n=e.block_start+i;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,dd(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-262&&(dd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(dd(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(dd(e,!1),e.strm.avail_out),1)})),new vd(4,4,8,4,_d),new vd(4,5,16,8,_d),new vd(4,6,32,32,_d),new vd(4,4,16,16,bd),new vd(8,16,32,32,bd),new vd(8,16,128,128,bd),new vd(8,32,128,256,bd),new vd(32,128,258,1024,bd),new vd(32,258,258,4096,bd)];function wd(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=od,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),cd(this.dyn_ltree),cd(this.dyn_dtree),cd(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),cd(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),cd(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xd=e=>{if(!e||!e.state)return ad(e,Xu);e.total_in=e.total_out=0,e.data_type=rd;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:113,e.adler=2===t.wrap?0:1,t.last_flush=Uu,Ru(t),Ku},Nd=e=>{const t=xd(e);var i;return t===Ku&&((i=e.state).window_size=2*i.w_size,cd(i.head),i.max_lazy_match=yd[i.level].max_lazy,i.good_match=yd[i.level].good_length,i.nice_match=yd[i.level].nice_length,i.max_chain_length=yd[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Ad=(e,t,i,n,r,o)=>{if(!e)return Xu;let a=1;if(t===Zu&&(t=6),n<0?(a=0,n=-n):n>15&&(a=2,n-=16),r<1||r>9||i!==od||n<8||n>15||t<0||t>9||o<0||o>id)return ad(e,Xu);8===n&&(n=9);const s=new wd;return e.state=s,s.strm=e,s.wrap=a,s.gzhead=null,s.w_bits=n,s.w_size=1<Ad(e,t,od,15,8,nd),deflateInit2:Ad,deflateReset:Nd,deflateResetKeep:xd,deflateSetHeader:(e,t)=>e&&e.state?2!==e.state.wrap?Xu:(e.state.gzhead=t,Ku):Xu,deflate:(e,t)=>{let i,n;if(!e||!e.state||t>Vu||t<0)return e?ad(e,Xu):Xu;const r=e.state;if(!e.output||!e.input&&0!==e.avail_in||666===r.status&&t!==qu)return ad(e,0===e.avail_out?Yu:Xu);r.strm=e;const o=r.last_flush;if(r.last_flush=t,42===r.status)if(2===r.wrap)e.adler=0,hd(r,31),hd(r,139),hd(r,8),r.gzhead?(hd(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),hd(r,255&r.gzhead.time),hd(r,r.gzhead.time>>8&255),hd(r,r.gzhead.time>>16&255),hd(r,r.gzhead.time>>24&255),hd(r,9===r.level?2:r.strategy>=ed||r.level<2?4:0),hd(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(hd(r,255&r.gzhead.extra.length),hd(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=Mu(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(hd(r,0),hd(r,0),hd(r,0),hd(r,0),hd(r,0),hd(r,9===r.level?2:r.strategy>=ed||r.level<2?4:0),hd(r,3),r.status=113);else{let t=od+(r.w_bits-8<<4)<<8,i=-1;i=r.strategy>=ed||r.level<2?0:r.level<6?1:6===r.level?2:3,t|=i<<6,0!==r.strstart&&(t|=32),t+=31-t%31,r.status=113,pd(r,t),0!==r.strstart&&(pd(r,e.adler>>>16),pd(r,65535&e.adler)),e.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),ud(e),i=r.pending,r.pending!==r.pending_buf_size));)hd(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),ud(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),ud(e),i=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexi&&(e.adler=Mu(e.adler,r.pending_buf,r.pending-i,i)),0===n&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ud(e),r.pending+2<=r.pending_buf_size&&(hd(r,255&e.adler),hd(r,e.adler>>8&255),e.adler=0,r.status=113)):r.status=113),0!==r.pending){if(ud(e),0===e.avail_out)return r.last_flush=-1,Ku}else if(0===e.avail_in&&sd(t)<=sd(o)&&t!==qu)return ad(e,Yu);if(666===r.status&&0!==e.avail_in)return ad(e,Yu);if(0!==e.avail_in||0!==r.lookahead||t!==Uu&&666!==r.status){let i=r.strategy===ed?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(gd(e),0===e.lookahead)){if(t===Uu)return 1;break}if(e.match_length=0,i=Pu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(dd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(dd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(dd(e,!1),0===e.strm.avail_out)?1:2})(r,t):r.strategy===td?((e,t)=>{let i,n,r,o;const a=e.window;for(;;){if(e.lookahead<=258){if(gd(e),e.lookahead<=258&&t===Uu)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,n=a[r],n===a[++r]&&n===a[++r]&&n===a[++r])){o=e.strstart+258;do{}while(n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&n===a[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=Pu(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=Pu(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(dd(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===qu?(dd(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(dd(e,!1),0===e.strm.avail_out)?1:2})(r,t):yd[r.level].func(r,t);if(3!==i&&4!==i||(r.status=666),1===i||3===i)return 0===e.avail_out&&(r.last_flush=-1),Ku;if(2===i&&(t===Wu?zu(r):t!==Vu&&(ju(r,0,0,!1),t===Hu&&(cd(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ud(e),0===e.avail_out))return r.last_flush=-1,Ku}return t!==qu?Ku:r.wrap<=0?Gu:(2===r.wrap?(hd(r,255&e.adler),hd(r,e.adler>>8&255),hd(r,e.adler>>16&255),hd(r,e.adler>>24&255),hd(r,255&e.total_in),hd(r,e.total_in>>8&255),hd(r,e.total_in>>16&255),hd(r,e.total_in>>24&255)):(pd(r,e.adler>>>16),pd(r,65535&e.adler)),ud(e),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?Ku:Gu)},deflateEnd:e=>{if(!e||!e.state)return Xu;const t=e.state.status;return 42!==t&&69!==t&&73!==t&&91!==t&&103!==t&&113!==t&&666!==t?ad(e,Xu):(e.state=null,113===t?ad(e,Ju):Ku)},deflateSetDictionary:(e,t)=>{let i=t.length;if(!e||!e.state)return Xu;const n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return Xu;if(1===r&&(e.adler=Bu(e.adler,t,i,0)),n.wrap=0,i>=n.w_size){0===r&&(cd(n.head),n.strstart=0,n.block_start=0,n.insert=0);let e=new Uint8Array(n.w_size);e.set(t.subarray(i-n.w_size,i),0),t=e,i=n.w_size}const o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,gd(n);n.lookahead>=3;){let e=n.strstart,t=n.lookahead-2;do{n.ins_h=ld(n,n.ins_h,n.window[e+3-1]),n.prev[e&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=e,e++}while(--t);n.strstart=e,n.lookahead=2,gd(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,Ku},deflateInfo:"pako deflate (from Nodeca project)"};const Cd=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ed=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Cd(i,t)&&(e[t]=i[t])}}return e},Sd=e=>{let t=0;for(let n=0,r=e.length;n=252?6:Ly>=248?5:Ly>=240?4:Ly>=224?3:Ly>=192?2:1;Od[254]=Od[254]=1;var Dd=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,n,r,o,a=e.length,s=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},Bd=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let n,r;const o=new Array(2*i);for(r=0,n=0;n4)o[r++]=65533,n+=a-1;else{for(t&=2===a?31:3===a?15:7;a>1&&n1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Fd)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let n=0;n{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+Od[e[i]]>t?i:t};var Md=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const $d=Object.prototype.toString,{Z_NO_FLUSH:Td,Z_SYNC_FLUSH:Rd,Z_FULL_FLUSH:jd,Z_FINISH:Id,Z_OK:Pd,Z_STREAM_END:zd,Z_DEFAULT_COMPRESSION:Ud,Z_DEFAULT_STRATEGY:Wd,Z_DEFLATED:Hd}=Tu;function qd(e){this.options=Ed({level:Ud,method:Hd,chunkSize:16384,windowBits:15,memLevel:8,strategy:Wd},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Md,this.strm.avail_out=0;let i=kd.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Pd)throw new Error($u[i]);if(t.header&&kd.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Dd(t.dictionary):"[object ArrayBuffer]"===$d.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=kd.deflateSetDictionary(this.strm,e),i!==Pd)throw new Error($u[i]);this._dict_set=!0}}qd.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?Id:Td,"string"==typeof e?i.input=Dd(e):"[object ArrayBuffer]"===$d.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(o===Rd||o===jd)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=kd.deflate(i,o),r===zd)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=kd.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Pd;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},qd.prototype.onData=function(e){this.chunks.push(e)},qd.prototype.onEnd=function(e){e===Pd&&(this.result=Sd(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Vd=function(e,t){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,N,A,k;const C=e.state;i=e.next_in,A=e.input,n=i+(e.avail_in-5),r=e.next_out,k=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),s=C.dmax,c=C.wsize,l=C.whave,u=C.wnext,d=C.window,h=C.hold,p=C.bits,m=C.lencode,f=C.distcode,g=(1<>>24,h>>>=v,p-=v,v=b>>>16&255,0===v)k[r++]=65535&b;else{if(!(16&v)){if(0==(64&v)){b=m[(65535&b)+(h&(1<>>=v,p-=v),p<15&&(h+=A[i++]<>>24,h>>>=v,p-=v,v=b>>>16&255,!(16&v)){if(0==(64&v)){b=f[(65535&b)+(h&(1<s){e.msg="invalid distance too far back",C.mode=30;break e}if(h>>>=v,p-=v,v=r-o,w>v){if(v=w-v,v>l&&C.sane){e.msg="invalid distance too far back",C.mode=30;break e}if(x=0,N=d,0===u){if(x+=c-v,v2;)k[r++]=N[x++],k[r++]=N[x++],k[r++]=N[x++],y-=3;y&&(k[r++]=N[x++],y>1&&(k[r++]=N[x++]))}else{x=r-w;do{k[r++]=k[x++],k[r++]=k[x++],k[r++]=k[x++],y-=3}while(y>2);y&&(k[r++]=k[x++],y>1&&(k[r++]=k[x++]))}break}}break}}while(i>3,i-=y,p-=y<<3,h&=(1<{const c=s.bits;let l,u,d,h,p,m,f=0,g=0,_=0,b=0,v=0,y=0,w=0,x=0,N=0,A=0,k=null,C=0;const E=new Uint16Array(16),S=new Uint16Array(16);let F,O,D,B=null,L=0;for(f=0;f<=15;f++)E[f]=0;for(g=0;g=1&&0===E[b];b--);if(v>b&&(v=b),0===b)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(_=1;_0&&(0===e||1!==b))return-1;for(S[1]=0,f=1;f<15;f++)S[f+1]=S[f]+E[f];for(g=0;g852||2===e&&N>592)return 1;for(;;){F=f-w,a[g]m?(O=B[L+a[g]],D=k[C+a[g]]):(O=96,D=0),l=1<>w)+u]=F<<24|O<<16|D|0}while(0!==u);for(l=1<>=1;if(0!==l?(A&=l-1,A+=l):A=0,g++,0==--E[f]){if(f===b)break;f=t[i+a[g]]}if(f>v&&(A&h)!==d){for(0===w&&(w=v),p+=_,y=f-w,x=1<852||2===e&&N>592)return 1;d=A&h,r[d]=v<<24|y<<16|p-o|0}}return 0!==A&&(r[p+A]=f-w<<24|64<<16|0),s.bits=v,0};const{Z_FINISH:Zd,Z_BLOCK:Qd,Z_TREES:eh,Z_OK:th,Z_STREAM_END:ih,Z_NEED_DICT:nh,Z_STREAM_ERROR:rh,Z_DATA_ERROR:oh,Z_MEM_ERROR:ah,Z_BUF_ERROR:sh,Z_DEFLATED:ch}=Tu,lh=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function uh(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const dh=e=>{if(!e||!e.state)return rh;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,th},hh=e=>{if(!e||!e.state)return rh;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,dh(e)},ph=(e,t)=>{let i;if(!e||!e.state)return rh;const n=e.state;return t<0?(i=0,t=-t):(i=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?rh:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,hh(e))},mh=(e,t)=>{if(!e)return rh;const i=new uh;e.state=i,i.window=null;const n=ph(e,t);return n!==th&&(e.state=null),n};let fh,gh,_h=!0;const bh=e=>{if(_h){fh=new Int32Array(512),gh=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Yd(1,e.lens,0,288,fh,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Yd(2,e.lens,0,32,gh,0,e.work,{bits:5}),_h=!1}e.lencode=fh,e.lenbits=9,e.distcode=gh,e.distbits=5},vh=(e,t,i,n)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(t.subarray(i-n,i-n+r),o.wnext),(n-=r)?(o.window.set(t.subarray(i-n,i),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whavemh(e,15),inflateInit2:mh,inflate:(e,t)=>{let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w,x,N,A=0;const k=new Uint8Array(4);let C,E;const S=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return rh;i=e.state,12===i.mode&&(i.mode=13),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,d=s,h=c,N=th;e:for(;;)switch(i.mode){case 1:if(0===i.wrap){i.mode=13;break}for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Mu(i.check,k,2,0),l=0,u=0,i.mode=2;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",i.mode=30;break}if((15&l)!==ch){e.msg="unknown compression method",i.mode=30;break}if(l>>>=4,u-=4,x=8+(15&l),0===i.wbits)i.wbits=x;else if(x>i.wbits){e.msg="invalid window size",i.mode=30;break}i.dmax=1<>8&1),512&i.flags&&(k[0]=255&l,k[1]=l>>>8&255,i.check=Mu(i.check,k,2,0)),l=0,u=0,i.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>8&255,k[2]=l>>>16&255,k[3]=l>>>24&255,i.check=Mu(i.check,k,4,0)),l=0,u=0,i.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>8),512&i.flags&&(k[0]=255&l,k[1]=l>>>8&255,i.check=Mu(i.check,k,2,0)),l=0,u=0,i.mode=5;case 5:if(1024&i.flags){for(;u<16;){if(0===s)break e;s--,l+=n[o++]<>>8&255,i.check=Mu(i.check,k,2,0)),l=0,u=0}else i.head&&(i.head.extra=null);i.mode=6;case 6:if(1024&i.flags&&(p=i.length,p>s&&(p=s),p&&(i.head&&(x=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(o,o+p),x)),512&i.flags&&(i.check=Mu(i.check,n,p,o)),s-=p,o+=p,i.length-=p),i.length))break e;i.length=0,i.mode=7;case 7:if(2048&i.flags){if(0===s)break e;p=0;do{x=n[o+p++],i.head&&x&&i.length<65536&&(i.head.name+=String.fromCharCode(x))}while(x&&p>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=n[o++]<>>=7&u,u-=7&u,i.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[o++]<>>=1,u-=1,3&l){case 0:i.mode=14;break;case 1:if(bh(i),i.mode=20,t===eh){l>>>=2,u-=2;break e}break;case 2:i.mode=17;break;case 3:e.msg="invalid block type",i.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=n[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=30;break}if(i.length=65535&l,l=0,u=0,i.mode=15,t===eh)break e;case 15:i.mode=16;case 16:if(p=i.length,p){if(p>s&&(p=s),p>c&&(p=c),0===p)break e;r.set(n.subarray(o,o+p),a),s-=p,o+=p,c-=p,a+=p,i.length-=p;break}i.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=n[o++]<>>=5,u-=5,i.ndist=1+(31&l),l>>>=5,u-=5,i.ncode=4+(15&l),l>>>=4,u-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=30;break}i.have=0,i.mode=18;case 18:for(;i.have>>=3,u-=3}for(;i.have<19;)i.lens[S[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},N=Yd(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,N){e.msg="invalid code lengths set",i.mode=30;break}i.have=0,i.mode=19;case 19:for(;i.have>>24,_=A>>>16&255,b=65535&A,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=g,u-=g,i.lens[i.have++]=b;else{if(16===b){for(E=g+2;u>>=g,u-=g,0===i.have){e.msg="invalid bit length repeat",i.mode=30;break}x=i.lens[i.have-1],p=3+(3&l),l>>>=2,u-=2}else if(17===b){for(E=g+3;u>>=g,u-=g,x=0,p=3+(7&l),l>>>=3,u-=3}else{for(E=g+7;u>>=g,u-=g,x=0,p=11+(127&l),l>>>=7,u-=7}if(i.have+p>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=30;break}for(;p--;)i.lens[i.have++]=x}}if(30===i.mode)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=30;break}if(i.lenbits=9,C={bits:i.lenbits},N=Yd(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,N){e.msg="invalid literal/lengths set",i.mode=30;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},N=Yd(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,N){e.msg="invalid distances set",i.mode=30;break}if(i.mode=20,t===eh)break e;case 20:i.mode=21;case 21:if(s>=6&&c>=258){e.next_out=a,e.avail_out=c,e.next_in=o,e.avail_in=s,i.hold=l,i.bits=u,Vd(e,h),a=e.next_out,r=e.output,c=e.avail_out,o=e.next_in,n=e.input,s=e.avail_in,l=i.hold,u=i.bits,12===i.mode&&(i.back=-1);break}for(i.back=0;A=i.lencode[l&(1<>>24,_=A>>>16&255,b=65535&A,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=A>>>24,_=A>>>16&255,b=65535&A,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,i.length=b,0===_){i.mode=26;break}if(32&_){i.back=-1,i.mode=12;break}if(64&_){e.msg="invalid literal/length code",i.mode=30;break}i.extra=15&_,i.mode=22;case 22:if(i.extra){for(E=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=23;case 23:for(;A=i.distcode[l&(1<>>24,_=A>>>16&255,b=65535&A,!(g<=u);){if(0===s)break e;s--,l+=n[o++]<>v)],g=A>>>24,_=A>>>16&255,b=65535&A,!(v+g<=u);){if(0===s)break e;s--,l+=n[o++]<>>=v,u-=v,i.back+=v}if(l>>>=g,u-=g,i.back+=g,64&_){e.msg="invalid distance code",i.mode=30;break}i.offset=b,i.extra=15&_,i.mode=24;case 24:if(i.extra){for(E=i.extra;u>>=i.extra,u-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=30;break}i.mode=25;case 25:if(0===c)break e;if(p=h-c,i.offset>p){if(p=i.offset-p,p>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=30;break}p>i.wnext?(p-=i.wnext,m=i.wsize-p):m=i.wnext-p,p>i.length&&(p=i.length),f=i.window}else f=r,m=a-i.offset,p=i.length;p>c&&(p=c),c-=p,i.length-=p;do{r[a++]=f[m++]}while(--p);0===i.length&&(i.mode=21);break;case 26:if(0===c)break e;r[a++]=i.length,c--,i.mode=21;break;case 27:if(i.wrap){for(;u<32;){if(0===s)break e;s--,l|=n[o++]<{if(!e||!e.state)return rh;let t=e.state;return t.window&&(t.window=null),e.state=null,th},inflateGetHeader:(e,t)=>{if(!e||!e.state)return rh;const i=e.state;return 0==(2&i.wrap)?rh:(i.head=t,t.done=!1,th)},inflateSetDictionary:(e,t)=>{const i=t.length;let n,r,o;return e&&e.state?(n=e.state,0!==n.wrap&&11!==n.mode?rh:11===n.mode&&(r=1,r=Bu(r,t,i,0),r!==n.check)?oh:(o=vh(e,t,i,i),o?(n.mode=31,ah):(n.havedict=1,th))):rh},inflateInfo:"pako inflate (from Nodeca project)"};var wh=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const xh=Object.prototype.toString,{Z_NO_FLUSH:Nh,Z_FINISH:Ah,Z_OK:kh,Z_STREAM_END:Ch,Z_NEED_DICT:Eh,Z_STREAM_ERROR:Sh,Z_DATA_ERROR:Fh,Z_MEM_ERROR:Oh}=Tu;function Dh(e){this.options=Ed({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Md,this.strm.avail_out=0;let i=yh.inflateInit2(this.strm,t.windowBits);if(i!==kh)throw new Error($u[i]);if(this.header=new wh,yh.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Dd(t.dictionary):"[object ArrayBuffer]"===xh.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=yh.inflateSetDictionary(this.strm,t.dictionary),i!==kh)))throw new Error($u[i])}Dh.prototype.push=function(e,t){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let o,a,s;if(this.ended)return!1;for(a=t===~~t?t:!0===t?Ah:Nh,"[object ArrayBuffer]"===xh.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),o=yh.inflate(i,a),o===Eh&&r&&(o=yh.inflateSetDictionary(i,r),o===kh?o=yh.inflate(i,a):o===Fh&&(o=Eh));i.avail_in>0&&o===Ch&&i.state.wrap>0&&0!==e[i.next_in];)yh.inflateReset(i),o=yh.inflate(i,a);switch(o){case Sh:case Fh:case Eh:case Oh:return this.onEnd(o),this.ended=!0,!1}if(s=i.avail_out,i.next_out&&(0===i.avail_out||o===Ch))if("string"===this.options.to){let e=Ld(i.output,i.next_out),t=i.next_out-e,r=Bd(i.output,e);i.next_out=t,i.avail_out=n-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==kh||0!==s){if(o===Ch)return o=yh.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Dh.prototype.onData=function(e){this.chunks.push(e)},Dh.prototype.onEnd=function(e){e===kh&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Sd(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Bh,Lh,Mh={exports:{}},$h={exports:{}};Bh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Lh={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&Lh.rotl(e,8)|4278255360&Lh.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],i=0,n=0;i>>5]|=e[i]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],i=0;i<32*e.length;i+=8)t.push(e[i>>>5]>>>24-i%32&255);return t},bytesToHex:function(e){for(var t=[],i=0;i>>4).toString(16)),t.push((15&e[i]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],i=0;i>>6*(3-r)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],i=0,n=0;i>>6-2*n);return t}},$h.exports=Lh;var Th={utf8:{stringToBytes:function(e){return Th.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(Th.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],i=0;i>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[c>>>5]|=128<>>9<<4)]=c;var m=r._ff,f=r._gg,g=r._hh,_=r._ii;for(p=0;p>>0,u=u+v>>>0,d=d+y>>>0,h=h+w>>>0}return e.endian([l,u,d,h])};r._ff=function(e,t,i,n,r,o,a){var s=e+(t&i|~t&n)+(r>>>0)+a;return(s<>>32-o)+t},r._gg=function(e,t,i,n,r,o,a){var s=e+(t&n|i&~n)+(r>>>0)+a;return(s<>>32-o)+t},r._hh=function(e,t,i,n,r,o,a){var s=e+(t^i^n)+(r>>>0)+a;return(s<>>32-o)+t},r._ii=function(e,t,i,n,r,o,a){var s=e+(i^(t|~n))+(r>>>0)+a;return(s<>>32-o)+t},r._blocksize=16,r._digestsize=16,Mh.exports=function(t,i){if(null==t)throw new Error("Illegal argument "+t);var o=e.wordsToBytes(r(t,i));return i&&i.asBytes?o:i&&i.asString?n.bytesToString(o):e.bytesToHex(o)}}();var Ph,zh,Uh=Mh.exports;(zh=Ph||(Ph={})).UP="up",zh.DOWN="down",zh.NORTH="north",zh.EAST="east",zh.SOUTH="south",zh.WEST="west";const Wh={[Ph.UP]:[0,1,0],[Ph.DOWN]:[0,-1,0],[Ph.NORTH]:[0,0,-1],[Ph.EAST]:[1,0,0],[Ph.SOUTH]:[0,0,1],[Ph.WEST]:[-1,0,0]};var Hh,qh,Vh,Kh,Gh,Xh,Jh,Yh,Zh,Qh,ep,tp,ip,np,rp,op,ap,sp,cp,lp;function up(e,t,i){if(!e[t])throw new Error(`Missing ${t} tag`);if(e[t].type!==i)throw new Error(`Expected ${t} to be of type ${i}, but found ${e[t].type}`);return e[t].value}!function(e){e.ALL=[e.UP,e.DOWN,e.NORTH,e.EAST,e.SOUTH,e.WEST],e.normal=function(e){return Wh[e]}}(Ph||(Ph={})),function(e){e.create=function(e,t,i){return[e,t,i]},e.offset=function(e,t,i,n){return[e[0]+t,e[1]+i,e[2]+n]},e.towards=function(t,i){return e.offset(t,...Ph.normal(i))}}(Hh||(Hh={})),function(e){function t(e){return"object"==typeof e&&null!==e?e:void 0}e.readNumber=function(e){return"number"==typeof e?e:void 0},e.readInt=function(e){return"number"==typeof e?Math.floor(e):void 0},e.readString=function(e){return"string"==typeof e?e:void 0},e.readBoolean=function(e){return"boolean"==typeof e?e:void 0},e.readObject=t,e.readArray=function(e,t){if(Array.isArray(e))return e.map((e=>t(e)))},e.readMap=function(e,i){var n;const r=null!==(n=t(e))&&void 0!==n?n:{};return Object.fromEntries(Object.entries(r).map((([e,t])=>[e,i(t)])))},e.compose=function(e,t,i){const n=t(e);return n?i(n):void 0}}(qh||(qh={}));class dp{constructor(e,t={}){this.name=e,this.properties=t}getName(){return this.name}getProperties(){return this.properties}getProperty(e){return this.properties[e]}isFluid(){return"minecraft:water"===this.name||"minecraft:lava"===this.name}equals(e){return this.name===e.name&&Object.keys(this.properties).every((t=>e.properties[t]===this.properties[t]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([e,t])=>e+"="+t)).join(",")}]`}static fromNbt(e){const t=up(e.value,"Name","string"),i=function(e,t){try{return e()}catch(i){return t}}((()=>up(e.value,"Properties","compound")),{}),n=Object.keys(i).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:up(i,t,"string")})),{});return new dp(t,n)}static fromJson(e){var t,i;const n=null!==(t=qh.readObject(e))&&void 0!==t?t:{},r=null!==(i=qh.readString(n.Name))&&void 0!==i?i:"minecraft:stone",o=qh.readMap(n.Properties,(e=>{var t;return null!==(t=qh.readString(e))&&void 0!==t?t:""}));return new dp(r,o)}}dp.AIR=new dp("minecraft:air");class hp{constructor(e){this.minY=e,this.storage=Array(hp.SIZE),this.palette=[dp.AIR]}get minBlockY(){return this.minY<<4}index(e,t,i){return(e<<8)+(t<<4)+i}getBlockState(e,t,i){var n;const r=this.storage[this.index(e,t,i)];return null!==(n=this.palette[r])&&void 0!==n?n:dp.AIR}setBlockState(e,t,i,n){let r=this.palette.findIndex((e=>e.equals(n)));-1===r&&(r=this.palette.length,this.palette.push(n)),this.storage[this.index(e,t,i)]=r}}hp.WIDTH=16,hp.SIZE=hp.WIDTH*hp.WIDTH*hp.WIDTH;class pp{constructor(e,t,i){this.minY=e,this.height=t,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(e){return(e>>4)-this.minSection}getBlockState(e){var t;const[i,n,r]=e,o=this.sections[this.getSectionIndex(n)];return null!==(t=null==o?void 0:o.getBlockState(15&i,15&n,15&r))&&void 0!==t?t:dp.AIR}setBlockState(e,t){const[i,n,r]=e,o=this.getSectionIndex(n);let a=this.sections[o];if(null===a){if(t.equals(dp.AIR))return;a=this.getOrCreateSection(o)}a.setBlockState(15&i,15&n,15&r,t)}getOrCreateSection(e){return null==this.sections[e]&&(this.sections[e]=new hp(this.minSection+e)),this.sections[e]}}function mp(e){let t=null;return()=>(null==t&&(t=e()),t)}function fp(e,t,i){const n=e.get(t);if(n)return n;const r=i(t);return e.set(t,r),r}function gp(e){return e*e}function _p(e,t,i){return Math.max(t,Math.min(i,e))}function bp(e,t,i){return t+e*(i-t)}function vp(e,t,i,n,r,o){return bp(t,bp(e,i,n),bp(e,r,o))}function yp(e,t,i){return i<0?e:i>1?t:bp(i,e,t)}function wp(e,t,i){return(e-t)/(i-t)}function xp(e){return e*e*e*(e*(6*e-15)+10)}function Np(e,t,i,n,r){return bp(wp(e,t,i),n,r)}function Ap(e,t,i){let n=BigInt(3129871*e)^BigInt(i)*BigInt(116129781)^BigInt(t);return n=n*n*BigInt(42317861)+n*BigInt(11),n>>BigInt(16)}function kp(e,t,i,n,r,o,a,s){return BigInt(e)<>4,e[2]>>4]},e.fromLong=function(e){return[4294967295&Number(e),Number(e>>BigInt(32))]},e.toLong=function(e){return t(e[0],e[1])},e.asLong=t,e.minBlockX=function(e){return e[0]<<4},e.minBlockZ=function(e){return e[1]<<4},e.maxBlockX=function(e){return 15+(e[0]<<4)},e.maxBlockZ=function(e){return 15+(e[1]<<4)}}(Vh||(Vh={}));class Cp{constructor(e){this.seed=BigInt(0),this.setSeed(e)}fork(){return new Cp(this.nextLong())}forkPositional(){return new Ep(this.seed)}setSeed(e){this.seed=e^Cp.MULTIPLIER&Cp.MODULUS_MASK}advance(){this.seed=this.seed*Cp.MULTIPLIER+Cp.INCREMENT&Cp.MODULUS_MASK}consume(e){for(let t=0;t>BigInt(Cp.MODULUS_BITS-e));return t>2147483647?t-4294967296:t}nextInt(e){if(void 0===e)return this.next(32);if(0==(e&e-1))return Number(BigInt(e)*BigInt(this.next(31))>>BigInt(31));let t,i;for(;(t=this.next(31))-(i=t%e)+(e-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt("-4658895280553007687")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(27))*BigInt("-7723592293110705685")&BigInt("0xFFFFFFFFFFFFFFFF"))^e>>BigInt(31))&BigInt("0xFFFFFFFFFFFFFFFF")}static upgradeSeedTo128bit(e){e<0&&(e+=BigInt("0x10000000000000000"));const t=e^Sp.SILVER_RATIO_64,i=t+Sp.GOLDEN_RATIO_64&BigInt("0xFFFFFFFFFFFFFFFF");return[Sp.mixStafford13(t),Sp.mixStafford13(i)]}static rotateLeft(e,t){return e<>BigInt(64)-t}setSeed(e){this.seed=Sp.upgradeSeedTo128bit(e)}fork(){return new Sp([this.next(),this.next()])}forkPositional(){return new Fp(this.next(),this.next())}next(){const e=this.seed[0];let t=this.seed[1];const i=Sp.rotateLeft(e+t&BigInt("0xFFFFFFFFFFFFFFFF"),BigInt(17))+e&BigInt("0xFFFFFFFFFFFFFFFF");return t^=e,this.seed=[Sp.rotateLeft(e,BigInt(49))^t^t<BigInt("0x8000000000000000")&&(e-=BigInt("0x10000000000000000")),e}consume(e){let t=this.seed[0],i=this.seed[1];for(let n=0;n>BigInt(64-e)}nextInt(e){let t=this.next()&BigInt(4294967295);if(e){const i=BigInt(e);let n=t*i,r=n&BigInt(4294967295);if(r>BigInt(32);return Number(o)}{let e=Number(t);return e>=2147483648&&(e-=4294967296),e}}nextFloat(){return Number(this.nextBits(24))*Sp.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*Sp.DOUBLE_MULTIPLIER}parityConfigString(){return"seedLo: "+this.seed[0]+", seedHi: "+this.seed[1]}}Sp.SILVER_RATIO_64=BigInt("7640891576956012809"),Sp.GOLDEN_RATIO_64=BigInt("-7046029254386353131"),Sp.FLOAT_MULTIPLIER=1/Math.pow(2,24),Sp.DOUBLE_MULTIPLIER=11102230246251565e-32;class Fp{constructor(e,t){this.seedLo=e,this.seedHi=t}at(e,t,i){const n=Ap(e,t,i)^this.seedLo;return new Sp([n,this.seedHi])}fromHashOf(e){const t=Uh(e,{asBytes:!0}),i=kp(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7]),n=kp(t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]);return new Sp([i^this.seedLo,n^this.seedHi])}}class Op{constructor(e){this.xo=256*e.nextDouble(),this.yo=256*e.nextDouble(),this.zo=256*e.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample2D(e,t){let i,n,r;const o=(e+t)*Op.F2,a=Math.floor(e+o),s=e-(a-(i=(a+(n=Math.floor(t+o)))*Op.G2));let c,l;s>(r=t-(n-i))?(c=1,l=0):(c=0,l=1);const u=s-c+Op.G2,d=r-l+Op.G2,h=s-1+2*Op.G2,p=r-1+2*Op.G2,m=255&a,f=255&n,g=this.P(m+this.P(f))%12,_=this.P(m+c+this.P(f+l))%12,b=this.P(m+1+this.P(f+1))%12;return 70*(this.getCornerNoise3D(g,s,r,0,.5)+this.getCornerNoise3D(_,u,d,0,.5)+this.getCornerNoise3D(b,h,p,0,.5))}sample(e,t,i){const n=.3333333333333333*(e+t+i),r=Math.floor(e+n),o=Math.floor(t+n),a=Math.floor(i+n),s=.16666666666666666*(r+o+a),c=e-(r-s),l=t-(o-s),u=i-(a-s);let d,h,p,m,f,g;c>=l?l>=u?(d=1,h=0,p=0,m=1,f=1,g=0):c>=u?(d=1,h=0,p=0,m=1,f=0,g=1):(d=0,h=0,p=1,m=1,f=0,g=1):l127?t-256:t;for(let t=0;t<256;t+=1){const i=e.nextInt(256-t),n=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=n}}sample(e,t,i,n=0,r=0){const o=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(o),l=Math.floor(a),u=Math.floor(s),d=o-c,h=a-l,p=s-u;let m=0;if(0!==n){const e=r>=0&&r=0;n-=1)n0&&(n=this.maxLimitNoise.getOctaveNoise(c))&&(s+=n.sample(d,h,p,u,t*u)/o),o/=2}return yp(a/512,s/512,r)/128}}(Kh||(Kh={})).fromJson=function(e){var t,i,n,r,o;const a=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return{xzScale:null!==(i=qh.readNumber(a.xz_scale))&&void 0!==i?i:1,yScale:null!==(n=qh.readNumber(a.y_scale))&&void 0!==n?n:1,xzFactor:null!==(r=qh.readNumber(a.xz_factor))&&void 0!==r?r:80,yFactor:null!==(o=qh.readNumber(a.y_factor))&&void 0!==o?o:80}};class Mp{constructor(e,{firstOctave:t,amplitudes:i}){this.first=new Bp(e,t,i),this.second=new Bp(e,t,i);let n=1/0,r=-1/0;for(let a=0;a{var t;return null!==(t=qh.readNumber(e))&&void 0!==t?t:0})))&&void 0!==n?n:[]}}}(Gh||(Gh={})),function(e){e.fromJson=function(t,i){var n,r,o,a;if("number"==typeof t)return new $p(t);const s=null!==(n=qh.readObject(t))&&void 0!==n?n:{},c=new Tp(i(s.coordinate)),l=null!==(r=qh.readArray(s.points,(e=>{var t;return null!==(t=qh.readObject(e))&&void 0!==t?t:{}})))&&void 0!==r?r:[];if(0===l.length)return new $p(0);for(const u of l){const t=null!==(o=qh.readNumber(u.location))&&void 0!==o?o:0,n=e.fromJson(u.value,i),r=null!==(a=qh.readNumber(u.derivative))&&void 0!==a?a:0;c.addPoint(t,n,r)}return c}}(Xh||(Xh={}));class $p{constructor(e){this.value=e}apply(){return this.value}toJson(){return this.value}}class Tp{constructor(e,t=[],i=[],n=[]){this.coordinate=e,this.locations=t,this.values=i,this.derivatives=n}apply(e){const t=this.coordinate.apply(e),i=function(e,t,i){let n=t-e;for(;n>0;){const t=Math.floor(n/2),r=e+t;i(r)?n=t:(e=r+1,n-=t+1)}return e}(0,this.locations.length,(e=>t({location:e,value:this.values[t].toJson(),derivative:this.derivatives[t]})))}}}(Jh||(Jh={})).rotate=function(e,t,i){let{up:n,down:r,north:o,east:a,south:s,west:c}=e;switch(i){case 90:[o,a,s,c]=[a,s,c,o];break;case 180:[o,a,s,c]=[s,c,o,a];break;case 270:[o,a,s,c]=[c,o,a,s]}switch(t){case 90:[n,o,r,s]=[o,r,s,n];break;case 180:[n,o,r,s]=[r,s,n,o];break;case 270:[n,o,r,s]=[s,n,o,r]}return{up:n,down:r,north:o,east:a,south:s,west:c}},function(e){function t(e,t){return"number"==typeof e?new i(e,null!=t?t:e):e}e.target=function(e,t,i,n,o,a){return new r(e,t,i,n,o,a)},e.parameters=function(e,i,r,o,a,s,c){return new n(t(e),t(i),t(r),t(o),t(a),t(s),c)},e.param=t;class i{constructor(e,t){this.min=e,this.max=t}distance(e){const t=("number"==typeof e?e:e.min)-this.max,i=this.min-("number"==typeof e?e:e.max);return t>0?t:Math.max(i,0)}union(e){return new i(Math.min(this.min,e.min),Math.max(this.max,e.max))}static fromJson(e){var t;if("number"==typeof e)return new i(e,e);const[n,r]=null!==(t=qh.readArray(e,(e=>qh.readNumber(e))))&&void 0!==t?t:[];return new i(null!=n?n:0,null!=r?r:0)}}e.Param=i;class n{constructor(e,t,i,n,r,o,a){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o,this.offset=a}fittness(e){return gp(this.temperature.distance(e.temperature))+gp(this.humidity.distance(e.humidity))+gp(this.continentalness.distance(e.continentalness))+gp(this.erosion.distance(e.erosion))+gp(this.depth.distance(e.depth))+gp(this.weirdness.distance(e.weirdness))+gp(this.offset-e.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(e){var t,r;const o=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return new n(i.fromJson(o.temperature),i.fromJson(o.humidity),i.fromJson(o.continentalness),i.fromJson(o.erosion),i.fromJson(o.depth),i.fromJson(o.weirdness),null!==(r=qh.readInt(o.offset))&&void 0!==r?r:0)}}e.ParamPoint=n;class r{constructor(e,t,i,n,r,o){this.temperature=e,this.humidity=t,this.continentalness=i,this.erosion=n,this.depth=r,this.weirdness=o}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}e.TargetPoint=r,e.Parameters=class{constructor(e){this.things=e,this.index=new o(e)}find(e){return this.index.search(e,((e,t)=>e.distance(t)))}};class o{constructor(e){this.root=o.build(e.map((([e,t])=>new c(e,t))))}static build(e){if(1===e.length)return e[0];if(e.length<=o.CHILDREN_PER_NODE){const t=e.map((e=>{let t=0;for(let i=0;i<7;i+=1){const n=e.space[i];t+=Math.abs((n.min+n.max)/2)}return{key:t,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e));return new s(t)}let t=1/0,i=-1,n=[];for(let r=0;r<7;++r){e=o.sort(e,r,!1),n=o.bucketize(e);let a=0;for(const e of n)a+=o.area(e.space);t>a&&(t=a,i=r)}return e=o.sort(e,i,!1),n=o.bucketize(e),n=o.sort(n,i,!0),new s(n.map((e=>o.build(e.children))))}static sort(e,t,i){return e.map((e=>{const n=e.space[t],r=(n.min+n.max)/2;return{key:i?Math.abs(r):r,node:e}})).sort(((e,t)=>e.key-t.key)).map((({node:e})=>e))}static bucketize(e){const t=[];let i=[];const n=Math.pow(10,Math.floor(Math.log(e.length-.01)/Math.log(10)));for(const r of e)i.push(r),i.lengthnew i(1/0,-1/0)));for(const i of e)t=[...Array(7)].map(((e,n)=>t[n].union(i.space[n])));return t}search(e,t){let i=1/0,n=null;for(const r of this.children){const o=t(r,e);if(i<=o)continue;const a=r.search(e,t),s=r==a?o:t(a,e);i<=s||(i=s,n=a)}return n}}e.RSubTree=s;class c extends a{constructor(e,t){super(e.space()),this.thing=t}search(){return this}}e.RLeaf=c}(Yh||(Yh={}));class Rp{constructor(e){this.biome=e}getBiome(){return this.biome}static fromJson(e){var t,i;const n=null!==(t=qh.readObject(e))&&void 0!==t?t:{},r=null!==(i=qh.readString(n.biome))&&void 0!==i?i:"minecraft:the_void";return new Rp(r)}}class jp{constructor(e,t,i){this.offsetSampler=e,this.factorSampler=t,this.jaggednessSampler=i}static extractor(e){return{apply:t=>t[e],toJson:()=>e}}static fromJson(e){var t;const i=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return new jp(Xh.fromJson(i.offset,this.EXTRACTOR),Xh.fromJson(i.factor,this.EXTRACTOR),Xh.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(e){return this.offsetSampler.apply(e)+jp.GLOBAL_OFFSET}factor(e){return this.factorSampler.apply(e)}jaggedness(e){return this.jaggednessSampler.apply(e)}static point(e,t,i){return{continents:e,erosion:t,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(e){return 3*-(Math.abs(Math.abs(e)-.6666667)-.33333334)}static overworld(){const e=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),t=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),n=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),r=new Tp(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,e).addPoint(-.15,e).addPoint(-.1,t).addPoint(.25,i).addPoint(1,n),o=new Tp(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),a=new Tp(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new jp(r,o,a)}static getErosionFactor(e,t){const i=new Tp(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,e),n=new Tp(this.EROSION).addPoint(-.6,i).addPoint(-.5,new Tp(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new Tp(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(t){const t=new Tp(this.WEIRDNESS).addPoint(0,e).addPoint(.1,.625),i=new Tp(this.RIDGES).addPoint(-.9,e).addPoint(-.69,t);n.addPoint(.35,e).addPoint(.45,i).addPoint(.55,i).addPoint(.62,e)}else{const t=new Tp(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),r=new Tp(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);n.addPoint(.05,r).addPoint(.4,r).addPoint(.45,t).addPoint(.55,t).addPoint(.58,e)}return n}static buildErosionOffsetSpline(e,t,i,n,r,o,a,s){const c=this.buildMountainRidgeSplineWithPoints(bp(n,.6,1.5),s),l=this.buildMountainRidgeSplineWithPoints(bp(n,.6,1),s),u=this.buildMountainRidgeSplineWithPoints(n,s),d=this.ridgeSpline(e-.15,.5*n,bp(.5,.5,.5)*n,.5*n,.6*n,.5),h=this.ridgeSpline(e,r*n,t*n,.5*n,.6*n,.5),p=this.ridgeSpline(e,r,r,t,i,.5),m=this.ridgeSpline(e,r,r,t,i,.5),f=new Tp(this.RIDGES).addPoint(-1,e).addPoint(-.4,p).addPoint(0,i+.07),g=this.ridgeSpline(-.02,o,o,t,i,0),_=new Tp(this.EROSION).addPoint(-.85,c).addPoint(-.7,l).addPoint(-.4,u).addPoint(-.35,d).addPoint(-.1,h).addPoint(.2,p);return a&&_.addPoint(.4,m).addPoint(.45,f).addPoint(.55,f).addPoint(.58,m),_.addPoint(.7,g),_}static buildMountainRidgeSplineWithPoints(e,t){const i=new Tp(this.RIDGES),n=this.mountainContinentalness(-1,e,-.7),r=this.mountainContinentalness(1,e,-.7),o=this.calculateMountainRidgeZeroContinentalnessPoint(e);if(-.650?this.buildWeirdnessJaggednessSpline(t):0).addPoint(1,e>0?this.buildWeirdnessJaggednessSpline(e):0)}static buildWeirdnessJaggednessSpline(e){return new Tp(jp.WEIRDNESS).addPoint(-.01,.63*e).addPoint(.01,.3*e)}}jp.GLOBAL_OFFSET=-.50375,jp.EXTRACTOR=e=>{var t;const i=null!==(t=qh.readString(e))&&void 0!==t?t:"continents";return jp.extractor(i)},jp.CONTINENTS=jp.extractor("continents"),jp.EROSION=jp.extractor("erosion"),jp.WEIRDNESS=jp.extractor("weirdness"),jp.RIDGES=jp.extractor("ridges"),(Zh||(Zh={})).fromList=function(e){return(t,i,n,r)=>{for(const o of e){const e=o(t,i,n,r);if(e)return e}return null}},function(e){function t(e){return e.ySize<<2}e.fromJson=function(e){var t,i,n,r,o,a,s,c;const l=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return{minY:null!==(i=qh.readInt(l.min_y))&&void 0!==i?i:0,height:null!==(n=qh.readInt(l.height))&&void 0!==n?n:256,xzSize:null!==(r=qh.readInt(l.size_horizontal))&&void 0!==r?r:1,ySize:null!==(o=qh.readInt(l.size_vertical))&&void 0!==o?o:1,sampling:Kh.fromJson(l.sampling),topSlide:ep.fromJson(l.top_slide),bottomSlide:ep.fromJson(l.bottom_slide),terrainShaper:jp.fromJson(l.terrain_shaper),islandNoiseOverride:null!==(a=qh.readBoolean(l.island_noise_override))&&void 0!==a&&a,isAmplified:null!==(s=qh.readBoolean(l.amplified))&&void 0!==s&&s,hasLargeBiomes:null!==(c=qh.readBoolean(l.large_biomes))&&void 0!==c&&c}},e.cellHeight=t,e.cellWidth=function(e){return e.xzSize<<2},e.cellCountY=function(e){return e.height/t(e)},e.minCellY=function(e){return Math.floor(e.minY/t(e))}}(Qh||(Qh={})),function(e){e.fromJson=function(e){var t,i,n,r;const o=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return{target:null!==(i=qh.readNumber(o.target))&&void 0!==i?i:0,size:null!==(n=qh.readInt(o.size))&&void 0!==n?n:0,offset:null!==(r=qh.readInt(o.offset))&&void 0!==r?r:0}},e.apply=function(e,t,i){if(e.size<=0)return t;const n=(i-e.offset)/e.size;return yp(e.target,t,n)}}(ep||(ep={}));class Ip{constructor(e,t){this.chunk=e,this.filler=t,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=Ip.allocateSlice(e.cellCountY,e.cellCountXZ),this.slice1=Ip.allocateSlice(e.cellCountY,e.cellCountXZ)}static allocateSlice(e,t){const i=Array(t+1);for(let n=0;n>2,this.firstNoiseZ=o>>2,this.interpolators=[];const l=e*c>>2;this.noiseData=Array(l+1);for(let u=0;u<=l;u+=1){const e=this.firstNoiseX+u;this.noiseData[u]=Array(l+1);for(let t=0;t<=l;t+=1){const i=this.firstNoiseZ+t;this.noiseData[u][t]=n.noiseData(e,i)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=n.makeBaseNoiseFiller(this,a,s.noodleCavesEnabled)}getNoiseData(e,t){return this.noiseData[e-this.firstNoiseX][t-this.firstNoiseZ]}getPreliminarySurfaceLevel(e,t){return fp(this.preliminarySurfaceLevel,Vh.asLong(e,t),(()=>{const i=e-this.firstNoiseX,n=t-this.firstNoiseZ,r=this.noiseData.length,o=i>=0&&n>=0&&ie.initializeForFirstCellX()))}advanceCellX(e){this.interpolators.forEach((t=>t.advanceCellX(e)))}selectCellYZ(e,t){this.interpolators.forEach((i=>i.selectCellYZ(e,t)))}updateForY(e){this.interpolators.forEach((t=>t.updateForY(e)))}updateForX(e){this.interpolators.forEach((t=>t.updateForX(e)))}updateForZ(e){this.interpolators.forEach((t=>t.updateForZ(e)))}swapSlices(){this.interpolators.forEach((e=>e.swapSlices()))}updateNoiseAndGenerateBaseState(e,t,i){return this.baseNoise(e,t,i)}}(tp||(tp={})).create=function(e,t,i){return{offset:e,factor:t,jaggedness:i}},function(e){const t=new Map;function i(e,i,n){const r=Object.assign({name:`minecraft:${e}`},Gh.create(i,n));return t.set(e,r),r}e.TEMPERATURE=i("temperature",-10,[1.5,0,1,0,0,0]),e.VEGETATION=i("vegetation",-8,[1,1,0,0,0,0]),e.CONTINENTALNESS=i("continentalness",-9,[1,1,2,2,2,1,1,1,1]),e.EROSION=i("erosion",-9,[1,1,0,1,1]),e.TEMPERATURE_LARGE=i("temperature_large",-12,[1.5,0,1,0,0,0]),e.VEGETATION_LARGE=i("vegetation_large",-10,[1,1,0,0,0,0]),e.CONTINENTALNESS_LARGE=i("continentalness_large",-11,[1,1,2,2,2,1,1,1,1]),e.EROSION_LARGE=i("erosion_large",-11,[1,1,0,1,1]),e.RIDGE=i("ridge",-7,[1,2,1,0,0,0]),e.SHIFT=i("offset",-3,[1,1,1,0]),e.PILLAR=i("pillar",-7,[1,1]),e.PILLAR_RARENESS=i("pillar_rareness",-8,[1]),e.PILLAR_THICKNESS=i("pillar_thickness",-8,[1]),e.SPAGHETTI_2D=i("spaghetti_2d",-8,[1]),e.SPAGHETTI_2D_ELEVATION=i("spaghetti_2d_elevation",-8,[1]),e.SPAGHETTI_2D_MODULATOR=i("spaghetti_2d_modulator",-8,[1]),e.SPAGHETTI_2D_THICKNESS=i("spaghetti_2d_thickness",-8,[1]),e.SPAGHETTI_3D_1=i("spaghetti_3d_1",-8,[1]),e.SPAGHETTI_3D_2=i("spaghetti_3d_2",-8,[1]),e.SPAGHETTI_3D_RARITY=i("spaghetti_3d_rarity",-8,[1]),e.SPAGHETTI_3D_THICKNESS=i("spaghetti_3d_thickness",-8,[1]),e.SPAGHETTI_ROUGHNESS=i("spaghetti_roughness",-8,[1]),e.SPAGHETTI_ROUGHNESS_MODULATOR=i("spaghetti_roughness_modulator",-8,[1]),e.CAVE_ENTRANCE=i("cave_entrance",-7,[.4,.5,1]),e.CAVE_LAYER=i("cave_layer",-8,[1]),e.CAVE_CHEESE=i("cave_cheese",-8,[.5,1,2,1,2,1,0,2,0]),e.NOODLE=i("noodle",-8,[1]),e.NOODLE_THICKNESS=i("noodle_thickness",-8,[1]),e.NOODLE_RIDGE_A=i("noodle_ridge_a",-7,[1]),e.NOODLE_RIDGE_B=i("noodle_ridge_b",-7,[1]),e.JAGGED=i("jagged",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),e.SURFACE=i("surface",-6,[1,1,1]),e.SURFACE_SECONDARY=i("surface_secondary",-6,[1,1,0,1]),e.instantiate=function(e,t){return new Mp(e.fromHashOf(t.name),t)}}(ip||(ip={}));class zp{constructor(e,t,i,n=!1){this.settings=e,this.isNoiseCavesEnabled=t;const r=e.hasLargeBiomes,o=(n?new Cp(i):Sp.create(i)).forkPositional();n?(this.blendedNoise=new Lp(new Cp(i),e.sampling,Qh.cellWidth(e),Qh.cellHeight(e)),this.temperatureNoise=new Mp(new Cp(i),Gh.create(-7,[1,1])),this.humidityNoise=new Mp(new Cp(i+BigInt(1)),Gh.create(-7,[1,1])),this.offsetNoise=new Mp(new Cp(i+BigInt(5)),Gh.create(0,[0]))):(this.blendedNoise=new Lp(o.fromHashOf("minecraft:terrain"),e.sampling,Qh.cellWidth(e),Qh.cellHeight(e)),this.temperatureNoise=ip.instantiate(o,r?ip.TEMPERATURE_LARGE:ip.TEMPERATURE),this.humidityNoise=ip.instantiate(o,r?ip.VEGETATION_LARGE:ip.VEGETATION),this.offsetNoise=ip.instantiate(o,ip.SHIFT)),this.continentalnessNoise=ip.instantiate(o,r?ip.CONTINENTALNESS_LARGE:ip.CONTINENTALNESS),this.erosionNoise=ip.instantiate(o,r?ip.EROSION_LARGE:ip.EROSION),this.weirdnessNoise=ip.instantiate(o,ip.RIDGE),this.pillarNoise=ip.instantiate(o,ip.PILLAR),this.pillarRarenessModulator=ip.instantiate(o,ip.PILLAR_RARENESS),this.pillarThicknessModulator=ip.instantiate(o,ip.PILLAR_THICKNESS),this.spaghetti2DNoise=ip.instantiate(o,ip.SPAGHETTI_2D),this.spaghetti2DElevationModulator=ip.instantiate(o,ip.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=ip.instantiate(o,ip.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=ip.instantiate(o,ip.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=ip.instantiate(o,ip.SPAGHETTI_3D_1),this.spaghetti3DNoise2=ip.instantiate(o,ip.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=ip.instantiate(o,ip.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=ip.instantiate(o,ip.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=ip.instantiate(o,ip.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=ip.instantiate(o,ip.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=ip.instantiate(o,ip.CAVE_ENTRANCE),this.layerNoise=ip.instantiate(o,ip.CAVE_LAYER),this.cheeseNoise=ip.instantiate(o,ip.CAVE_CHEESE);const a=e.minY+4,s=a+e.height;this.noodleToggleNoise=this.yLimitedInterpolatable(ip.instantiate(o,ip.NOODLE),a,s,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(ip.instantiate(o,ip.NOODLE_THICKNESS),a,s,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(ip.instantiate(o,ip.NOODLE_RIDGE_A),a,s,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(ip.instantiate(o,ip.NOODLE_RIDGE_B),a,s,0,8/3),this.jaggedNoise=ip.instantiate(o,ip.JAGGED),this.shaper=e.terrainShaper,this.baseNoise=e=>e.createNoiseInterpolator(((t,i,n)=>this.calculateBlendedBaseNoise(t,i,n,e.getNoiseData(t>>2,n>>2).terrainInfo)))}yLimitedInterpolatable(e,t,i,n,r){const o=(o,a,s)=>a>i||ae.createNoiseInterpolator(o)}noiseData(e,t){const i=e+this.getOffset(e,0,t),n=t+this.getOffset(t,e,0),r=this.getContinentalness(i,n),o=this.getErosion(i,n),a=this.getWeirdness(i,n),s=this.terrainInfo(r,o,a);return np.create(i,n,r,o,a,s)}sample(e,t,i){return this.target(e,t,i,this.noiseData(e,i))}target(e,t,i,n){const r=n.shiftedX,o=t+this.getOffset(t,i,e),a=n.shiftedZ,s=this.getTemperature(r,o,a),c=this.getHumidity(r,o,a),l=this.computeDimensionDensity(t<<2,n.terrainInfo);return Yh.target(s,c,n.continentalness,n.erosion,l,n.weirdness)}terrainInfo(e,t,i){const n=jp.point(e,t,i),r=this.shaper.offset(n),o=this.shaper.factor(n),a=this.shaper.jaggedness(n);return tp.create(r,o,a)}getOffset(e,t,i){return 4*this.offsetNoise.sample(e,t,i)}getTemperature(e,t,i){return this.temperatureNoise.sample(e,t,i)}getHumidity(e,t,i){return this.humidityNoise.sample(e,t,i)}getContinentalness(e,t){return this.continentalnessNoise.sample(e,0,t)}getErosion(e,t){return this.erosionNoise.sample(e,0,t)}getWeirdness(e,t){return this.weirdnessNoise.sample(e,0,t)}makeBaseNoiseFiller(e,t,i){const n=this.baseNoise(e),r=i?this.noodleToggleNoise(e):()=>-1,o=i?this.noodleThicknessNoise(e):()=>0,a=i?this.noodleRidgeANoise(e):()=>0,s=i?this.noodleRidgeBNoise(e):()=>0;return(e,i,c)=>{let l=n();if(l=_p(.64*l,-1,1),l=l/2-l*l*l/24,r()>=0){const e=function(e,t,i,n,r){return yp(n,r,wp(e,t,i))}(o(),-1,1,.05,.1),t=Math.abs(1.5*a())-e,i=Math.abs(1.5*s())-e;l=Math.min(l,Math.max(t,i))}return l+=t(e,i,c),l>0?null:dp.AIR}}calculateBlendedBaseNoise(e,t,i,n){const r=this.blendedNoise.sample(e,t,i);return this.calculateBaseNoise(e,t,i,n,r,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(e,t,i,n,r,o,a){if(!this.settings.islandNoiseOverride){const o=a?this.sampleJaggedNoise(n.jaggedness,e,i):0,s=this.computeDimensionDensity(t,n),c=n.factor*(o+s);r+=c>0?4*c:c}let s=-64,c=64;if(!o&&r>=-64){const n=r-1.5625,o=this.getBigEntrances(e,t,i),a=this.getSpaghettiRoughness(e,t,i),l=this.getSpaghetti3D(e,t,i),u=Math.min(o,l+a);if(n<0)c=u;else{const o=this.getLayerizedCaverns(e,t,i);r=o>64?64:this.getCheese(e,t,i)+o+yp(.5,0,1.28*n);const l=this.getSpaghetti2D(e,t,i);s=this.getPillars(e,t,i),c=Math.min(u,l+a)}}return r=_p(r,s,c),_p(r=this.applySlide(r,t/Qh.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(e,t,i){if(0===e)return 0;const n=this.jaggedNoise.sample(1500*t,0,1500*i);return n>0?e*n:e/2*n}computeDimensionDensity(e,t){return 1-e/128+t.offset}getBigEntrances(e,t,i){return this.bigEntranceNoise.sample(.75*e,.5*t,.75*i)+.37+yp(.3,0,(t+10)/40)}getSpaghettiRoughness(e,t,i){const n=this.spaghettiRoughnessNoise.sample(e,t,i),r=Np(this.spaghettiRoughnessModulator.sample(e,t,i),-1,1,0,1);return(.4-Math.abs(n))*r}getSpaghetti2D(e,t,i){const n=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*e,t,2*i)),r=Np(this.spaghetti2DThicknessModulator.sample(2*e,t,2*i),-1,1,.6,1.3),o=this.sampleWithRarity(this.spaghetti2DNoise,e,t,i,n),a=Math.abs(n*o)-.083*r,s=Qh.minCellY(this.settings),c=Np(this.spaghetti2DElevationModulator.sample(e,0,i),-1,1,s,8),l=Math.abs(c-t/8)-1*r;return _p(Math.max(l,a),-1,1)}getSpaghetti3D(e,t,i){const n=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*e,t,2*i)),r=Np(this.spaghetti3DThicknessModulator.sample(e,t,i),-1,1,.065,.088),o=this.sampleWithRarity(this.spaghetti3DNoise1,e,t,i,n),a=Math.abs(n*o)-r,s=this.sampleWithRarity(this.spaghetti3DNoise2,e,t,i,n),c=Math.abs(n*s)-r;return _p(Math.max(a,c),-1,1)}quantizeSpaghettiRarity2D(e){return e<-.75?.5:e<-.5?.75:e<.5?1:e<.75?2:3}quantizeSpaghettiRarity3D(e){return e<-.5?.75:e<0?1:e<.5?1.5:2}sampleWithRarity(e,t,i,n,r){return e.sample(t/r,i/r,n/r)}getLayerizedCaverns(e,t,i){return 4*gp(this.layerNoise.sample(e,8*t,i))}getCheese(e,t,i){return _p(this.cheeseNoise.sample(e,t/1.5,i)+.27,-1,1)}getPillars(e,t,i){const n=Np(this.pillarRarenessModulator.sample(e,t,i),-1,1,0,2),r=Np(this.pillarThicknessModulator.sample(e,t,i),-1,1,0,1.1),o=this.pillarNoise.sample(25*e,.3*t,25*i),a=Math.pow(r,3)*(2*o-n);return a<=.03?Number.MIN_SAFE_INTEGER:a}applySlide(e,t){const i=t-Qh.minCellY(this.settings);return e=ep.apply(this.settings.topSlide,e,Qh.cellCountY(this.settings)-i),ep.apply(this.settings.bottomSlide,e,i)}getPreliminarySurfaceLevel(e,t,i){const n=Qh.minCellY(this.settings)+Qh.cellCountY(this.settings),r=Qh.minCellY(this.settings),o=Qh.cellHeight(this.settings);for(let a=n;a>=r;a-=1){const n=a*o;if(this.calculateBaseNoise(e,n,t,i,-.703125,!0,!1)>=.390625)return n}return Number.MAX_SAFE_INTEGER}}(np||(np={})).create=function(e,t,i,n,r,o){return{shiftedX:e,shiftedZ:t,continentalness:i,weirdness:n,erosion:r,terrainInfo:o}},(rp||(rp={})).fromJson=function(e){var t,i,n,r;const o=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return void 0!==o.absolute?(s=null!==(i=qh.readNumber(o.absolute))&&void 0!==i?i:0,()=>s):void 0!==o.above_bottom?(a=null!==(n=qh.readNumber(o.above_bottom))&&void 0!==n?n:0,e=>e.minY+a):void 0!==o.below_top?function(e){return t=>t.maxY-e}(null!==(r=qh.readNumber(o.below_top))&&void 0!==r?r:0):()=>0;var a,s},(op||(op={})).create=function(e,t){return{minY:e,height:t,maxY:e+t-1}};class Up{constructor(e,t,i){this.rule=e,this.defaultBlock=t,this.random=Sp.create(i).forkPositional(),this.surfaceNoise=ip.instantiate(this.random,ip.SURFACE),this.surfaceSecondaryNoise=ip.instantiate(this.random,ip.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(e,t,i,n){const r=Vh.minBlockX(e.pos),o=Vh.minBlockZ(e.pos),a=new Wp(this,e,t,i,n),s=this.rule(a);for(let c=0;c<16;c+=1){const t=r+c;for(let i=0;i<1;i+=1){const n=o+i;a.updateXZ(t,n);let r=0,c=Number.MIN_SAFE_INTEGER,l=Number.MAX_SAFE_INTEGER;for(let i=e.maxY;i>=e.minY;i-=1){const o=Hh.create(t,i,n),u=e.getBlockState(o);if(u.equals(dp.AIR)){r=0,c=Number.MIN_SAFE_INTEGER;continue}if(u.isFluid()){c===Number.MIN_SAFE_INTEGER&&(c=i+1);continue}if(l>=i){l=Number.MIN_SAFE_INTEGER;for(let r=i-1;r>=e.minY;r-=1){const i=e.getBlockState(Hh.create(t,r,n));if(i.equals(dp.AIR)||i.isFluid()){l=r+1;break}}}r+=1;const d=i-l+1;if(!u.equals(this.defaultBlock))continue;a.updateY(r,d,c,i);const h=s(t,i,n);h&&e.setBlockState(o,h)}}}}getSurfaceDepth(e,t){return 2.75*this.surfaceNoise.sample(e,0,t)+3+.25*this.random.at(e,0,t).nextDouble()}getSurfaceSecondary(e,t){return this.surfaceSecondaryNoise.sample(e,0,t)}getRandom(e){return fp(this.positionalRandoms,e,(()=>this.random.fromHashOf(e)))}}class Wp{constructor(e,t,i,n,r){this.system=e,this.chunk=t,this.noiseChunk=i,this.context=n,this.getBiome=r,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>"",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(e,t){this.blockX=e,this.blockZ=t,this.surfaceDepth=this.system.getSurfaceDepth(e,t),this.surfaceSecondary=mp((()=>this.system.getSurfaceSecondary(e,t))),this.minSurfaceLevel=mp((()=>this.calculateMinSurfaceLevel(e,t)))}updateY(e,t,i,n){this.blockY=n,this.stoneDepthAbove=e,this.stoneDepthBelow=t,this.waterHeight=i,this.biome=mp((()=>this.getBiome(Hh.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(e,t){const i=e>>4,n=t>>4,r=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,n+1<<4),s=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,n+1<<4);return Math.floor(vp((15&e)/16,(15&t)/16,r,o,a,s))+this.surfaceDepth-8}}!function(e){function t(e){return()=>()=>e}function i(e){return t=>{const i=e.map((e=>e(t)));return(e,t,n)=>{for(const r of i){const i=r(e,t,n);if(i)return i}}}}function n(e,t){return i=>(n,r,o)=>{if(e(i))return t(i)(n,r,o)}}e.NOOP=()=>()=>{},e.fromJson=function(r){var o,a,s;const c=null!==(o=qh.readObject(r))&&void 0!==o?o:{};switch(null===(a=qh.readString(c.type))||void 0===a?void 0:a.replace(/^minecraft:/,"")){case"block":return t(dp.fromJson(c.result_state));case"sequence":return i(null!==(s=qh.readArray(c.sequence,e.fromJson))&&void 0!==s?s:[]);case"condition":return n(sp.fromJson(c.if_true),e.fromJson(c.then_run))}return e.NOOP},e.block=t,e.sequence=i,e.condition=n}(ap||(ap={})),function(e){function t(e){const t=new Set(e);return e=>t.has(e.biome())}function i(e){return t=>!e(t)}function n(e,t,i,n){return r=>{const o=n?r.stoneDepthBelow:r.stoneDepthAbove,a=t?r.surfaceDepth:0,s=0===i?0:Np(r.surfaceSecondary(),-1,1,0,i);return o<=1+e+a+s}}function r(e,t,i){return n=>{const r=t(n.context),o=i(n.context);if(n.blockY<=r)return!0;if(n.blockY>=o)return!1;const a=n.system.getRandom(e),s=Np(n.blockY,r,o,1,0);return a.nextFloat(){if(n.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const r=i?n.stoneDepthAbove:0;return n.blockY+r>=n.waterHeight+e+n.surfaceDepth*t}}function a(e,t,i){return n=>{const r=i?n.stoneDepthAbove:0;return n.blockY+r>=e(n.context)+n.surfaceDepth*t}}e.FALSE=()=>!1,e.TRUE=()=>!0,e.fromJson=function(s){var c,l,u,d,h,p,m,f,g,_,b,v;const y=null!==(c=qh.readObject(s))&&void 0!==c?c:{};switch(null===(l=qh.readString(y.type))||void 0===l?void 0:l.replace(/^minecraft:/,"")){case"above_preliminary_surface":return e=>e.blockY>=e.minSurfaceLevel();case"biome":return t(null!==(u=qh.readArray(y.biome_is,(e=>{var t;return null!==(t=qh.readString(e))&&void 0!==t?t:""})))&&void 0!==u?u:[]);case"not":return i(e.fromJson(y.invert));case"stone_depth":return n(null!==(d=qh.readInt(y.offset))&&void 0!==d?d:0,null!==(h=qh.readBoolean(y.add_surface_depth))&&void 0!==h&&h,null!==(p=qh.readInt(y.secondary_depth_range))&&void 0!==p?p:0,"ceiling"===qh.readString(y.surface_type));case"vertical_gradient":return r(null!==(m=qh.readString(y.random_name))&&void 0!==m?m:"",rp.fromJson(y.true_at_and_below),rp.fromJson(y.false_at_and_above));case"water":return o(null!==(f=qh.readInt(y.offset))&&void 0!==f?f:0,null!==(g=qh.readInt(y.surface_depth_multiplier))&&void 0!==g?g:0,null!==(_=qh.readBoolean(y.add_surface_depth))&&void 0!==_&&_);case"y_above":return a(rp.fromJson(y.anchor),null!==(b=qh.readInt(y.surface_depth_multiplier))&&void 0!==b?b:0,null!==(v=qh.readBoolean(y.add_surface_depth))&&void 0!==v&&v)}return e.FALSE},e.abovePreliminarySurface=function(){return e=>e.blockY>=e.minSurfaceLevel()},e.biome=t,e.not=i,e.stoneDepth=n,e.verticalGradient=r,e.water=o,e.yAbove=a}(sp||(sp={}));class Hp{constructor(e,t,i){this.biomeSource=t,this.settings=i,this.sampler=new zp(i.noise,i.noiseCavesEnabled,e,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Zh.fromList([(e,t,i,n)=>e.updateNoiseAndGenerateBaseState(t,i,n)]),this.surfaceSystem=new Up(i.surfaceRule,i.defaultBlock,e)}fill(e){var t;const i=Math.max(e.minY,this.settings.noise.minY),n=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),r=Qh.cellWidth(this.settings.noise),o=Qh.cellHeight(this.settings.noise),a=Math.floor(16/r),s=Math.floor(i/o),c=Math.floor((n-i)/o),l=Vh.minBlockX(e.pos),u=Vh.minBlockZ(e.pos),d=this.getNoiseChunk(e);d.initializeForFirstCellX();for(let h=0;h=0;a-=1){d.selectCellYZ(a,i);for(let c=o-1;c>=0;c-=1){const p=(s+a)*o+c,m=15&p,f=e.getSectionIndex(p);e.getSectionIndex(n.minBlockY)!==f&&(n=e.getOrCreateSection(f));const g=c/o;d.updateForY(g);for(let e=0;et))}getNoiseChunk(e){return fp(this.noiseChunkCache,Vh.toLong(e.pos),(()=>{const t=Math.max(e.minY,this.settings.noise.minY),i=Math.min(e.maxY,this.settings.noise.minY+this.settings.noise.height),n=Qh.cellWidth(this.settings.noise),r=Qh.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(t/r),s=Math.floor((i-t)/r),c=Vh.minBlockX(e.pos),l=Vh.minBlockZ(e.pos);return new Pp(o,s,a,this.sampler,c,l,(()=>0),this.settings)}))}}let qp;(cp||(cp={})).fromJson=function(e){var t,i,n,r,o,a,s,c,l,u,d;const h=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return{structures:lp.fromJson(h.structures),surfaceRule:ap.fromJson(h.surface_rule),noise:Qh.fromJson(h.noise),defaultBlock:dp.fromJson(h.default_block),defaultFluid:dp.fromJson(h.default_fluid),bedrockRoofPosition:null!==(i=qh.readInt(h.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(n=qh.readInt(h.bedrock_floor_position))&&void 0!==n?n:0,seaLevel:null!==(r=qh.readInt(h.sea_level))&&void 0!==r?r:0,disableMobGeneration:null!==(o=qh.readBoolean(h.disable_mob_generation))&&void 0!==o&&o,aquifersEnabled:null!==(a=qh.readBoolean(h.aquifers_enabled))&&void 0!==a&&a,noiseCavesEnabled:null!==(s=qh.readBoolean(h.noise_caves_enabled))&&void 0!==s&&s,deepslateEnabled:null!==(c=qh.readBoolean(h.deepslate_enabled))&&void 0!==c&&c,oreVeinsEnabled:null!==(l=qh.readBoolean(h.ore_veins_enabled))&&void 0!==l&&l,noodleCavesEnabled:null!==(u=qh.readBoolean(h.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(d=qh.readBoolean(h.legacy_random_source))&&void 0!==d&&d}},(lp||(lp={})).fromJson=function(e){var t;const i=null!==(t=qh.readObject(e))&&void 0!==t?t:{};return{stronghold:qh.compose(i.stronghold,qh.readObject,(e=>{var t,i,n;return{distance:null!==(t=qh.readInt(e.distance))&&void 0!==t?t:0,spread:null!==(i=qh.readInt(e.spread))&&void 0!==i?i:0,count:null!==(n=qh.readInt(e.count))&&void 0!==n?n:0}})),structures:qh.readMap(i.structures,(e=>{var t,i,n,r,o;return i=null!==(t=qh.readObject(e))&&void 0!==t?t:{},{spacing:null!==(n=qh.readInt(i.spacing))&&void 0!==n?n:0,separation:null!==(r=qh.readInt(i.separation))&&void 0!==r?r:0,salt:null!==(o=qh.readInt(i.salt))&&void 0!==o?o:0}}))}};let Vp=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Vp.decode();let Kp=null;function Gp(e,t){return Vp.decode((null!==Kp&&Kp.buffer===qp.memory.buffer||(Kp=new Uint8Array(qp.memory.buffer)),Kp).subarray(e,e+t))}const Xp=new Uint32Array(2),Jp=new BigInt64Array(Xp.buffer);let Yp=null;function Zp(){return null!==Yp&&Yp.buffer===qp.memory.buffer||(Yp=new Int32Array(qp.memory.buffer)),Yp}let Qp=null;function em(){return null!==Qp&&Qp.buffer===qp.memory.buffer||(Qp=new Float64Array(qp.memory.buffer)),Qp}let tm=0;function im(e,t){const i=t(8*e.length);return em().set(e,i/8),tm=e.length,i}let nm=null;function rm(e,t){const i=t(4*e.length);return(null!==nm&&nm.buffer===qp.memory.buffer||(nm=new Uint32Array(qp.memory.buffer)),nm).set(e,i/4),tm=e.length,i}function om(e,t,i,n,r,o,a,s,c,l,u,d,h,p){var m=im(e,qp.__wbindgen_malloc),f=tm,g=im(t,qp.__wbindgen_malloc),_=tm,b=im(i,qp.__wbindgen_malloc),v=tm,y=im(n,qp.__wbindgen_malloc),w=tm,x=im(r,qp.__wbindgen_malloc),N=tm,A=im(o,qp.__wbindgen_malloc),k=tm,C=im(a,qp.__wbindgen_malloc),E=tm,S=im(s,qp.__wbindgen_malloc),F=tm,O=im(c,qp.__wbindgen_malloc),D=tm,B=im(l,qp.__wbindgen_malloc),L=tm,M=im(u,qp.__wbindgen_malloc),$=tm,T=im(d,qp.__wbindgen_malloc),R=tm,j=im(h,qp.__wbindgen_malloc),I=tm,P=rm(p,qp.__wbindgen_malloc),z=tm,U=qp.biome_parameters(m,f,g,_,b,v,y,w,x,N,A,k,C,E,S,F,O,D,B,L,M,$,T,R,j,I,P,z);return um.__wrap(U)}function am(e,t,i,n,r,o,a,s,c,l,u,d,h){Jp[0]=e;const p=Xp[0],m=Xp[1];var f=im(i,qp.__wbindgen_malloc),g=tm,_=im(r,qp.__wbindgen_malloc),b=tm,v=im(a,qp.__wbindgen_malloc),y=tm,w=im(c,qp.__wbindgen_malloc),x=tm,N=im(u,qp.__wbindgen_malloc),A=tm,k=im(h,qp.__wbindgen_malloc),C=tm,E=qp.climate_sampler(p,m,t,f,g,n,_,b,o,v,y,s,w,x,l,N,A,d,k,C);return dm.__wrap(E)}function sm(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}function cm(e,t,i,n,r,o,a,s,c,l,u){try{const m=qp.__wbindgen_add_to_stack_pointer(-16);sm(e,um),sm(t,dm),qp.multi_noise(m,e.ptr,t.ptr,i,n,r,o,a,s,c,l,u);var d=Zp()[m/4+0],h=Zp()[m/4+1],p=function(e,t){return Zp().subarray(e/4,e/4+t)}(d,h).slice();return qp.__wbindgen_free(d,4*h),p}finally{qp.__wbindgen_add_to_stack_pointer(16)}}function lm(e,t,i,n,r,o,a,s,c,l){try{const p=qp.__wbindgen_add_to_stack_pointer(-16);sm(e,dm),qp.climate_noise(p,e.ptr,t,i,n,r,o,a,s,c,l);var u=Zp()[p/4+0],d=Zp()[p/4+1],h=function(e,t){return em().subarray(e/8,e/8+t)}(u,d).slice();return qp.__wbindgen_free(u,8*d),h}finally{qp.__wbindgen_add_to_stack_pointer(16)}}class um{static __wrap(e){const t=Object.create(um.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();qp.__wbg_parameterlist_free(e)}}class dm{static __wrap(e){const t=Object.create(dm.prototype);return t.ptr=e,t}__destroy_into_raw(){const e=this.ptr;return this.ptr=0,e}free(){const e=this.__destroy_into_raw();qp.__wbg_sampler_free(e)}}async function hm(e){void 0===e&&(e=new URL("deepslate_rs_bg.wasm",u.url));const t={wbg:{}};t.wbg.__wbindgen_throw=function(e,t){throw new Error(Gp(e,t))},("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));const{instance:i,module:n}=await async function(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if("application/wasm"==e.headers.get("Content-Type"))throw i;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i)}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}{const i=await WebAssembly.instantiate(e,t);return i instanceof WebAssembly.Instance?{instance:i,module:e}:i}}(await e,t);return qp=i.exports,hm.__wbindgen_wasm_module=n,qp}var pm="/assets/deepslate_rs_bg.4990c219.wasm";!function(){var e=function(){return this}();e||"undefined"==typeof window||(e=window);var t=function(e,i,n){"string"==typeof e?(2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var i,n,r=function(e,t,i){if("string"==typeof t){var n=s(e,t);if(null!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var r=[],a=0,c=t.length;a1&&c(n,"")>-1&&(i=RegExp(this.source,r.replace.call(s(this),"g","")),r.replace.call(e.slice(n.index),i,(function(){for(var e=1;en.index&&this.lastIndex--}return n},a||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))})),ace.define("ace/lib/es5-shim",["require","exports","module"],(function(e,t,i){function n(){}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=h.call(arguments,1),r=function(){if(this instanceof r){var n=t.apply(this,i.concat(h.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(h.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,r.prototype=new n,n.prototype=null),r});var r,o,a,s,c,l=Function.prototype.call,u=Array.prototype,d=Object.prototype,h=u.slice,p=l.bind(d.toString),m=l.bind(d.hasOwnProperty);if((c=m(d,"__defineGetter__"))&&(r=l.bind(d.__defineGetter__),o=l.bind(d.__defineSetter__),a=l.bind(d.__lookupGetter__),s=l.bind(d.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),i.length,t+1==i.length)return!0}()){var f=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?f.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(h.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):null==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ts)for(d=l;d--;)this[c+d]=this[s+d];if(o&&e===u)this.length=u,this.push.apply(this,r);else for(this.length=u+o,d=0;d>>0;if("[object Function]"!=p(e))throw new TypeError;for(;++r>>0,r=Array(n),o=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,o=[],a=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,r=arguments[1];if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var r,o=0;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=p(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var r,o=n-1;if(arguments.length>=2)r=arguments[1];else for(;;){if(o in i){r=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do{o in this&&(r=e.call(void 0,r,i[o],o,t))}while(o--);return r}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(e){var t=v&&"[object String]"==p(this)?this.split(""):B(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=D(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,D(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:d)}),!Object.getOwnPropertyDescriptor){Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+e);if(m(e,t)){var i;if(i={enumerable:!0,configurable:!0},c){var n=e.__proto__;e.__proto__=d;var r=a(e,t),o=s(e,t);if(e.__proto__=n,r||o)return r&&(i.get=r),o&&(i.set=o),i}return i.value=e[t],i}}}(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),Object.create)||(g=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(e,t){var i;if(null===e)i=g();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,(i=new n).__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i});function y(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}if(Object.defineProperty){var w=y({}),x="undefined"==typeof document||y(document.createElement("div"));if(!w||!x)var N=Object.defineProperty}if(!Object.defineProperty||N){Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.defineProperty called on non-object: "+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError("Property description must be an object: "+i);if(N)try{return N.call(Object,e,t,i)}catch(l){}if(m(i,"value"))if(c&&(a(e,t)||s(e,t))){var n=e.__proto__;e.__proto__=d,delete e[t],e[t]=i.value,e.__proto__=n}else e[t]=i.value;else{if(!c)throw new TypeError("getters & setters can not be defined on this javascript engine");m(i,"get")&&r(e,t,i.get),m(i,"set")&&o(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)m(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze((function(){}))}catch(L){Object.freeze=(_=Object.freeze,function(e){return"function"==typeof e?e:_(e)})}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";m(e,t);)t+="?";e[t]=!0;var i=m(e,t);return delete e[t],i}),!Object.keys){var A=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],C=k.length;for(var E in{toString:null})A=!1;Object.keys=function(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var t=[];for(var i in e)m(e,i)&&t.push(i);if(A)for(var n=0,r=C;n0||-1)*Math.floor(Math.abs(e))),e}var B=function(e){if(null==e)throw new TypeError("can't convert "+e+" to object");return Object(e)}})),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],(function(e,t,i){e("./regexp"),e("./es5-shim")})),ace.define("ace/lib/dom",["require","exports","module"],(function(e,t,i){t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||"http://www.w3.org/1999/xhtml",e):document.createElement(e)},t.hasCssClass=function(e,t){return-1!==(e.className+"").split(/\s+/g).indexOf(t)},t.addCssClass=function(e,i){t.hasCssClass(e,i)||(e.className+=" "+i)},t.removeCssClass=function(e,t){for(var i=e.className.split(/\s+/g);;){var n=i.indexOf(t);if(-1==n)break;i.splice(n,1)}e.className=i.join(" ")},t.toggleCssClass=function(e,t){for(var i=e.className.split(/\s+/g),n=!0;;){var r=i.indexOf(t);if(-1==r)break;n=!1,i.splice(r,1)}return n&&i.push(t),e.className=i.join(" "),n},t.setCssClass=function(e,i,n){n?t.addCssClass(e,i):t.removeCssClass(e,i)},t.hasCssString=function(e,t){var i,n=0;if((t=t||document).createStyleSheet&&(i=t.styleSheets)){for(;n=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((r.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isIPad=r.indexOf("iPad")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}})),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("./keys"),r=e("./useragent"),o=null,a=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){if(e.removeEventListener)return e.removeEventListener(t,i,!1);e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||r.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function r(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",r,!0),t.removeListener(document,"dragstart",r,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",r,!0),t.addListener(document,"dragstart",r,!0),r},t.addTouchMoveListener=function(e,i){var n,r;t.addListener(e,"touchstart",(function(e){var t=e.touches[0];n=t.clientX,r=t.clientY})),t.addListener(e,"touchmove",(function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=r-o.clientY,n=o.clientX,r=o.clientY,i(e)}}))},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",(function(e){void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/8,e.wheelY=-e.wheelDeltaY/8):(e.wheelX=0,e.wheelY=-e.wheelDelta/8),i(e)})):"onwheel"in e?t.addListener(e,"wheel",(function(e){switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.35*e.deltaX||0,e.wheelY=.35*e.deltaY||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)})):t.addListener(e,"DOMMouseScroll",(function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)}))},t.addMultiMouseDownListener=function(e,i,n,o){var a,s,c,l=0,u={2:"dblclick",3:"tripleclick",4:"quadclick"};function d(e){if(0!==t.getButton(e)?l=0:e.detail>1?++l>4&&(l=1):l=1,r.isIE){var d=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-s)>5;c&&!d||(l=1),c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),1==l&&(a=e.clientX,s=e.clientY)}if(e._clicks=l,n[o]("mousedown",e),l>4)l=0;else if(l>1)return n[o](u[l],e)}function h(e){l=2,c&&clearTimeout(c),c=setTimeout((function(){c=null}),i[l-1]||600),n[o]("mousedown",e),n[o](u[l],e)}Array.isArray(e)||(e=[e]),e.forEach((function(e){t.addListener(e,"mousedown",d),r.isOldIE&&t.addListener(e,"dblclick",h)}))};var s=r.isMac&&r.isOpera&&!("KeyboardEvent"in window)?function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)}:function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};function c(e,t,i){var c=s(t);if(!r.isMac&&o){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(c|=8),o.altGr){if(3==(3&c))return;o.altGr=0}if(18===i||17===i){var l="location"in t?t.location:t.keyLocation;if(17===i&&1===l)1==o[i]&&(a=t.timeStamp);else if(18===i&&3===c&&2===l){t.timeStamp-a<50&&(o.altGr=!0)}}}if((i in n.MODIFIER_KEYS&&(i=-1),8&c&&i>=91&&i<=93&&(i=-1),!c&&13===i)&&(3===(l="location"in t?t.location:t.keyLocation)&&(e(t,c,-i),t.defaultPrevented)))return;if(r.isChromeOS&&8&c){if(e(t,c,i),t.defaultPrevented)return;c&=-9}return!!(c||i in n.FUNCTION_KEYS||i in n.PRINTABLE_KEYS)&&e(t,c,i)}function l(){o=Object.create(null)}if(t.getModifierString=function(e){return n.KEY_MODS[s(e)]},t.addCommandKeyListener=function(e,i){var n=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var a=null;n(e,"keydown",(function(e){a=e.keyCode})),n(e,"keypress",(function(e){return c(i,e,a)}))}else{var s=null;n(e,"keydown",(function(e){o[e.keyCode]=(o[e.keyCode]||0)+1;var t=c(i,e,e.keyCode);return s=e.defaultPrevented,t})),n(e,"keypress",(function(e){s&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),s=null)})),n(e,"keyup",(function(e){o[e.keyCode]=null})),o||(l(),n(window,"focus",l))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-1";t.addListener(i,"message",(function r(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",r),e())})),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/lib/lang",["require","exports","module"],(function(e,t,i){t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,r=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(r,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;id.length?e=e.substr(9):e.substr(0,4)==d.substr(0,4)?e=e.substr(4,e.length-d.length+1):e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e==d.charAt(0)||e.charAt(e.length-1)==d.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),h&&(h=!1),A&&(A=!1))},C=function(e){if(!f){var t=i.value;k(t),x()}},E=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!l){var r=u||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return E(o,t,!0)}}},S=function(e,o){var a=t.getCopyText();if(!a)return n.preventDefault(e);E(e,a)?(r.isIOS&&(p=o,i.value="\n aa"+a+"a a\n",i.setSelectionRange(4,4+a.length),h={value:a}),o?t.onCut():t.onCopy(),r.isIOS||n.preventDefault(e)):(h=!0,i.value=a,i.select(),setTimeout((function(){h=!1,x(),w(),o?t.onCut():t.onCopy()})))};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),w()):N&&w(t.selection.isEmpty())})),n.addListener(i,"input",C),n.addListener(i,"cut",(function(e){S(e,!0)})),n.addListener(i,"copy",(function(e){S(e,!1)})),n.addListener(i,"paste",(function(e){var o=E(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(w),n.preventDefault(e)):(i.value="",m=!0)}));var F,O=function(){if(f&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\x01/g,"");if(f.lastValue!==e&&(t.onCompositionUpdate(e),f.lastValue&&t.undo(),f.canUndo&&(f.lastValue=e),f.lastValue)){var n=t.selection.getRange();t.insert(f.lastValue),t.session.markUndoGroup(),f.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},D=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=f;f=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\x01/g,"");f||(e==n.lastValue?x():!n.lastValue&&e&&(x(),k(e)))}));N=function(e){return o&&clearTimeout(o),(e=e.replace(/\x01/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",D),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&C()}},B=a.delayedCall(O,50);function L(){clearTimeout(F),F=setTimeout((function(){g&&(i.style.cssText=g,g=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){f||!t.onCompositionStart||t.$readOnly||((f={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(O,0),t.on("mousedown",D),f.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){B.schedule()})):(n.addListener(i,"keyup",(function(){B.schedule()})),n.addListener(i,"keydown",(function(){B.schedule()}))),n.addListener(i,"compositionend",D),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){A=!0,w(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){g||(g=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(F),r.isWin&&n.capture(t.container,h,L))},this.onContextMenuClose=L;var M=function(e){t.textInput.onContextMenu(e),L()};if(n.addListener(i,"mouseup",M),n.addListener(i,"mousedown",(function(e){e.preventDefault(),L()})),n.addListener(t.renderer.scroller,"contextmenu",M),n.addListener(i,"contextmenu",M),r.isIOS){var $=null,T=!1;e.addEventListener("keydown",(function(e){$&&clearTimeout($),T=!0})),e.addEventListener("keyup",(function(e){$=setTimeout((function(){T=!1}),100)}));var R=function(e){if(document.activeElement===i&&!T){if(p)return setTimeout((function(){p=!1}),100);var n=i.selectionStart,r=i.selectionEnd;if(i.setSelectionRange(4,5),n==r)switch(n){case 0:t.onCommandKey(null,0,s.up);break;case 1:t.onCommandKey(null,0,s.home);break;case 2:t.onCommandKey(null,c.option,s.left);break;case 4:t.onCommandKey(null,0,s.left);break;case 5:t.onCommandKey(null,0,s.right);break;case 7:t.onCommandKey(null,c.option,s.right);break;case 8:t.onCommandKey(null,0,s.end);break;case 9:t.onCommandKey(null,0,s.down)}else{switch(r){case 6:t.onCommandKey(null,c.shift,s.right);break;case 7:t.onCommandKey(null,c.shift|c.option,s.right);break;case 8:t.onCommandKey(null,c.shift,s.end);break;case 9:t.onCommandKey(null,c.shift,s.down)}switch(n){case 0:t.onCommandKey(null,c.shift,s.up);break;case 1:t.onCommandKey(null,c.shift,s.home);break;case 2:t.onCommandKey(null,c.shift|c.option,s.left);break;case 3:t.onCommandKey(null,c.shift,s.left)}}}};document.addEventListener("selectionchange",R),t.on("destroy",(function(){document.removeEventListener("selectionchange",R)}))}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("../lib/dom"),a=e("../lib/lang"),s=r.isChrome<18,c=r.isIE,l=e("./textinput_ios").TextInput;t.TextInput=function(e,t){if(r.isIOS)return l.call(this,e,t);var i=o.createElement("textarea");i.className="ace_text-input",i.setAttribute("wrap","off"),i.setAttribute("autocorrect","off"),i.setAttribute("autocapitalize","off"),i.setAttribute("spellcheck",!1),i.style.opacity="0",e.insertBefore(i,e.firstChild);var u="\u2028\u2028",d=!1,h=!1,p=!1,m="",f=!0;try{var g=document.activeElement===i}catch(T){}n.addListener(i,"blur",(function(e){t.onBlur(e),g=!1})),n.addListener(i,"focus",(function(e){g=!0,t.onFocus(e),v()})),this.focus=function(){if(m)return i.focus();var e=i.style.top;i.style.position="fixed",i.style.top="0px",i.focus(),setTimeout((function(){i.style.position="","0px"==i.style.top&&(i.style.top=e)}),0)},this.blur=function(){i.blur()},this.isFocused=function(){return g};var _=a.delayedCall((function(){g&&v(f)})),b=a.delayedCall((function(){p||(i.value=u,g&&v())}));function v(e){if(!p){if(p=!0,w)var t=0,n=e?0:i.value.length-1;else t=e?2:1,n=2;try{i.setSelectionRange(t,n)}catch(T){}p=!1}}function y(){p||(i.value=u,r.isWebKit&&b.schedule())}r.isWebKit||t.addEventListener("changeSelection",(function(){t.selection.isEmpty()!=f&&(f=!f,_.schedule())})),y(),g&&t.onFocus();var w=null;this.setInputHandler=function(e){w=e},this.getInputHandler=function(){return w};var x=!1,N=function(e){w&&(e=w(e),w=null),h?(v(),e&&t.onPaste(e),h=!1):e==u.charAt(0)?x?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==u?e=e.substr(2):e.charAt(0)==u.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==u.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),x&&(x=!1)},A=function(e){if(!p){var t=i.value;N(t),y()}},k=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!s){var r=c||i?"Text":"text/plain";try{return t?!1!==n.setData(r,t):n.getData(r)}catch(o){if(!i)return k(o,t,!0)}}},C=function(e,r){var o=t.getCopyText();if(!o)return n.preventDefault(e);k(e,o)?(r?t.onCut():t.onCopy(),n.preventDefault(e)):(d=!0,i.value=o,i.select(),setTimeout((function(){d=!1,y(),v(),r?t.onCut():t.onCopy()})))},E=function(e){C(e,!0)},S=function(e){C(e,!1)},F=function(e){var o=k(e);"string"==typeof o?(o&&t.onPaste(o,e),r.isIE&&setTimeout(v),n.preventDefault(e)):(i.value="",h=!0)};n.addCommandKeyListener(i,t.onCommandKey.bind(t)),n.addListener(i,"select",(function(e){var n;d?d=!1:0===(n=i).selectionStart&&n.selectionEnd===n.value.length?(t.selectAll(),v()):w&&v(t.selection.isEmpty())})),n.addListener(i,"input",A),n.addListener(i,"cut",E),n.addListener(i,"copy",S),n.addListener(i,"paste",F),"oncut"in i&&"oncopy"in i&&"onpaste"in i||n.addListener(e,"keydown",(function(e){if((!r.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:S(e);break;case 86:F(e);break;case 88:E(e)}}));var O,D=function(){if(p&&t.onCompositionUpdate&&!t.$readOnly){var e=i.value.replace(/\u2028/g,"");if(p.lastValue!==e&&(t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e),p.lastValue)){var n=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(n),t.selection.clearSelection()}}},B=function(e){if(t.onCompositionEnd&&!t.$readOnly){var n=p;p=!1;var o=setTimeout((function(){o=null;var e=i.value.replace(/\u2028/g,"");p||(e==n.lastValue?y():!n.lastValue&&e&&(y(),N(e)))}));w=function(e){return o&&clearTimeout(o),(e=e.replace(/\u2028/g,""))==n.lastValue?"":(n.lastValue&&o&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",B),"compositionend"==e.type&&n.range&&t.selection.setRange(n.range),(!!r.isChrome&&r.isChrome>=53||!!r.isWebKit&&r.isWebKit>=603)&&A()}},L=a.delayedCall(D,50);function M(){clearTimeout(O),O=setTimeout((function(){m&&(i.style.cssText=m,m=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())}),0)}n.addListener(i,"compositionstart",(function(e){p||!t.onCompositionStart||t.$readOnly||((p={}).canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(D,0),t.on("mousedown",B),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())})),r.isGecko?n.addListener(i,"text",(function(){L.schedule()})):(n.addListener(i,"keyup",(function(){L.schedule()})),n.addListener(i,"keydown",(function(){L.schedule()}))),n.addListener(i,"compositionend",B),this.getElement=function(){return i},this.setReadOnly=function(e){i.readOnly=e},this.onContextMenu=function(e){x=!0,v(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,a){m||(m=i.style.cssText),i.style.cssText=(a?"z-index:100000;":"")+"height:"+i.style.height+";"+(r.isIE?"opacity:0.1;":"");var s=t.container.getBoundingClientRect(),c=o.computedStyle(t.container),l=s.top+(parseInt(c.borderTopWidth)||0),u=s.left+(parseInt(s.borderLeftWidth)||0),d=s.bottom-l-i.clientHeight-2,h=function(e){i.style.left=e.clientX-u-2+"px",i.style.top=Math.min(e.clientY-l-2,d)+"px"};h(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(O),r.isWin&&n.capture(t.container,h,M))},this.onContextMenuClose=M;var $=function(e){t.textInput.onContextMenu(e),M()};n.addListener(i,"mouseup",$),n.addListener(i,"mousedown",(function(e){e.preventDefault(),M()})),n.addListener(t.renderer.scroller,"contextmenu",$),n.addListener(i,"contextmenu",$)}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){e("../lib/dom"),e("../lib/event");var n=e("../lib/useragent");function r(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(0!==o){var a=r.getSelectionRange().isEmpty();return r.$blockScrolling++,(a||1==o)&&r.selection.moveToPosition(i),r.$blockScrolling--,void(2==o&&(r.textInput.onContextMenu(e.domEvent),n.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||r.isFocused()||(r.focus(),!this.$focusTimout||this.$clickSelection||r.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var a=this.$clickSelection.comparePoint(r.start),s=this.$clickSelection.comparePoint(r.end);if(-1==a&&s<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==s&&a>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==a&&1==s)n=r.end,t=r.start;else{var c=o(this.$clickSelection,n);n=c.cursor,t=c.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e,t,i,n,r=(e=this.mousedownEvent.x,t=this.mousedownEvent.y,i=this.x,n=this.y,Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))),o=Date.now();(r>0||o-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session.getBracketRange(t);n?(n.isEmpty()&&(n.start.column--,n.end.column++),this.setState("select")):(n=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=n,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,r=n-i.t,o=e.wheelX/r,a=e.wheelY/r;r<250&&(o=(o+i.vx)/2,a=(a+i.vy)/2);var s=Math.abs(o/a),c=!1;if(s>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(c=!0),s<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(c=!0),c)i.allowed=n;else if(n-i.allowed<250){Math.abs(o)<=1.1*Math.abs(i.vx)&&Math.abs(a)<=1.1*Math.abs(i.vy)?(c=!0,i.allowed=n):i.allowed=0}return i.t=n,i.vx=o,i.vy=a,c?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}},this.onTouchMove=function(e){this.editor._emit("mousewheel",e)}}).call(r.prototype),t.DefaultHandlers=r})),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}(function(){this.$init=function(){return this.$element=n.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){n.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){n.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(r.prototype),t.Tooltip=r})),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/event"),a=e("../tooltip").Tooltip;function s(e){a.call(this,e)}r.inherits(s,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,r=this.getWidth(),o=this.getHeight();(e+=15)+r>i&&(e-=e+r-i),(t+=15)+o>n&&(t-=20+o),a.prototype.setPosition.call(this,e,t)}}.call(s.prototype),t.GutterHandler=function(e){var t,i,r,a=e.editor,c=a.renderer.$gutterLayer,l=new s(a.container);function u(){t&&(t=clearTimeout(t)),r&&(l.hide(),r=null,a._signal("hideGutterTooltip",l),a.removeEventListener("mousewheel",u))}function d(e){l.setPosition(e.x,e.y)}e.editor.setDefaultHandler("guttermousedown",(function(t){if(a.isFocused()&&0==t.getButton()&&"foldWidgets"!=c.getRegion(t)){var i=t.getDocumentPosition().row,n=a.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return a.selectAll(),t.preventDefault();e.$clickSelection=a.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(o){var s=o.domEvent.target||o.domEvent.srcElement;if(n.hasCssClass(s,"ace_fold-widget"))return u();r&&e.$tooltipFollowsMouse&&d(o),i=o,t||(t=setTimeout((function(){t=null,i&&!e.isMousePressed?function(){var t=i.getDocumentPosition().row,n=c.$annotations[t];if(!n)return u();if(t==a.session.getLength()){var o=a.renderer.pixelToScreenCoordinates(0,i.y).row,s=i.$pos;if(o>a.session.documentToScreenRow(s.row,s.column))return u()}if(r!=n)if(r=n.text.join("
    "),l.setHtml(r),l.show(),a._signal("showGutterTooltip",l),a.on("mousewheel",u),e.$tooltipFollowsMouse)d(i);else{var h=i.domEvent.target.getBoundingClientRect(),p=l.getElement().style;p.left=h.right+"px",p.top=h.bottom+"px"}}():u()}),50))})),o.addListener(a.renderer.$gutter,"mouseout",(function(e){i=null,r&&!t&&(t=setTimeout((function(){t=null,u()}),50))})),a.on("changeSession",u)}})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=r.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/event"),o=e("../lib/useragent");function a(e){var t=e.editor,i=n.createElement("img");i.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",o.isOpera&&(i.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var a,c,l,u,d,h,p,m,f,g,_,b=t.container,v=0;function y(){var e=h;(function(e,i){var n=Date.now(),r=!i||e.row!=i.row,o=!i||e.column!=i.column;!g||r||o?(t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,g=n,_={x:c,y:l}):s(_.x,_.y,c,l)>5?g=null:n-g>=200&&(t.renderer.scrollCursorIntoView(),g=null)})(h=t.renderer.screenToTextCoordinates(c,l),e),function(e,i){var n=Date.now(),r=t.renderer.layerConfig.lineHeight,o=t.renderer.layerConfig.characterWidth,a=t.renderer.scroller.getBoundingClientRect(),s={x:{left:c-a.left,right:a.right-c},y:{top:l-a.top,bottom:a.bottom-l}},u=Math.min(s.x.left,s.x.right),d=Math.min(s.y.top,s.y.bottom),h={row:e.row,column:e.column};u/o<=2&&(h.column+=s.x.left=200&&t.renderer.scrollCursorIntoView(h):f=n:f=null}(h,e)}function w(){d=t.selection.toOrientedRange(),a=t.session.addMarker(d,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),y(),u=setInterval(y,20),v=0,r.addListener(document,"mousemove",A)}function x(){clearInterval(u),t.session.removeMarker(a),a=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(d),t.$blockScrolling-=1,t.isFocused()&&!m&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),d=null,h=null,v=0,f=null,g=null,r.removeListener(document,"mousemove",A)}this.onDragStart=function(e){if(this.cancelDrag||!b.draggable){var n=this;return setTimeout((function(){n.startSelect(),n.captureMouse(e)}),0),e.preventDefault()}d=t.getSelectionRange();var r=e.dataTransfer;r.effectAllowed=t.getReadOnly()?"copy":"copyMove",o.isOpera&&(t.container.appendChild(i),i.scrollTop=0),r.setDragImage&&r.setDragImage(i,0,0),o.isOpera&&t.container.removeChild(i),r.clearData(),r.setData("Text",t.session.getTextRange()),m=!0,this.setState("drag")},this.onDragEnd=function(e){if(b.draggable=!1,m=!1,this.setState(null),!t.getReadOnly()){var i=e.dataTransfer.dropEffect;p||"move"!=i||t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||w(),v++,e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragOver=function(e){if(!t.getReadOnly()&&k(e.dataTransfer))return c=e.clientX,l=e.clientY,a||(w(),v++),null!==N&&(N=null),e.dataTransfer.dropEffect=p=C(e),r.preventDefault(e)},this.onDragLeave=function(e){if(--v<=0&&a)return x(),p=null,r.preventDefault(e)},this.onDrop=function(e){if(h){var i=e.dataTransfer;if(m)switch(p){case"move":d=d.contains(h.row,h.column)?{start:h,end:h}:t.moveText(d,h);break;case"copy":d=t.moveText(d,h,!0)}else{var n=i.getData("Text");d={start:h,end:t.session.insert(h,n)},t.focus(),p=null}return x(),r.preventDefault(e)}},r.addListener(b,"dragstart",this.onDragStart.bind(e)),r.addListener(b,"dragend",this.onDragEnd.bind(e)),r.addListener(b,"dragenter",this.onDragEnter.bind(e)),r.addListener(b,"dragover",this.onDragOver.bind(e)),r.addListener(b,"dragleave",this.onDragLeave.bind(e)),r.addListener(b,"drop",this.onDrop.bind(e));var N=null;function A(){null==N&&(N=setTimeout((function(){null!=N&&a&&x()}),20))}function k(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function C(e){var t=["copy","copymove","all","uninitialized"],i=o.isMac?e.altKey:e.ctrlKey,n="uninitialized";try{n=e.dataTransfer.effectAllowed.toLowerCase()}catch(a){}var r="none";return i&&t.indexOf(n)>=0?r="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(n)>=0?r="move":t.indexOf(n)>=0&&(r="copy"),r}}function s(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=o.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;o.isIE&&"dragReady"==this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop());"dragWait"===this.state&&(s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition())))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var r=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in r&&(r.unselectable="on"),t.getDragDelay()){if(o.isWebKit)this.cancelDrag=!0,t.container.draggable=!0;this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(a.prototype),t.DragdropHandler=a})),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),r=document.createElement("script");r.src=e,i.appendChild(r),r.onload=r.onreadystatechange=function(e,i){!i&&r.readyState&&"loaded"!=r.readyState&&"complete"!=r.readyState||(r=r.onload=r.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}})),ace.define("ace/lib/event_emitter",["require","exports","module"],(function(e,t,i){var n={},r=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=r),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var a=0;a1&&(r=i[i.length-2]);var a=s[t+"Path"];return null==a?a=s.basePath:"/"==n&&(t=n=""),a&&"/"!=a.slice(-1)&&(a+="/"),a+t+n+r+this.get("suffix")},t.setModuleUrl=function(e,t){return s.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,a;Array.isArray(i)&&(a=i[0],i=i[1]);try{o=e(i)}catch(c){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var s=function(){e([i],(function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return s();r.loadScript(t.moduleUrl(i,a),s)}},c(!0),t.init=c})),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],(function(e,t,i){var n=e("../lib/event"),r=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,a=e("./default_gutter_handler").GutterHandler,s=e("./mouse_event").MouseEvent,c=e("./dragdrop_handler").DragdropHandler,l=e("../config"),u=function(e){var t=this;this.editor=e,new o(this),new a(this),new c(this);var i=function(t){(!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement()))&&window.focus(),e.focus()},s=e.renderer.getMouseEventTarget();n.addListener(s,"click",this.onMouseEvent.bind(this,"click")),n.addListener(s,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([s,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var l=e.renderer.$gutter;n.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(s,"mousedown",i),n.addListener(l,"mousedown",i),r.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",(function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),r=e.session.selection.getRange(),o=e.renderer;!r.isEmpty()&&r.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}}))};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new s(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new s(t,this.editor))},this.onMouseWheel=function(e,t){var i=new s(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new s(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,a=function(e){if(e){if(r.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new s(e,o.editor),o.$mouseMoved=!0}},c=function(e){clearInterval(u),l(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},l=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(r.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout((function(){c(e)}));o.$onCaptureMouseMove=a,o.releaseMouse=n.capture(this.editor.container,a,c);var u=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(u.prototype),l.defineOptions(u.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:r.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=u})),ace.define("ace/mouse/fold_handler",["require","exports","module"],(function(e,t,i){t.FoldHandler=function(e){e.on("click",(function(t){var i=t.getDocumentPosition(),n=e.session,r=n.getFoldAt(i.row,i.column,1);r&&(t.getAccelKey()?n.removeFold(r):n.expandFold(r),t.stop())})),e.on("gutterclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session;n.foldWidgets&&n.foldWidgets[i]&&e.session.onFoldWidgetClick(i,t),e.isFocused()||e.focus(),t.stop()}})),e.on("gutterdblclick",(function(t){if("foldWidgets"==e.renderer.$gutterLayer.getRegion(t)){var i=t.getDocumentPosition().row,n=e.session,r=n.getParentFoldRangeData(i,!0),o=r.range||r.firstRange;if(o){i=o.start.row;var a=n.getFoldAt(i,n.getLine(i).length,1);a?n.removeFold(a):(n.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}}))}})),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/event"),o=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]!=e){for(;t[t.length-1]&&t[t.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)}},this.addKeyboardHandler=function(e,t){if(e){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);-1!=i&&this.$handlers.splice(i,1),null==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),-1==i&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return-1!=t&&(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map((function(i){return i.getStatusText&&i.getStatusText(t,e)||""})).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,a=!1,s=this.$editor.commands,c=this.$handlers.length;c--&&!((o=this.$handlers[c].handleKeyboard(this.$data,e,t,i,n))&&o.command&&((a="null"==o.command||s.exec(o.command,this.$editor,o.args,n))&&n&&-1!=e&&1!=o.passEvent&&1!=o.command.passEvent&&r.stopEvent(n),a)););return a||-1!=e||(o={command:"insertstring"},a=s.exec("insertstring",this.$editor,t)),a&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),a},this.onCommandKey=function(e,t,i){var r=n.keyCodeToString(i);this.$callKeyboardHandlers(t,r,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o})),ace.define("ace/lib/bidiutil",["require","exports","module"],(function(e,t,i){var n=0,r=0,o=!1,a=!1,s=!1,c=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],u=11,d=18,h=[d,d,d,d,d,d,d,d,d,6,5,6,8,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,5,5,5,6,8,4,4,u,u,u,4,4,4,4,4,10,9,10,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,d,d,d,d,d,d,5,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,9,4,u,u,u,u,4,4,4,4,0,4,4,d,4,4,u,u,2,2,4,0,4,4,4,2,0,4,4,4,4,4],p=[8,8,8,8,8,8,8,8,8,8,8,d,d,d,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,u,u,u,u,u,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8];function m(e,t,i){if(!(r=e){for(o=d+1;o=e;)o++;for(s=d,c=o-1;s=t.length||2!=(c=i[r-1])&&3!=c||2!=(l=t[r+1])&&3!=l?4:(o&&(l=3),l==c?l:4);case 10:return 2==(c=r>0?i[r-1]:5)&&r+10&&2==i[r-1])return 2;if(o)return 4;for(p=r+1,h=t.length;p=1425&&f<=2303||64286==f;if(c=t[p],g&&(1==c||7==c))return 1}return r<1||5==(c=t[r-1])?4:i[r-1];case 5:return o=!1,a=!0,n;case 6:return s=!0,4;case 13:case 14:case 16:case 17:case 15:o=!1;case d:return 4}}function g(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?0:h[t]:5==i?/[\u0591-\u05f4]/.test(e)?1:0:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?12:/[\u0660-\u0669\u066b-\u066c]/.test(e)?3:1642==t?u:/[\u06f0-\u06f9]/.test(e)?2:7:32==i&&t<=8287?p[255&t]:254==i&&t>=65136?7:4}t.L=0,t.R=1,t.EN=2,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,u){if(e.length<2)return{};var h=e.split(""),p=new Array(h.length),_=new Array(h.length),b=[];n=u?1:0,function(e,t,i,u){var d=n?l:c,h=null,p=null,m=null,_=0,b=null,v=-1,y=null,w=null,x=[];if(!u)for(y=0,u=[];y0)if(16==b){for(y=v;y-1){for(y=v;y=0&&8==u[N];N--)t[N]=n}}(h,b,h.length,i);for(var v=0;v7&&i[v]<13||4===i[v]||i[v]===d)?b[v]=t.ON_R:v>0&&"ل"===h[v-1]&&/\u0622|\u0623|\u0625|\u0627/.test(h[v])&&(b[v-1]=b[v]=t.R_H,v++);h[h.length-1]===t.DOT&&(b[h.length-1]=t.B);for(v=0;v=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,r=0;0===e&&i[t]%2!=0&&t++;for(var o=0;o=l&&ri+a/2;){if(i+=a,r===o.length-1){a=0;break}a=this.charWidths[o[++r]]}return r>0&&o[r-1]%2!=0&&o[r]%2==0?(e0&&o[r-1]%2==0&&o[r]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[r]:this.bidiMap.logicalFromVisual[r-1]):this.isRtlDir&&r===o.length-1&&0===a&&o[r-1]%2==0||!this.isRtlDir&&0===r&&o[r]%2!=0?t=1+this.bidiMap.logicalFromVisual[r]:(r>0&&o[r-1]%2!=0&&0!==a&&r--,t=this.bidiMap.logicalFromVisual[r]),t+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s})),ace.define("ace/range",["require","exports","module"],(function(e,t,i){var n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return 1==(t=this.compare(i.row,i.column))?1==(t=this.compare(n.row,n.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(n.row,n.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?a.fromPoints(t,t):this.isBackwards()?a.fromPoints(t,e):a.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,r=this.session.getFoldLine(n);return r?(n=r.start.row,i=r.end.row):i=n,!0===t?new a(n,0,i,this.session.getLine(i).length):new a(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,r=e.column+t;return i<0&&(n=e.column-t,r=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,r).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(e,t,1);if(r)this.moveCursorTo(r.end.row,r.end.column);else{if(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length)return this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(o)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)}},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(r.lastIndex=0;(t=e[i])&&!r.test(t);)if(r.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return r.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),r=this.session.getFoldAt(e,t,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(t==i.length){var o=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=r.stringReverse(n),a=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-a)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(r.charAt(t))&&r.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return a.fromPoints(t,i)}catch(n){return a.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=a.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(s.prototype),t.Selection=s})),ace.define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,i){var n=e("./config"),r=2e3,o=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var i=this.states[t],n=[],r=0,o=this.matchMappings[t]={defaultToken:"text"},a="g",s=[],c=0;c1?this.$applyToken:l.token),d>1&&(/\\\d/.test(l.regex)?u=l.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+r+1)})):(d=1,u=this.removeCapturingGroups(l.regex)),l.splitRegex||"string"==typeof l.token||s.push(l)),o[r]=c,r+=d,n.push(u),l.onMatch||(l.onMatch=null)}}n.length||(o[0]=0,n.push("$")),s.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,a)}),this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",a)}};(function(){this.$setMaxTokenCount=function(e){r=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],r=0,o=i.length;ru){var _=e.substring(u,g-f.length);h.type==p?h.value+=_:(h.type&&l.push(h),h={type:p,value:_})}for(var b=0;br){for(d>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});u1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:l,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,i){var n=e("../lib/lang"),r=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],r=0;r=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)i+=e[t-=1].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(r.prototype),t.TokenIterator=r})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,i){var n,r=e("../../lib/oop"),o=e("../behaviour").Behaviour,a=e("../../token_iterator").TokenIterator,s=e("../../lib/lang"),c=["text","paren.rparen","punctuation.operator"],l=["text","paren.rparen","punctuation.operator","comment"],u={},d={'"':'"',"'":"'"},h=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,u.rangeCount!=e.multiSelect.rangeCount&&(u={rangeCount:e.multiSelect.rangeCount})),u[t])return n=u[t];n=u[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,i,n){var r=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,r,e.end.column+(r?0:1)]}},m=function(e){this.add("braces","insertion",(function(t,i,r,o,a){var c=r.getCursorPosition(),l=o.doc.getLine(c.row);if("{"==a){h(r);var u=r.getSelectionRange(),d=o.doc.getTextRange(u);if(""!==d&&"{"!==d&&r.getWrapBehavioursEnabled())return p(u,d,"{","}");if(m.isSaneInsertion(r,o))return/[\]\}\)]/.test(l[c.column])||r.inMultiSelectMode||e&&e.braces?(m.recordAutoInsert(r,o,"}"),{text:"{}",selection:[1,1]}):(m.recordMaybeInsert(r,o,"{"),{text:"{",selection:[1,1]})}else if("}"==a){if(h(r),"}"==l.substring(c.column,c.column+1))if(null!==o.$findOpeningBracket("}",{column:c.column+1,row:c.row})&&m.isAutoInsertedClosing(c,l,a))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==a||"\r\n"==a){h(r);var f="";if(m.isMaybeInsertedClosing(c,l)&&(f=s.stringRepeat("}",n.maybeInsertedBrackets),m.clearMaybeInsertedClosing()),"}"===l.substring(c.column,c.column+1)){var g=o.findMatchingBracket({row:c.row,column:c.column+1},"}");if(!g)return null;var _=this.$getIndent(o.getLine(g.row))}else{if(!f)return void m.clearMaybeInsertedClosing();_=this.$getIndent(l)}var b=_+o.getTabString();return{text:"\n"+b+"\n"+_+f,selection:[1,b.length,1,b.length]}}m.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,i,r,o){var a=r.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==a){if(h(i),"}"==r.doc.getLine(o.start.row).substring(o.end.column,o.end.column+1))return o.end.column++,o;n.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,i,n,r){if("("==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"(",")");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if(")"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket(")",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"("==o&&(h(i),")"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("brackets","insertion",(function(e,t,i,n,r){if("["==r){h(i);var o=i.getSelectionRange(),a=n.doc.getTextRange(o);if(""!==a&&i.getWrapBehavioursEnabled())return p(o,a,"[","]");if(m.isSaneInsertion(i,n))return m.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==r){h(i);var s=i.getCursorPosition(),c=n.doc.getLine(s.row);if("]"==c.substring(s.column,s.column+1))if(null!==n.$findOpeningBracket("]",{column:s.column+1,row:s.row})&&m.isAutoInsertedClosing(s,c,r))return m.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&"["==o&&(h(i),"]"==n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)))return r.end.column++,r})),this.add("string_dquotes","insertion",(function(e,t,i,n,r){var o=n.$mode.$quotes||d;if(1==r.length&&o[r]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(r))return;h(i);var a=r,s=i.getSelectionRange(),c=n.doc.getTextRange(s);if(!(""===c||1==c.length&&o[c])&&i.getWrapBehavioursEnabled())return p(s,c,a,a);if(!c){var l=i.getCursorPosition(),u=n.doc.getLine(l.row),m=u.substring(l.column-1,l.column),f=u.substring(l.column,l.column+1),g=n.getTokenAt(l.row,l.column),_=n.getTokenAt(l.row,l.column+1);if("\\"==m&&g&&/escape/.test(g.type))return null;var b,v=g&&/string|escape/.test(g.type),y=!_||/string|escape/.test(_.type);if(f==a)(b=v!==y)&&/string\.end/.test(_.type)&&(b=!1);else{if(v&&!y)return null;if(v&&y)return null;var w=n.$mode.tokenRe;w.lastIndex=0;var x=w.test(m);w.lastIndex=0;var N=w.test(m);if(x||N)return null;if(f&&!/[\s;,.})\]\\]/.test(f))return null;b=!0}return{text:b?a+a:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,i,n,r){var o=n.doc.getTextRange(r);if(!r.isMultiLine()&&('"'==o||"'"==o)&&(h(i),n.doc.getLine(r.start.row).substring(r.start.column+1,r.start.column+2)==o))return r.end.column++,r}))};m.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new a(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",c)){var r=new a(t,i.row,i.column+1);if(!this.$matchTokenType(r.getCurrentToken()||"text",c))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",l)},m.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},m.recordAutoInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=r.row,n.autoInsertedLineEnd=i+o.substr(r.column),n.autoInsertedBrackets++},m.recordMaybeInsert=function(e,t,i){var r=e.getCursorPosition(),o=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=r.row,n.maybeInsertedLineStart=o.substr(0,r.column)+i,n.maybeInsertedLineEnd=o.substr(r.column),n.maybeInsertedBrackets++},m.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},m.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},m.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},m.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},r.inherits(m,o),t.CstyleBehaviour=m})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,i){t.packages={},function(e){var i=/\w{4}/g;for(var n in e)t.packages[n]=e[n].replace(i,"\\u$&")}({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})})),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../tokenizer").Tokenizer,r=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,a=e("../unicode"),s=e("../lib/lang"),c=e("../token_iterator").TokenIterator,l=e("../range").Range,u=function(){this.HighlightRules=r};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){var r=t.doc,o=!0,a=!0,c=1/0,l=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))f=this.lineCommentStart.map(s.escapeRegExp).join("|"),p=this.lineCommentStart[0];else f=s.escapeRegExp(this.lineCommentStart),p=this.lineCommentStart;f=new RegExp("^(\\s*)(?:"+f+") ?"),u=t.getUseSoftTabs();b=function(e,t){var i=e.match(f);if(i){var n=i[1].length,o=i[0].length;h(e,n,o)||" "!=i[0][o-1]||o--,r.removeInLine(t,n,o)}};var d=p+" ",h=(_=function(e,t){o&&!/\S/.test(e)||(h(e,c,c)?r.insertInLine({row:t,column:c},d):r.insertInLine({row:t,column:c},p))},v=function(e,t){return f.test(e)},function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%l!=0)return!1;for(n=0;" "==e.charAt(i++);)n++;return l>2?n%l!=l-1:n%l==0})}else{if(!this.blockComment)return!1;var p=this.blockComment.start,m=this.blockComment.end,f=new RegExp("^(\\s*)(?:"+s.escapeRegExp(p)+")"),g=new RegExp("(?:"+s.escapeRegExp(m)+")\\s*$"),_=function(e,t){v(e,t)||o&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},m),r.insertInLine({row:t,column:c},p))},b=function(e,t){var i;(i=e.match(g))&&r.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(f))&&r.removeInLine(t,i[1].length,i[0].length)},v=function(e,i){if(f.test(e))return!0;for(var n=t.getTokens(i),r=0;re.length&&(w=e.length)})),c==1/0&&(c=w,o=!1,a=!1),u&&c%l!=0&&(c=Math.floor(c/l)*l),y(a?b:_)},this.toggleBlockComment=function(e,t,i,n){var r=this.blockComment;if(r){!r.start&&r[0]&&(r=r[0]);var o=(f=new c(t,n.row,n.column)).getCurrentToken();t.selection;var a,s,u=t.selection.toOrientedRange();if(o&&/comment/.test(o.type)){for(var d,h;o&&/comment/.test(o.type);){if(-1!=(g=o.value.indexOf(r.start))){var p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;d=new l(p,m,p,m+r.start.length);break}o=f.stepBackward()}var f;for(o=(f=new c(t,n.row,n.column)).getCurrentToken();o&&/comment/.test(o.type);){var g;if(-1!=(g=o.value.indexOf(r.end))){p=f.getCurrentTokenRow(),m=f.getCurrentTokenColumn()+g;h=new l(p,m,p,m+r.end.length);break}o=f.stepForward()}h&&t.remove(h),d&&(t.remove(d),a=d.start.row,s=-r.start.length)}else s=r.start.length,a=i.start.row,t.insert(i.end,r.end),t.insert(i.start,r.start);u.start.row==a&&(u.start.column+=s),u.end.row==a&&(u.end.column+=s),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var i=function(t,i,n){var r="insert"==t.action,o=(r?1:-1)*(t.end.row-t.start.row),a=(r?1:-1)*(t.end.column-t.start.column),s=t.start,c=r?s:t.end;if(e(i,s,n))return{row:i.row,column:i.column};if(e(c,i,!n))return{row:i.row+o,column:i.column+(i.row==c.row?a:0)};return{row:s.row,column:s.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)})),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,i){var n=e("./lib/oop"),r=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,a=e("./range").Range,s=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new a(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new s(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return null==t&&(t=n.length),{row:e,column:t=Math.min(Math.max(t,0),n.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0;(e=Math.min(Math.max(e,0),this.getLength()))0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof a||(e=a.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),r(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,r=e.start.row,o=e.start.column,a=0,s=0;;){a=s,s+=t-1;var c=i.slice(a,s);if(s>n){e.lines=c,e.start.row=r+a,e.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(r+a,o),end:this.pos(r+s,o=0),action:e.action,lines:c},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,r=t||0,o=i.length;r20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,r),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang");e("./lib/oop");var r=e("./range").Range,o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var a=o.firstRow,s=o.lastRow,c=a;c<=s;c++){var l=this.cache[c];null==l&&((l=n.getMatchOffsets(i.getLine(c),this.regExp)).length>this.MAX_RANGES&&(l=l.slice(0,this.MAX_RANGES)),l=l.map((function(e){return new r(c,e.offset,c,e.offset+e.length)})),this.cache[c]=l.length?l:"");for(var u=l.length;u--;)t.drawSingleLineMarker(e,l[u].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o})),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range;function r(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new n(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,r,o=0,a=this.folds,s=!0;null==t&&(t=this.end.row,i=this.end.column);for(var c=0;c0)){var c=n(e,a.start);return 0===s?t&&0!==c?-o-2:o:c>0||0===c&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){for(var e,t=[],i=this.ranges,r=(i=i.sort((function(e,t){return n(e.start,t.start)})))[0],o=1;o=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(l.start.row==n&&l.start.column>=t.column&&(l.start.column==t.column&&this.$insertRight||(l.start.column+=o,l.start.row+=r)),l.end.row==n&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&sl.start.column&&l.end.column==a[s+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=r}}}if(0!=r&&s=e)return r;if(r.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n=e)return r}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,r=0;r=t){s=e?n-=t-s:n=0);break}a>=e&&(n-=s>=e?a-s:a-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var i,n=this.$foldData,a=!1;e instanceof o?i=e:(i=new o(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(i.range);var s=i.start.row,c=i.start.column,l=i.end.row,u=i.end.column;if(!(s0&&(this.removeFolds(p),p.forEach((function(e){i.addSubFold(e)})));for(var m=0;m0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var i,r;if(null==e?(i=new n(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new n(e,0,e,this.getLine(e).length):"row"in e?n.fromPoints(e,e):e,r=this.getFoldsInRangeList(i),t)this.removeFolds(r);else for(var o=r;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,r){null==n&&(n=e.start.row),null==r&&(r=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,a="";return e.walk((function(e,t,i,s){if(!(tu)break}while(o&&c.test(o.type));o=r.stepBackward()}else o=r.getCurrentToken();return l.end.row=r.getCurrentTokenRow(),l.end.column=r.getCurrentTokenColumn()+o.value.length-2,l}},this.foldAll=function(e,t,i){null==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength();for(var r=e=e||0;r=e){r=o.end.row;try{var a=this.addFold("...",o);a&&(a.collapseChildren=i)}catch(s){}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=e){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){this.$foldMode!=e&&(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),e&&"manual"!=this.$foldStyle?(this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)):this.foldWidgets=null)},this.getParentFoldRangeData=function(e,t){var i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,r=e-1;r>=0;){var o=i[r];if(null==o&&(o=i[r]=this.getFoldWidget(r)),"start"==o){var a=this.getFoldWidgetRange(r);if(n||(n=a),a&&a.end.row>=e)break}r--}return{range:-1!==r&&a,firstRange:n}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),r="end"===i?-1:1,o=this.getFoldAt(e,-1===r?0:n.length,r);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var a=this.getFoldWidgetRange(e,!0);if(a&&!a.isMultiLine()&&(o=this.getFoldAt(a.start.row,a.start.column,1))&&a.isEqual(o.range))return this.removeFold(o),o;if(t.siblings){var s=this.getParentFoldRangeData(e);if(s.range)var c=s.range.start.row+1,l=s.range.end.row;this.foldAll(c,l,t.all?1e4:0)}else t.children?(l=a?a.end.row:this.getLength(),this.foldAll(e+1,l,t.all?1e4:0)):a&&(t.all&&(a.collapseChildren=1e4),this.addFold("...",a));return a}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var r=this.getFoldAt(t,this.getLine(t).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,i){var n=e("../token_iterator").TokenIterator,r=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,o=i.charAt(e.column-1),a=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(a||(o=i.charAt(e.column),e={row:e.row,column:e.column+1},a=o&&o.match(/([\(\[\{])|([\)\]\}])/),n=!1),!a)return null;if(a[1]){if(!(s=this.$findClosingBracket(a[1],e)))return null;t=r.fromPoints(e,s),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var s;if(!(s=this.$findOpeningBracket(a[2],e)))return null;t=r.fromPoints(s,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn()-2,l=s.value;;){for(;c>=0;){var u=l.charAt(c);if(u==r){if(0==(o-=1))return{row:a.getCurrentTokenRow(),column:c+a.getCurrentTokenColumn()}}else u==e&&(o+=1);c-=1}do{s=a.stepBackward()}while(s&&!i.test(s.type));if(null==s)break;c=(l=s.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var r=this.$brackets[e],o=1,a=new n(this,t.row,t.column),s=a.getCurrentToken();if(s||(s=a.stepForward()),s){i||(i=new RegExp("(\\.?"+s.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var c=t.column-a.getCurrentTokenColumn();;){for(var l=s.value,u=l.length;ci&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var r=i+n>>1,o=e[r];if(t>o)i=r+1;else{if(!(t=t);o++);return(i=n[o])?(i.index=o,i.start=r-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=r.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?r.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var r=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))r=/\s/;else r=this.nonTokenRe;var o=t;if(o>0){do{o--}while(o>=0&&i.charAt(o).match(r));o++}for(var a=t;ae&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,r=0,o=this.$foldData[r],a=o?o.start.row:1/0,s=t.length,c=0;ca){if((c=o.end.row+1)>=s)break;a=(o=this.$foldData[r++])?o.start.row:1/0}null==i[c]&&(i[c]=this.$getStringScreenWidth(t[c])[0]),i[c]>n&&(n=i[c])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=e.length-1;-1!=n;n--){var r=e[n];"doc"==r.group?(this.doc.revertDeltas(r.deltas),i=this.$getUndoSelection(r.deltas,!0,i)):r.deltas.forEach((function(e){this.addFolds(e.folds)}),this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=l),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=l)),a&&o.start.row>=e.end.row&&(o.start.row+=a,o.end.row+=a)}if(o.end=this.insert(o.start,n),r.length){var s=e.start,c=o.start,l=(a=c.row-s.row,c.column-s.column);this.addFolds(r.map((function(e){return(e=e.clone()).start.row==s.row&&(e.start.column+=l),e.end.row==s.row&&(e.end.column+=l),e.start.row+=a,e.end.row+=a,e})))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new u(0,0,0,0),n=this.getTabSize(),r=t.start.row;r<=t.end.row;++r){var o=this.getLine(r);i.start.row=r,i.end.row=r;for(var a=0;a0){var r;if((r=this.getRowFoldEnd(t+i))>this.doc.getLength()-1)return 0;n=r-t}else{e=this.$clipRowToDocument(e);n=(t=this.$clipRowToDocument(t))-e+1}var o=new u(e,0,t,Number.MAX_VALUE),a=this.getFoldsInRange(o).map((function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e})),s=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,s),a.length&&this.addFolds(a),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,r=e.end,o=n.row,a=r.row,s=a-o,c=null;if(this.$updating=!0,0!=s)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,s);var l=this.$foldData;c=this.getFoldsInRange(e),this.removeFolds(c);var u=0;if(f=this.getFoldLine(r.row)){f.addRemoveChars(r.row,r.column,n.column-r.column),f.shiftRow(-s);var d=this.getFoldLine(o);d&&d!==f&&(d.merge(f),f=d),u=l.indexOf(f)+1}for(;u=r.row&&f.shiftRow(-s)}a=o}else{var h=Array(s);h.unshift(o,0);var p=t?this.$wrapData:this.$rowLengthCache;p.splice.apply(p,h);l=this.$foldData,u=0;if(f=this.getFoldLine(o)){var m=f.range.compareInside(n.row,n.column);0==m?(f=f.split(n.row,n.column))&&(f.shiftRow(s),f.addRemoveChars(a,0,r.column-n.column)):-1==m&&(f.addRemoveChars(o,0,r.column-n.column),f.shiftRow(s)),u=l.indexOf(f)+1}for(;u=o&&f.shiftRow(s)}}else s=Math.abs(e.start.column-e.end.column),"remove"===i&&(c=this.getFoldsInRange(e),this.removeFolds(c),s=-s),(f=this.getFoldLine(o))&&f.addRemoveChars(o,n.column,s);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(o,a):this.$updateRowLengthCache(o,a),c},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(i,n){var r,o,a=this.doc.getAllLines(),s=this.getTabSize(),c=this.$wrapData,l=this.$wrapLimit,u=i;for(n=Math.min(n,a.length-1);u<=n;)(o=this.getFoldLine(u,o))?(r=[],o.walk(function(i,n,o,s){var c;if(null!=i){(c=this.$getDisplayTokens(i,r.length))[0]=e;for(var l=1;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}this.$computeWrapSplits=function(i,n,r){if(0==i.length)return[];var o=[],a=i.length,s=0,c=0,l=this.$wrapAsCode,u=this.$indentedSoftWrap,d=n<=Math.max(2*r,8)||!1===u?0:Math.floor(n/2);function h(e){var t=i.slice(s,e),n=t.length;t.join("").replace(/12/g,(function(){n-=1})).replace(/2/g,(function(){n-=1})),o.length||(p=function(){var e=0;if(0===d)return e;if(u)for(var t=0;tn-p;){var m=s+n-p;if(i[m-1]>=10&&i[m]>=10)h(m);else if(i[m]!=e&&i[m]!=t){for(var f=Math.max(m-(n-(n>>2)),s-1);m>f&&i[m]f&&i[m]f&&9==i[m];)m--}else for(;m>f&&i[m]<10;)m--;m>f?h(++m):(2==i[m=s+n]&&m--,h(m-p))}else{for(;m!=s-1&&i[m]!=e;m--);if(m>s){h(m);continue}for(m=s+n;m39&&a<48||a>57&&a<64?r.push(9):a>=4352&&i(a)?r.push(1,2):r.push(1)}return r},this.$getStringScreenWidth=function(e,t,n){if(0==t)return[0,0];var r,o;for(null==t&&(t=1/0),n=n||0,o=0;o=4352&&i(r)?n+=2:n+=1,!(n>t));o++);return[n,o]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0){s=l[u],o=this.$docRowCache[u];var h=e>l[d-1]}else h=!d;for(var p=this.getLength()-1,m=this.getNextFoldLine(o),f=m?m.start.row:1/0;s<=e&&!(s+(c=this.getRowLength(o))>e||o>=p);)s+=c,++o>f&&(o=m.end.row+1,f=(m=this.getNextFoldLine(o,m))?m.start.row:1/0),h&&(this.$docRowCache.push(o),this.$screenRowCache.push(s));if(m&&m.start.row<=o)n=this.getFoldDisplayLine(m),o=m.start.row;else{if(s+c<=e||o>p)return{row:p,column:this.getLine(p).length};n=this.getLine(o),m=null}var g=0,_=Math.floor(e-s);if(this.$useWrapMode){var b=this.$wrapData[o];b&&(r=b[_],_>0&&b.length&&(g=b.indent,a=b[_-1]||b[b.length-1],n=n.substring(a)))}return void 0!==i&&this.$bidiHandler.isBidiRow(s+_,o,_)&&(t=this.$bidiHandler.offsetToCol(i)),a+=this.$getStringScreenWidth(n,t-g)[1],this.$useWrapMode&&a>=r&&(a=r-1),m?m.idxToPosition(a):{row:o,column:a}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n,r=0,o=null;(n=this.getFoldAt(e,t,1))&&(e=n.start.row,t=n.start.column);var a,s=0,c=this.$docRowCache,l=this.$getRowCacheIndex(c,e),u=c.length;if(u&&l>=0){s=c[l],r=this.$screenRowCache[l];var d=e>c[u-1]}else d=!u;for(var h=this.getNextFoldLine(s),p=h?h.start.row:1/0;s=p){if((a=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(a,h))?h.start.row:1/0}else a=s+1;r+=this.getRowLength(s),s=a,d&&(this.$docRowCache.push(s),this.$screenRowCache.push(r))}var m="";h&&s>=p?(m=this.getFoldDisplayLine(h,e,t),o=h.start.row):(m=this.getLine(e).substring(0,t),o=e);var f=0;if(this.$useWrapMode){var g=this.$wrapData[o];if(g){for(var _=0;m.length>=g[_];)r++,_++;m=m.substring(g[_-1]||0,m.length),f=_>0?g.indent:0}}return{row:r,column:f+this.$getStringScreenWidth(m)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,r=(s=0,(t=this.$foldData[s++])?t.start.row:1/0);nr&&(n=t.end.row+1,r=(t=this.$foldData[s++])?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,s=0;si);o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=i}.call(m.prototype),e("./edit_session/folding").Folding.call(m.prototype),e("./edit_session/bracket_match").BracketMatch.call(m.prototype),a.defineOptions(m.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=m})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){var n=e("./lib/lang"),r=e("./lib/oop"),o=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return r.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach((function(e,i,r,a){return n=new o(e,i,r,a),!(i==a&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)})),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,r=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),a=[],s=t.re;if(t.$isMultiLine){var c,l=s.length,u=r.length-l;e:for(var d=s.offset||0;d<=u;d++){for(var h=0;hf||(a.push(c=new o(d,f,d+l-1,g)),l>2&&(d=d+l-2))}}else for(var _=0;_w&&a[h].end.row==i.end.row;)h--;for(a=a.slice(_,h+1),_=0,h=a.length;_=s;i--)if(d(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=c,s=a.row;i>=s;i--)if(d(i,Number.MAX_VALUE,e))return}};else l=function(e){var i=a.row;if(!d(i,a.column,e)){for(i+=1;i<=c;i++)if(d(i,0,e))return;if(0!=t.wrap)for(i=s,c=a.row;i<=c;i++)if(d(i,0,e))return}};if(t.$isMultiLine)var u=i.length,d=function(t,r,o){var a=n?t-u+1:t;if(!(a<0)){var s=e.getLine(a),c=s.search(i[0]);if(!(!n&&cr))return!!o(a,c,a+u-1,d)||void 0}}};else if(n)d=function(t,n,r){var o,a=e.getLine(t),s=[],c=0;for(i.lastIndex=0;o=i.exec(a);){var l=o[0].length;if(c=o.index,!l){if(c>=a.length)break;i.lastIndex=c+=1}if(o.index+l>n)break;s.push(o.index,l)}for(var u=s.length-1;u>=0;u-=2){var d=s[u-1];if(r(t,d,t,d+(l=s[u])))return!0}};else d=function(t,n,r){var o,a=e.getLine(t),s=n;for(i.lastIndex=n;o=i.exec(a);){var c=o[0].length;if(r(t,s=o.index,t,s+c))return!0;if(!c&&(i.lastIndex=s+=1,s>=a.length))return!1}};return{forEach:l}}}).call(a.prototype),t.Search=a})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){var n=e("../lib/keys"),r=e("../lib/useragent"),o=n.KEY_MODS;function a(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){a.call(this,e,t),this.$singleCommand=!1}s.prototype=a.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var r in n){var o=n[r];if(o==e)delete n[r];else if(Array.isArray(o)){var a=o.indexOf(e);-1!=a&&(o.splice(a,1),1==o.length&&(n[r]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(null==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var n="";if(-1!=e.indexOf(" ")){var r=e.split(/\s+/);e=r.pop(),r.forEach((function(e){var t=this.parseKeys(e),i=o[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")}),this),n+=" "}var a=this.parseKeys(e),s=o[a.hashId]+a.key;this._addCommandToBinding(n+s,t,i)}),this)},this._addCommandToBinding=function(t,i,n){var r,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?-1!=(r=o[t].indexOf(i))&&o[t].splice(r,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var a=o[t];for(r=0;rn)break}a.splice(r,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),i=t.pop(),r=n[i];if(n.FUNCTION_KEYS[r])i=n.FUNCTION_KEYS[r].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var o=0,a=t.length;a--;){var s=n.KEY_MODS[t[a]];if(null==s)return"undefined"!=typeof console&&console.error("invalid modifier "+t[a]+" in "+e),!1;o|=s}return{key:i,hashId:o}},this.findKeyCommand=function(e,t){var i=o[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var r=o[t]+i,a=this.commandKeyBinding[r];return e.$keyChain&&(e.$keyChain+=" "+r,a=this.commandKeyBinding[e.$keyChain]||a),!a||"chainKeys"!=a&&"chainKeys"!=a[a.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-r.length-1)),{command:a}):(e.$keyChain=e.$keyChain||r,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(a.prototype),t.HashHandler=a,t.MultiHashHandler=s})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,a=function(e,t){r.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.command.exec(e.editor,e.args||{})}))};n.inherits(a,r),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var r={editor:t,command:e,args:i};return r.returnValue=this._emit("exec",r),this._signal("afterExec",r),!1!==r.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(a.prototype),t.CommandManager=a})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,i){var n=e("../lib/lang"),r=e("../config"),o=e("../range").Range;function a(e,t){return{win:e,mac:t}}t.commands=[{name:"showSettingsMenu",bindKey:a("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",bindKey:a("Alt-E","F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("ace/ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:a("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:a(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:a("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:a("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:a("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:a("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:a("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:a("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:a("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:a("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:a("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:a("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:a("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:a("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:a("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:a("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:a(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:a(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:a("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:a("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:a("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:a("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:a("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:a("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:a("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:a("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:a("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:a("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(n.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:a(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:a(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),r=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),a=e.session.doc.getLine(i.row).length,s=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,c=e.session.doc.getLine(i.row),l=i.row+1;l<=r.row+1;l++){var u=n.stringTrimLeft(n.stringTrimRight(e.session.doc.getLine(l)));0!==u.length&&(u=" "+u),c+=u}r.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+s)):(a=e.session.doc.getLine(i.row).length>a?a+1:a,e.selection.moveCursorTo(i.row,a))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:a(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,r=[];n.length<1&&(n=[e.selection.getRange()]);for(var a=0;a0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),r=this.renderer.layerConfig;(n.start.row>=r.lastRow||n.end.row<=r.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var r=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(r)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;_.loadModule(["keybinding",e],(function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||r.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new p(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new b(e.session,i.row,i.column),r=n.getCurrentToken();if(!r||!/\b(?:tag-open|tag-name)/.test(r.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1==r.type.indexOf("tag-open")||(r=n.stepForward())){var o=r.value,a=0,s=n.stepBackward();if("<"==s.value)do{s=r,(r=n.stepForward())&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"=0);else{do{r=s,s=n.stepBackward(),r&&r.value===o&&-1!==r.type.indexOf("tag-name")&&("<"===s.value?a++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new p(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var r=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(r),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,r=e.getLine(t.start.row),o=r.length,a=r.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(a)||n<=o&&/[\w\d]$/.test(a)))if(a=r.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(a))return this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:a})}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var r=n.length;r--;){var o=n[r];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[r])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),r=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(r.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&-1==e.indexOf("\n")){(a=new p.fromPoints(r,r)).end.column+=e.length,this.session.remove(a)}}else{var a=this.getSelectionRange();r=this.session.remove(a),this.clearSelection()}if("\n"==e||"\r\n"==e){var s=i.getLine(r.row);if(r.column>s.search(/\S|$/)){var c=s.substr(r.column).search(/\S|$/);i.doc.removeInLine(r.row,r.column,r.column+c)}}this.clearSelection();var l=r.column,u=i.getState(r.row),d=(s=i.getLine(r.row),n.checkOutdent(u,s,e));if(i.insert(r,e),o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new p(r.row,l+o.selection[0],r.row,l+o.selection[1])):this.selection.setSelectionRange(new p(r.row+o.selection[0],o.selection[1],r.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var h=n.getNextLineIndent(u,s.slice(0,r.column),i.getTabString());i.insert({row:r.row+1,column:0},h)}d&&n.autoOutdent(u,i,r.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),r=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var a=i.getLine(t.end.row);/^\s+$/.test(a)&&(t.end.column=a.length)}}r&&(t=r)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,r=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var r=new p(0,0,0,0);for(n=e.first;n<=e.last;n++){var o=t.getLine(n);r.start.row=n,r.end.row=n,r.end.column=o.length,t.replace(r,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t)return{value:r[0],start:r.index,end:r.index+r[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new p(t,i-1,t,i),r=this.session.getTextRange(n);if(!isNaN(parseFloat(r))&&isFinite(r)){var o=this.getNumberAt(t,i);if(o){var a=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,s=o.start+o.value.length-a,c=parseFloat(o.value);c*=Math.pow(10,s),a!==o.end&&ip+1)break;p=m.last}for(u--,s=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(d=u+1);d<=u;)a[d].moveBy(s,0),d++;t||(s=0),c+=s}r.fromOrientedRange(r.ranges[0]),r.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,r=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(r,0)})):!1===t&&(this.selection.moveCursorBy(r,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,r*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new b(this.session,i.row,i.column),r=n.getCurrentToken(),o=r||n.stepForward();if(o){var a,s,c=!1,l={},u=i.column-o.start,d={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;u=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(r),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return null!==(t=this.$search.replace(i,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var r=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(r)||this.$search.$options.needle)||(r=this.session.getWordRange(r.start.row,r.start.column),e=this.session.getTextRange(r)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:r});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?r.start=r.end:r.end=r.start,void this.selection.setRange(r))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var r=this.$scrollAnchor;r.style.cssText="position:absolute",this.container.insertBefore(r,this.container.firstChild);var o=this.on("changeSelection",(function(){n=!0})),a=this.renderer.on("beforeRender",(function(){n&&(t=i.renderer.container.getBoundingClientRect())})),s=this.renderer.on("afterRender",(function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,a=e.layerConfig,s=o.top-a.offset;null!=(n=o.top>=0&&s+t.top<0||!(o.topwindow.innerHeight)&&null)&&(r.style.top=s+"px",r.style.left=o.left+"px",r.style.height=a.lineHeight+"px",r.scrollIntoView(n)),n=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",s),this.renderer.off("beforeRender",a))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,r.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(v.prototype),_.defineOptions(v.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=v})),ace.define("ace/undomanager",["require","exports","module"],(function(e,t,i){var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n})),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/dom"),r=e("../lib/oop"),o=e("../lib/lang"),a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){r.implement(this,a),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;ta&&(f=o.end.row+1,a=(o=t.getNextFoldLine(f,o))?o.start.row:1/0),f>r){for(;this.$cells.length>m+1;)p=this.$cells.pop(),this.element.removeChild(p.element);break}(p=this.$cells[++m])||((p={element:null,textNode:null,foldWidget:null}).element=n.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[m]=p);var g="ace_gutter-cell ";if(c[f]&&(g+=c[f]),l[f]&&(g+=l[f]),this.$annotations[f]&&(g+=this.$annotations[f].className),p.element.className!=g&&(p.element.className=g),(b=t.getRowLength(f)*e.lineHeight+"px")!=p.element.style.height&&(p.element.style.height=b),s){var _=s[f];null==_&&(_=s[f]=t.getFoldWidget(f))}if(_){p.foldWidget||(p.foldWidget=n.createElement("span"),p.element.appendChild(p.foldWidget));g="ace_fold-widget ace_"+_;"start"==_&&f==a&&fi.right-t.right?"foldWidgets":void 0}}).call(s.prototype),t.Gutter=s})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,i){var n=e("../range").Range,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var r=n.range.clipRows(e.firstRow,e.lastRow);if(!r.isEmpty())if(r=r.toScreenRange(this.session),n.renderer){var o=this.$getTop(r.start.row,e),a=this.$padding+(this.session.$bidiHandler.isBidiRow(r.start.row)?this.session.$bidiHandler.getPosLeft(r.start.column):r.start.column*e.characterWidth);n.renderer(t,r,a,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,r,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,r,n.clazz,e):r.isMultiLine()?"text"==n.type?this.drawTextMarker(t,r,n.clazz,e):this.drawMultiLineMarker(t,r,n.clazz,e):this.session.$bidiHandler.isBidiRow(r.start.row)?this.drawBidiSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,r,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(e,t,i,r,o){for(var a=this.session,s=t.start.row,c=t.end.row,l=s,u=0,d=0,h=a.getScreenLastRowColumn(l),p=null,m=new n(l,t.start.column,l,d);l<=c;l++)m.start.row=m.end.row=l,m.start.column=l==s?t.start.column:a.getRowWrapIndent(l),m.end.column=h,u=d,d=h,h=l+1h?4:0)|(l==c?8:0)),this.session.$bidiHandler.isBidiRow(l)?this.drawBidiSingleLineMarker(e,m,p,r,l==c?0:1,o):this.drawSingleLineMarker(e,m,p,r,l==c?0:1,o)},this.drawMultiLineMarker=function(e,t,i,n,r){var o,a,s,c=this.$padding;(r=r||"",this.session.$bidiHandler.isBidiRow(t.start.row))?((l=t.clone()).end.row=l.start.row,l.end.column=this.session.getLine(l.start.row).length,this.drawBidiSingleLineMarker(e,l,i+" ace_br1 ace_start",n,null,r)):(o=n.lineHeight,a=this.$getTop(t.start.row,n),s=c+t.start.column*n.characterWidth,e.push("
    "));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var l;(l=t.clone()).start.row=l.end.row,l.start.column=0,this.drawBidiSingleLineMarker(e,l,i+" ace_br12",n,null,r)}else{var u=t.end.column*n.characterWidth;o=n.lineHeight,a=this.$getTop(t.end.row,n),e.push("
    ")}if(!((o=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var d=(t.start.column?1:0)|(t.end.column?0:8);e.push("
    ")}},this.drawSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=(t.end.column+(r||0)-t.start.column)*n.characterWidth,c=this.$getTop(t.start.row,n),l=this.$padding+t.start.column*n.characterWidth;e.push("
    ")},this.drawBidiSingleLineMarker=function(e,t,i,n,r,o){var a=n.lineHeight,s=this.$getTop(t.start.row,n),c=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(t){e.push("
    ")}))},this.drawFullLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;t.start.row!=t.end.row&&(a+=this.$getTop(t.end.row,n)-o),e.push("
    ")},this.drawScreenLineMarker=function(e,t,i,n,r){var o=this.$getTop(t.start.row,n),a=n.lineHeight;e.push("
    ")}}).call(o.prototype),t.Marker=o})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang");e("../lib/useragent");var a=e("../lib/event_emitter").EventEmitter,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",r="",a="";if(this.showInvisibles){n+=" ace_invisible",r=" ace_invisible_space",a=" ace_invisible_tab";var s=o.stringRepeat(this.SPACE_CHAR,this.tabSize),c=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else c=s=o.stringRepeat(" ",this.tabSize);this.$tabStrings[" "]=""+s+"",this.$tabStrings["\t"]=""+c+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),r=Math.min(i,e.lastRow),o=this.element.childNodes,a=0,s=e.firstRow;sl&&(s=c.end.row+1,l=(c=this.session.getNextFoldLine(s,c))?c.start.row:1/0),!(s>r);){var u=o[a++];if(u){var d=[];this.$renderLine(d,s,!this.$useLineGroups(),s==l&&c),u.style.height=e.lineHeight*this.session.getRowLength(s)+"px",u.innerHTML=d.join("")}s++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){r=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(r)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,a=this.session.getNextFoldLine(o),s=a?a.start.row:1/0;o>s&&(o=a.end.row+1,s=(a=this.session.getNextFoldLine(o,a))?a.start.row:1/0),!(o>i);){var c=r.createElement("div"),l=[];if(this.$renderLine(l,o,!1,o==s&&a),c.innerHTML=l.join(""),this.$useLineGroups())c.className="ace_line_group",n.appendChild(c),c.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;c.firstChild;)n.appendChild(c.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,r=i,o=this.session.getNextFoldLine(r),a=o?o.start.row:1/0;r>a&&(r=o.end.row+1,a=(o=this.session.getNextFoldLine(r,o))?o.start.row:1/0),!(r>n);)this.$useLineGroups()&&t.push("
    "),this.$renderLine(t,r,!1,r==a&&o),this.$useLineGroups()&&t.push("
    "),r++;this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var r=this,a=n.replace(/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(e,i,n,a,s){if(i)return r.showInvisibles?""+o.stringRepeat(r.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var c=r.session.getScreenTabSize(t+a);return t+=c-1,r.$tabStrings[c]}if(" "==e){var l=r.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",u=r.showInvisibles?r.SPACE_CHAR:"";return t+=1,""+u+""}return n?""+r.SPACE_CHAR+"":(t+=1,""+e+"")}));if(this.$textToken[i.type])e.push(a);else{var s="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var r=0,a=0,s=i[0],c=0,l=0;l=s;)c=this.$renderToken(e,c,u,d.substring(0,s-r)),d=d.substring(s-r),r=s,n||e.push("","
    "),e.push(o.stringRepeat(" ",i.indent)),c=0,s=i[++a]||Number.MAX_VALUE;0!=d.length&&(r+=d.length,c=this.$renderToken(e,c,u,d))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],r=n.value;this.displayIndentGuides&&(r=this.renderIndentGuide(e,r)),r&&(i=this.$renderToken(e,i,n,r));for(var o=1;o"),r.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,r,o,i):this.$renderSimpleLine(e,r)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
    ")},this.$getFoldLineTokens=function(e,t){var i=this.session,n=[];var r=i.getTokens(e);return t.walk((function(e,t,o,a,s){null!=e?n.push({type:"fold",value:e}):(s&&(r=i.getTokens(t)),r.length&&function(e,t,i){for(var r=0,o=0;o+e[r].value.lengthi-t&&(a=a.substring(0,i-t)),n.push({type:e[r].type,value:a}),o=t+a.length,r+=1);oi?n.push({type:e[r].type,value:a.substring(0,i-o)}):n.push(e[r]),o+=a.length,r+=1}}(r,a,o))}),t.end.row,this.session.getLine(t.end.row).length),n},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(s.prototype),t.Text=s})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,i){var n,r=e("../lib/dom"),o=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e==this.smoothBlinking||n||(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);i=0;for(var r=t.length;ie.height+e.offset||o.top<0)&&i>1)){var a=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(a,o,e,t[i],this.session):(a.left=o.left+"px",a.top=o.top+"px",a.width=e.characterWidth+"px",a.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var s=this.session.getOverwrite();this.$setOverwrite(s),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./lib/event"),a=e("./lib/event_emitter").EventEmitter,s=32768,c=function(e){this.element=r.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=r.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,a),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(c.prototype);var l=function(e,t){c.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=r.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(l,c),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>s?(this.coeff=s/e,e=s):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(l.prototype);var u=function(e,t){c.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(u,c),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(u.prototype),t.ScrollBar=l,t.ScrollBarV=l,t.ScrollBarH=u,t.VScrollBar=l,t.HScrollBar=u})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,i){var n=e("./lib/event"),r=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame((function(){var e;for(t.pending=!1;e=t.changes;)t.changes=0,t.onRender(e)}),this.window)}}}).call(r.prototype),t.RenderLoop=r})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/dom"),o=e("../lib/lang"),a=e("../lib/useragent"),s=e("../lib/event_emitter").EventEmitter,c=0,l=t.FontMetrics=function(e){this.el=r.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=r.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=r.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),c||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",c),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,s),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=r.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;c=t>0&&t<1?50:100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval((function(){e.checkForSizeChanges()}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(50===c){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(i){e={width:0,height:0}}var t={height:e.height,width:e.width/c}}else t={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/c};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.innerHTML=o.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(l.prototype)})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],(function(e,t,i){var n=e("./lib/oop"),r=e("./lib/dom"),o=e("./config"),a=e("./lib/useragent"),s=e("./layer/gutter").Gutter,c=e("./layer/marker").Marker,l=e("./layer/text").Text,u=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,m=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter;r.importCssString('.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}',"ace_editor.css");var g=function(e,t){var i=this;this.container=e||r.createElement("div"),this.$keepTextAreaAtCursor=!a.isOldIE,r.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=r.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=r.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=r.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var n=this.$textLayer=new l(this.content);this.canvas=n.element,this.$markerFront=new c(this.content),this.$cursorLayer=new u(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)})),this.scrollBarH.addEventListener("scroll",(function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",(function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var r=this.container;n||(n=r.clientHeight||r.scrollHeight),i||(i=r.clientWidth||r.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,o=this.$size,a={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,r|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(r|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)),o.$dirty=!i||!n,r&&this._signal("resize",a),r},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=r.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=r.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(this.$keepTextAreaAtCursor){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,r=this.lineHeight;if(t<0||t>e.height-r)n.top=n.left="0";else{var o=this.characterWidth;if(this.$composition){var a=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(a)[0]+2,r+=2}(i-=this.scrollLeft)>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=r+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-r)+"px"}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var r=this.scrollMargin;r.top=0|e,r.bottom=0|t,r.right=0|n,r.left=0|i,r.v=r.top+r.bottom,r.h=r.left+r.right,r.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-r.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}if(e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL)return this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender");if(e&this.CHANGE_SCROLL)return e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender");e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),this._signal("afterRender")}else this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var r=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,r,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength()*this.lineHeight,r=this.$getLongestLine(),o=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-r-2*this.$padding<0),a=this.$horizScroll!==o;a&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var s=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var c=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;n+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,n-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,r+2*this.$padding-t.scrollerWidth+d.right)));var h=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-n+u<0||this.scrollTop>d.top),p=s!==h;p&&(this.$vScroll=h,this.scrollBarV.setVisible(h));var m,f,g=Math.ceil(l/this.lineHeight)-1,_=Math.max(0,Math.round((this.scrollTop-c)/this.lineHeight)),b=_+g,v=this.lineHeight;_=e.screenToDocumentRow(_,0);var y=e.getFoldLine(_);y&&(_=y.start.row),m=e.documentToScreenRow(_,0),f=e.getRowLength(_)*v,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(b)*v+f,c=this.scrollTop-m*v;var w=0;return this.layerConfig.width!=r&&(w=this.CHANGE_H_SCROLL),(a||p)&&(w=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),p&&(r=this.$getLongestLine())),this.layerConfig={width:r,padding:this.$padding,firstRow:_,firstRowScreen:m,lastRow:b,lineHeight:v,characterWidth:this.characterWidth,minHeight:l,maxHeight:n,offset:c,gutterOffset:v?Math.max(0,Math.ceil((c+t.height-t.scrollerHeight)/v)):0,height:this.$size.scrollerHeight},w},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&c+a>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):c+this.$size.scrollerHeight-sr?(r=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),a=Math.round(r);return{row:o,column:a,side:r-a>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,r=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(r,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),r=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+r-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){r.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){r.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,r.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(r.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null)},this.setTheme=function(e,t){var i=this;if(this.$themeId=e,i._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)a(e);else{var n=e||this.$options.theme.initialValue;o.loadModule(["theme",n],a)}function a(n){if(i.$themeId!=e)return t&&t();if(!n||!n.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");r.importCssString(n.cssText,n.cssClass,i.container.ownerDocument),i.theme&&r.removeCssClass(i.container,i.theme.cssClass);var o="padding"in n?n.padding:"padding"in(i.theme||{})?4:i.$padding;i.$padding&&o!=i.$padding&&i.setPadding(o),i.$theme=n.cssClass,i.theme=n,r.addCssClass(i.container,n.cssClass),r.setCssClass(i.container,"ace_dark",n.isDark),i.$size&&(i.$size.width=0,i.$updateSizeAsync()),i._dispatchEvent("themeLoaded",{theme:n}),t&&t()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){r.setCssClass(this.container,e,!1!==t)},this.unsetStyle=function(e){r.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),o.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){"number"==typeof e&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){r.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight)return this.$gutterLineHighlight=r.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight);this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){this.$hScrollBarAlwaysVisible&&this.$horizScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){this.$vScrollBarAlwaysVisible&&this.$vScroll||this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){"number"==typeof e&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0,this.$scrollPastEnd!=e&&(this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g})),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],(function(e,t,i){var n=e("../lib/oop"),r=e("../lib/net"),o=e("../lib/event_emitter").EventEmitter,a=e("../config");function s(e,t){var i=function(e,t){var i=t.src;r.qualifyURL(e);try{return new Blob([i],{type:"application/javascript"})}catch(o){var n=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder);return n.append(i),n.getBlob("application/javascript")}}(e,t),n=(window.URL||window.webkitURL).createObjectURL(i);return new Worker(n)}var c=function(t,i,n,r,o){if(this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl),a.get("packaged")||!e.toUrl)r=r||a.moduleUrl(i.id,"worker");else{var c=this.$normalizePath;r=r||c(e.toUrl("ace/worker/worker.js",null,"_"));var l={};t.forEach((function(t){l[t]=c(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))}))}this.$worker=s(r,i),o&&this.send("importScripts",o),this.$worker.postMessage({init:!0,tlns:l,module:i.id,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){n.implement(this,o),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return r.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(i){console.error(i.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(c.prototype);var l=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,r=!1,s=Object.create(o),c=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){c.messageBuffer.push(e),n&&(r?setTimeout(l):l())},this.setEmitSync=function(e){r=e};var l=function(){var e=c.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&s._signal(e.event,e.data)};s.postMessage=function(e){c.onMessage({data:e})},s.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},s.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],(function(e){for(n=new e[i](s);c.messageBuffer.length;)l()}))};l.prototype=c.prototype,t.UIWorkerClient=l,t.WorkerClient=c,t.createWorker=s})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,i){var n=e("./range").Range,r=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),a=function(e,t,i,n,r,o){var a=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=r,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout((function(){a.onCursorChange()}))},this.$pos=i;var s=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=s.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,r),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var r=this.pos;r.$insertRight=!0,r.detach(),r.markerId=i.addMarker(new n(r.row,r.column,r.row,r.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)})),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),r&&(this.length+=i),r&&!this.session.$fromUndo)if("insert"===e.action)for(var a=this.others.length-1;a>=0;a--){var s={row:(c=this.others[a]).row,column:c.column+o};this.doc.insertMergedLines(s,e.lines)}else if("remove"===e.action)for(a=this.others.length-1;a>=0;a--){var c;s={row:(c=this.others[a]).row,column:c.column+o};this.doc.remove(new n(s.row,s.column,s.row,s.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,r){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),r,null,!1)};i(this.pos,this.mainClass);for(var r=this.others.length;r--;)i(this.others[r],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new n,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{i=this.getRange();var n=this.isBackwards(),o=i.start.row,a=i.end.row;if(o==a){if(n)var s=i.end,c=i.start;else s=i.start,c=i.end;return this.addRange(r.fromPoints(c,c)),void this.addRange(r.fromPoints(s,s))}var l=[],u=this.getLineRange(o,!0);u.start.column=i.start.column,l.push(u);for(var d=o+1;d1){var e=this.rangeList.ranges,t=e[e.length-1],i=r.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),o=this.session.documentToScreenPosition(this.selectionAnchor);this.rectangularRangeBlock(n,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)b--;if(b>0)for(var v=0;n[v].isEmpty();)v++;for(var y=b;y>=v;y--)n[y].isEmpty()&&n.splice(y,1)}return n}}.call(o.prototype);var h=e("./editor").Editor;function p(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",a),e.commands.addCommands(l.defaultCommands),function(e){var t=e.textInput.getElement(),i=!1;function n(t){i&&(e.renderer.setMouseCursor(""),i=!1)}s.addListener(t,"keydown",(function(t){var r=18==t.keyCode&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&r?i||(e.renderer.setMouseCursor("crosshair"),i=!0):i&&n()})),s.addListener(t,"keyup",n),s.addListener(t,"blur",n)}(e))}(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var r=t.indexOf(n);-1!=r&&t.splice(r,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(l.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(l.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,r=i&&i.keepOrder,a=1==i||i&&i.$byLines,s=this.session,c=this.selection,l=c.rangeList,u=(r?c:l).ranges;if(!u.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var d=c._eventRegistry;c._eventRegistry={};var h=new o(s);this.inVirtualSelectionMode=!0;for(var p=u.length;p--;){if(a)for(;p>0&&u[p].start.row==u[p-1].end.row;)p--;h.fromOrientedRange(u[p]),h.index=p,this.selection=s.selection=h;var m=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===m||(n=m),h.toOrientedRange(u[p])}h.detach(),this.selection=s.selection=c,this.inVirtualSelectionMode=!1,c._eventRegistry=d,c.mergeOverlappingRanges();var f=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),f&&f.from==f.to&&this.renderer.animateScrolling(f.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;na&&(a=i.column),nu?e.insert(n,c.stringRepeat(" ",o-u)):e.remove(new r(n.row,n.column,n.row,n.column-o+u)),t.start.column=t.end.column=a,t.start.row=t.end.row=n.row,t.cursor=t.end})),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var u=this.selection.getRange(),d=u.start.row,h=u.end.row,p=d==h;if(p){var m,f=this.session.getLength();do{m=this.session.getLine(h)}while(/[=:]/.test(m)&&++h0);d<0&&(d=0),h>=f&&(h=f-1)}var g=this.session.removeFullLines(d,h);g=this.$reAlignText(g,p),this.session.insert({row:d,column:0},g.join("\n")+"\n"),p||(u.start.column=0,u.end.column=g[g.length-1].length),this.selection.setRange(u)}},this.$reAlignText=function(e,t){var i,n,r,o=!0,a=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==i?(i=t[1].length,n=t[2].length,r=t[3].length,t):(i+n+r!=t[1].length+t[2].length+t[3].length&&(a=!1),i!=t[1].length&&(o=!1),i>t[1].length&&(i=t[1].length),nt[3].length&&(r=t[3].length),t):[e]})).map(t?l:o?a?function(e){return e[2]?s(i+n-e[2].length)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:l:function(e){return e[2]?s(i)+e[2]+s(r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]});function s(e){return c.stringRepeat(" ",e)}function l(e){return e[2]?s(i)+e[2]+s(n-e[2].length+r)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}}}).call(h.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=p,e("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(e){p(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../../range").Range,r=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var r=/\S/,o=e.getLine(t),a=o.search(r);if(-1!=a){for(var s=i||o.length,c=e.getLength(),l=t,u=t;++tl){var h=e.getLine(u).length;return new n(l,s,u,h)}}},this.openingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r+1},s=e.$findClosingBracket(t,a,o);if(s){var c=e.foldWidgets[s.row];return null==c&&(c=e.getFoldWidget(s.row)),"start"==c&&s.row>a.row&&(s.row--,s.column=e.getLine(s.row).length),n.fromPoints(a,s)}},this.closingBracketBlock=function(e,t,i,r,o){var a={row:i,column:r},s=e.$findOpeningBracket(t,a);if(s)return s.column++,a.column--,n.fromPoints(s,a)}}).call(r.prototype)})),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],(function(e,t,i){t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',e("../lib/dom").importCssString(t.cssText,t.cssClass)})),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],(function(e,t,i){e("./lib/oop");var n=e("./lib/dom");function r(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}e("./range").Range,function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,r=n.start.row,o=n.end.row,a="add"==e.action,s=r+1;s0&&!n[r];)r--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var a=r;a<=o;a++){var s=n[a];if(s&&s.el)if(s.hidden)s.el.style.top=-100-(s.pixelHeight||0)+"px";else{s._inDocument||(s._inDocument=!0,t.container.appendChild(s.el));var c=t.$cursorLayer.getPixelPosition({row:a,column:0},!0).top;s.coverLine||(c+=i.lineHeight*this.session.getRowLineCount(s.row)),s.el.style.top=c-i.offset+"px";var l=s.coverGutter?0:t.gutterWidth;s.fixedWidth||(l-=t.scrollLeft),s.el.style.left=l+"px",s.fullWidth&&s.screenWidth&&(s.el.style.minWidth=i.width+2*i.padding+"px"),s.fixedWidth?s.el.style.right=t.scrollBar.getWidth()+"px":s.el.style.right=""}}}}}.call(r.prototype),t.LineWidgets=r})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,i){var n=e("../line_widgets").LineWidgets,r=e("../lib/dom"),o=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new n(i),i.widgetManager.attach(e));var a=e.getCursorPosition(),s=a.row,c=i.widgetManager.getWidgetsAtRow(s).filter((function(e){return"errorMarker"==e.type}))[0];c?c.destroy():s-=t;var l,u=function(e,t,i){var n=e.getAnnotations().sort(o.comparePoints);if(n.length){var r=function(e,t,i){for(var n=0,r=e.length-1;n<=r;){var o=n+r>>1,a=i(t,e[o]);if(a>0)n=o+1;else{if(!(a<0))return o;r=o-1}}return-(n+1)}(n,{row:t,column:-1},o.comparePoints);r<0&&(r=-r-1),r>=n.length?r=i>0?0:n.length-1:0===r&&i<0&&(r=n.length-1);var a=n[r];if(a&&i){if(a.row===t){do{a=n[r+=i]}while(a&&a.row===t);if(!a)return n.slice()}var s=[];t=a.row;do{s[i<0?"unshift":"push"](a),a=n[r+=i]}while(a&&a.row==t);return s.length&&s}}}(i,s,t);if(u){var d=u[0];a.column=(d.pos&&"number"!=typeof d.column?d.pos.sc:d.column)||0,a.row=d.row,l=e.renderer.$gutterLayer.$annotations[a.row]}else{if(c)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(a.row),e.selection.moveToPosition(a);var h={row:a.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},p=h.el.appendChild(r.createElement("div")),m=h.el.appendChild(r.createElement("div"));m.className="error_widget_arrow "+l.className;var f=e.renderer.$cursorLayer.getPixelPosition(a).left;m.style.left=f+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
    "),p.appendChild(r.createElement("div"));var g=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(g),i.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(g),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")})),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],(function(e,t,i){e("./lib/fixoldbrowsers");var n=e("./lib/dom"),r=e("./lib/event"),o=e("./editor").Editor,a=e("./edit_session").EditSession,s=e("./undomanager").UndoManager,c=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.acequire=e,t.edit=function(e){if("string"==typeof e){var i=e;if(!(e=document.getElementById(i)))throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var a="";if(e&&/input|textarea/i.test(e.tagName)){var s=e;a=s.value,e=n.createElement("pre"),s.parentNode.replaceChild(e,s)}else e&&(a=n.getInnerText(e),e.innerHTML="");var l=t.createEditSession(a),u=new o(new c(e));u.setSession(l);var d={document:l,editor:u,onResize:u.resize.bind(u,null)};return s&&(d.textarea=s),r.addListener(window,"resize",d.onResize),u.on("destroy",(function(){r.removeListener(window,"resize",d.onResize),d.editor.container.env=null})),u.container.env=u.env=d,u},t.createEditSession=function(e,t){var i=new a(e,t);return i.setUndoManager(new s),i},t.EditSession=a,t.UndoManager=s,t.version="1.2.9"})),ace.acequire(["ace/ace"],(function(e){for(var t in e&&(e.config.init(!0),e.define=ace.define),window.ace||(window.ace=e),e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])}));var mm=window.ace.acequire("ace/ace"),fm={id:"ace/mode/json_worker",src:'"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/json/json_parse",["require","exports","module"],function(){"use strict";var at,ch,text,value,escapee={\'"\':\'"\',"\\\\":"\\\\","/":"/",b:"\\b",f:"\\f",n:"\\n",r:"\\r",t:"\t"},error=function(m){throw{name:"SyntaxError",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error("Expected \'"+c+"\' instead of \'"+ch+"\'"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string="";for("-"===ch&&(string="-",next("-"));ch>="0"&&"9">=ch;)string+=ch,next();if("."===ch)for(string+=".";next()&&ch>="0"&&"9">=ch;)string+=ch;if("e"===ch||"E"===ch)for(string+=ch,next(),("-"===ch||"+"===ch)&&(string+=ch,next());ch>="0"&&"9">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error("Bad number"),void 0):number},string=function(){var hex,i,uffff,string="";if(\'"\'===ch)for(;next();){if(\'"\'===ch)return next(),string;if("\\\\"===ch)if(next(),"u"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if("string"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error("Bad string")},white=function(){for(;ch&&" ">=ch;)next()},word=function(){switch(ch){case"t":return next("t"),next("r"),next("u"),next("e"),!0;case"f":return next("f"),next("a"),next("l"),next("s"),next("e"),!1;case"n":return next("n"),next("u"),next("l"),next("l"),null}error("Unexpected \'"+ch+"\'")},array=function(){var array=[];if("["===ch){if(next("["),white(),"]"===ch)return next("]"),array;for(;ch;){if(array.push(value()),white(),"]"===ch)return next("]"),array;next(","),white()}}error("Bad array")},object=function(){var key,object={};if("{"===ch){if(next("{"),white(),"}"===ch)return next("}"),object;for(;ch;){if(key=string(),white(),next(":"),Object.hasOwnProperty.call(object,key)&&error(\'Duplicate key "\'+key+\'"\'),object[key]=value(),white(),"}"===ch)return next("}"),object;next(","),white()}}error("Bad object")};return value=function(){switch(white(),ch){case"{":return object();case"[":return array();case\'"\':return string();case"-":return number();default:return ch>="0"&&"9">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=" ",result=value(),white(),ch&&error("Syntax error"),"function"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&"object"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({"":result},""):result}}),ace.define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(acequire,exports){"use strict";var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,parse=acequire("./json/json_parse"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:"error"})}this.sender.emit("annotate",errors)}}.call(JsonWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'};ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};n.inherits(o,r),t.JsonHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],(function(e,t,i){var n=e("../../lib/oop"),r=e("../../range").Range,o=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};n.inherits(a,o),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);if(this.singleLineBlockCommentRe.test(n)&&!this.startRegionRe.test(n)&&!this.tripleStarBlockCommentRe.test(n))return"";var r=this._getFoldWidgetBase(e,t,i);return!r&&this.startRegionRe.test(n)?"start":r},this.getFoldWidgetRange=function(e,t,i,n){var r,o=e.getLine(i);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,i);if(r=o.match(this.foldingStartMarker)){var a=r.index;if(r[1])return this.openingBracketBlock(e,r[1],i,a);var s=e.getCommentFoldRange(i,a+r[0].length,1);return s&&!s.isMultiLine()&&(n?s=this.getSectionRange(e,i):"all"!=t&&(s=null)),s}if("markbegin"!==t&&(r=o.match(this.foldingStopMarker))){a=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],i,a):e.getCommentFoldRange(i,a,-1)}},this.getSectionRange=function(e,t){for(var i=e.getLine(t),n=i.search(/\S/),o=t,a=i.length,s=t+=1,c=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=o)break;if(u.isMultiLine())t=u.end.row;else if(n==l)break}s=t}}return new r(o,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,i){for(var n=t.search(/\s*$/),o=e.getLength(),a=i,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,c=1;++ia)return new r(a,n,i,t.length)}}.call(a.prototype)})),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text").Mode,o=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,c=e("./folding/cstyle").FoldMode,l=e("../worker/worker_client").WorkerClient,u=function(){this.HighlightRules=o,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new c};n.inherits(u,r),function(){this.getNextLineIndent=function(e,t,i){var n=this.$getIndent(t);"start"==e&&(t.match(/^.*[\{\(\[]\s*$/)&&(n+=i));return n},this.checkOutdent=function(e,t,i){return this.$outdent.checkOutdent(t,i)},this.autoOutdent=function(e,t,i){this.$outdent.autoOutdent(t,i)},this.createWorker=function(e){var t=new l(["ace"],fm,"JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",(function(t){e.setAnnotations(t.data)})),t.on("terminate",(function(){e.clearAnnotations()})),t},this.$id="ace/mode/json"}.call(u.prototype),t.Mode=u})),ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],(function(e,t,i){var n=e("../lib/oop"),r=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"list.markup",regex:/^(?:-{3}|\.{3})\s*(?=#|$)/},{token:"list.markup",regex:/^\s*[\-?](?:$|\s)/},{token:"constant",regex:"!![\\w//]+"},{token:"constant.language",regex:"[&\\*][a-zA-Z0-9-_]+"},{token:["meta.tag","keyword"],regex:/^(\s*\w.*?)(:(?=\s|$))/},{token:["meta.tag","keyword"],regex:/(\w+?)(\s*:(?=\s|$))/},{token:"keyword.operator",regex:"<<\\w*:\\w*"},{token:"keyword.operator",regex:"-\\s*(?=[{])"},{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"string",regex:/[|>][-+\d\s]*$/,onMatch:function(e,t,i,n){var r=/^\s*/.exec(n)[0];return i.length<1?i.push(this.next):i[0]="mlString",i.length<2?i.push(r.length):i[1]=r.length,this.token},next:"mlString"},{token:"string",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"constant.numeric",regex:/(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)(?=[^\d-\w]|$)/},{token:"constant.numeric",regex:/[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/},{token:"constant.language.boolean",regex:"\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:/[^\s,:\[\]\{\}]+/}],mlString:[{token:"indent",regex:/^\s*$/},{token:"indent",regex:/^\s*/,onMatch:function(e,t,i){return i[1]>=e.length?(this.next="start",i.splice(0)):this.next="mlString",this.token},next:"mlString"},{token:"string",regex:".+"}]},this.normalizeRules()};n.inherits(o,r),t.YamlHighlightRules=o})),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],(function(e,t,i){var n=e("../range").Range,r=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var i=e.getLine(t).match(/^(\s*\})/);if(!i)return 0;var r=i[1].length,o=e.findMatchingBracket({row:t,column:r});if(!o||o.row==t)return 0;var a=this.$getIndent(e.getLine(o.row));e.replace(new n(t,0,t,r-1),a)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(r.prototype),t.MatchingBraceOutdent=r})),ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],(function(e,t,i){var n=e("../../lib/oop"),r=e("./fold_mode").FoldMode,o=e("../../range").Range,a=t.FoldMode=function(){};n.inherits(a,r),function(){this.getFoldWidgetRange=function(e,t,i){var n=this.indentationBlock(e,i);if(n)return n;var r=/\S/,a=e.getLine(i),s=a.search(r);if(-1!=s&&"#"==a[s]){for(var c=a.length,l=e.getLength(),u=i,d=i;++iu){var p=e.getLine(d).length;return new o(u,c,d,p)}}},this.getFoldWidget=function(e,t,i){var n=e.getLine(i),r=n.search(/\S/),o=e.getLine(i+1),a=e.getLine(i-1),s=a.search(/\S/),c=o.search(/\S/);if(-1==r)return e.foldWidgets[i-1]=-1!=s&&s=0;--r){var o=this.leading[r];t.end.offset>=o.start&&(i.unshift(o.comment),this.leading.splice(r,1),this.trailing.splice(r,1))}i.length&&(e.innerComments=i)}},e.prototype.findTrailingComments=function(e){var t=[];if(this.trailing.length>0){for(var i=this.trailing.length-1;i>=0;--i){var n=this.trailing[i];n.start>=e.end.offset&&t.unshift(n.comment)}return this.trailing.length=0,t}var r=this.stack[this.stack.length-1];if(r&&r.node.trailingComments){var o=r.node.trailingComments[0];o&&o.range[0]>=e.end.offset&&(t=r.node.trailingComments,delete r.node.trailingComments)}return t},e.prototype.findLeadingComments=function(e){for(var t,i=[];this.stack.length>0&&(o=this.stack[this.stack.length-1])&&o.start>=e.start.offset;)t=o.node,this.stack.pop();if(t){for(var n=(t.leadingComments?t.leadingComments.length:0)-1;n>=0;--n){var r=t.leadingComments[n];r.range[1]<=e.start.offset&&(i.unshift(r),t.leadingComments.splice(n,1))}return t.leadingComments&&0===t.leadingComments.length&&delete t.leadingComments,i}for(n=this.leading.length-1;n>=0;--n){var o;(o=this.leading[n]).start<=e.start.offset&&(i.unshift(o.comment),this.leading.splice(n,1))}return i},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var i=this.findTrailingComments(t),r=this.findLeadingComments(t);r.length>0&&(e.leadingComments=r),i.length>0&&(e.trailingComments=i),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var i="L"===e.type[0]?"Line":"Block",n={type:i,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var r={comment:{type:i,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(r.comment.loc=e.loc),e.type=i,this.leading.push(r),this.trailing.push(r)}},e.prototype.visit=function(e,t){"LineComment"===e.type||"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=r},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,i){var n,r=this&&this.__extends||(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])},function(e,t){function i(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var o=i(4),a=i(5),s=i(6),c=i(7),l=i(8),u=i(13),d=i(14);function h(e){var t;switch(e.type){case s.JSXSyntax.JSXIdentifier:t=e.name;break;case s.JSXSyntax.JSXNamespacedName:var i=e;t=h(i.namespace)+":"+h(i.name);break;case s.JSXSyntax.JSXMemberExpression:var n=e;t=h(n.object)+"."+h(n.property)}return t}u.TokenName[100]="JSXIdentifier",u.TokenName[101]="JSXText";var p=function(e){function t(t,i,n){return e.call(this,t,i,n)||this}return r(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",i=!0,n=!1,r=!1,a=!1;!this.scanner.eof()&&i&&!n;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(n=";"===s,t+=s,++this.scanner.index,!n)switch(t.length){case 2:r="#"===s;break;case 3:r&&(i=(a="x"===s)||o.Character.isDecimalDigit(s.charCodeAt(0)),r=r&&!a);break;default:i=(i=i&&!(r&&!o.Character.isDecimalDigit(s.charCodeAt(0))))&&!(a&&!o.Character.isHexDigit(s.charCodeAt(0)))}}if(i&&n&&t.length>2){var c=t.substr(1,t.length-2);r&&c.length>1?t=String.fromCharCode(parseInt(c.substr(1),10)):a&&c.length>2?t=String.fromCharCode(parseInt("0"+c.substr(1),16)):r||a||!d.XHTMLEntities[c]||(t=d.XHTMLEntities[c])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e)return{type:7,value:s=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(34===e||39===e){for(var t=this.scanner.index,i=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==i;)n+="&"===c?this.scanXHTMLEntity(i):c;return{type:8,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var r=this.scanner.source.charCodeAt(this.scanner.index+1),a=this.scanner.source.charCodeAt(this.scanner.index+2),s=46===r&&46===a?"...":".";return t=this.scanner.index,this.scanner.index+=s.length,{type:7,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(o.Character.isIdentifierStart(e)&&92!==e){for(t=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(o.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(t,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}return this.scanner.lex()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var i=this.scanner.source[this.scanner.index];if("{"===i||"<"===i)break;++this.scanner.index,t+=i,o.Character.isLineTerminator(i.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===i&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var n={type:101,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.lexJSX();return this.scanner.restoreState(e),t},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();7===t.type&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return 7===t.type&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return 100!==t.type&&this.throwUnexpectedToken(t),this.finalize(e,new a.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var i=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXNamespacedName(i,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var r=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new a.JSXMemberExpression(r,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),i=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=i;this.expectJSX(":");var r=this.parseJSXIdentifier();e=this.finalize(t,new a.JSXNamespacedName(n,r))}else e=i;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();8!==t.type&&this.throwUnexpectedToken(t);var i=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,i))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),i=null;return this.matchJSX("=")&&(this.expectJSX("="),i=this.parseJSXAttributeValue()),this.finalize(e,new a.JSXAttribute(t,i))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new a.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),i=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(t,n,i))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new a.JSXClosingElement(t))}var i=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new a.JSXOpeningElement(i,r,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(e,new a.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e,t=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(e=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),e=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(t,new a.JSXExpressionContainer(e))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),i=this.nextJSXText();if(i.start0))break;o=this.finalize(e.node,new a.JSXElement(e.opening,e.children,e.closing)),(e=t[t.length-1]).children.push(o),t.pop()}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),i=[],n=null;if(!t.selfClosing){var r=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:i});i=r.children,n=r.closing}return this.finalize(e,new a.JSXElement(t,i,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t.prototype.isStartOfExpression=function(){return e.prototype.isStartOfExpression.call(this)||this.match("<")},t}(l.Parser);t.JSXParser=p},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&i.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&i.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(6),r=function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e};t.JSXClosingElement=r;var o=function(e,t,i){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=i};t.JSXElement=o;var a=function(){this.type=n.JSXSyntax.JSXEmptyExpression};t.JSXEmptyExpression=a;var s=function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e};t.JSXExpressionContainer=s;var c=function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e};t.JSXIdentifier=c;var l=function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t};t.JSXMemberExpression=l;var u=function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t};t.JSXAttribute=u;var d=function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t};t.JSXNamespacedName=d;var h=function(e,t,i){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=i};t.JSXOpeningElement=h;var p=function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e};t.JSXSpreadAttribute=p;var m=function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t};t.JSXText=m},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(2),r=function(e){this.type=n.Syntax.ArrayExpression,this.elements=e};t.ArrayExpression=r;var o=function(e){this.type=n.Syntax.ArrayPattern,this.elements=e};t.ArrayPattern=o;var a=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!1};t.ArrowFunctionExpression=a;var s=function(e,t,i){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=i};t.AssignmentExpression=s;var c=function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t};t.AssignmentPattern=c;var l=function(e,t,i){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=i,this.async=!0};t.AsyncArrowFunctionExpression=l;var u=function(e,t,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionDeclaration=u;var d=function(e,t,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=!1,this.expression=!1,this.async=!0};t.AsyncFunctionExpression=d;var h=function(e){this.type=n.Syntax.AwaitExpression,this.argument=e};t.AwaitExpression=h;var p=function(e,t,i){var r="||"===e||"&&"===e;this.type=r?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=i};t.BinaryExpression=p;var m=function(e){this.type=n.Syntax.BlockStatement,this.body=e};t.BlockStatement=m;var f=function(e){this.type=n.Syntax.BreakStatement,this.label=e};t.BreakStatement=f;var g=function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t};t.CallExpression=g;var _=function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t};t.CatchClause=_;var b=function(e){this.type=n.Syntax.ClassBody,this.body=e};t.ClassBody=b;var v=function(e,t,i){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=i};t.ClassDeclaration=v;var y=function(e,t,i){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=i};t.ClassExpression=y;var w=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t};t.ComputedMemberExpression=w;var x=function(e,t,i){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=i};t.ConditionalExpression=x;var N=function(e){this.type=n.Syntax.ContinueStatement,this.label=e};t.ContinueStatement=N;var A=function(){this.type=n.Syntax.DebuggerStatement};t.DebuggerStatement=A;var k=function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t};t.Directive=k;var C=function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t};t.DoWhileStatement=C;var E=function(){this.type=n.Syntax.EmptyStatement};t.EmptyStatement=E;var S=function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e};t.ExportAllDeclaration=S;var F=function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e};t.ExportDefaultDeclaration=F;var O=function(e,t,i){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=i};t.ExportNamedDeclaration=O;var D=function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e};t.ExportSpecifier=D;var B=function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e};t.ExpressionStatement=B;var L=function(e,t,i){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=i,this.each=!1};t.ForInStatement=L;var M=function(e,t,i){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=i};t.ForOfStatement=M;var $=function(e,t,i,r){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=i,this.body=r};t.ForStatement=$;var T=function(e,t,i,r){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionDeclaration=T;var R=function(e,t,i,r){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=i,this.generator=r,this.expression=!1,this.async=!1};t.FunctionExpression=R;var j=function(e){this.type=n.Syntax.Identifier,this.name=e};t.Identifier=j;var I=function(e,t,i){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=i};t.IfStatement=I;var P=function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t};t.ImportDeclaration=P;var z=function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e};t.ImportDefaultSpecifier=z;var U=function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e};t.ImportNamespaceSpecifier=U;var W=function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t};t.ImportSpecifier=W;var H=function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t};t.LabeledStatement=H;var q=function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t};t.Literal=q;var V=function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t};t.MetaProperty=V;var K=function(e,t,i,r,o){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=i,this.kind=r,this.static=o};t.MethodDefinition=K;var G=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="module"};t.Module=G;var X=function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t};t.NewExpression=X;var J=function(e){this.type=n.Syntax.ObjectExpression,this.properties=e};t.ObjectExpression=J;var Y=function(e){this.type=n.Syntax.ObjectPattern,this.properties=e};t.ObjectPattern=Y;var Z=function(e,t,i,r,o,a){this.type=n.Syntax.Property,this.key=t,this.computed=i,this.value=r,this.kind=e,this.method=o,this.shorthand=a};t.Property=Z;var Q=function(e,t,i,r){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex={pattern:i,flags:r}};t.RegexLiteral=Q;var ee=function(e){this.type=n.Syntax.RestElement,this.argument=e};t.RestElement=ee;var te=function(e){this.type=n.Syntax.ReturnStatement,this.argument=e};t.ReturnStatement=te;var ie=function(e){this.type=n.Syntax.Program,this.body=e,this.sourceType="script"};t.Script=ie;var ne=function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e};t.SequenceExpression=ne;var re=function(e){this.type=n.Syntax.SpreadElement,this.argument=e};t.SpreadElement=re;var oe=function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t};t.StaticMemberExpression=oe;var ae=function(){this.type=n.Syntax.Super};t.Super=ae;var se=function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t};t.SwitchCase=se;var ce=function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t};t.SwitchStatement=ce;var le=function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t};t.TaggedTemplateExpression=le;var ue=function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t};t.TemplateElement=ue;var de=function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t};t.TemplateLiteral=de;var he=function(){this.type=n.Syntax.ThisExpression};t.ThisExpression=he;var pe=function(e){this.type=n.Syntax.ThrowStatement,this.argument=e};t.ThrowStatement=pe;var me=function(e,t,i){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=i};t.TryStatement=me;var fe=function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0};t.UnaryExpression=fe;var ge=function(e,t,i){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=i};t.UpdateExpression=ge;var _e=function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t};t.VariableDeclaration=_e;var be=function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t};t.VariableDeclarator=be;var ve=function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t};t.WhileStatement=ve;var ye=function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t};t.WithStatement=ye;var we=function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t};t.YieldExpression=we},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(10),o=i(11),a=i(7),s=i(12),c=i(2),l=i(13),u="ArrowParameterPlaceHolder",d=function(){function e(e,t,i){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=i,this.errorHandler=new r.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],i=1;i0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=i,this.context.firstCoverInitializedNameError=n,r},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,i=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var r=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&i,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,r},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(2===this.lookahead.type||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},e.prototype.parsePrimaryExpression=function(){var e,t,i,n=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(n,new a.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,o.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(t.value,i));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal("true"===t.value,i));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.Literal(null,i));break;case 10:e=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),i=this.getTokenRaw(t),e=this.finalize(n,new a.RegexLiteral(t.regex,i,t.pattern,t.flags));break;default:e=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new a.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new a.ThisExpression)):e=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:e=this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new a.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var i=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(i)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new a.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,i=this.context.allowStrictDirective;this.context.allowStrictDirective=e.simple;var n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,this.context.allowStrictDirective=i,n},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters(),n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parsePropertyMethodAsyncFunction=function(){var e=this.createNode(),t=this.context.allowYield,i=this.context.await;this.context.allowYield=!1,this.context.await=!0;var n=this.parseFormalParameters(),r=this.parsePropertyMethod(n);return this.context.allowYield=t,this.context.await=i,this.finalize(e,new a.AsyncFunctionExpression(null,n.params,r))},e.prototype.parseObjectPropertyKey=function(){var e,t=this.createNode(),i=this.nextToken();switch(i.type){case 8:case 6:this.context.strict&&i.octal&&this.tolerateUnexpectedToken(i,o.Messages.StrictOctalLiteral);var n=this.getTokenRaw(i);e=this.finalize(t,new a.Literal(i.value,n));break;case 3:case 1:case 5:case 4:e=this.finalize(t,new a.Identifier(i.value));break;case 7:"["===i.value?(e=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):e=this.throwUnexpectedToken(i);break;default:e=this.throwUnexpectedToken(i)}return e},e.prototype.isPropertyKey=function(e,t){return e.type===c.Syntax.Identifier&&e.name===t||e.type===c.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,i=this.createNode(),n=this.lookahead,r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(3===n.type){var h=n.value;this.nextToken(),c=this.match("["),r=(d=!(this.hasLineTerminator||"async"!==h||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(i,new a.Identifier(h))}else this.match("*")?this.nextToken():(c=this.match("["),r=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(3===n.type&&!d&&"get"===n.value&&p)t="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod();else if(3===n.type&&!d&&"set"===n.value&&p)t="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod();else if(7===n.type&&"*"===n.value&&p)t="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":")&&!d)!c&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(o.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),s=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0;else if(3===n.type)if(h=this.finalize(i,new a.Identifier(n.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),u=!0;var m=this.isolateCoverGrammar(this.parseAssignmentExpression);s=this.finalize(i,new a.AssignmentPattern(h,m))}else u=!0,s=h;else this.throwUnexpectedToken(this.nextToken());return this.finalize(i,new a.Property(t,r,c,s,l,u))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],i={value:!1};!this.match("}");)t.push(this.parseObjectProperty(i)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new a.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),i=t.value,r=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:r},t.tail))},e.prototype.parseTemplateElement=function(){10!==this.lookahead.type&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),i=t.value,n=t.cooked;return this.finalize(e,new a.TemplateElement({raw:i,cooked:n},t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],i=[],n=this.parseTemplateHead();for(i.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),i.push(n);return this.finalize(e,new a.TemplateLiteral(i,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case c.Syntax.Identifier:case c.Syntax.MemberExpression:case c.Syntax.RestElement:case c.Syntax.AssignmentPattern:break;case c.Syntax.SpreadElement:e.type=c.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case c.Syntax.ArrayExpression:e.type=c.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:u,params:[],async:!1};else{var t=this.lookahead,i=[];if(this.match("..."))e=this.parseRestElement(i),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:u,params:[e],async:!1};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var r=[];for(this.context.isAssignmentTarget=!1,r.push(e);2!==this.lookahead.type&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var o=0;o")||this.expect("=>"),this.context.isBindingElement=!1,o=0;o")&&(e.type===c.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:u,params:[e],async:!1}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===c.Syntax.SequenceExpression)for(o=0;o")){for(var c=0;c0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var r=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),c=[o,i.value,s],l=[n];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;c.length>2&&n<=l[l.length-1];){s=c.pop();var u=c.pop();l.pop(),o=c.pop(),r.pop();var d=this.startNode(r[r.length-1]);c.push(this.finalize(d,new a.BinaryExpression(u,o,s)))}c.push(this.nextToken().value),l.push(n),r.push(this.lookahead),c.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=c.length-1;t=c[h];for(var p=r.pop();h>1;){var m=r.pop(),f=p&&p.lineStart;d=this.startNode(m,f),u=c[h-1],t=this.finalize(d,new a.BinaryExpression(u,c[h-2],t)),h-=2,p=m}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var i=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=i,this.expect(":");var r=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new a.ConditionalExpression(t,n,r)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case c.Syntax.Identifier:this.validateParam(e,t,t.name);break;case c.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case c.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case c.Syntax.ArrayPattern:for(var i=0;i")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=e.async,s=this.reinterpretAsCoverFormalsList(e);if(s){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var l=this.context.strict,d=this.context.allowStrictDirective;this.context.allowStrictDirective=s.simple;var h=this.context.allowYield,p=this.context.await;this.context.allowYield=!0,this.context.await=r;var m=this.startNode(t);this.expect("=>");var f=void 0;if(this.match("{")){var g=this.context.allowIn;this.context.allowIn=!0,f=this.parseFunctionSourceElements(),this.context.allowIn=g}else f=this.isolateCoverGrammar(this.parseAssignmentExpression);var _=f.type!==c.Syntax.BlockStatement;this.context.strict&&s.firstRestricted&&this.throwUnexpectedToken(s.firstRestricted,s.message),this.context.strict&&s.stricted&&this.tolerateUnexpectedToken(s.stricted,s.message),e=r?this.finalize(m,new a.AsyncArrowFunctionExpression(s.params,f,_)):this.finalize(m,new a.ArrowFunctionExpression(s.params,f,_)),this.context.strict=l,this.context.allowStrictDirective=d,this.context.allowYield=h,this.context.await=p}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(o.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===c.Syntax.Identifier){var b=e;this.scanner.isRestrictedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(b.name)&&this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var v=(i=this.nextToken()).value,y=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new a.AssignmentExpression(v,e,y)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var i=[];for(i.push(t);2!==this.lookahead.type&&this.match(",");)this.nextToken(),i.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new a.SequenceExpression(i))}return t},e.prototype.parseStatementListItem=function(){var e;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,4===this.lookahead.type)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,o.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new a.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var i=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(o.Messages.StrictVarName);var r=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),r=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(o.Messages.DeclarationMissingInitializer,"const")):(!t.inFor&&n.type!==c.Syntax.Identifier||this.match("="))&&(this.expect("="),r=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(i,new a.VariableDeclarator(n,r))},e.prototype.parseBindingList=function(e,t){for(var i=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),i.push(this.parseLexicalBinding(e,t));return i},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.saveState();this.scanner.scanComments();var t=this.scanner.lex();return this.scanner.restoreState(e),3===t.type||7===t.type&&"["===t.value||7===t.type&&"{"===t.value||4===t.type&&"let"===t.value||4===t.type&&"yield"===t.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),i=this.nextToken().value;n.assert("let"===i||"const"===i,"Lexical declaration must be either let or const");var r=this.parseBindingList(i,e);return this.consumeSemicolon(),this.finalize(t,new a.VariableDeclaration(r,i))},e.prototype.parseBindingRestElement=function(e,t){var i=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(i,new a.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var i=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(i,new a.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var i,n,r=this.createNode(),o=!1,s=!1;if(3===this.lookahead.type){var c=this.lookahead;i=this.parseVariableIdentifier();var l=this.finalize(r,new a.Identifier(c.value));if(this.match("=")){e.push(c),s=!0,this.nextToken();var u=this.parseAssignmentExpression();n=this.finalize(this.startNode(c),new a.AssignmentPattern(l,u))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(c),s=!0,n=l)}else o=this.match("["),i=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(r,new a.Property("init",i,o,n,!1,s))},e.prototype.parseObjectPattern=function(e,t){var i=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(i,new a.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var i;return this.match("[")?i=this.parseArrayPattern(e,t):this.match("{")?i=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,o.Messages.LetInLexicalBinding),e.push(this.lookahead),i=this.parseVariableIdentifier(t)),i},e.prototype.parsePatternWithDefault=function(e,t){var i=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var r=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=r,n=this.finalize(this.startNode(i),new a.AssignmentPattern(n,o))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),i=this.nextToken();return 4===i.type&&"yield"===i.value?this.context.strict?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(i):3!==i.type?this.context.strict&&4===i.type&&this.scanner.isStrictModeReservedWord(i.value)?this.tolerateUnexpectedToken(i,o.Messages.StrictReservedWord):(this.context.strict||"let"!==i.value||"var"!==e)&&this.throwUnexpectedToken(i):(this.context.isModule||this.context.await)&&3===i.type&&"await"===i.value&&this.tolerateUnexpectedToken(i),this.finalize(t,new a.Identifier(i.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),i=this.parsePattern([],"var");this.context.strict&&i.type===c.Syntax.Identifier&&this.scanner.isRestrictedWord(i.name)&&this.tolerateError(o.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):i.type===c.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new a.VariableDeclarator(i,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},i=[];for(i.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),i.push(this.parseVariableDeclaration(t));return i},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new a.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new a.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ExpressionStatement(t))},e.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(o.Messages.StrictFunction),this.parseStatement()},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),i=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),i=this.parseIfClause())),this.finalize(t,new a.IfStatement(n,e,i))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var i=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(e,new a.DoWhileStatement(i,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var i=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new a.WhileStatement(i,e))},e.prototype.parseForStatement=function(){var e,t,i,n=null,r=null,s=null,l=!0,u=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var d=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===h.length&&this.matchKeyword("in")){var p=h[0];p.init&&(p.id.type===c.Syntax.ArrayPattern||p.id.type===c.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(o.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(n=this.finalize(n,new a.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var m=this.nextToken().value;this.context.strict||"in"!==this.lookahead.value?(d=this.context.allowIn,this.context.allowIn=!1,h=this.parseBindingList(m,{inFor:!0}),this.context.allowIn=d,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new a.VariableDeclaration(h,m)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,l=!1):(this.consumeSemicolon(),n=this.finalize(n,new a.VariableDeclaration(h,m)))):(n=this.finalize(n,new a.Identifier(m)),this.nextToken(),e=n,t=this.parseExpression(),n=null)}else{var f=this.lookahead;if(d=this.context.allowIn,this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==c.Syntax.AssignmentExpression||this.tolerateError(o.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,l=!1;else{if(this.match(",")){for(var g=[n];this.match(",");)this.nextToken(),g.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(f),new a.SequenceExpression(g))}this.expect(";")}}if(void 0===e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),i=this.finalize(this.createNode(),new a.EmptyStatement);else{this.expect(")");var _=this.context.inIteration;this.context.inIteration=!0,i=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=_}return void 0===e?this.finalize(u,new a.ForStatement(n,r,s,i)):l?this.finalize(u,new a.ForInStatement(e,t,i)):this.finalize(u,new a.ForOfStatement(e,t,i))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier();t=i;var n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(o.Messages.IllegalContinue),this.finalize(e,new a.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(3===this.lookahead.type&&!this.hasLineTerminator){var i=this.parseVariableIdentifier(),n="$"+i.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(o.Messages.UnknownLabel,i.name),t=i}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(o.Messages.IllegalBreak),this.finalize(e,new a.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(o.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=(this.match(";")||this.match("}")||this.hasLineTerminator||2===this.lookahead.type)&&8!==this.lookahead.type&&10!==this.lookahead.type?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(o.Messages.StrictModeWith);var e,t=this.createNode();this.expectKeyword("with"),this.expect("(");var i=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new a.EmptyStatement)):(this.expect(")"),e=this.parseStatement()),this.finalize(t,new a.WithStatement(i,e))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var i=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)i.push(this.parseStatementListItem());return this.finalize(t,new a.SwitchCase(e,i))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var i=this.context.inSwitch;this.context.inSwitch=!0;var n=[],r=!1;for(this.expect("{");!this.match("}");){var s=this.parseSwitchCase();null===s.test&&(r&&this.throwError(o.Messages.MultipleDefaultsInSwitch),r=!0),n.push(s)}return this.expect("}"),this.context.inSwitch=i,this.finalize(e,new a.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),i=this.parseExpression();if(i.type===c.Syntax.Identifier&&this.match(":")){this.nextToken();var n=i,r="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)&&this.throwError(o.Messages.Redeclaration,"Label",n.name),this.context.labelSet[r]=!0;var s=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),s=this.parseClassDeclaration();else if(this.matchKeyword("function")){var l=this.lookahead,u=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(l,o.Messages.StrictFunction):u.generator&&this.tolerateUnexpectedToken(l,o.Messages.GeneratorInLegacyContext),s=u}else s=this.parseStatement();delete this.context.labelSet[r],e=new a.LabeledStatement(n,s)}else this.consumeSemicolon(),e=new a.ExpressionStatement(i);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(o.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new a.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],i=this.parsePattern(t),n={},r=0;r0&&this.tolerateError(o.Messages.BadGetterArity);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();1!==i.params.length?this.tolerateError(o.Messages.BadSetterArity):i.params[0]instanceof a.RestElement&&this.tolerateError(o.Messages.BadSetterRestParameter);var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var i=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(i);return this.context.allowYield=t,this.finalize(e,new a.FunctionExpression(null,i.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case 7:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case 4:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,i=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(i=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new a.YieldExpression(t,i))},e.prototype.parseClassElement=function(e){var t=this.lookahead,i=this.createNode(),n="",r=null,s=null,c=!1,l=!1,u=!1,d=!1;if(this.match("*"))this.nextToken();else if(c=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(t=this.lookahead,u=!0,c=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()),3===t.type&&!this.hasLineTerminator&&"async"===t.value){var h=this.lookahead.value;":"!==h&&"("!==h&&"*"!==h&&(d=!0,t=this.lookahead,r=this.parseObjectPropertyKey(),3===t.type&&"constructor"===t.value&&this.tolerateUnexpectedToken(t,o.Messages.ConstructorIsAsync))}var p=this.qualifiedPropertyName(this.lookahead);return 3===t.type?"get"===t.value&&p?(n="get",c=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,s=this.parseGetterMethod()):"set"===t.value&&p&&(n="set",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseSetterMethod()):7===t.type&&"*"===t.value&&p&&(n="init",c=this.match("["),r=this.parseObjectPropertyKey(),s=this.parseGeneratorMethod(),l=!0),!n&&r&&this.match("(")&&(n="init",s=d?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),l=!0),n||this.throwUnexpectedToken(this.lookahead),"init"===n&&(n="method"),c||(u&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(t,o.Messages.StaticPrototype),!u&&this.isPropertyKey(r,"constructor")&&(("method"!==n||!l||s&&s.generator)&&this.throwUnexpectedToken(t,o.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(t,o.Messages.DuplicateConstructor):e.value=!0,n="constructor")),this.finalize(i,new a.MethodDefinition(r,c,s,n,u))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new a.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),i=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&3!==this.lookahead.type?null:this.parseVariableIdentifier(),r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=i,this.finalize(t,new a.ClassDeclaration(n,r,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var i=3===this.lookahead.type?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var r=this.parseClassBody();return this.context.strict=t,this.finalize(e,new a.ClassExpression(i,n,r))},e.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Module(t))},e.prototype.parseScript=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();2!==this.lookahead.type;)t.push(this.parseStatementListItem());return this.finalize(e,new a.Script(t))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();8!==this.lookahead.type&&this.throwError(o.Messages.InvalidModuleSpecifier);var t=this.nextToken(),i=this.getTokenRaw(t);return this.finalize(e,new a.Literal(t.value,i))},e.prototype.parseImportSpecifier=function(){var e,t,i=this.createNode();return 3===this.lookahead.type?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(i,new a.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new a.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(o.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new a.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalImportDeclaration);var e,t=this.createNode();this.expectKeyword("import");var i=[];if(8===this.lookahead.type)e=this.parseModuleSpecifier();else{if(this.match("{")?i=i.concat(this.parseNamedImports()):this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(i.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?i.push(this.parseImportNamespaceSpecifier()):this.match("{")?i=i.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),e=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(t,new a.ImportDeclaration(i,e))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),i=t;return this.matchContextualKeyword("as")&&(this.nextToken(),i=this.parseIdentifierName()),this.finalize(e,new a.ExportSpecifier(t,i))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(o.Messages.IllegalExportDeclaration);var e,t=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var i=this.parseFunctionDeclaration(!0);e=this.finalize(t,new a.ExportDefaultDeclaration(i))}else this.matchKeyword("class")?(i=this.parseClassDeclaration(!0),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):this.matchContextualKeyword("async")?(i=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),e=this.finalize(t,new a.ExportDefaultDeclaration(i))):(this.matchContextualKeyword("from")&&this.throwError(o.Messages.UnexpectedToken,this.lookahead.value),i=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),e=this.finalize(t,new a.ExportDefaultDeclaration(i)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),e=this.finalize(t,new a.ExportAllDeclaration(r))}else if(4===this.lookahead.type){switch(i=void 0,this.lookahead.value){case"let":case"const":i=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":i=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null))}else if(this.matchAsyncFunction())i=this.parseFunctionDeclaration(),e=this.finalize(t,new a.ExportNamedDeclaration(i,[],null));else{var s=[],c=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),c=this.parseModuleSpecifier(),this.consumeSemicolon()):l?(n=this.lookahead.value?o.Messages.UnexpectedToken:o.Messages.MissingFromClause,this.throwError(n,this.lookahead.value)):this.consumeSemicolon(),e=this.finalize(t,new a.ExportNamedDeclaration(null,s,c))}return e},e}();t.Parser=d},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var i=new Error(e);try{throw i}catch(n){Object.create&&Object.defineProperty&&(i=Object.create(n),Object.defineProperty(i,"column",{value:t}))}return i},e.prototype.createError=function(e,t,i,n){var r="Line "+t+": "+n,o=this.constructError(r,i);return o.index=e,o.lineNumber=t,o.description=n,o},e.prototype.throwError=function(e,t,i,n){throw this.createError(e,t,i,n)},e.prototype.tolerateError=function(e,t,i,n){var r=this.createError(e,t,i,n);if(!this.tolerant)throw r;this.recordError(r)},e}();t.ErrorHandler=i},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(9),r=i(4),o=i(11);function a(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function s(e){return"01234567".indexOf(e)}var c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.isModule=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},e.prototype.restoreState=function(e){this.index=e.index,this.lineNumber=e.lineNumber,this.lineStart=e.lineStart},e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){return void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(e){void 0===e&&(e=o.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.skipSingleLineComment=function(e){var t,i,n=[];for(this.trackComment&&(n=[],t=this.index-e,i={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var o=this.source.charCodeAt(this.index);if(++this.index,r.Character.isLineTerminator(o)){if(this.trackComment){i.end={line:this.lineNumber,column:this.index-this.lineStart-1};var a={multiLine:!1,slice:[t+e,this.index-1],range:[t,this.index-1],loc:i};n.push(a)}return 13===o&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,n}}return this.trackComment&&(i.end={line:this.lineNumber,column:this.index-this.lineStart},a={multiLine:!1,slice:[t+e,this.index],range:[t,this.index],loc:i},n.push(a)),n},e.prototype.skipMultiLineComment=function(){var e,t,i=[];for(this.trackComment&&(i=[],e=this.index-2,t={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(r.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){t.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!0,slice:[e+2,this.index-2],range:[e,this.index],loc:t};i.push(o)}return i}++this.index}else++this.index}return this.trackComment&&(t.end={line:this.lineNumber,column:this.index-this.lineStart},o={multiLine:!0,slice:[e+2,this.index],range:[e,this.index],loc:t},i.push(o)),this.tolerateUnexpectedToken(),i},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var i=this.source.charCodeAt(this.index);if(r.Character.isWhiteSpace(i))++this.index;else if(r.Character.isLineTerminator(i))++this.index,13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===i)if(47===(i=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==i)break;this.index+=2,n=this.skipMultiLineComment(),this.trackComment&&(e=e.concat(n))}else if(t&&45===i){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3,n=this.skipSingleLineComment(3),this.trackComment&&(e=e.concat(n))}else{if(60!==i||this.isModule)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4,n=this.skipSingleLineComment(4),this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var i=this.source.charCodeAt(e+1);i>=56320&&i<=57343&&(t=1024*(t-55296)+i-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,i=0,n=0;n1114111||"}"!==e)&&this.throwUnexpectedToken(),r.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!r.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e,t=this.codePointAt(this.index),i=r.Character.fromCodePoint(t);for(this.index+=i.length,92===t&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierStart(e.charCodeAt(0))||this.throwUnexpectedToken(),i=e);!this.eof()&&(t=this.codePointAt(this.index),r.Character.isIdentifierPart(t));)i+=e=r.Character.fromCodePoint(t),this.index+=e.length,92===t&&(i=i.substr(0,i.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,e=this.scanUnicodeCodePointEscape()):null!==(e=this.scanHexEscape("u"))&&"\\"!==e&&r.Character.isIdentifierPart(e.charCodeAt(0))||this.throwUnexpectedToken(),i+=e);return i},e.prototype.octalToDecimal=function(e){var t="0"!==e,i=s(e);return!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,i=8*i+s(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(i=8*i+s(this.source[this.index++]))),{code:i,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,i=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();if(3!=(e=1===i.length?3:this.isKeyword(i)?4:"null"===i?5:"true"===i||"false"===i?1:3)&&t+i.length!==this.index){var n=this.index;this.index=t,this.tolerateUnexpectedToken(o.Messages.InvalidEscapedReservedWord),this.index=n}return{type:e,value:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e=this.index,t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e&&this.throwUnexpectedToken(),{type:7,value:t,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&r.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),r.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,i="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)i+=this.source[this.index++];return 0===i.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(r.Character.isIdentifierStart(t)||r.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:6,value:parseInt(i,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var i="",n=!1;for(r.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,i="0"+this.source[this.index++]):++this.index;!this.eof()&&r.Character.isOctalDigit(this.source.charCodeAt(this.index));)i+=this.source[this.index++];return n||0!==i.length||this.throwUnexpectedToken(),(r.Character.isIdentifierStart(this.source.charCodeAt(this.index))||r.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(i,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(i=i.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,(function(e,t,i){var r=parseInt(t||i,16);return r>1114111&&n.throwUnexpectedToken(o.Messages.InvalidRegExp),r<=65535?String.fromCharCode(r):"￿"})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(i)}catch(r){this.throwUnexpectedToken(o.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(a){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];n.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],i=!1,a=!1;!this.eof();)if(t+=e=this.source[this.index++],"\\"===e)e=this.source[this.index++],r.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t+=e;else if(r.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(o.Messages.UnterminatedRegExp);else if(i)"]"===e&&(i=!1);else{if("/"===e){a=!0;break}"["===e&&(i=!0)}return a||this.throwUnexpectedToken(o.Messages.UnterminatedRegExp),t.substr(1,t.length-2)},e.prototype.scanRegExpFlags=function(){for(var e="";!this.eof();){var t=this.source[this.index];if(!r.Character.isIdentifierPart(t.charCodeAt(0)))break;if(++this.index,"\\"!==t||this.eof())e+=t;else if("u"===(t=this.source[this.index])){++this.index;var i=this.index,n=this.scanHexEscape("u");if(null!==n)for(e+=n;i=55296&&e<57343&&r.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.TokenName={},t.TokenName[1]="Boolean",t.TokenName[2]="",t.TokenName[3]="Identifier",t.TokenName[4]="Keyword",t.TokenName[5]="Null",t.TokenName[6]="Numeric",t.TokenName[7]="Punctuator",t.TokenName[8]="String",t.TokenName[9]="RegularExpression",t.TokenName[10]="Template"},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t,i){Object.defineProperty(t,"__esModule",{value:!0});var n=i(10),r=i(12),o=i(13),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var i=this.values[this.paren-1];t="if"===i||"while"===i||"for"===i||"with"===i;break;case"}":if(t=!1,"function"===this.values[this.curly-3])t=!!(n=this.values[this.curly-4])&&!this.beforeFunctionExpression(n);else if("function"===this.values[this.curly-4]){var n;t=!(n=this.values[this.curly-5])||!this.beforeFunctionExpression(n)}}return t},e.prototype.push=function(e){7===e.type||4===e.type?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new n.ErrorHandler,this.errorHandler.tolerant=!!t&&"boolean"==typeof t.tolerant&&t.tolerant,this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&"boolean"==typeof t.comment&&t.comment,this.trackRange=!!t&&"boolean"==typeof t.range&&t.range,this.trackLoc=!!t&&"boolean"==typeof t.loc&&t.loc,this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t0?r-4:r;for(i=0;i>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===o&&(t=wm[e.charCodeAt(i)]<<2|wm[e.charCodeAt(i+1)]>>4,a[s++]=255&t);1===o&&(t=wm[e.charCodeAt(i)]<<10|wm[e.charCodeAt(i+1)]<<4|wm[e.charCodeAt(i+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},fromByteArray:function(e){for(var t,i=e.length,n=i%3,r=[],o=16383,a=0,s=i-n;as?s:a+o));1===n?(t=e[i-1],r.push(ym[t>>2]+ym[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],r.push(ym[t>>10]+ym[t>>4&63]+ym[t<<2&63]+"="));return r.join("")}},ym=[],wm=[],xm="undefined"!=typeof Uint8Array?Uint8Array:Array,Nm="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Am=0,km=Nm.length;Am0)throw new Error("Invalid string. Length must be a multiple of 4");var i=e.indexOf("=");return-1===i&&(i=t),[i,i===t?0:4-i%4]}function Em(e,t,i){for(var n,r,o=[],a=t;a>18&63]+ym[r>>12&63]+ym[r>>6&63]+ym[63&r]);return o.join("")}wm["-".charCodeAt(0)]=62,wm["_".charCodeAt(0)]=63;var Sm={}; +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */function Fm(e){return Object.prototype.toString.call(e)}Sm.read=function(e,t,i,n,r){var o,a,s=8*r-n-1,c=(1<>1,u=-7,d=i?r-1:0,h=i?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-u)-1,p>>=-u,u+=s;u>0;o=256*o+e[t+d],d+=h,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=n;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===o)o=1-l;else{if(o===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),o-=l}return(p?-1:1)*a*Math.pow(2,o-n)},Sm.write=function(e,t,i,n,r,o){var a,s,c,l=8*o-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:o-1,m=n?1:-1,f=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[i+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[i+p]=255&a,p+=m,a/=256,l-=8);e[i+p-m]|=128*f}, /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -function(e){const t=hm,i=wm,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const r=2147483647;function o(e){if(e>r)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,i){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,i)}function s(e,t,i){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const i=0|p(e,t);let n=o(i);const r=n.write(e,t);r!==i&&(n=n.slice(0,r));return n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(K(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return u(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(K(e,ArrayBuffer)||e&&K(e.buffer,ArrayBuffer))return d(e,t,i);if("undefined"!=typeof SharedArrayBuffer&&(K(e,SharedArrayBuffer)||e&&K(e.buffer,SharedArrayBuffer)))return d(e,t,i);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,i);const r=function(e){if(a.isBuffer(e)){const t=0|h(e.length),i=o(t);return 0===i.length||e.copy(i,0,0,t),i}if(void 0!==e.length)return"number"!=typeof e.length||G(e.length)?o(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|h(e))}function u(e){const t=e.length<0?0:0|h(e.length),i=o(t);for(let n=0;n=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|e}function p(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||K(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const i=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return q(e).length;default:if(r)return n?-1:H(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,i){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return S(this,t,i);case"utf8":case"utf-8":return N(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return E(this,t,i);case"base64":return A(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,i){const n=e[t];e[t]=e[i],e[i]=n}function g(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),G(i=+i)&&(i=r?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:_(e,t,i,n,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):_(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function _(e,t,i,n,r){let o,a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,i/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){let n=-1;for(o=i;os&&(i=s-c),o=i;o>=0;o--){let i=!0;for(let n=0;nr&&(n=r):n=r;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a>8,r=i%256,o.push(r),o.push(n);return o}(t,e.length-i),e,i,n)}function A(e,i,n){return 0===i&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(i,n))}function N(e,t,i){i=Math.min(e.length,i);const n=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+a<=i){let i,n,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:i=e[r+1],128==(192&i)&&(c=(31&t)<<6|63&i,c>127&&(o=c));break;case 3:i=e[r+1],n=e[r+2],128==(192&i)&&128==(192&n)&&(c=(15&t)<<12|(63&i)<<6|63&n,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:i=e[r+1],n=e[r+2],s=e[r+3],128==(192&i)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&i)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),r+=a}return function(e){const t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);let i="",n=0;for(;nn.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(n,r)):Uint8Array.prototype.set.call(n,t,r);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,r)}r+=t.length}return n},a.byteLength=p,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;ti&&(t+=" ... "),""},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,i,n,r){if(K(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||i>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=i)return 0;if(n>=r)return-1;if(t>=i)return 1;if(this===e)return 0;let o=(r>>>=0)-(n>>>=0),s=(i>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(n,r),u=e.slice(t,i);for(let a=0;a>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}const r=this.length-t;if((void 0===i||i>r)&&(i=r),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return b(this,e,t,i);case"utf8":case"utf-8":return v(this,e,t,i);case"ascii":case"latin1":case"binary":return y(this,e,t,i);case"base64":return w(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const k=4096;function C(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;rn)&&(i=n);let r="";for(let o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,i,n,r,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function B(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,i}function L(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i+7]=o,o>>=8,e[i+6]=o,o>>=8,e[i+5]=o,o>>=8,e[i+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i+3]=a,a>>=8,e[i+2]=a,a>>=8,e[i+1]=a,a>>=8,e[i]=a,i+8}function M(e,t,i,n,r,o){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function $(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function T(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,8),i.write(e,t,n,r,52,8),n+8}a.prototype.slice=function(e,t){const i=this.length;(e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e+--t],r=1;for(;t>0&&(r*=256);)n+=this[e+--t]*r;return n},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+i*2**24;return BigInt(n)+(BigInt(r)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+i;return(BigInt(n)<>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e],r=1,o=0;for(;++o=r&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,i){e>>>=0,t>>>=0,i||O(e,t,this.length);let n=t,r=1,o=this[e+--n];for(;n>0&&(r*=256);)o+=this[e+--n]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||O(e,2,this.length);const i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt16BE=function(e,t){e>>>=0,t||O(e,2,this.length);const i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(i<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||O(e,4,this.length),i.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),i.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,i,n){if(e=+e,t>>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=1,o=0;for(this[t]=255&e;++o>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=i-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+i},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=J((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=J((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=0,o=1,a=0;for(this[t]=255&e;++r>0)-a&255;return t+i},a.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=i-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},a.prototype.writeInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=J((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=J((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,i){return $(this,e,t,!0,i)},a.prototype.writeFloatBE=function(e,t,i){return $(this,e,t,!1,i)},a.prototype.writeDoubleLE=function(e,t,i){return T(this,e,t,!0,i)},a.prototype.writeDoubleBE=function(e,t,i){return T(this,e,t,!1,i)},a.prototype.copy=function(e,t,i,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r=n+4;i-=3)t=`_${e.slice(i-3,i)}${t}`;return`${e.slice(0,i)}${t}`}function P(e,t,i,n,r,o){if(e>i||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${i}${n}`,new R.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,i){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+i]||U(t,e.length-(i+1))}(n,r,o)}function z(e,t){if("number"!=typeof e)throw new R.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,i){if(Math.floor(e)!==e)throw z(e,i),new R.ERR_OUT_OF_RANGE(i||"offset","an integer",e);if(t<0)throw new R.ERR_BUFFER_OUT_OF_BOUNDS;throw new R.ERR_OUT_OF_RANGE(i||"offset",`>= ${i?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,i){let n=`The value of "${e}" is out of range.`,r=i;return Number.isInteger(i)&&Math.abs(i)>2**32?r=I(String(i)):"bigint"==typeof i&&(r=String(i),(i>BigInt(2)**BigInt(32)||i<-(BigInt(2)**BigInt(32)))&&(r=I(r)),r+="n"),n+=` It must be ${t}. Received ${r}`,n}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function H(e,t){let i;t=t||1/0;const n=e.length;let r=null;const o=[];for(let a=0;a55295&&i<57344){if(!r){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,i<128){if((t-=1)<0)break;o.push(i)}else if(i<2048){if((t-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function q(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,i,n){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function K(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function G(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let i=0;i<16;++i){const n=16*i;for(let r=0;r<16;++r)t[n+r]=e[i]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(dm),um.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===xm(e)},um.isBoolean=function(e){return"boolean"==typeof e},um.isNull=function(e){return null===e},um.isNullOrUndefined=function(e){return null==e},um.isNumber=function(e){return"number"==typeof e},um.isString=function(e){return"string"==typeof e},um.isSymbol=function(e){return"symbol"==typeof e},um.isUndefined=function(e){return void 0===e},um.isRegExp=function(e){return"[object RegExp]"===xm(e)},um.isObject=function(e){return"object"==typeof e&&null!==e},um.isDate=function(e){return"[object Date]"===xm(e)},um.isError=function(e){return"[object Error]"===xm(e)||e instanceof Error},um.isFunction=function(e){return"function"==typeof e},um.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},um.isBuffer=dm.Buffer.isBuffer;const Am=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let Nm;const km=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function Cm(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const i=km(e),n=km(t);let r=0;return in&&(t*=Am[i-n-1],e/=10,r=1),e===t?r:e=0;)r++;return r-t}function Sm(e,t,i){for(i--;t>>1;r(i,e[t])<0?s=t:a=t+1}let c=n-a;switch(c){case 3:e[a+3]=e[a+2],Nm[a+3]=Nm[a+2];case 2:e[a+2]=e[a+1],Nm[a+2]=Nm[a+1];case 1:e[a+1]=e[a],Nm[a+1]=Nm[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],Nm[a+c]=Nm[a+c-1],c--}e[a]=i,Nm[a]=o}}function Om(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])>0){for(s=n-r;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}for(a++;a>>1);o(e,t[i+n])>0?a=n+1:c=n}return c}function Dm(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])<0){for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}else{for(s=n-r;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a>>1);o(e,t[i+n])<0?c=n:a=n+1}return c}class Bm{constructor(e,t){this.array=e,this.compare=t;const{length:i}=e;this.length=i,this.minGallop=7,this.tmpStorageLength=i<512?i>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=i<120?5:i<1542?10:i<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||i>=7);if(p)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[p+c]=o[h+c],Nm[p+c]=Nm[h+c];return o[d]=a[u],void(Nm[d]=s[u])}let{minGallop:m}=this;for(;;){let i=0,f=0,g=!1;do{if(r(a[u],o[l])<0){if(o[d]=o[l],Nm[d]=Nm[l],d--,l--,i++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],Nm[d]=s[u],d--,u--,f++,i=0,1==--n){g=!0;break}}while((i|f)=0;c--)o[p+c]=o[h+c],Nm[p+c]=Nm[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],Nm[d]=s[u],d--,u--,1==--n){g=!0;break}if(f=n-Om(o[l],a,0,n,n-1,r),0!==f){for(d-=f,u-=f,n-=f,p=d+1,h=u+1,c=0;c=7||f>=7);if(g)break;m<0&&(m=0),m+=2}if(this.minGallop=m,m<1&&(this.minGallop=1),1===n){for(d-=t,l-=t,p=d+1,h=l+1,c=t-1;c>=0;c--)o[p+c]=o[h+c],Nm[p+c]=Nm[h+c];o[d]=a[u],Nm[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(h=d-(n-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=Em(e,i,n,t),sl&&(n=l),Fm(e,i,i+n,i+s,t),s=n}c.pushRun(i,s),c.mergeRuns(),a-=s,i+=s}while(0!==a);return c.forceMergeRuns(),Nm}};const Mm=Object.prototype.hasOwnProperty;const $m=(e,t)=>Mm.call(e,t),{isObject:Tm,isArray:Rm}=um,jm="before",Im="before-all",Pm="after-all",zm=[jm,"after-prop","after-colon","after-value","after"],Um=[jm,Im,Pm].map(Symbol.for),Wm=(e,t)=>Symbol.for(e+":"+t),Hm=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),qm=(e,t,i,n,r,o)=>{const a=Wm(r,n);if(!$m(t,a))return;const s=i===n?a:Wm(r,i);Hm(e,s,t[a]),o&&delete t[a]},Vm=(e,t,i,n,r)=>{zm.forEach((o=>{qm(e,t,i,n,o,r)}))},Km=(e,t)=>{Um.forEach((i=>{const n=t[i];n&&Hm(e,i,n)}))};var Gm={SYMBOL_PREFIXES:zm,PREFIX_BEFORE:jm,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Im,PREFIX_AFTER_ALL:Pm,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Wm,define:Hm,copy_comments:Vm,swap_comments:(e,t,i)=>{t!==i&&zm.forEach((n=>{const r=Wm(n,i);if(!$m(e,r))return void qm(e,e,i,t,n,!0);const o=e[r];delete e[r],qm(e,e,i,t,n,!0),Hm(e,Wm(n,t),o)}))},assign_non_prop_comments:Km,assign(e,t,i){if(!Tm(e))throw new TypeError("Cannot convert undefined or null to object");if(!Tm(t))return e;if(undefined===i)i=Object.keys(t),Km(e,t);else{if(!Rm(i))throw new TypeError("keys must be array or undefined");0===i.length&&Km(e,t)}return((e,t,i)=>(i.forEach((i=>{$m(t,i)&&(e[i]=t[i],Vm(e,t,i,i))})),e))(e,t,i)}};const{isArray:Xm}=um,{sort:Jm}=Lm,{SYMBOL_PREFIXES:Ym,UNDEFINED:Zm,symbol:Qm,copy_comments:ef,swap_comments:tf}=Gm,nf=(e,t,i,n,r)=>{ef(e,t,i+n,i,r)},rf=(e,t,i,n,r,o)=>{if(r>0){let a=n;for(;a-- >0;)nf(e,t,i+a,r,o);return}let a=0;for(;a{Ym.forEach((i=>{const n=Qm(i,t);delete e[n]}))};class af extends Array{splice(...e){const{length:t}=this,i=super.splice(...e);let[n,r,...o]=e;n<0&&(n+=t),r=1===arguments.length?t-n:Math.min(t-n,r);const{length:a}=o,s=n+r;return rf(this,this,s,t-s,a-r,!0),i}slice(...e){const{length:t}=this,i=super.slice(...e);if(!i.length)return new af;let[n,r]=e;return r===Zm?r=t:r<0&&(r+=t),n<0?n+=t:n===Zm&&(n=0),rf(i,this,n,r-n,-n),i}unshift(...e){const{length:t}=this,i=super.unshift(...e),{length:n}=e;return n>0&&rf(this,this,0,t,n,!0),i}shift(){const e=super.shift(),{length:t}=this;return of(this,0),rf(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let i=0;const n=t/2;for(;i{const n=t;t+=Xm(e)?e.length:1,e instanceof af&&rf(i,e,0,e.length,n)})),i):i}sort(...e){const t=Jm(this,...e.slice(0,1)),i=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const n=((e,t)=>{let i=t;for(;i in e;)i=e[i];return i})(i,e);n!==t&&(i[t]=n,tf(this,t,n))})),this}}var sf={CommentArray:af};const cf=lm.exports,{CommentArray:lf}=sf,{PREFIX_BEFORE:uf,PREFIX_AFTER_PROP:df,PREFIX_AFTER_COLON:hf,PREFIX_AFTER_VALUE:pf,PREFIX_AFTER:mf,PREFIX_BEFORE_ALL:ff,PREFIX_AFTER_ALL:gf,BRACKET_OPEN:_f,BRACKET_CLOSE:bf,CURLY_BRACKET_OPEN:vf,CURLY_BRACKET_CLOSE:yf,COLON:wf,COMMA:xf,MINUS:Af,EMPTY:Nf,UNDEFINED:kf,define:Cf,assign_non_prop_comments:Ef}=Gm,Sf=e=>cf.tokenize(e,{comment:!0,loc:!0}),Ff=[];let Of=null,Df=null;const Bf=[];let Lf,Mf,$f=!1,Tf=!1,Rf=null,jf=null,If=null,Pf=null;const zf=()=>{Bf.length=Ff.length=0,jf=null,Lf=kf},Uf=e=>Symbol.for(Lf!==kf?e+wf+Lf:e),Wf=(e,t)=>Pf?Pf(e,t):t,Hf=()=>{const e=new SyntaxError(`Unexpected token ${If.value.slice(0,1)}`);throw Object.assign(e,If.loc.start),e},qf=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,jf?jf.loc.end:{line:1,column:0}),e},Vf=()=>{const e=Rf[++Mf];Tf=If&&e&&If.loc.end.line===e.loc.start.line||!1,jf=If,If=e},Kf=()=>(If||qf(),"Punctuator"===If.type?If.value:If.type),Gf=e=>Kf()===e,Xf=e=>{Gf(e)||Hf()},Jf=e=>{Ff.push(Of),Of=e},Yf=()=>{Of=Ff.pop()},Zf=()=>{if(!Df)return;const e=[];for(const i of Df){if(!i.inline)break;e.push(i)}const{length:t}=e;t&&(t===Df.length?Df=null:Df.splice(0,t),Cf(Of,Uf(mf),e))},Qf=e=>{Df&&(Cf(Of,Uf(e),Df),Df=null)},eg=e=>{const t=[];for(;If&&(Gf("LineComment")||Gf("BlockComment"));){const e=c(s({},If),{inline:Tf});t.push(e),Vf()}$f||t.length&&(e?Cf(Of,Uf(e),t):Df=t)},tg=(e,t)=>{t&&Bf.push(Lf),Lf=e},ig=()=>{Lf=Bf.pop()};function ng(){let e=Kf();if(e===vf)return Vf(),(()=>{const e={};Jf(e),tg(kf,!0);let t,i=!1;for(eg();!(Gf(yf)||i&&(Qf(pf),Xf(xf),Vf(),eg(),Zf(),Gf(yf)));)i=!0,Xf("String"),t=JSON.parse(If.value),tg(t),Qf(uf),Vf(),eg(df),Xf(wf),Vf(),eg(hf),e[t]=Wf(t,ng()),eg();return i&&Qf(mf),Vf(),Lf=void 0,i||Qf(uf),Yf(),ig(),e})();if(e===_f)return Vf(),(()=>{const e=new lf;Jf(e),tg(kf,!0);let t=!1,i=0;for(eg();!(Gf(bf)||t&&(Qf(pf),Xf(xf),Vf(),eg(),Zf(),Gf(bf)));)t=!0,tg(i),Qf(uf),e[i]=Wf(i,ng()),i++,eg();return t&&Qf(mf),Vf(),Lf=void 0,t||Qf(uf),Yf(),ig(),e})();let t,i=Nf;switch(e===Af&&(Vf(),e=Kf(),i=Af),e){case"String":case"Boolean":case"Null":case"Numeric":return t=If.value,Vf(),JSON.parse(i+t)}}var rg,og={parse:(e,t,i)=>{zf(),Rf=Sf(e),Pf=t,$f=i,Rf.length||qf(),Mf=-1,Vf(),Jf({}),eg(ff);let n=ng();var r;return eg(gf),If&&Hf(),i||null===n||(r=n,Object(r)!==r&&(n=new Object(n)),Ef(n,Of)),Yf(),n=Wf("",n),zf(),Rf.length=0,Df=Of=Rf=jf=If=Pf=null,n},tokenize:Sf},ag="",sg=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var i=e.length*t;if(rg!==e||void 0===rg)rg=e,ag="";else if(ag.length>=i)return ag.substr(0,i);for(;i>ag.length&&t>1;)1&t&&(ag+=e),t>>=1,e+=e;return ag=(ag+=e).substr(0,i)}; +function(e){const t=vm,i=Sm,n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=function(e){+e!=e&&(e=0);return a.alloc(+e)},e.INSPECT_MAX_BYTES=50;const r=2147483647;function o(e){if(e>r)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,a.prototype),t}function a(e,t,i){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return s(e,t,i)}function s(e,t,i){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!a.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const i=0|p(e,t);let n=o(i);const r=n.write(e,t);r!==i&&(n=n.slice(0,r));return n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(K(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return u(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(K(e,ArrayBuffer)||e&&K(e.buffer,ArrayBuffer))return d(e,t,i);if("undefined"!=typeof SharedArrayBuffer&&(K(e,SharedArrayBuffer)||e&&K(e.buffer,SharedArrayBuffer)))return d(e,t,i);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return a.from(n,t,i);const r=function(e){if(a.isBuffer(e)){const t=0|h(e.length),i=o(t);return 0===i.length||e.copy(i,0,0,t),i}if(void 0!==e.length)return"number"!=typeof e.length||G(e.length)?o(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return a.from(e[Symbol.toPrimitive]("string"),t,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return c(e),o(e<0?0:0|h(e))}function u(e){const t=e.length<0?0:0|h(e.length),i=o(t);for(let n=0;n=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|e}function p(e,t){if(a.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||K(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const i=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return q(e).length;default:if(r)return n?-1:H(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,i){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return S(this,t,i);case"utf8":case"utf-8":return A(this,t,i);case"ascii":return C(this,t,i);case"latin1":case"binary":return E(this,t,i);case"base64":return N(this,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,i);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function f(e,t,i){const n=e[t];e[t]=e[i],e[i]=n}function g(e,t,i,n,r){if(0===e.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),G(i=+i)&&(i=r?0:e.length-1),i<0&&(i=e.length+i),i>=e.length){if(r)return-1;i=e.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof t&&(t=a.from(t,n)),a.isBuffer(t))return 0===t.length?-1:_(e,t,i,n,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,i):Uint8Array.prototype.lastIndexOf.call(e,t,i):_(e,[t],i,n,r);throw new TypeError("val must be string, number or Buffer")}function _(e,t,i,n,r){let o,a=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,i/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){let n=-1;for(o=i;os&&(i=s-c),o=i;o>=0;o--){let i=!0;for(let n=0;nr&&(n=r):n=r;const o=t.length;let a;for(n>o/2&&(n=o/2),a=0;a>8,r=i%256,o.push(r),o.push(n);return o}(t,e.length-i),e,i,n)}function N(e,i,n){return 0===i&&n===e.length?t.fromByteArray(e):t.fromByteArray(e.slice(i,n))}function A(e,t,i){i=Math.min(e.length,i);const n=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+a<=i){let i,n,s,c;switch(a){case 1:t<128&&(o=t);break;case 2:i=e[r+1],128==(192&i)&&(c=(31&t)<<6|63&i,c>127&&(o=c));break;case 3:i=e[r+1],n=e[r+2],128==(192&i)&&128==(192&n)&&(c=(15&t)<<12|(63&i)<<6|63&n,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:i=e[r+1],n=e[r+2],s=e[r+3],128==(192&i)&&128==(192&n)&&128==(192&s)&&(c=(15&t)<<18|(63&i)<<12|(63&n)<<6|63&s,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|1023&o),n.push(o),r+=a}return function(e){const t=e.length;if(t<=k)return String.fromCharCode.apply(String,e);let i="",n=0;for(;nn.length?(a.isBuffer(t)||(t=a.from(t)),t.copy(n,r)):Uint8Array.prototype.set.call(n,t,r);else{if(!a.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,r)}r+=t.length}return n},a.byteLength=p,a.prototype._isBuffer=!0,a.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;ti&&(t+=" ... "),""},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(e,t,i,n,r){if(K(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===i&&(i=e?e.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),t<0||i>e.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&t>=i)return 0;if(n>=r)return-1;if(t>=i)return 1;if(this===e)return 0;let o=(r>>>=0)-(n>>>=0),s=(i>>>=0)-(t>>>=0);const c=Math.min(o,s),l=this.slice(n,r),u=e.slice(t,i);for(let a=0;a>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}const r=this.length-t;if((void 0===i||i>r)&&(i=r),e.length>0&&(i<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return b(this,e,t,i);case"utf8":case"utf-8":return v(this,e,t,i);case"ascii":case"latin1":case"binary":return y(this,e,t,i);case"base64":return w(this,e,t,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,i);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const k=4096;function C(e,t,i){let n="";i=Math.min(e.length,i);for(let r=t;rn)&&(i=n);let r="";for(let o=t;oi)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,i,n,r,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function B(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o,o>>=8,e[i++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,a>>=8,e[i++]=a,i}function L(e,t,i,n,r){P(t,n,r,e,i,7);let o=Number(t&BigInt(4294967295));e[i+7]=o,o>>=8,e[i+6]=o,o>>=8,e[i+5]=o,o>>=8,e[i+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[i+3]=a,a>>=8,e[i+2]=a,a>>=8,e[i+1]=a,a>>=8,e[i]=a,i+8}function M(e,t,i,n,r,o){if(i+n>e.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function $(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function T(e,t,n,r,o){return t=+t,n>>>=0,o||M(e,0,n,8),i.write(e,t,n,r,52,8),n+8}a.prototype.slice=function(e,t){const i=this.length;(e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e+--t],r=1;for(;t>0&&(r*=256);)n+=this[e+--t]*r;return n},a.prototype.readUint8=a.prototype.readUInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),this[e]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readBigUInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+i*2**24;return BigInt(n)+(BigInt(r)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+i;return(BigInt(n)<>>=0,t>>>=0,i||O(e,t,this.length);let n=this[e],r=1,o=0;for(;++o=r&&(n-=Math.pow(2,8*t)),n},a.prototype.readIntBE=function(e,t,i){e>>>=0,t>>>=0,i||O(e,t,this.length);let n=t,r=1,o=this[e+--n];for(;n>0&&(r*=256);)o+=this[e+--n]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return e>>>=0,t||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){e>>>=0,t||O(e,2,this.length);const i=this[e]|this[e+1]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt16BE=function(e,t){e>>>=0,t||O(e,2,this.length);const i=this[e+1]|this[e]<<8;return 32768&i?4294901760|i:i},a.prototype.readInt32LE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return e>>>=0,t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readBigInt64LE=J((function(e){z(e>>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(i<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],i=this[e+7];void 0!==t&&void 0!==i||U(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||O(e,4,this.length),i.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),i.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),i.read(this,e,!1,52,8)},a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,t,i,n){if(e=+e,t>>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=1,o=0;for(this[t]=255&e;++o>>=0,i>>>=0,!n){D(this,e,t,i,Math.pow(2,8*i)-1,0)}let r=i-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+i},a.prototype.writeUint8=a.prototype.writeUInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,255,0),this[t]=255&e,t+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigUInt64LE=J((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeBigUInt64BE=J((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),a.prototype.writeIntLE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=0,o=1,a=0;for(this[t]=255&e;++r>0)-a&255;return t+i},a.prototype.writeIntBE=function(e,t,i,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*i-1);D(this,e,t,i,n-1,-n)}let r=i-1,o=1,a=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===a&&0!==this[t+r+1]&&(a=1),this[t+r]=(e/o>>0)-a&255;return t+i},a.prototype.writeInt8=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},a.prototype.writeInt16BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},a.prototype.writeInt32LE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},a.prototype.writeInt32BE=function(e,t,i){return e=+e,t>>>=0,i||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},a.prototype.writeBigInt64LE=J((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeBigInt64BE=J((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),a.prototype.writeFloatLE=function(e,t,i){return $(this,e,t,!0,i)},a.prototype.writeFloatBE=function(e,t,i){return $(this,e,t,!1,i)},a.prototype.writeDoubleLE=function(e,t,i){return T(this,e,t,!0,i)},a.prototype.writeDoubleBE=function(e,t,i){return T(this,e,t,!1,i)},a.prototype.copy=function(e,t,i,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,i=void 0===i?this.length:i>>>0,e||(e=0),"number"==typeof e)for(r=t;r=n+4;i-=3)t=`_${e.slice(i-3,i)}${t}`;return`${e.slice(0,i)}${t}`}function P(e,t,i,n,r,o){if(e>i||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(o+1)}${n}`:`>= -(2${n} ** ${8*(o+1)-1}${n}) and < 2 ** ${8*(o+1)-1}${n}`:`>= ${t}${n} and <= ${i}${n}`,new R.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,i){z(t,"offset"),void 0!==e[t]&&void 0!==e[t+i]||U(t,e.length-(i+1))}(n,r,o)}function z(e,t){if("number"!=typeof e)throw new R.ERR_INVALID_ARG_TYPE(t,"number",e)}function U(e,t,i){if(Math.floor(e)!==e)throw z(e,i),new R.ERR_OUT_OF_RANGE(i||"offset","an integer",e);if(t<0)throw new R.ERR_BUFFER_OUT_OF_BOUNDS;throw new R.ERR_OUT_OF_RANGE(i||"offset",`>= ${i?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,i){let n=`The value of "${e}" is out of range.`,r=i;return Number.isInteger(i)&&Math.abs(i)>2**32?r=I(String(i)):"bigint"==typeof i&&(r=String(i),(i>BigInt(2)**BigInt(32)||i<-(BigInt(2)**BigInt(32)))&&(r=I(r)),r+="n"),n+=` It must be ${t}. Received ${r}`,n}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function H(e,t){let i;t=t||1/0;const n=e.length;let r=null;const o=[];for(let a=0;a55295&&i<57344){if(!r){if(i>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}r=i;continue}if(i<56320){(t-=3)>-1&&o.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,i<128){if((t-=1)<0)break;o.push(i)}else if(i<2048){if((t-=2)<0)break;o.push(i>>6|192,63&i|128)}else if(i<65536){if((t-=3)<0)break;o.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return o}function q(e){return t.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,i,n){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+i]=e[r];return r}function K(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function G(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let i=0;i<16;++i){const n=16*i;for(let r=0;r<16;++r)t[n+r]=e[i]+e[r]}return t}();function J(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}}(bm),_m.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Fm(e)},_m.isBoolean=function(e){return"boolean"==typeof e},_m.isNull=function(e){return null===e},_m.isNullOrUndefined=function(e){return null==e},_m.isNumber=function(e){return"number"==typeof e},_m.isString=function(e){return"string"==typeof e},_m.isSymbol=function(e){return"symbol"==typeof e},_m.isUndefined=function(e){return void 0===e},_m.isRegExp=function(e){return"[object RegExp]"===Fm(e)},_m.isObject=function(e){return"object"==typeof e&&null!==e},_m.isDate=function(e){return"[object Date]"===Fm(e)},_m.isError=function(e){return"[object Error]"===Fm(e)||e instanceof Error},_m.isFunction=function(e){return"function"==typeof e},_m.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},_m.isBuffer=bm.Buffer.isBuffer;const Om=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];let Dm;const Bm=e=>e<1e5?e<100?e<10?0:1:e<1e4?e<1e3?2:3:4:e<1e7?e<1e6?5:6:e<1e9?e<1e8?7:8:9;function Lm(e,t){if(e===t)return 0;if(~~e===e&&~~t===t){if(0===e||0===t)return e=0)return-1;if(e>=0)return 1;e=-e,t=-t}const i=Bm(e),n=Bm(t);let r=0;return in&&(t*=Om[i-n-1],e/=10,r=1),e===t?r:e=0;)r++;return r-t}function $m(e,t,i){for(i--;t>>1;r(i,e[t])<0?s=t:a=t+1}let c=n-a;switch(c){case 3:e[a+3]=e[a+2],Dm[a+3]=Dm[a+2];case 2:e[a+2]=e[a+1],Dm[a+2]=Dm[a+1];case 1:e[a+1]=e[a],Dm[a+1]=Dm[a];break;default:for(;c>0;)e[a+c]=e[a+c-1],Dm[a+c]=Dm[a+c-1],c--}e[a]=i,Dm[a]=o}}function Rm(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])>0){for(s=n-r;c0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}else{for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}for(a++;a>>1);o(e,t[i+n])>0?a=n+1:c=n}return c}function jm(e,t,i,n,r,o){let a=0,s=0,c=1;if(o(e,t[i+r])<0){for(s=r+1;cs&&(c=s);const n=a;a=r-c,c=r-n}else{for(s=n-r;c=0;)a=c,c=1+(c<<1),c<=0&&(c=s);c>s&&(c=s),a+=r,c+=r}for(a++;a>>1);o(e,t[i+n])<0?c=n:a=n+1}return c}class Im{constructor(e,t){this.array=e,this.compare=t;const{length:i}=e;this.length=i,this.minGallop=7,this.tmpStorageLength=i<512?i>>>1:256,this.tmp=new Array(this.tmpStorageLength),this.tmpIndex=new Array(this.tmpStorageLength),this.stackLength=i<120?5:i<1542?10:i<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}pushRun(e,t){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=t,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]=7||i>=7);if(p)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),1===t){for(c=0;c=0;c--)o[p+c]=o[h+c],Dm[p+c]=Dm[h+c];return o[d]=a[u],void(Dm[d]=s[u])}let{minGallop:m}=this;for(;;){let i=0,f=0,g=!1;do{if(r(a[u],o[l])<0){if(o[d]=o[l],Dm[d]=Dm[l],d--,l--,i++,f=0,0==--t){g=!0;break}}else if(o[d]=a[u],Dm[d]=s[u],d--,u--,f++,i=0,1==--n){g=!0;break}}while((i|f)=0;c--)o[p+c]=o[h+c],Dm[p+c]=Dm[h+c];if(0===t){g=!0;break}}if(o[d]=a[u],Dm[d]=s[u],d--,u--,1==--n){g=!0;break}if(f=n-Rm(o[l],a,0,n,n-1,r),0!==f){for(d-=f,u-=f,n-=f,p=d+1,h=u+1,c=0;c=7||f>=7);if(g)break;m<0&&(m=0),m+=2}if(this.minGallop=m,m<1&&(this.minGallop=1),1===n){for(d-=t,l-=t,p=d+1,h=l+1,c=t-1;c>=0;c--)o[p+c]=o[h+c],Dm[p+c]=Dm[h+c];o[d]=a[u],Dm[d]=s[u]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(h=d-(n-1),c=0;c=32;)t|=1&e,e>>=1;return e+t}(a);do{if(s=Mm(e,i,n,t),sl&&(n=l),Tm(e,i,i+n,i+s,t),s=n}c.pushRun(i,s),c.mergeRuns(),a-=s,i+=s}while(0!==a);return c.forceMergeRuns(),Dm}};const zm=Object.prototype.hasOwnProperty;const Um=(e,t)=>zm.call(e,t),{isObject:Wm,isArray:Hm}=_m,qm="before",Vm="before-all",Km="after-all",Gm=[qm,"after-prop","after-colon","after-value","after"],Xm=[qm,Vm,Km].map(Symbol.for),Jm=(e,t)=>Symbol.for(e+":"+t),Ym=(e,t,i)=>Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0}),Zm=(e,t,i,n,r,o)=>{const a=Jm(r,n);if(!Um(t,a))return;const s=i===n?a:Jm(r,i);Ym(e,s,t[a]),o&&delete t[a]},Qm=(e,t,i,n,r)=>{Gm.forEach((o=>{Zm(e,t,i,n,o,r)}))},ef=(e,t)=>{Xm.forEach((i=>{const n=t[i];n&&Ym(e,i,n)}))};var tf={SYMBOL_PREFIXES:Gm,PREFIX_BEFORE:qm,PREFIX_AFTER_PROP:"after-prop",PREFIX_AFTER_COLON:"after-colon",PREFIX_AFTER_VALUE:"after-value",PREFIX_AFTER:"after",PREFIX_BEFORE_ALL:Vm,PREFIX_AFTER_ALL:Km,BRACKET_OPEN:"[",BRACKET_CLOSE:"]",CURLY_BRACKET_OPEN:"{",CURLY_BRACKET_CLOSE:"}",COLON:":",COMMA:",",MINUS:"-",EMPTY:"",UNDEFINED:undefined,symbol:Jm,define:Ym,copy_comments:Qm,swap_comments:(e,t,i)=>{t!==i&&Gm.forEach((n=>{const r=Jm(n,i);if(!Um(e,r))return void Zm(e,e,i,t,n,!0);const o=e[r];delete e[r],Zm(e,e,i,t,n,!0),Ym(e,Jm(n,t),o)}))},assign_non_prop_comments:ef,assign(e,t,i){if(!Wm(e))throw new TypeError("Cannot convert undefined or null to object");if(!Wm(t))return e;if(undefined===i)i=Object.keys(t),ef(e,t);else{if(!Hm(i))throw new TypeError("keys must be array or undefined");0===i.length&&ef(e,t)}return((e,t,i)=>(i.forEach((i=>{Um(t,i)&&(e[i]=t[i],Qm(e,t,i,i))})),e))(e,t,i)}};const{isArray:nf}=_m,{sort:rf}=Pm,{SYMBOL_PREFIXES:of,UNDEFINED:af,symbol:sf,copy_comments:cf,swap_comments:lf}=tf,uf=(e,t,i,n,r)=>{cf(e,t,i+n,i,r)},df=(e,t,i,n,r,o)=>{if(r>0){let a=n;for(;a-- >0;)uf(e,t,i+a,r,o);return}let a=0;for(;a{of.forEach((i=>{const n=sf(i,t);delete e[n]}))};class pf extends Array{splice(...e){const{length:t}=this,i=super.splice(...e);let[n,r,...o]=e;n<0&&(n+=t),r=1===arguments.length?t-n:Math.min(t-n,r);const{length:a}=o,s=n+r;return df(this,this,s,t-s,a-r,!0),i}slice(...e){const{length:t}=this,i=super.slice(...e);if(!i.length)return new pf;let[n,r]=e;return r===af?r=t:r<0&&(r+=t),n<0?n+=t:n===af&&(n=0),df(i,this,n,r-n,-n),i}unshift(...e){const{length:t}=this,i=super.unshift(...e),{length:n}=e;return n>0&&df(this,this,0,t,n,!0),i}shift(){const e=super.shift(),{length:t}=this;return hf(this,0),df(this,this,1,t,-1,!0),e}reverse(){return super.reverse(),(e=>{const{length:t}=e;let i=0;const n=t/2;for(;i{const n=t;t+=nf(e)?e.length:1,e instanceof pf&&df(i,e,0,e.length,n)})),i):i}sort(...e){const t=rf(this,...e.slice(0,1)),i=Object.create(null);return t.forEach(((e,t)=>{if(e===t)return;const n=((e,t)=>{let i=t;for(;i in e;)i=e[i];return i})(i,e);n!==t&&(i[t]=n,lf(this,t,n))})),this}}var mf={CommentArray:pf};const ff=gm.exports,{CommentArray:gf}=mf,{PREFIX_BEFORE:_f,PREFIX_AFTER_PROP:bf,PREFIX_AFTER_COLON:vf,PREFIX_AFTER_VALUE:yf,PREFIX_AFTER:wf,PREFIX_BEFORE_ALL:xf,PREFIX_AFTER_ALL:Nf,BRACKET_OPEN:Af,BRACKET_CLOSE:kf,CURLY_BRACKET_OPEN:Cf,CURLY_BRACKET_CLOSE:Ef,COLON:Sf,COMMA:Ff,MINUS:Of,EMPTY:Df,UNDEFINED:Bf,define:Lf,assign_non_prop_comments:Mf}=tf,$f=e=>ff.tokenize(e,{comment:!0,loc:!0}),Tf=[];let Rf=null,jf=null;const If=[];let Pf,zf,Uf=!1,Wf=!1,Hf=null,qf=null,Vf=null,Kf=null;const Gf=()=>{If.length=Tf.length=0,qf=null,Pf=Bf},Xf=e=>Symbol.for(Pf!==Bf?e+Sf+Pf:e),Jf=(e,t)=>Kf?Kf(e,t):t,Yf=()=>{const e=new SyntaxError(`Unexpected token ${Vf.value.slice(0,1)}`);throw Object.assign(e,Vf.loc.start),e},Zf=()=>{const e=new SyntaxError("Unexpected end of JSON input");throw Object.assign(e,qf?qf.loc.end:{line:1,column:0}),e},Qf=()=>{const e=Hf[++zf];Wf=Vf&&e&&Vf.loc.end.line===e.loc.start.line||!1,qf=Vf,Vf=e},eg=()=>(Vf||Zf(),"Punctuator"===Vf.type?Vf.value:Vf.type),tg=e=>eg()===e,ig=e=>{tg(e)||Yf()},ng=e=>{Tf.push(Rf),Rf=e},rg=()=>{Rf=Tf.pop()},og=()=>{if(!jf)return;const e=[];for(const i of jf){if(!i.inline)break;e.push(i)}const{length:t}=e;t&&(t===jf.length?jf=null:jf.splice(0,t),Lf(Rf,Xf(wf),e))},ag=e=>{jf&&(Lf(Rf,Xf(e),jf),jf=null)},sg=e=>{const t=[];for(;Vf&&(tg("LineComment")||tg("BlockComment"));){const e=c(s({},Vf),{inline:Wf});t.push(e),Qf()}Uf||t.length&&(e?Lf(Rf,Xf(e),t):jf=t)},cg=(e,t)=>{t&&If.push(Pf),Pf=e},lg=()=>{Pf=If.pop()};function ug(){let e=eg();if(e===Cf)return Qf(),(()=>{const e={};ng(e),cg(Bf,!0);let t,i=!1;for(sg();!(tg(Ef)||i&&(ag(yf),ig(Ff),Qf(),sg(),og(),tg(Ef)));)i=!0,ig("String"),t=JSON.parse(Vf.value),cg(t),ag(_f),Qf(),sg(bf),ig(Sf),Qf(),sg(vf),e[t]=Jf(t,ug()),sg();return i&&ag(wf),Qf(),Pf=void 0,i||ag(_f),rg(),lg(),e})();if(e===Af)return Qf(),(()=>{const e=new gf;ng(e),cg(Bf,!0);let t=!1,i=0;for(sg();!(tg(kf)||t&&(ag(yf),ig(Ff),Qf(),sg(),og(),tg(kf)));)t=!0,cg(i),ag(_f),e[i]=Jf(i,ug()),i++,sg();return t&&ag(wf),Qf(),Pf=void 0,t||ag(_f),rg(),lg(),e})();let t,i=Df;switch(e===Of&&(Qf(),e=eg(),i=Of),e){case"String":case"Boolean":case"Null":case"Numeric":return t=Vf.value,Qf(),JSON.parse(i+t)}}var dg,hg={parse:(e,t,i)=>{Gf(),Hf=$f(e),Kf=t,Uf=i,Hf.length||Zf(),zf=-1,Qf(),ng({}),sg(xf);let n=ug();var r;return sg(Nf),Vf&&Yf(),i||null===n||(r=n,Object(r)!==r&&(n=new Object(n)),Mf(n,Rf)),rg(),n=Jf("",n),Gf(),Hf.length=0,jf=Rf=Hf=qf=Vf=Kf=null,n},tokenize:$f},pg="",mg=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var i=e.length*t;if(dg!==e||void 0===dg)dg=e,pg="";else if(pg.length>=i)return pg.substr(0,i);for(;i>pg.length&&t>1;)1&t&&(pg+=e),t>>=1,e+=e;return pg=(pg+=e).substr(0,i)}; /*! * repeat-string * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. - */const{isArray:cg,isObject:lg,isFunction:ug,isNumber:dg,isString:hg}=um,pg=sg,{PREFIX_BEFORE_ALL:mg,PREFIX_BEFORE:fg,PREFIX_AFTER_PROP:gg,PREFIX_AFTER_COLON:_g,PREFIX_AFTER_VALUE:bg,PREFIX_AFTER:vg,PREFIX_AFTER_ALL:yg,BRACKET_OPEN:wg,BRACKET_CLOSE:xg,CURLY_BRACKET_OPEN:Ag,CURLY_BRACKET_CLOSE:Ng,COLON:kg,COMMA:Cg,EMPTY:Eg,UNDEFINED:Sg}=Gm,Fg=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,Og=e=>`${fg}:${e}`,Dg=e=>`${bg}:${e}`,Bg=e=>`${vg}:${e}`,Lg={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},Mg=e=>`"${(e=>(Fg.lastIndex=0,Fg.test(e)?e.replace(Fg,(e=>{const t=Lg[e];return"string"==typeof t?t:e})):e))(e)}"`,$g=(e,t,i,n)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return Eg;let o=!1;const a=r.reduce(((e,{inline:t,type:n,value:r})=>(o="LineComment"===n,e+(t?" ":"\n"+i)+((e,t)=>t?`//${e}`:`/*${e}*/`)(r,o))),Eg);return n||o?a+"\n"+i:a};let Tg=null,Rg=Eg;const jg=(e,t,i)=>e?t?e+t.trim()+"\n"+i:e.trimRight()+"\n"+i:t?t.trimRight()+"\n"+i:Eg,Ig=(e,t,i)=>{const n=$g(t,fg,i+Rg,!0);return jg(n,e,i)},Pg=(e,t)=>{if(!e)return"null";const i=t+Rg;let n=Eg,r=Eg,o=!0;return(cg(Tg)?Tg:Object.keys(e)).forEach((t=>{const a=zg(t,e,i);if(a===Sg)return;o||(n+=Cg),o=!1;const s=jg(r,$g(e,Og(t),i),i);n+=s||"\n"+i,n+=Mg(t)+$g(e,`${gg}:${t}`,i)+kg+$g(e,(e=>`${_g}:${e}`)(t),i)+" "+a+$g(e,Dg(t),i),r=$g(e,Bg(t),i)})),n+=jg(r,$g(e,vg,i),i),Ag+Ig(n,e,t)+Ng};function zg(e,t,i){let n=t[e];switch(lg(n)&&ug(n.toJSON)&&(n=n.toJSON(e)),ug(Tg)&&(n=Tg.call(t,e,n)),typeof n){case"string":return Mg(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return cg(n)?((e,t)=>{const i=t+Rg,{length:n}=e;let r=Eg,o=Eg;for(let a=0;a{const n=(e=>hg(e)?e:dg(e)?pg(" ",e):Eg)(i);if(!n)return JSON.stringify(e,t);ug(t)||cg(t)||(t=null),Tg=t,Rg=n;const r=(e=>{if("object"!=typeof e)return!1;const t=Ug.call(e);return Wg.includes(t)})(e)?JSON.stringify(e):zg("",{"":e},Eg);return Tg=null,Rg=Eg,lg(e)?$g(e,mg,Eg).trimLeft()+r+$g(e,yg,Eg).trimRight():r},{CommentArray:Kg}=sf,{assign:Gg}=Gm;var Xg={parse:Hg,stringify:Vg,tokenize:qg,CommentArray:Kg,assign:Gg},Jg={},Yg={},Zg={};function Qg(e){return null==e}function e_(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Zg.isNothing=Qg,Zg.isObject=function(e){return"object"==typeof e&&null!==e},Zg.toArray=function(e){return Array.isArray(e)?e:Qg(e)?[]:[e]},Zg.repeat=function(e,t){var i,n="";for(i=0;i0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(n,o),i_.repeat(" ",e)+i+a+r+"\n"+i_.repeat(" ",e+this.position-n+i.length)+"^"},n_.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(i+=":\n"+t),i};var r_=n_,o_=t_,a_=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s_=["scalar","sequence","mapping"];var c_=function(e,t){var i,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===a_.indexOf(t))throw new o_('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(i=t.styleAliases||null,n={},null!==i&&Object.keys(i).forEach((function(e){i[e].forEach((function(t){n[String(t)]=e}))})),n),-1===s_.indexOf(this.kind))throw new o_('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},l_=Zg,u_=t_,d_=c_;function h_(e,t,i){var n=[];return e.include.forEach((function(e){i=h_(e,t,i)})),e[t].forEach((function(e){i.forEach((function(t,i){t.tag===e.tag&&t.kind===e.kind&&n.push(i)})),i.push(e)})),i.filter((function(e,t){return-1===n.indexOf(t)}))}function p_(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new u_("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=h_(this,"implicit",[]),this.compiledExplicit=h_(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,i={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){i[e.kind][e.tag]=i.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),x_=Zg,A_=c_,N_=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var k_=/^[-+]?[0-9]+e/;var C_=new m_({include:[f_],implicit:[g_,__,w_,new A_("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!N_.test(e)||"_"===e[e.length-1])},construct:function(e){var t,i,n,r;return i="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){r.unshift(parseFloat(e,10))})),t=0,n=1,r.forEach((function(e){t+=e*n,n*=60})),i*t):i*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||x_.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(x_.isNegativeZero(e))return"-0.0";return i=e.toString(10),k_.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})]}),E_=new m_({include:[C_]}),S_=c_,F_=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),O_=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var D_=new S_("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==F_.exec(e)||null!==O_.exec(e))},construct:function(e){var t,i,n,r,o,a,s,c,l=0,u=null;if(null===(t=F_.exec(e))&&(t=O_.exec(e)),null===t)throw new Error("Date resolve error");if(i=+t[1],n=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(i,n,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(i,n,r,o,a,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var B_,L_=new c_("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var M_=require;B_=M_("buffer").Buffer}catch(Ny){}var $_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var T_=new c_("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=0,r=e.length,o=$_;for(i=0;i64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,i,n=e.replace(/[\r\n=]/g,""),r=n.length,o=$_,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(n.charAt(t));return 0===(i=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===i?(s.push(a>>10&255),s.push(a>>2&255)):12===i&&s.push(a>>4&255),B_?B_.from?B_.from(s):new B_(s):s},predicate:function(e){return B_&&B_.isBuffer(e)},represent:function(e){var t,i,n="",r=0,o=e.length,a=$_;for(t=0;t>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]),r=(r<<8)+e[t];return 0===(i=o%3)?(n+=a[r>>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]):2===i?(n+=a[r>>10&63],n+=a[r>>4&63],n+=a[r<<2&63],n+=a[64]):1===i&&(n+=a[r>>2&63],n+=a[r<<4&63],n+=a[64],n+=a[64]),n}}),R_=c_,j_=Object.prototype.hasOwnProperty,I_=Object.prototype.toString;var P_=new R_("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,i,n,r,o,a=[],s=e;for(t=0,i=s.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,i=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(i&&(n=i[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var J_=require;G_=J_("esprima")}catch(ky){"undefined"!=typeof window&&(G_=window.esprima)}var Y_=new c_("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",i=G_.parse(t,{range:!0});return"Program"===i.type&&1===i.body.length&&"ExpressionStatement"===i.body[0].type&&("ArrowFunctionExpression"===i.body[0].expression.type||"FunctionExpression"===i.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,i="("+e+")",n=G_.parse(i,{range:!0}),r=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){r.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(r,i.slice(t[0]+1,t[1]-1)):new Function(r,"return "+i.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),Z_=m_,Q_=Z_.DEFAULT=new Z_({include:[V_],explicit:[K_,X_,Y_]}),eb=Zg,tb=t_,ib=r_,nb=V_,rb=Q_,ob=Object.prototype.hasOwnProperty,ab=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,sb=/[\x85\u2028\u2029]/,cb=/[,\[\]\{\}]/,lb=/^(?:!|!!|![a-z\-]+!)$/i,ub=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function db(e){return Object.prototype.toString.call(e)}function hb(e){return 10===e||13===e}function pb(e){return 9===e||32===e}function mb(e){return 9===e||32===e||10===e||13===e}function fb(e){return 44===e||91===e||93===e||123===e||125===e}function gb(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function _b(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function bb(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var vb=new Array(256),yb=new Array(256),wb=0;wb<256;wb++)vb[wb]=_b(wb)?1:0,yb[wb]=_b(wb);function xb(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||rb,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Ab(e,t){return new tb(t,new ib(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Nb(e,t){throw Ab(e,t)}function kb(e,t){e.onWarning&&e.onWarning.call(null,Ab(e,t))}var Cb={YAML:function(e,t,i){var n,r,o;null!==e.version&&Nb(e,"duplication of %YAML directive"),1!==i.length&&Nb(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&Nb(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),o=parseInt(n[2],10),1!==r&&Nb(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&kb(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,r;2!==i.length&&Nb(e,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],lb.test(n)||Nb(e,"ill-formed tag handle (first argument) of the TAG directive"),ob.call(e.tagMap,n)&&Nb(e,'there is a previously declared suffix for "'+n+'" tag handle'),ub.test(r)||Nb(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=r}};function Eb(e,t,i,n){var r,o,a,s;if(t1&&(e.result+=eb.repeat("\n",t-1))}function Mb(e,t){var i,n,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),n=e.input.charCodeAt(e.position);0!==n&&45===n&&mb(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Db(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(i=e.line,Rb(e,t,3,!1,!0),a.push(e.result),Db(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>t)&&0!==n)Nb(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt)&&(Rb(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(Fb(e,u,d,h,p,m,o,a),h=p=m=null),Db(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)Nb(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===r?Nb(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Nb(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(pb(o)){do{o=e.input.charCodeAt(++e.position)}while(pb(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!hb(o)&&0!==o)}for(;0!==o;){for(Ob(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),hb(o))d++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=gb(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Nb(e,"expected hexadecimal character");e.result+=bb(o),e.position++}else Nb(e,"unknown escape sequence");i=n=e.position}else hb(s)?(Eb(e,i,n,!0),Lb(e,Db(e,!1,t)),i=n=e.position):e.position===e.lineStart&&Bb(e)?Nb(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Nb(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?f=!0:!function(e){var t,i,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!mb(n)&&!fb(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Nb(e,"name of an alias node must contain at least one character"),i=e.input.slice(t,e.position),ob.call(e.anchorMap,i)||Nb(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],Db(e,!0,-1),!0}(e)?function(e,t,i){var n,r,o,a,s,c,l,u,d=e.kind,h=e.result;if(mb(u=e.input.charCodeAt(e.position))||fb(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(mb(n=e.input.charCodeAt(e.position+1))||i&&fb(n)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(mb(n=e.input.charCodeAt(e.position+1))||i&&fb(n))break}else if(35===u){if(mb(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Bb(e)||i&&fb(u))break;if(hb(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,Db(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(Eb(e,r,o,!1),Lb(e,e.line-s),r=o=e.position,a=!1),pb(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Eb(e,r,o,!1),!!e.result||(e.kind=d,e.result=h,!1)}(e,d,1===i)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||Nb(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&Mb(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&Nb(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):Nb(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Nb(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function jb(e){var t,i,n,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(Db(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!mb(r);)r=e.input.charCodeAt(++e.position);for(n=[],(i=e.input.slice(t,e.position)).length<1&&Nb(e,"directive name must not be less than one character in length");0!==r;){for(;pb(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!hb(r));break}if(hb(r))break;for(t=e.position;0!==r&&!mb(r);)r=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==r&&Ob(e),ob.call(Cb,i)?Cb[i](e,i,n):kb(e,'unknown document directive "'+i+'"')}Db(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,Db(e,!0,-1)):a&&Nb(e,"directives end mark is expected"),Rb(e,e.lineIndent-1,4,!1,!0),Db(e,!0,-1),e.checkLineBreaks&&sb.test(e.input.slice(o,e.position))&&kb(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Bb(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Db(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,p=p&&nv(a,s)}else{for(o=0;on&&" "!==e[h+1],h=o);else if(!iv(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&nv(a,s)}u=u||d&&o-h-1>n&&" "!==e[h+1]}return l||u?i>9&&rv(e)?5:u?4:3:p&&!r(e)?1:2}function av(e,t,i,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==Jb.indexOf(t))return"'"+t+"'";var r=e.indent*Math.max(1,i),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),a=n||e.flowLevel>-1&&i>=e.flowLevel;switch(ov(t,a,e.indent,o,(function(t){return function(e,t){var i,n;for(i=0,n=e.implicitTypes.length;i"+sv(t,e.indent)+cv(Qb(function(e,t){var i,n,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,lv(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;n=r.exec(e);){var c=n[1],l=n[2];i=" "===l[0],o+=c+(a||i||""===l?"":"\n")+lv(l,t),a=i}return o}(t,o),r));case 5:return'"'+function(e){for(var t,i,n,r="",o=0;o=55296&&t<=56319&&(i=e.charCodeAt(o+1))>=56320&&i<=57343?(r+=Yb(1024*(t-55296)+i-56320+65536),o++):r+=!(n=Xb[t])&&iv(t)?e[o]:n||Yb(t);return r}(t)+'"';default:throw new Hb("impossible error: invalid scalar style")}}()}function sv(e,t){var i=rv(e)?String(t):"",n="\n"===e[e.length-1];return i+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function cv(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function lv(e,t){if(""===e||" "===e[0])return e;for(var i,n,r=/ [^ ]/g,o=0,a=0,s=0,c="";i=r.exec(e);)(s=i.index)-o>t&&(n=a>o?a:s,c+="\n"+e.slice(o,n),o=n+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function uv(e,t,i){var n,r,o,a,s,c;for(o=0,a=(r=i?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function dv(e,t,i,n,r,o){e.tag=null,e.dump=i,uv(e,i,!1)||uv(e,i,!0);var a=Kb.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(i))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,i,n){var r,o,a,s,c,l,u="",d=e.tag,h=Object.keys(i);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Hb("sortKeys must be a boolean or a function");for(r=0,o=h.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=ev(e,t)),dv(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",u+=l+=e.dump));e.tag=d,e.dump=u||"{}"}(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,i){var n,r,o,a,s,c="",l=e.tag,u=Object.keys(i);for(n=0,r=u.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),dv(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,i,n){var r,o,a="",s=e.tag;for(r=0,o=i.length;r "+e.dump)}return!0}function hv(e,t){var i,n,r=[],o=[];for(pv(e,r,o),i=0,n=o.length;i3;)i.pop()();if(i[1]`${xg}:${e}`,jg=e=>`${kg}:${e}`,Ig=e=>`${Cg}:${e}`,Pg={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},zg=e=>`"${(e=>(Tg.lastIndex=0,Tg.test(e)?e.replace(Tg,(e=>{const t=Pg[e];return"string"==typeof t?t:e})):e))(e)}"`,Ug=(e,t,i,n)=>{const r=e[Symbol.for(t)];if(!r||!r.length)return Mg;let o=!1;const a=r.reduce(((e,{inline:t,type:n,value:r})=>(o="LineComment"===n,e+(t?" ":"\n"+i)+((e,t)=>t?`//${e}`:`/*${e}*/`)(r,o))),Mg);return n||o?a+"\n"+i:a};let Wg=null,Hg=Mg;const qg=(e,t,i)=>e?t?e+t.trim()+"\n"+i:e.trimRight()+"\n"+i:t?t.trimRight()+"\n"+i:Mg,Vg=(e,t,i)=>{const n=Ug(t,xg,i+Hg,!0);return qg(n,e,i)},Kg=(e,t)=>{if(!e)return"null";const i=t+Hg;let n=Mg,r=Mg,o=!0;return(fg(Wg)?Wg:Object.keys(e)).forEach((t=>{const a=Gg(t,e,i);if(a===$g)return;o||(n+=Lg),o=!1;const s=qg(r,Ug(e,Rg(t),i),i);n+=s||"\n"+i,n+=zg(t)+Ug(e,`${Ng}:${t}`,i)+Bg+Ug(e,(e=>`${Ag}:${e}`)(t),i)+" "+a+Ug(e,jg(t),i),r=Ug(e,Ig(t),i)})),n+=qg(r,Ug(e,Cg,i),i),Og+Vg(n,e,t)+Dg};function Gg(e,t,i){let n=t[e];switch(gg(n)&&_g(n.toJSON)&&(n=n.toJSON(e)),_g(Wg)&&(n=Wg.call(t,e,n)),typeof n){case"string":return zg(n);case"number":return Number.isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":return fg(n)?((e,t)=>{const i=t+Hg,{length:n}=e;let r=Mg,o=Mg;for(let a=0;a{const n=(e=>vg(e)?e:bg(e)?yg(" ",e):Mg)(i);if(!n)return JSON.stringify(e,t);_g(t)||fg(t)||(t=null),Wg=t,Hg=n;const r=(e=>{if("object"!=typeof e)return!1;const t=Xg.call(e);return Jg.includes(t)})(e)?JSON.stringify(e):Gg("",{"":e},Mg);return Wg=null,Hg=Mg,gg(e)?Ug(e,wg,Mg).trimLeft()+r+Ug(e,Eg,Mg).trimRight():r},{CommentArray:e_}=mf,{assign:t_}=tf;var i_={parse:Yg,stringify:Qg,tokenize:Zg,CommentArray:e_,assign:t_},n_={},r_={},o_={};function a_(e){return null==e}function s_(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}o_.isNothing=a_,o_.isObject=function(e){return"object"==typeof e&&null!==e},o_.toArray=function(e){return Array.isArray(e)?e:a_(e)?[]:[e]},o_.repeat=function(e,t){var i,n="";for(i=0;i0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(n-1));)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(r="",o=this.position;ot/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(n,o),l_.repeat(" ",e)+i+a+r+"\n"+l_.repeat(" ",e+this.position-n+i.length)+"^"},u_.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(i+=":\n"+t),i};var d_=u_,h_=c_,p_=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],m_=["scalar","sequence","mapping"];var f_=function(e,t){var i,n;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===p_.indexOf(t))throw new h_('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(i=t.styleAliases||null,n={},null!==i&&Object.keys(i).forEach((function(e){i[e].forEach((function(t){n[String(t)]=e}))})),n),-1===m_.indexOf(this.kind))throw new h_('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')},g_=o_,__=c_,b_=f_;function v_(e,t,i){var n=[];return e.include.forEach((function(e){i=v_(e,t,i)})),e[t].forEach((function(e){i.forEach((function(t,i){t.tag===e.tag&&t.kind===e.kind&&n.push(i)})),i.push(e)})),i.filter((function(e,t){return-1===n.indexOf(t)}))}function y_(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new __("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=v_(this,"implicit",[]),this.compiledExplicit=v_(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,i={scalar:{},sequence:{},mapping:{},fallback:{}};function n(e){i[e.kind][e.tag]=i.fallback[e.tag]=e}for(e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),F_=o_,O_=f_,D_=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var B_=/^[-+]?[0-9]+e/;var L_=new w_({include:[x_],implicit:[N_,A_,S_,new O_("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!D_.test(e)||"_"===e[e.length-1])},construct:function(e){var t,i,n,r;return i="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===i?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){r.unshift(parseFloat(e,10))})),t=0,n=1,r.forEach((function(e){t+=e*n,n*=60})),i*t):i*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||F_.isNegativeZero(e))},represent:function(e,t){var i;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(F_.isNegativeZero(e))return"-0.0";return i=e.toString(10),B_.test(i)?i.replace("e",".e"):i},defaultStyle:"lowercase"})]}),M_=new w_({include:[L_]}),$_=f_,T_=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),R_=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var j_=new $_("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==T_.exec(e)||null!==R_.exec(e))},construct:function(e){var t,i,n,r,o,a,s,c,l=0,u=null;if(null===(t=T_.exec(e))&&(t=R_.exec(e)),null===t)throw new Error("Date resolve error");if(i=+t[1],n=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(i,n,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(l=t[7].slice(0,3);l.length<3;)l+="0";l=+l}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),c=new Date(Date.UTC(i,n,r,o,a,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(e){return e.toISOString()}});var I_,P_=new f_("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}});try{var z_=require;I_=z_("buffer").Buffer}catch(Dy){}var U_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var W_=new f_("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,i,n=0,r=e.length,o=U_;for(i=0;i64)){if(t<0)return!1;n+=6}return n%8==0},construct:function(e){var t,i,n=e.replace(/[\r\n=]/g,""),r=n.length,o=U_,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(n.charAt(t));return 0===(i=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===i?(s.push(a>>10&255),s.push(a>>2&255)):12===i&&s.push(a>>4&255),I_?I_.from?I_.from(s):new I_(s):s},predicate:function(e){return I_&&I_.isBuffer(e)},represent:function(e){var t,i,n="",r=0,o=e.length,a=U_;for(t=0;t>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]),r=(r<<8)+e[t];return 0===(i=o%3)?(n+=a[r>>18&63],n+=a[r>>12&63],n+=a[r>>6&63],n+=a[63&r]):2===i?(n+=a[r>>10&63],n+=a[r>>4&63],n+=a[r<<2&63],n+=a[64]):1===i&&(n+=a[r>>2&63],n+=a[r<<4&63],n+=a[64],n+=a[64]),n}}),H_=f_,q_=Object.prototype.hasOwnProperty,V_=Object.prototype.toString;var K_=new H_("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,i,n,r,o,a=[],s=e;for(t=0,i=s.length;t3)return!1;if("/"!==t[t.length-n.length-1])return!1}return!0},construct:function(e){var t=e,i=/\/([gim]*)$/.exec(e),n="";return"/"===t[0]&&(i&&(n=i[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}});try{var nb=require;tb=nb("esprima")}catch(By){"undefined"!=typeof window&&(tb=window.esprima)}var rb=new f_("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",i=tb.parse(t,{range:!0});return"Program"===i.type&&1===i.body.length&&"ExpressionStatement"===i.body[0].type&&("ArrowFunctionExpression"===i.body[0].expression.type||"FunctionExpression"===i.body[0].expression.type)}catch(n){return!1}},construct:function(e){var t,i="("+e+")",n=tb.parse(i,{range:!0}),r=[];if("Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"ArrowFunctionExpression"!==n.body[0].expression.type&&"FunctionExpression"!==n.body[0].expression.type)throw new Error("Failed to resolve function");return n.body[0].expression.params.forEach((function(e){r.push(e.name)})),t=n.body[0].expression.body.range,"BlockStatement"===n.body[0].expression.body.type?new Function(r,i.slice(t[0]+1,t[1]-1)):new Function(r,"return "+i.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}}),ob=w_,ab=ob.DEFAULT=new ob({include:[Q_],explicit:[eb,ib,rb]}),sb=o_,cb=c_,lb=d_,ub=Q_,db=ab,hb=Object.prototype.hasOwnProperty,pb=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,mb=/[\x85\u2028\u2029]/,fb=/[,\[\]\{\}]/,gb=/^(?:!|!!|![a-z\-]+!)$/i,_b=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function bb(e){return Object.prototype.toString.call(e)}function vb(e){return 10===e||13===e}function yb(e){return 9===e||32===e}function wb(e){return 9===e||32===e||10===e||13===e}function xb(e){return 44===e||91===e||93===e||123===e||125===e}function Nb(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function Ab(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function kb(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var Cb=new Array(256),Eb=new Array(256),Sb=0;Sb<256;Sb++)Cb[Sb]=Ab(Sb)?1:0,Eb[Sb]=Ab(Sb);function Fb(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||db,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Ob(e,t){return new cb(t,new lb(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function Db(e,t){throw Ob(e,t)}function Bb(e,t){e.onWarning&&e.onWarning.call(null,Ob(e,t))}var Lb={YAML:function(e,t,i){var n,r,o;null!==e.version&&Db(e,"duplication of %YAML directive"),1!==i.length&&Db(e,"YAML directive accepts exactly one argument"),null===(n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]))&&Db(e,"ill-formed argument of the YAML directive"),r=parseInt(n[1],10),o=parseInt(n[2],10),1!==r&&Db(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&Bb(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,r;2!==i.length&&Db(e,"TAG directive accepts exactly two arguments"),n=i[0],r=i[1],gb.test(n)||Db(e,"ill-formed tag handle (first argument) of the TAG directive"),hb.call(e.tagMap,n)&&Db(e,'there is a previously declared suffix for "'+n+'" tag handle'),_b.test(r)||Db(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=r}};function Mb(e,t,i,n){var r,o,a,s;if(t1&&(e.result+=sb.repeat("\n",t-1))}function zb(e,t){var i,n,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),n=e.input.charCodeAt(e.position);0!==n&&45===n&&wb(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,jb(e,!0,-1)&&e.lineIndent<=t)a.push(null),n=e.input.charCodeAt(e.position);else if(i=e.line,Hb(e,t,3,!1,!0),a.push(e.result),jb(e,!0,-1),n=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>t)&&0!==n)Db(e,"bad indentation of a sequence entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt)&&(Hb(e,t,4,!0,r)&&(f?p=e.result:m=e.result),f||(Tb(e,u,d,h,p,m,o,a),h=p=m=null),jb(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)Db(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===r?Db(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Db(e,"repeat of an indentation width identifier"):(u=t+r-1,l=!0)}if(yb(o)){do{o=e.input.charCodeAt(++e.position)}while(yb(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!vb(o)&&0!==o)}for(;0!==o;){for(Rb(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentu&&(u=e.lineIndent),vb(o))d++;else{if(e.lineIndent0){for(r=a,o=0;r>0;r--)(a=Nb(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Db(e,"expected hexadecimal character");e.result+=kb(o),e.position++}else Db(e,"unknown escape sequence");i=n=e.position}else vb(s)?(Mb(e,i,n,!0),Pb(e,jb(e,!1,t)),i=n=e.position):e.position===e.lineStart&&Ib(e)?Db(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}Db(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?f=!0:!function(e){var t,i,n;if(42!==(n=e.input.charCodeAt(e.position)))return!1;for(n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!wb(n)&&!xb(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&Db(e,"name of an alias node must contain at least one character"),i=e.input.slice(t,e.position),hb.call(e.anchorMap,i)||Db(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],jb(e,!0,-1),!0}(e)?function(e,t,i){var n,r,o,a,s,c,l,u,d=e.kind,h=e.result;if(wb(u=e.input.charCodeAt(e.position))||xb(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(wb(n=e.input.charCodeAt(e.position+1))||i&&xb(n)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==u;){if(58===u){if(wb(n=e.input.charCodeAt(e.position+1))||i&&xb(n))break}else if(35===u){if(wb(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&Ib(e)||i&&xb(u))break;if(vb(u)){if(s=e.line,c=e.lineStart,l=e.lineIndent,jb(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=l;break}}a&&(Mb(e,r,o,!1),Pb(e,e.line-s),r=o=e.position,a=!1),yb(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Mb(e,r,o,!1),!!e.result||(e.kind=d,e.result=h,!1)}(e,d,1===i)&&(f=!0,null===e.tag&&(e.tag="?")):(f=!0,null===e.tag&&null===e.anchor||Db(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===p&&(f=s&&zb(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(null!==e.result&&"scalar"!==e.kind&&Db(e,'unacceptable node kind for ! tag; it should be "scalar", not "'+e.kind+'"'),c=0,l=e.implicitTypes.length;c tag; it should be "'+u.kind+'", not "'+e.kind+'"'),u.resolve(e.result)?(e.result=u.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):Db(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):Db(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||f}function qb(e){var t,i,n,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(jb(e,!0,-1),r=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!wb(r);)r=e.input.charCodeAt(++e.position);for(n=[],(i=e.input.slice(t,e.position)).length<1&&Db(e,"directive name must not be less than one character in length");0!==r;){for(;yb(r);)r=e.input.charCodeAt(++e.position);if(35===r){do{r=e.input.charCodeAt(++e.position)}while(0!==r&&!vb(r));break}if(vb(r))break;for(t=e.position;0!==r&&!wb(r);)r=e.input.charCodeAt(++e.position);n.push(e.input.slice(t,e.position))}0!==r&&Rb(e),hb.call(Lb,i)?Lb[i](e,i,n):Bb(e,'unknown document directive "'+i+'"')}jb(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,jb(e,!0,-1)):a&&Db(e,"directives end mark is expected"),Hb(e,e.lineIndent-1,4,!1,!0),jb(e,!0,-1),e.checkLineBreaks&&mb.test(e.input.slice(o,e.position))&&Bb(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Ib(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,jb(e,!0,-1)):e.position0?e.charCodeAt(o-1):null,p=p&&uv(a,s)}else{for(o=0;on&&" "!==e[h+1],h=o);else if(!lv(a))return 5;s=o>0?e.charCodeAt(o-1):null,p=p&&uv(a,s)}u=u||d&&o-h-1>n&&" "!==e[h+1]}return l||u?i>9&&dv(e)?5:u?4:3:p&&!r(e)?1:2}function pv(e,t,i,n){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==nv.indexOf(t))return"'"+t+"'";var r=e.indent*Math.max(1,i),o=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-r),a=n||e.flowLevel>-1&&i>=e.flowLevel;switch(hv(t,a,e.indent,o,(function(t){return function(e,t){var i,n;for(i=0,n=e.implicitTypes.length;i"+mv(t,e.indent)+fv(av(function(e,t){var i,n,r=/(\n+)([^\n]*)/g,o=(s=e.indexOf("\n"),s=-1!==s?s:e.length,r.lastIndex=s,gv(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;n=r.exec(e);){var c=n[1],l=n[2];i=" "===l[0],o+=c+(a||i||""===l?"":"\n")+gv(l,t),a=i}return o}(t,o),r));case 5:return'"'+function(e){for(var t,i,n,r="",o=0;o=55296&&t<=56319&&(i=e.charCodeAt(o+1))>=56320&&i<=57343?(r+=rv(1024*(t-55296)+i-56320+65536),o++):r+=!(n=iv[t])&&lv(t)?e[o]:n||rv(t);return r}(t)+'"';default:throw new Yb("impossible error: invalid scalar style")}}()}function mv(e,t){var i=dv(e)?String(t):"",n="\n"===e[e.length-1];return i+(n&&("\n"===e[e.length-2]||"\n"===e)?"+":n?"":"-")+"\n"}function fv(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function gv(e,t){if(""===e||" "===e[0])return e;for(var i,n,r=/ [^ ]/g,o=0,a=0,s=0,c="";i=r.exec(e);)(s=i.index)-o>t&&(n=a>o?a:s,c+="\n"+e.slice(o,n),o=n+1),a=s;return c+="\n",e.length-o>t&&a>o?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function _v(e,t,i){var n,r,o,a,s,c;for(o=0,a=(r=i?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+c+'" style');n=s.represent[c](t,c)}e.dump=n}return!0}return!1}function bv(e,t,i,n,r,o){e.tag=null,e.dump=i,_v(e,i,!1)||_v(e,i,!0);var a=ev.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var s,c,l="[object Object]"===a||"[object Array]"===a;if(l&&(c=-1!==(s=e.duplicates.indexOf(i))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&t>0)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)n&&0!==Object.keys(e.dump).length?(!function(e,t,i,n){var r,o,a,s,c,l,u="",d=e.tag,h=Object.keys(i);if(!0===e.sortKeys)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new Yb("sortKeys must be a boolean or a function");for(r=0,o=h.length;r1024)&&(e.dump&&10===e.dump.charCodeAt(0)?l+="?":l+="? "),l+=e.dump,c&&(l+=sv(e,t)),bv(e,t+1,s,!0,c)&&(e.dump&&10===e.dump.charCodeAt(0)?l+=":":l+=": ",u+=l+=e.dump));e.tag=d,e.dump=u||"{}"}(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(!function(e,t,i){var n,r,o,a,s,c="",l=e.tag,u=Object.keys(i);for(n=0,r=u.length;n1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),bv(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=l,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var u=e.noArrayIndent&&t>0?t-1:t;n&&0!==e.dump.length?(!function(e,t,i,n){var r,o,a="",s=e.tag;for(r=0,o=i.length;r "+e.dump)}return!0}function vv(e,t){var i,n,r=[],o=[];for(yv(e,r,o),i=0,n=o.length;i3;)i.pop()();if(i[1]=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,i.ctx.currentTime);for(var n=0;n=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,u()),e},codecs:function(e){return(this||i)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||i;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||i,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(u){return e}if(!t||"function"!=typeof t.canPlayType)return e;var n=t.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",o=r.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),c=r.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!n&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!n,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||i;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(i){for(;e._html5AudioPool.length0?s._seek:n._sprite[e][0]/1e3),u=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-l),d=1e3*u/Math.abs(s._rate),h=n._sprite[e][0]/1e3,p=(n._sprite[e][0]+n._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var m=function(){s._paused=!1,s._seek=l,s._start=h,s._stop=p,s._loop=!(!s._loop&&!n._sprite[e][2])};if(!(l>=p)){var f=s._node;if(n._webAudio){var g=function(){n._playLock=!1,m(),n._refreshBuffer(s);var e=s._muted||n._muted?0:s._volume;f.gain.setValueAtTime(e,i.ctx.currentTime),s._playStart=i.ctx.currentTime,void 0===f.bufferSource.start?s._loop?f.bufferSource.noteGrainOn(0,l,86400):f.bufferSource.noteGrainOn(0,l,u):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,u),d!==1/0&&(n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d)),t||setTimeout((function(){n._emit("play",s._id),n._loadQueue()}),0)};"running"===i.state&&"interrupted"!==i.ctx.state?g():(n._playLock=!0,n.once("resume",g),n._clearTimer(s._id))}else{var _=function(){f.currentTime=l,f.muted=s._muted||n._muted||i._muted||f.muted,f.volume=s._volume*i.volume(),f.playbackRate=s._rate;try{var r=f.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(n._playLock=!0,m(),r.then((function(){n._playLock=!1,f._unlocked=!0,t?n._loadQueue():n._emit("play",s._id)})).catch((function(){n._playLock=!1,n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(n._playLock=!1,m(),n._emit("play",s._id)),f.playbackRate=s._rate,f.paused)return void n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d):(n._endTimers[s._id]=function(){n._ended(s),f.removeEventListener("ended",n._endTimers[s._id],!1)},f.addEventListener("ended",n._endTimers[s._id],!1))}catch(o){n._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===f.src&&(f.src=n._src,f.load());var b=window&&window.ejecta||!f.readyState&&i._navigator.isCocoonJS;if(f.readyState>=3||b)_();else{n._playLock=!0,n._state="loading";var v=function(){n._state="loaded",_(),f.removeEventListener(i._canPlayEvent,v,!1)};f.addEventListener(i._canPlayEvent,v,!1),n._clearTimer(s._id)}}return s._id}n._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var i=t._getSoundIds(e),n=0;n=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(n=t?r._soundById(t):r._sounds[0])?n._volume:0;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"volume",action:function(){r.volume.apply(r,o)}}),r;void 0===t&&(r._volume=e),t=r._getSoundIds(t);for(var c=0;c0?n/l:n),d=Date.now();e._fadeTo=i,e._interval=setInterval((function(){var r=(Date.now()-d)/n;d=Date.now(),s+=c*r,s=Math.round(100*s)/100,s=c<0?Math.max(i,s):Math.min(i,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(it&&s>=i)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(i,e._id),a._emit("fade",e._id))}),u)},_stopFade:function(e){var t=this,n=t._soundById(e);return n&&n._interval&&(t._webAudio&&n._node.gain.cancelScheduledValues(i.ctx.currentTime),clearInterval(n._interval),n._interval=null,t.volume(n._fadeTo,e),n._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,i,n=this,r=arguments;if(0===r.length)return n._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(i=n._soundById(parseInt(r[0],10)))&&i._loop;e=r[0],n._loop=e}else 2===r.length&&(e=r[0],t=parseInt(r[1],10));for(var o=n._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(n=r._soundById(t))?n._rate:r._rate;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"rate",action:function(){r.rate.apply(r,o)}}),r;void 0===t&&(r._rate=e),t=r._getSoundIds(t);for(var c=0;c=0?t=parseInt(r[0],10):n._sounds.length&&(t=n._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),t=parseInt(r[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==n._state||n._playLock))return n._queue.push({event:"seek",action:function(){n.seek.apply(n,r)}}),n;var s=n._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(n._webAudio){var c=n.playing(t)?i.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var u=n.playing(t);u&&n.pause(t,!0),s._seek=e,s._ended=!1,n._clearTimer(t),n._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var d=function(){u&&n.play(t,!0),n._emit("seek",t)};if(u&&!n._webAudio){var h=function(){n._playLock?setTimeout(h,0):d()};setTimeout(h,0)}else d()}return n},playing:function(e){var t=this;if("number"==typeof e){var i=t._soundById(e);return!!i&&!i._paused}for(var n=0;n=0&&i._howls.splice(r,1);var a=!0;for(n=0;n=0){a=!1;break}return o&&a&&delete o[e._src],i.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,i,n){var r=this["_on"+e];return"function"==typeof t&&r.push(n?{id:i,fn:t,once:n}:{id:i,fn:t}),this},off:function(e,t,i){var n=this,r=n["_on"+e],o=0;if("number"==typeof t&&(i=t,t=null),t||i)for(o=0;o=0;o--)r[o].id&&r[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,i)}.bind(n,r[o].fn),0),r[o].once&&n.off(e,r[o].fn,r[o].id));return n._loadQueue(e),n},_loadQueue:function(e){var t=this;if(t._queue.length>0){var i=t._queue[0];i.event===e&&(t._queue.shift(),t._loadQueue()),e||i.action()}return t},_ended:function(e){var t=this,n=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;n--){if(i<=t)return;e._sounds[n]._ended&&(e._webAudio&&e._sounds[n]._node&&e._sounds[n]._node.disconnect(0),e._sounds.splice(n,1),i--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],i=0;i=0;if(i._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=i._scratchBuffer}catch(n){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(i._navigator&&i._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(e){this._parent=e,this.init()};r.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,n=i._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),e._node.gain.setValueAtTime(n,i.ctx.currentTime),e._node.paused=!0,e._node.connect(i.masterGain)):i.noAudio||(e._node=i._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(i._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=n*i.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(i._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var i=atob(t.split(",")[1]),n=new Uint8Array(i.length),r=0;r0?(o[t._src]=e,l(t,e)):n()};"undefined"!=typeof Promise&&1===i.ctx.decodeAudioData.length?i.ctx.decodeAudioData(e).then(r).catch(n):i.ctx.decodeAudioData(e,r,n)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},u=function(){if(i.usingWebAudio){try{"undefined"!=typeof AudioContext?i.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?i.ctx=new webkitAudioContext:i.usingWebAudio=!1}catch(o){i.usingWebAudio=!1}i.ctx||(i.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(i._navigator&&i._navigator.platform),t=i._navigator&&i._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=t?parseInt(t[1],10):null;if(e&&n&&n<9){var r=/safari/.test(i._navigator&&i._navigator.userAgent.toLowerCase());i._navigator&&!r&&(i.usingWebAudio=!1)}i.usingWebAudio&&(i.masterGain=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),i.masterGain.gain.setValueAtTime(i._muted?0:i._volume,i.ctx.currentTime),i.masterGain.connect(i.ctx.destination)),i._setup()}};e.Howler=i,e.Howl=n,void 0!==$e?($e.HowlerGlobal=t,$e.Howler=i,$e.Howl=n,$e.Sound=r):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=i,window.Howl=n,window.Sound=r)}(), + */function Kv(){return{baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}!function(e){!function(){var t=function(){this.init()};t.prototype={init:function(){var e=this||i;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var t=this||i;if(e=parseFloat(e),t.ctx||u(),void 0!==e&&e>=0&&e<=1){if(t._volume=e,t._muted)return t;t.usingWebAudio&&t.masterGain.gain.setValueAtTime(e,i.ctx.currentTime);for(var n=0;n=0;t--)e._howls[t].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,u()),e},codecs:function(e){return(this||i)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||i;if(e.state=e.ctx&&e.ctx.state||"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{void 0===(new Audio).oncanplaythrough&&(e._canPlayEvent="canplay")}catch(t){e.noAudio=!0}else e.noAudio=!0;try{(new Audio).muted&&(e.noAudio=!0)}catch(t){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||i,t=null;try{t="undefined"!=typeof Audio?new Audio:null}catch(u){return e}if(!t||"function"!=typeof t.canPlayType)return e;var n=t.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",o=r.match(/OPR\/([0-6].)/g),a=o&&parseInt(o[0].split("/")[1],10)<33,s=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),c=r.match(/Version\/(.*?) /),l=s&&c&&parseInt(c[1],10)<15;return e._codecs={mp3:!(a||!n&&!t.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!n,opus:!!t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(t.canPlayType('audio/wav; codecs="1"')||t.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!t.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!t.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/m4a;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(t.canPlayType("audio/x-m4b;")||t.canPlayType("audio/m4b;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(t.canPlayType("audio/x-mp4;")||t.canPlayType("audio/mp4;")||t.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(l||!t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!t.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(t.canPlayType("audio/x-flac;")||t.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||i;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var t=function(i){for(;e._html5AudioPool.length0?s._seek:n._sprite[e][0]/1e3),u=Math.max(0,(n._sprite[e][0]+n._sprite[e][1])/1e3-l),d=1e3*u/Math.abs(s._rate),h=n._sprite[e][0]/1e3,p=(n._sprite[e][0]+n._sprite[e][1])/1e3;s._sprite=e,s._ended=!1;var m=function(){s._paused=!1,s._seek=l,s._start=h,s._stop=p,s._loop=!(!s._loop&&!n._sprite[e][2])};if(!(l>=p)){var f=s._node;if(n._webAudio){var g=function(){n._playLock=!1,m(),n._refreshBuffer(s);var e=s._muted||n._muted?0:s._volume;f.gain.setValueAtTime(e,i.ctx.currentTime),s._playStart=i.ctx.currentTime,void 0===f.bufferSource.start?s._loop?f.bufferSource.noteGrainOn(0,l,86400):f.bufferSource.noteGrainOn(0,l,u):s._loop?f.bufferSource.start(0,l,86400):f.bufferSource.start(0,l,u),d!==1/0&&(n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d)),t||setTimeout((function(){n._emit("play",s._id),n._loadQueue()}),0)};"running"===i.state&&"interrupted"!==i.ctx.state?g():(n._playLock=!0,n.once("resume",g),n._clearTimer(s._id))}else{var _=function(){f.currentTime=l,f.muted=s._muted||n._muted||i._muted||f.muted,f.volume=s._volume*i.volume(),f.playbackRate=s._rate;try{var r=f.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(n._playLock=!0,m(),r.then((function(){n._playLock=!1,f._unlocked=!0,t?n._loadQueue():n._emit("play",s._id)})).catch((function(){n._playLock=!1,n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),s._ended=!0,s._paused=!0}))):t||(n._playLock=!1,m(),n._emit("play",s._id)),f.playbackRate=s._rate,f.paused)return void n._emit("playerror",s._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||s._loop?n._endTimers[s._id]=setTimeout(n._ended.bind(n,s),d):(n._endTimers[s._id]=function(){n._ended(s),f.removeEventListener("ended",n._endTimers[s._id],!1)},f.addEventListener("ended",n._endTimers[s._id],!1))}catch(o){n._emit("playerror",s._id,o)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===f.src&&(f.src=n._src,f.load());var b=window&&window.ejecta||!f.readyState&&i._navigator.isCocoonJS;if(f.readyState>=3||b)_();else{n._playLock=!0,n._state="loading";var v=function(){n._state="loaded",_(),f.removeEventListener(i._canPlayEvent,v,!1)};f.addEventListener(i._canPlayEvent,v,!1),n._clearTimer(s._id)}}return s._id}n._ended(s)},pause:function(e){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"pause",action:function(){t.pause(e)}}),t;for(var i=t._getSoundIds(e),n=0;n=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else o.length>=2&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if(!(void 0!==e&&e>=0&&e<=1))return(n=t?r._soundById(t):r._sounds[0])?n._volume:0;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"volume",action:function(){r.volume.apply(r,o)}}),r;void 0===t&&(r._volume=e),t=r._getSoundIds(t);for(var c=0;c0?n/l:n),d=Date.now();e._fadeTo=i,e._interval=setInterval((function(){var r=(Date.now()-d)/n;d=Date.now(),s+=c*r,s=Math.round(100*s)/100,s=c<0?Math.max(i,s):Math.min(i,s),a._webAudio?e._volume=s:a.volume(s,e._id,!0),o&&(a._volume=s),(it&&s>=i)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,a.volume(i,e._id),a._emit("fade",e._id))}),u)},_stopFade:function(e){var t=this,n=t._soundById(e);return n&&n._interval&&(t._webAudio&&n._node.gain.cancelScheduledValues(i.ctx.currentTime),clearInterval(n._interval),n._interval=null,t.volume(n._fadeTo,e),n._fadeTo=null,t._emit("fade",e)),t},loop:function(){var e,t,i,n=this,r=arguments;if(0===r.length)return n._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(i=n._soundById(parseInt(r[0],10)))&&i._loop;e=r[0],n._loop=e}else 2===r.length&&(e=r[0],t=parseInt(r[1],10));for(var o=n._getSoundIds(t),a=0;a=0?t=parseInt(o[0],10):e=parseFloat(o[0])}else 2===o.length&&(e=parseFloat(o[0]),t=parseInt(o[1],10));if("number"!=typeof e)return(n=r._soundById(t))?n._rate:r._rate;if("loaded"!==r._state||r._playLock)return r._queue.push({event:"rate",action:function(){r.rate.apply(r,o)}}),r;void 0===t&&(r._rate=e),t=r._getSoundIds(t);for(var c=0;c=0?t=parseInt(r[0],10):n._sounds.length&&(t=n._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),t=parseInt(r[1],10));if(void 0===t)return 0;if("number"==typeof e&&("loaded"!==n._state||n._playLock))return n._queue.push({event:"seek",action:function(){n.seek.apply(n,r)}}),n;var s=n._soundById(t);if(s){if(!("number"==typeof e&&e>=0)){if(n._webAudio){var c=n.playing(t)?i.ctx.currentTime-s._playStart:0,l=s._rateSeek?s._rateSeek-s._seek:0;return s._seek+(l+c*Math.abs(s._rate))}return s._node.currentTime}var u=n.playing(t);u&&n.pause(t,!0),s._seek=e,s._ended=!1,n._clearTimer(t),n._webAudio||!s._node||isNaN(s._node.duration)||(s._node.currentTime=e);var d=function(){u&&n.play(t,!0),n._emit("seek",t)};if(u&&!n._webAudio){var h=function(){n._playLock?setTimeout(h,0):d()};setTimeout(h,0)}else d()}return n},playing:function(e){var t=this;if("number"==typeof e){var i=t._soundById(e);return!!i&&!i._paused}for(var n=0;n=0&&i._howls.splice(r,1);var a=!0;for(n=0;n=0){a=!1;break}return o&&a&&delete o[e._src],i.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,t,i,n){var r=this["_on"+e];return"function"==typeof t&&r.push(n?{id:i,fn:t,once:n}:{id:i,fn:t}),this},off:function(e,t,i){var n=this,r=n["_on"+e],o=0;if("number"==typeof t&&(i=t,t=null),t||i)for(o=0;o=0;o--)r[o].id&&r[o].id!==t&&"load"!==e||(setTimeout(function(e){e.call(this,t,i)}.bind(n,r[o].fn),0),r[o].once&&n.off(e,r[o].fn,r[o].id));return n._loadQueue(e),n},_loadQueue:function(e){var t=this;if(t._queue.length>0){var i=t._queue[0];i.event===e&&(t._queue.shift(),t._loadQueue()),e||i.action()}return t},_ended:function(e){var t=this,n=e._sprite;if(!t._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime=0;n--){if(i<=t)return;e._sounds[n]._ended&&(e._webAudio&&e._sounds[n]._node&&e._sounds[n]._node.disconnect(0),e._sounds.splice(n,1),i--)}}},_getSoundIds:function(e){if(void 0===e){for(var t=[],i=0;i=0;if(i._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=i._scratchBuffer}catch(n){}return e.bufferSource=null,this},_clearSound:function(e){/MSIE |Trident\//.test(i._navigator&&i._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(e){this._parent=e,this.init()};r.prototype={init:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,t._sounds.push(e),e.create(),e},create:function(){var e=this,t=e._parent,n=i._muted||e._muted||e._parent._muted?0:e._volume;return t._webAudio?(e._node=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),e._node.gain.setValueAtTime(n,i.ctx.currentTime),e._node.paused=!0,e._node.connect(i.masterGain)):i.noAudio||(e._node=i._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(i._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=t._src,e._node.preload=!0===t._preload?"auto":t._preload,e._node.volume=n*i.volume(),e._node.load()),e},reset:function(){var e=this,t=e._parent;return e._muted=t._muted,e._loop=t._loop,e._volume=t._volume,e._rate=t._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++i._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,t=e._parent;t._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(t._sprite).length&&(t._sprite={__default:[0,1e3*t._duration]}),"loaded"!==t._state&&(t._state="loaded",t._emit("load"),t._loadQueue()),e._node.removeEventListener(i._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,t=e._parent;t._duration===1/0&&(t._duration=Math.ceil(10*e._node.duration)/10,t._sprite.__default[1]===1/0&&(t._sprite.__default[1]=1e3*t._duration),t._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var o={},a=function(e){var t=e._src;if(o[t])return e._duration=o[t].duration,void l(e);if(/^data:[^;]+;base64,/.test(t)){for(var i=atob(t.split(",")[1]),n=new Uint8Array(i.length),r=0;r0?(o[t._src]=e,l(t,e)):n()};"undefined"!=typeof Promise&&1===i.ctx.decodeAudioData.length?i.ctx.decodeAudioData(e).then(r).catch(n):i.ctx.decodeAudioData(e,r,n)},l=function(e,t){t&&!e._duration&&(e._duration=t.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},u=function(){if(i.usingWebAudio){try{"undefined"!=typeof AudioContext?i.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?i.ctx=new webkitAudioContext:i.usingWebAudio=!1}catch(o){i.usingWebAudio=!1}i.ctx||(i.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(i._navigator&&i._navigator.platform),t=i._navigator&&i._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),n=t?parseInt(t[1],10):null;if(e&&n&&n<9){var r=/safari/.test(i._navigator&&i._navigator.userAgent.toLowerCase());i._navigator&&!r&&(i.usingWebAudio=!1)}i.usingWebAudio&&(i.masterGain=void 0===i.ctx.createGain?i.ctx.createGainNode():i.ctx.createGain(),i.masterGain.gain.setValueAtTime(i._muted?0:i._volume,i.ctx.currentTime),i.masterGain.connect(i.ctx.destination)),i._setup()}};e.Howler=i,e.Howl=n,void 0!==$e?($e.HowlerGlobal=t,$e.Howler=i,$e.Howl=n,$e.Sound=r):"undefined"!=typeof window&&(window.HowlerGlobal=t,window.Howler=i,window.Howl=n,window.Sound=r)}(), /*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * @@ -34,5 +34,5 @@ function(e){const t=hm,i=wm,n="function"==typeof Symbol&&"function"==typeof Symb * * MIT License */ -function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var i=t._howls.length-1;i>=0;i--)t._howls[i].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,i){var n=this;return n.ctx&&n.ctx.listener?(t="number"!=typeof t?n._pos[1]:t,i="number"!=typeof i?n._pos[2]:i,"number"!=typeof e?n._pos:(n._pos=[e,t,i],void 0!==n.ctx.listener.positionX?(n.ctx.listener.positionX.setTargetAtTime(n._pos[0],Howler.ctx.currentTime,.1),n.ctx.listener.positionY.setTargetAtTime(n._pos[1],Howler.ctx.currentTime,.1),n.ctx.listener.positionZ.setTargetAtTime(n._pos[2],Howler.ctx.currentTime,.1)):n.ctx.listener.setPosition(n._pos[0],n._pos[1],n._pos[2]),n)):n},HowlerGlobal.prototype.orientation=function(e,t,i,n,r,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,i="number"!=typeof i?s[2]:i,n="number"!=typeof n?s[3]:n,r="number"!=typeof r?s[4]:r,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,i,n,r,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,i,n,r,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var i=this;return i._orientation=t.orientation||[1,0,0],i._stereo=t.stereo||null,i._pos=t.pos||null,i._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},i._onstereo=t.onstereo?[{fn:t.onstereo}]:[],i._onpos=t.onpos?[{fn:t.onpos}]:[],i._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if("loaded"!==n._state)return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var r=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===i){if("number"!=typeof e)return n._stereo;n._stereo=e,n._pos=[e,0,0]}for(var o=n._getSoundIds(i),a=0;a"']/,Wv=/[&<>"']/g,Hv=/[<>"']|&(?!#?\w+;)/,qv=/[<>"']|&(?!#?\w+;)/g,Vv={"&":"&","<":"<",">":">",'"':""","'":"'"},Kv=e=>Vv[e];function Gv(e,t){if(t){if(Uv.test(e))return e.replace(Wv,Kv)}else if(Hv.test(e))return e.replace(qv,Kv);return e}const Xv=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Jv(e){return e.replace(Xv,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const Yv=/(^|[^\[])\^/g;function Zv(e,t){e=e.source||e,t=t||"";const i={replace:(t,n)=>(n=(n=n.source||n).replace(Yv,"$1"),e=e.replace(t,n),i),getRegex:()=>new RegExp(e,t)};return i}const Qv=/[^\w:]/g,ey=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function ty(e,t,i){if(e){let e;try{e=decodeURIComponent(Jv(i)).replace(Qv,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!ey.test(i)&&(i=function(e,t){iy[" "+e]||(ny.test(e)?iy[" "+e]=e+"/":iy[" "+e]=ly(e,"/",!0));const i=-1===(e=iy[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(ry,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(oy,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(n){return null}return i}const iy={},ny=/^[^:]+:\/*[^/]*$/,ry=/^([^:]+:)[\s\S]*$/,oy=/^([^:]+:\/*[^/]*)[\s\S]*$/;const ay={exec:function(){}};function sy(e){let t,i,n=1;for(;n{let n=!1,r=t;for(;--r>=0&&"\\"===i[r];)n=!n;return n?"|":" |"})).split(/ \|/);let n=0;if(i[0].trim()||i.shift(),i[i.length-1].trim()||i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function hy(e,t,i,n){const r=t.href,o=t.title?Gv(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;const e={type:"link",raw:i,href:r,title:o,text:a,tokens:n.inlineTokens(a,[])};return n.state.inLink=!1,e}return{type:"image",raw:i,href:r,title:o,text:Gv(a)}}class py{constructor(e){this.options=e||zv}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:ly(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],i=function(e,t){const i=e.match(/^(\s+)(?:```)/);if(null===i)return t;const n=i[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[i]=t;return i.length>=n.length?e.slice(n.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:i}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=ly(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const i={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let i,n,r,o,a,s,c,l,u,d,h,p,m=t[1].trim();const f=m.length>1,g={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:!1,items:[]};m=f?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`,this.options.pedantic&&(m=f?m:"[*+-]");const _=new RegExp(`^( {0,3}${m})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(p=!1,t=_.exec(e))&&!this.rules.block.hr.test(e);){if(i=t[0],e=e.substring(i.length),l=t[2].split("\n",1)[0],u=e.split("\n",1)[0],this.options.pedantic?(o=2,h=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,h=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(i+=u+"\n",e=e.substring(u.length+1),p=!0),!p){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(d=e.split("\n",1)[0],l=d,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())h+="\n"+l.slice(o);else{if(s)break;h+="\n"+l}s||l.trim()||(s=!0),i+=d+"\n",e=e.substring(d.length+1)}}g.loose||(c?g.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(h),n&&(r="[ ] "!==n[0],h=h.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:i,task:!!n,checked:r,loose:!1,text:h}),g.raw+=i}g.items[g.items.length-1].raw=i.trimRight(),g.items[g.items.length-1].text=h.trimRight(),g.raw=g.raw.trimRight();const b=g.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let i=0;for(const n of t)if("\n"===n&&(i+=1),i>1)return!0;return!1}));!g.loose&&e.length&&t&&(g.loose=!0,g.items[a].loose=!0)}return g}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):Gv(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:cy(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let i,n,r,o,a=e.align.length;for(i=0;i({text:e})));for(a=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):Gv(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=ly(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const i=e.length;let n=0,r=0;for(;r-1){const i=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,i).trim(),t[3]=""}}let i=t[2],n="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);e&&(i=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return i=i.trim(),/^$/.test(e)?i.slice(1):i.slice(1,-1)),hy(t,{href:i?i.replace(this.rules.inline._escapes,"$1"):i,title:n?n.replace(this.rules.inline._escapes,"$1"):n},t[0],this.lexer)}}reflink(e,t){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let e=(i[2]||i[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=i[0].charAt(0);return{type:"text",raw:e,text:e}}return hy(i,e,i[0],this.lexer)}}emStrong(e,t,i=""){let n=this.rules.inline.emStrong.lDelim.exec(e);if(!n)return;if(n[3]&&i.match(/[\p{L}\p{N}]/u))return;const r=n[1]||n[2]||"";if(!r||r&&(""===i||this.rules.inline.punctuation.exec(i))){const i=n[0].length-1;let r,o,a=i,s=0;const c="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+i);null!=(n=c.exec(t));){if(r=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!r)continue;if(o=r.length,n[3]||n[4]){a+=o;continue}if((n[5]||n[6])&&i%3&&!((i+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(i,o)%2){const t=e.slice(1,i+n.index+o);return{type:"em",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,i+n.index+o-1);return{type:"strong",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const i=/[^ ]/.test(e),n=/^ /.test(e)&&/ $/.test(e);return i&&n&&(e=e.substring(1,e.length-1)),e=Gv(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const i=this.rules.inline.autolink.exec(e);if(i){let e,n;return"@"===i[2]?(e=Gv(this.options.mangle?t(i[1]):i[1]),n="mailto:"+e):(e=Gv(i[1]),n=e),{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let i;if(i=this.rules.inline.url.exec(e)){let e,n;if("@"===i[2])e=Gv(this.options.mangle?t(i[0]):i[0]),n="mailto:"+e;else{let t;do{t=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(t!==i[0]);e=Gv(i[0]),n="www."===i[1]?"http://"+e:e}return{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const i=this.rules.inline.text.exec(e);if(i){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):Gv(i[0]):i[0]:Gv(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:e}}}}const my={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:ay,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};my.def=Zv(my.def).replace("label",my._label).replace("title",my._title).getRegex(),my.bullet=/(?:[*+-]|\d{1,9}[.)])/,my.listItemStart=Zv(/^( *)(bull) */).replace("bull",my.bullet).getRegex(),my.list=Zv(my.list).replace(/bull/g,my.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+my.def.source+")").getRegex(),my._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",my._comment=/|$)/,my.html=Zv(my.html,"i").replace("comment",my._comment).replace("tag",my._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),my.paragraph=Zv(my._paragraph).replace("hr",my.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my._tag).getRegex(),my.blockquote=Zv(my.blockquote).replace("paragraph",my.paragraph).getRegex(),my.normal=sy({},my),my.gfm=sy({},my.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),my.gfm.table=Zv(my.gfm.table).replace("hr",my.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my._tag).getRegex(),my.gfm.paragraph=Zv(my._paragraph).replace("hr",my.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",my.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",my._tag).getRegex(),my.pedantic=sy({},my.normal,{html:Zv("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",my._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:ay,paragraph:Zv(my.normal._paragraph).replace("hr",my.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",my.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const fy={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:ay,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:ay,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}fy._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",fy.punctuation=Zv(fy.punctuation).replace(/punctuation/g,fy._punctuation).getRegex(),fy.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,fy.escapedEmSt=/\\\*|\\_/g,fy._comment=Zv(my._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),fy.emStrong.lDelim=Zv(fy.emStrong.lDelim).replace(/punct/g,fy._punctuation).getRegex(),fy.emStrong.rDelimAst=Zv(fy.emStrong.rDelimAst,"g").replace(/punct/g,fy._punctuation).getRegex(),fy.emStrong.rDelimUnd=Zv(fy.emStrong.rDelimUnd,"g").replace(/punct/g,fy._punctuation).getRegex(),fy._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,fy._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,fy._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,fy.autolink=Zv(fy.autolink).replace("scheme",fy._scheme).replace("email",fy._email).getRegex(),fy._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,fy.tag=Zv(fy.tag).replace("comment",fy._comment).replace("attribute",fy._attribute).getRegex(),fy._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,fy._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,fy._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,fy.link=Zv(fy.link).replace("label",fy._label).replace("href",fy._href).replace("title",fy._title).getRegex(),fy.reflink=Zv(fy.reflink).replace("label",fy._label).replace("ref",my._label).getRegex(),fy.nolink=Zv(fy.nolink).replace("ref",my._label).getRegex(),fy.reflinkSearch=Zv(fy.reflinkSearch,"g").replace("reflink",fy.reflink).replace("nolink",fy.nolink).getRegex(),fy.normal=sy({},fy),fy.pedantic=sy({},fy.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Zv(/^!?\[(label)\]\((.*?)\)/).replace("label",fy._label).getRegex(),reflink:Zv(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",fy._label).getRegex()}),fy.gfm=sy({},fy.normal,{escape:Zv(fy.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),1===i.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else{if(r=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startBlock.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(r)))n=t[t.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),o=r.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let i,n,r,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+dy("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+dy("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((n=>!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,c,s))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,_y))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,_y))){if(r=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startInline.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(i=this.tokenizer.inlineText(r,gy))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(s=i.raw.slice(-1)),a=!0,n=t[t.length-1],n&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(i.raw.length),t.push(i);return t}}class vy{constructor(e){this.options=e||zv}code(e,t,i){const n=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,n);null!=t&&t!==e&&(i=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",n?'
    '+(i?e:Gv(e,!0))+"
    \n":"
    "+(i?e:Gv(e,!0))+"
    \n"}blockquote(e){return"
    \n"+e+"
    \n"}html(e){return e}heading(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(e,t,i){const n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,i){if(null===(e=ty(this.options.sanitize,this.options.baseUrl,e)))return i;let n='
    ",n}image(e,t,i){if(null===(e=ty(this.options.sanitize,this.options.baseUrl,e)))return i;let n=''+i+'":">",n}text(e){return e}}class yy{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,i){return""+i}image(e,t,i){return""+i}br(){return""}}class wy{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{n++,i=e+"-"+n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i}slug(e,t={}){const i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)}}class xy{constructor(e){this.options=e||zv,this.options.renderer=this.options.renderer||new vy,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new yy,this.slugger=new wy}static parse(e,t){return new xy(t).parse(e)}static parseInline(e,t){return new xy(t).parseInline(e)}parse(e,t=!0){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w="";const x=e.length;for(i=0;i0&&"paragraph"===g.tokens[0].type?(g.tokens[0].text=v+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=v+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:v}):f+=v),f+=this.parse(g.tokens,m),u+=this.renderer.listitem(f,b,_);w+=this.renderer.list(u,h,p);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(u=d.tokens?this.parseInline(d.tokens):d.text;i+1{r(e.text,e.lang,(function(t,i){if(t)return a(t);null!=i&&i!==e.text&&(e.text=i,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const i=by.lex(e,t);return t.walkTokens&&Ay.walkTokens(i,t.walkTokens),xy.parse(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Gv(n.message+"",!0)+"
    ";throw n}}Ay.options=Ay.setOptions=function(e){var t;return sy(Ay.defaults,e),t=Ay.defaults,zv=t,Ay},Ay.getDefaults=Pv,Ay.defaults=zv,Ay.use=function(...e){const t=sy({},...e),i=Ay.defaults.extensions||{renderers:{},childTokens:{}};let n;e.forEach((e=>{if(e.extensions&&(n=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=i.renderers?i.renderers[e.name]:null;i.renderers[e.name]=t?function(...i){let n=e.renderer.apply(this,i);return!1===n&&(n=t.apply(this,i)),n}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");i[e.level]?i[e.level].unshift(e.tokenizer):i[e.level]=[e.tokenizer],e.start&&("block"===e.level?i.startBlock?i.startBlock.push(e.start):i.startBlock=[e.start]:"inline"===e.level&&(i.startInline?i.startInline.push(e.start):i.startInline=[e.start]))}e.childTokens&&(i.childTokens[e.name]=e.childTokens)}))),e.renderer){const i=Ay.defaults.renderer||new vy;for(const t in e.renderer){const n=i[t];i[t]=(...r)=>{let o=e.renderer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.renderer=i}if(e.tokenizer){const i=Ay.defaults.tokenizer||new py;for(const t in e.tokenizer){const n=i[t];i[t]=(...r)=>{let o=e.tokenizer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.tokenizer=i}if(e.walkTokens){const i=Ay.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),i&&i.call(this,t)}}n&&(t.extensions=i),Ay.setOptions(t)}))},Ay.walkTokens=function(e,t){for(const i of e)switch(t.call(Ay,i),i.type){case"table":for(const e of i.header)Ay.walkTokens(e.tokens,t);for(const e of i.rows)for(const i of e)Ay.walkTokens(i.tokens,t);break;case"list":Ay.walkTokens(i.items,t);break;default:Ay.defaults.extensions&&Ay.defaults.extensions.childTokens&&Ay.defaults.extensions.childTokens[i.type]?Ay.defaults.extensions.childTokens[i.type].forEach((function(e){Ay.walkTokens(i[e],t)})):i.tokens&&Ay.walkTokens(i.tokens,t)}},Ay.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");uy(t=sy({},Ay.defaults,t||{}));try{const i=by.lexInline(e,t);return t.walkTokens&&Ay.walkTokens(i,t.walkTokens),xy.parseInline(i,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+Gv(i.message+"",!0)+"
    ";throw i}},Ay.Parser=xy,Ay.parser=xy.parse,Ay.Renderer=vy,Ay.TextRenderer=yy,Ay.Lexer=by,Ay.lexer=by.lex,Ay.Tokenizer=py,Ay.Slugger=wy,Ay.parse=Ay,xy.parse,by.lex;export{Ce as A,Ih as B,Rh as C,Rp as D,ap as E,Ee as F,sm as G,Xg as H,bv as I,tp as J,wv as K,Se as L,ue as M,Iv as N,Ay as O,le as P,U as Q,zh as R,Op as Z,w as a,ie as b,xe as c,ke as d,A as e,ur as f,te as g,ra as h,Ys as i,wi as j,ql as k,Te as l,Zp as m,Qp as n,tm as o,im as p,W as q,xt as r,Ne as s,Dp as t,Ep as u,vp as v,om as w,am as x,Ae as y,kp as z}; -//# sourceMappingURL=vendor.50c0a5f7.js.map +function(){var e;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var t=this;if(!t.ctx||!t.ctx.listener)return t;for(var i=t._howls.length-1;i>=0;i--)t._howls[i].stereo(e);return t},HowlerGlobal.prototype.pos=function(e,t,i){var n=this;return n.ctx&&n.ctx.listener?(t="number"!=typeof t?n._pos[1]:t,i="number"!=typeof i?n._pos[2]:i,"number"!=typeof e?n._pos:(n._pos=[e,t,i],void 0!==n.ctx.listener.positionX?(n.ctx.listener.positionX.setTargetAtTime(n._pos[0],Howler.ctx.currentTime,.1),n.ctx.listener.positionY.setTargetAtTime(n._pos[1],Howler.ctx.currentTime,.1),n.ctx.listener.positionZ.setTargetAtTime(n._pos[2],Howler.ctx.currentTime,.1)):n.ctx.listener.setPosition(n._pos[0],n._pos[1],n._pos[2]),n)):n},HowlerGlobal.prototype.orientation=function(e,t,i,n,r,o){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return t="number"!=typeof t?s[1]:t,i="number"!=typeof i?s[2]:i,n="number"!=typeof n?s[3]:n,r="number"!=typeof r?s[4]:r,o="number"!=typeof o?s[5]:o,"number"!=typeof e?s:(a._orientation=[e,t,i,n,r,o],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(o,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,t,i,n,r,o),a)},Howl.prototype.init=(e=Howl.prototype.init,function(t){var i=this;return i._orientation=t.orientation||[1,0,0],i._stereo=t.stereo||null,i._pos=t.pos||null,i._pannerAttr={coneInnerAngle:void 0!==t.coneInnerAngle?t.coneInnerAngle:360,coneOuterAngle:void 0!==t.coneOuterAngle?t.coneOuterAngle:360,coneOuterGain:void 0!==t.coneOuterGain?t.coneOuterGain:0,distanceModel:void 0!==t.distanceModel?t.distanceModel:"inverse",maxDistance:void 0!==t.maxDistance?t.maxDistance:1e4,panningModel:void 0!==t.panningModel?t.panningModel:"HRTF",refDistance:void 0!==t.refDistance?t.refDistance:1,rolloffFactor:void 0!==t.rolloffFactor?t.rolloffFactor:1},i._onstereo=t.onstereo?[{fn:t.onstereo}]:[],i._onpos=t.onpos?[{fn:t.onpos}]:[],i._onorientation=t.onorientation?[{fn:t.onorientation}]:[],e.call(this,t)}),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if("loaded"!==n._state)return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var r=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===i){if("number"!=typeof e)return n._stereo;n._stereo=e,n._pos=[e,0,0]}for(var o=n._getSoundIds(i),a=0;a"']/,Jv=/[&<>"']/g,Yv=/[<>"']|&(?!#?\w+;)/,Zv=/[<>"']|&(?!#?\w+;)/g,Qv={"&":"&","<":"<",">":">",'"':""","'":"'"},ey=e=>Qv[e];function ty(e,t){if(t){if(Xv.test(e))return e.replace(Jv,ey)}else if(Yv.test(e))return e.replace(Zv,ey);return e}const iy=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function ny(e){return e.replace(iy,((e,t)=>"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}const ry=/(^|[^\[])\^/g;function oy(e,t){e=e.source||e,t=t||"";const i={replace:(t,n)=>(n=(n=n.source||n).replace(ry,"$1"),e=e.replace(t,n),i),getRegex:()=>new RegExp(e,t)};return i}const ay=/[^\w:]/g,sy=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function cy(e,t,i){if(e){let e;try{e=decodeURIComponent(ny(i)).replace(ay,"").toLowerCase()}catch(n){return null}if(0===e.indexOf("javascript:")||0===e.indexOf("vbscript:")||0===e.indexOf("data:"))return null}t&&!sy.test(i)&&(i=function(e,t){ly[" "+e]||(uy.test(e)?ly[" "+e]=e+"/":ly[" "+e]=gy(e,"/",!0));const i=-1===(e=ly[" "+e]).indexOf(":");return"//"===t.substring(0,2)?i?t:e.replace(dy,"$1")+t:"/"===t.charAt(0)?i?t:e.replace(hy,"$1")+t:e+t}(t,i));try{i=encodeURI(i).replace(/%25/g,"%")}catch(n){return null}return i}const ly={},uy=/^[^:]+:\/*[^/]*$/,dy=/^([^:]+:)[\s\S]*$/,hy=/^([^:]+:\/*[^/]*)[\s\S]*$/;const py={exec:function(){}};function my(e){let t,i,n=1;for(;n{let n=!1,r=t;for(;--r>=0&&"\\"===i[r];)n=!n;return n?"|":" |"})).split(/ \|/);let n=0;if(i[0].trim()||i.shift(),i[i.length-1].trim()||i.pop(),i.length>t)i.splice(t);else for(;i.length1;)1&t&&(i+=e),t>>=1,e+=e;return i+e}function vy(e,t,i,n){const r=t.href,o=t.title?ty(t.title):null,a=e[1].replace(/\\([\[\]])/g,"$1");if("!"!==e[0].charAt(0)){n.state.inLink=!0;const e={type:"link",raw:i,href:r,title:o,text:a,tokens:n.inlineTokens(a,[])};return n.state.inLink=!1,e}return{type:"image",raw:i,href:r,title:o,text:ty(a)}}class yy{constructor(e){this.options=e||Gv}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:gy(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],i=function(e,t){const i=e.match(/^(\s+)(?:```)/);if(null===i)return t;const n=i[1];return t.split("\n").map((e=>{const t=e.match(/^\s+/);if(null===t)return e;const[i]=t;return i.length>=n.length?e.slice(n.length):e})).join("\n")}(e,t[3]||"");return{type:"code",raw:e,lang:t[2]?t[2].trim():t[2],text:i}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){const t=gy(e,"#");this.options.pedantic?e=t.trim():t&&!/ $/.test(t)||(e=t.trim())}const i={type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:[]};return this.lexer.inline(i.text,i.tokens),i}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:t[0]}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){const e=t[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:t[0],tokens:this.lexer.blockTokens(e,[]),text:e}}}list(e){let t=this.rules.block.list.exec(e);if(t){let i,n,r,o,a,s,c,l,u,d,h,p,m=t[1].trim();const f=m.length>1,g={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:!1,items:[]};m=f?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`,this.options.pedantic&&(m=f?m:"[*+-]");const _=new RegExp(`^( {0,3}${m})((?: [^\\n]*)?(?:\\n|$))`);for(;e&&(p=!1,t=_.exec(e))&&!this.rules.block.hr.test(e);){if(i=t[0],e=e.substring(i.length),l=t[2].split("\n",1)[0],u=e.split("\n",1)[0],this.options.pedantic?(o=2,h=l.trimLeft()):(o=t[2].search(/[^ ]/),o=o>4?1:o,h=l.slice(o),o+=t[1].length),s=!1,!l&&/^ *$/.test(u)&&(i+=u+"\n",e=e.substring(u.length+1),p=!0),!p){const t=new RegExp(`^ {0,${Math.min(3,o-1)}}(?:[*+-]|\\d{1,9}[.)])`);for(;e&&(d=e.split("\n",1)[0],l=d,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!t.test(l));){if(l.search(/[^ ]/)>=o||!l.trim())h+="\n"+l.slice(o);else{if(s)break;h+="\n"+l}s||l.trim()||(s=!0),i+=d+"\n",e=e.substring(d.length+1)}}g.loose||(c?g.loose=!0:/\n *\n *$/.test(i)&&(c=!0)),this.options.gfm&&(n=/^\[[ xX]\] /.exec(h),n&&(r="[ ] "!==n[0],h=h.replace(/^\[[ xX]\] +/,""))),g.items.push({type:"list_item",raw:i,task:!!n,checked:r,loose:!1,text:h}),g.raw+=i}g.items[g.items.length-1].raw=i.trimRight(),g.items[g.items.length-1].text=h.trimRight(),g.raw=g.raw.trimRight();const b=g.items.length;for(a=0;a"space"===e.type)),t=e.every((e=>{const t=e.raw.split("");let i=0;for(const n of t)if("\n"===n&&(i+=1),i>1)return!0;return!1}));!g.loose&&e.length&&t&&(g.loose=!0,g.items[a].loose=!0)}return g}}html(e){const t=this.rules.block.html.exec(e);if(t){const e={type:"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:t[0]};return this.options.sanitize&&(e.type="paragraph",e.text=this.options.sanitizer?this.options.sanitizer(t[0]):ty(t[0]),e.tokens=[],this.lexer.inline(e.text,e.tokens)),e}}def(e){const t=this.rules.block.def.exec(e);if(t){t[3]&&(t[3]=t[3].substring(1,t[3].length-1));return{type:"def",tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}}table(e){const t=this.rules.block.table.exec(e);if(t){const e={type:"table",header:fy(t[1]).map((e=>({text:e}))),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:t[3]?t[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(e.header.length===e.align.length){e.raw=t[0];let i,n,r,o,a=e.align.length;for(i=0;i({text:e})));for(a=e.header.length,n=0;n/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):ty(t[0]):t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;const t=gy(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;const i=e.length;let n=0,r=0;for(;r-1){const i=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,i).trim(),t[3]=""}}let i=t[2],n="";if(this.options.pedantic){const e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);e&&(i=e[1],n=e[3])}else n=t[3]?t[3].slice(1,-1):"";return i=i.trim(),/^$/.test(e)?i.slice(1):i.slice(1,-1)),vy(t,{href:i?i.replace(this.rules.inline._escapes,"$1"):i,title:n?n.replace(this.rules.inline._escapes,"$1"):n},t[0],this.lexer)}}reflink(e,t){let i;if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){let e=(i[2]||i[1]).replace(/\s+/g," ");if(e=t[e.toLowerCase()],!e||!e.href){const e=i[0].charAt(0);return{type:"text",raw:e,text:e}}return vy(i,e,i[0],this.lexer)}}emStrong(e,t,i=""){let n=this.rules.inline.emStrong.lDelim.exec(e);if(!n)return;if(n[3]&&i.match(/[\p{L}\p{N}]/u))return;const r=n[1]||n[2]||"";if(!r||r&&(""===i||this.rules.inline.punctuation.exec(i))){const i=n[0].length-1;let r,o,a=i,s=0;const c="*"===n[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+i);null!=(n=c.exec(t));){if(r=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!r)continue;if(o=r.length,n[3]||n[4]){a+=o;continue}if((n[5]||n[6])&&i%3&&!((i+o)%3)){s+=o;continue}if(a-=o,a>0)continue;if(o=Math.min(o,o+a+s),Math.min(i,o)%2){const t=e.slice(1,i+n.index+o);return{type:"em",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}const t=e.slice(2,i+n.index+o-1);return{type:"strong",raw:e.slice(0,i+n.index+o+1),text:t,tokens:this.lexer.inlineTokens(t,[])}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g," ");const i=/[^ ]/.test(e),n=/^ /.test(e)&&/ $/.test(e);return i&&n&&(e=e.substring(1,e.length-1)),e=ty(e,!0),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2],[])}}autolink(e,t){const i=this.rules.inline.autolink.exec(e);if(i){let e,n;return"@"===i[2]?(e=ty(this.options.mangle?t(i[1]):i[1]),n="mailto:"+e):(e=ty(i[1]),n=e),{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e,t){let i;if(i=this.rules.inline.url.exec(e)){let e,n;if("@"===i[2])e=ty(this.options.mangle?t(i[0]):i[0]),n="mailto:"+e;else{let t;do{t=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0]}while(t!==i[0]);e=ty(i[0]),n="www."===i[1]?"http://"+e:e}return{type:"link",raw:i[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e,t){const i=this.rules.inline.text.exec(e);if(i){let e;return e=this.lexer.state.inRawBlock?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):ty(i[0]):i[0]:ty(this.options.smartypants?t(i[0]):i[0]),{type:"text",raw:i[0],text:e}}}}const wy={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:py,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\.|[^\[\]\\])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};wy.def=oy(wy.def).replace("label",wy._label).replace("title",wy._title).getRegex(),wy.bullet=/(?:[*+-]|\d{1,9}[.)])/,wy.listItemStart=oy(/^( *)(bull) */).replace("bull",wy.bullet).getRegex(),wy.list=oy(wy.list).replace(/bull/g,wy.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+wy.def.source+")").getRegex(),wy._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",wy._comment=/|$)/,wy.html=oy(wy.html,"i").replace("comment",wy._comment).replace("tag",wy._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),wy.paragraph=oy(wy._paragraph).replace("hr",wy.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wy._tag).getRegex(),wy.blockquote=oy(wy.blockquote).replace("paragraph",wy.paragraph).getRegex(),wy.normal=my({},wy),wy.gfm=my({},wy.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),wy.gfm.table=oy(wy.gfm.table).replace("hr",wy.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wy._tag).getRegex(),wy.gfm.paragraph=oy(wy._paragraph).replace("hr",wy.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",wy.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",wy._tag).getRegex(),wy.pedantic=my({},wy.normal,{html:oy("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",wy._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:py,paragraph:oy(wy.normal._paragraph).replace("hr",wy.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",wy.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const xy={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:py,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:py,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}xy._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",xy.punctuation=oy(xy.punctuation).replace(/punctuation/g,xy._punctuation).getRegex(),xy.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,xy.escapedEmSt=/\\\*|\\_/g,xy._comment=oy(wy._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),xy.emStrong.lDelim=oy(xy.emStrong.lDelim).replace(/punct/g,xy._punctuation).getRegex(),xy.emStrong.rDelimAst=oy(xy.emStrong.rDelimAst,"g").replace(/punct/g,xy._punctuation).getRegex(),xy.emStrong.rDelimUnd=oy(xy.emStrong.rDelimUnd,"g").replace(/punct/g,xy._punctuation).getRegex(),xy._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,xy._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,xy._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,xy.autolink=oy(xy.autolink).replace("scheme",xy._scheme).replace("email",xy._email).getRegex(),xy._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,xy.tag=oy(xy.tag).replace("comment",xy._comment).replace("attribute",xy._attribute).getRegex(),xy._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,xy._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,xy._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,xy.link=oy(xy.link).replace("label",xy._label).replace("href",xy._href).replace("title",xy._title).getRegex(),xy.reflink=oy(xy.reflink).replace("label",xy._label).replace("ref",wy._label).getRegex(),xy.nolink=oy(xy.nolink).replace("ref",wy._label).getRegex(),xy.reflinkSearch=oy(xy.reflinkSearch,"g").replace("reflink",xy.reflink).replace("nolink",xy.nolink).getRegex(),xy.normal=my({},xy),xy.pedantic=my({},xy.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:oy(/^!?\[(label)\]\((.*?)\)/).replace("label",xy._label).getRegex(),reflink:oy(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",xy._label).getRegex()}),xy.gfm=my({},xy.normal,{escape:oy(xy.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.space(e))e=e.substring(i.raw.length),1===i.raw.length&&t.length>0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),n=t[t.length-1],!n||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else{if(r=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startBlock.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(r)))n=t[t.length-1],o&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),o=r.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t){this.inlineQueue.push({src:e,tokens:t})}inlineTokens(e,t=[]){let i,n,r,o,a,s,c=e;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(c));)e.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,o.index)+"["+by("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,o.index)+"["+by("a",o[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,o.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((n=>!!(i=n.call({lexer:this},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),n=t[t.length-1],n&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,c,s))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,Ay))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,Ay))){if(r=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0;const i=e.slice(1);let n;this.options.extensions.startInline.forEach((function(e){n=e.call({lexer:this},i),"number"==typeof n&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(i=this.tokenizer.inlineText(r,Ny))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(s=i.raw.slice(-1)),a=!0,n=t[t.length-1],n&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}else e=e.substring(i.raw.length),t.push(i);return t}}class Cy{constructor(e){this.options=e||Gv}code(e,t,i){const n=(t||"").match(/\S*/)[0];if(this.options.highlight){const t=this.options.highlight(e,n);null!=t&&t!==e&&(i=!0,e=t)}return e=e.replace(/\n$/,"")+"\n",n?'
    '+(i?e:ty(e,!0))+"
    \n":"
    "+(i?e:ty(e,!0))+"
    \n"}blockquote(e){return"
    \n"+e+"
    \n"}html(e){return e}heading(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"}hr(){return this.options.xhtml?"
    \n":"
    \n"}list(e,t,i){const n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"}listitem(e){return"
  • "+e+"
  • \n"}checkbox(e){return" "}paragraph(e){return"

    "+e+"

    \n"}table(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"}tablerow(e){return"\n"+e+"\n"}tablecell(e,t){const i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,i){if(null===(e=cy(this.options.sanitize,this.options.baseUrl,e)))return i;let n='
    ",n}image(e,t,i){if(null===(e=cy(this.options.sanitize,this.options.baseUrl,e)))return i;let n=''+i+'":">",n}text(e){return e}}class Ey{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,i){return""+i}image(e,t,i){return""+i}br(){return""}}class Sy{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{n++,i=e+"-"+n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i}slug(e,t={}){const i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)}}class Fy{constructor(e){this.options=e||Gv,this.options.renderer=this.options.renderer||new Cy,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Ey,this.slugger=new Sy}static parse(e,t){return new Fy(t).parse(e)}static parseInline(e,t){return new Fy(t).parseInline(e)}parse(e,t=!0){let i,n,r,o,a,s,c,l,u,d,h,p,m,f,g,_,b,v,y,w="";const x=e.length;for(i=0;i0&&"paragraph"===g.tokens[0].type?(g.tokens[0].text=v+" "+g.tokens[0].text,g.tokens[0].tokens&&g.tokens[0].tokens.length>0&&"text"===g.tokens[0].tokens[0].type&&(g.tokens[0].tokens[0].text=v+" "+g.tokens[0].tokens[0].text)):g.tokens.unshift({type:"text",text:v}):f+=v),f+=this.parse(g.tokens,m),u+=this.renderer.listitem(f,b,_);w+=this.renderer.list(u,h,p);continue;case"html":w+=this.renderer.html(d.text);continue;case"paragraph":w+=this.renderer.paragraph(this.parseInline(d.tokens));continue;case"text":for(u=d.tokens?this.parseInline(d.tokens):d.text;i+1{r(e.text,e.lang,(function(t,i){if(t)return a(t);null!=i&&i!==e.text&&(e.text=i,e.escaped=!0),s--,0===s&&a()}))}),0))})),void(0===s&&a())}try{const i=ky.lex(e,t);return t.walkTokens&&Oy.walkTokens(i,t.walkTokens),Fy.parse(i,t)}catch(n){if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+ty(n.message+"",!0)+"
    ";throw n}}Oy.options=Oy.setOptions=function(e){var t;return my(Oy.defaults,e),t=Oy.defaults,Gv=t,Oy},Oy.getDefaults=Kv,Oy.defaults=Gv,Oy.use=function(...e){const t=my({},...e),i=Oy.defaults.extensions||{renderers:{},childTokens:{}};let n;e.forEach((e=>{if(e.extensions&&(n=!0,e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if(e.renderer){const t=i.renderers?i.renderers[e.name]:null;i.renderers[e.name]=t?function(...i){let n=e.renderer.apply(this,i);return!1===n&&(n=t.apply(this,i)),n}:e.renderer}if(e.tokenizer){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");i[e.level]?i[e.level].unshift(e.tokenizer):i[e.level]=[e.tokenizer],e.start&&("block"===e.level?i.startBlock?i.startBlock.push(e.start):i.startBlock=[e.start]:"inline"===e.level&&(i.startInline?i.startInline.push(e.start):i.startInline=[e.start]))}e.childTokens&&(i.childTokens[e.name]=e.childTokens)}))),e.renderer){const i=Oy.defaults.renderer||new Cy;for(const t in e.renderer){const n=i[t];i[t]=(...r)=>{let o=e.renderer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.renderer=i}if(e.tokenizer){const i=Oy.defaults.tokenizer||new yy;for(const t in e.tokenizer){const n=i[t];i[t]=(...r)=>{let o=e.tokenizer[t].apply(i,r);return!1===o&&(o=n.apply(i,r)),o}}t.tokenizer=i}if(e.walkTokens){const i=Oy.defaults.walkTokens;t.walkTokens=function(t){e.walkTokens.call(this,t),i&&i.call(this,t)}}n&&(t.extensions=i),Oy.setOptions(t)}))},Oy.walkTokens=function(e,t){for(const i of e)switch(t.call(Oy,i),i.type){case"table":for(const e of i.header)Oy.walkTokens(e.tokens,t);for(const e of i.rows)for(const i of e)Oy.walkTokens(i.tokens,t);break;case"list":Oy.walkTokens(i.items,t);break;default:Oy.defaults.extensions&&Oy.defaults.extensions.childTokens&&Oy.defaults.extensions.childTokens[i.type]?Oy.defaults.extensions.childTokens[i.type].forEach((function(e){Oy.walkTokens(i[e],t)})):i.tokens&&Oy.walkTokens(i.tokens,t)}},Oy.parseInline=function(e,t){if(null==e)throw new Error("marked.parseInline(): input parameter is undefined or null");if("string"!=typeof e)throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected");_y(t=my({},Oy.defaults,t||{}));try{const i=ky.lexInline(e,t);return t.walkTokens&&Oy.walkTokens(i,t.walkTokens),Fy.parseInline(i,t)}catch(i){if(i.message+="\nPlease report this to https://github.com/markedjs/marked.",t.silent)return"

    An error occurred:

    "+ty(i.message+"",!0)+"
    ";throw i}},Oy.Parser=Fy,Oy.parser=Fy.parse,Oy.Renderer=Cy,Oy.TextRenderer=Ey,Oy.Lexer=ky,Oy.lexer=ky.lex,Oy.Tokenizer=yy,Oy.Slugger=Sy,Oy.parse=Oy,Fy.parse,ky.lex;export{Ce as A,Vh as B,Hh as C,Hp as D,pp as E,Ee as F,mm as G,i_ as H,kv as I,cp as J,Sv as K,Se as L,ue as M,Vv as N,Oy as O,le as P,U as Q,Gh as R,Rp as Z,w as a,ie as b,xe as c,ke as d,N as e,ur as f,te as g,ra as h,Ys as i,wi as j,Zl as k,Te as l,om as m,am as n,cm as o,lm as p,W as q,xt as r,Ae as s,jp as t,Mp as u,Cp as v,hm as w,pm as x,Ne as y,Bp as z}; +//# sourceMappingURL=vendor.a42db564.js.map diff --git a/assets/vendor.a42db564.js.map b/assets/vendor.a42db564.js.map new file mode 100644 index 00000000..cf6cd73d --- /dev/null +++ b/assets/vendor.a42db564.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor.a42db564.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact-router/dist/preact-router.es.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@mcschema/core/lib/model/Path.js","../../node_modules/@mcschema/core/lib/model/Errors.js","../../node_modules/@mcschema/core/lib/utils.js","../../node_modules/@mcschema/core/lib/model/DataModel.js","../../node_modules/@mcschema/core/lib/nodes/Node.js","../../node_modules/@mcschema/core/lib/nodes/BooleanNode.js","../../node_modules/@mcschema/core/lib/nodes/ListNode.js","../../node_modules/@mcschema/core/lib/nodes/SwitchNode.js","../../node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","../../node_modules/@mcschema/core/lib/nodes/MapNode.js","../../node_modules/@mcschema/core/lib/nodes/NumberNode.js","../../node_modules/@mcschema/core/lib/nodes/ObjectNode.js","../../node_modules/@mcschema/core/lib/nodes/Reference.js","../../node_modules/@mcschema/core/lib/nodes/StringNode.js","../../node_modules/@mcschema/core/lib/Hook.js","../../node_modules/@mcschema/core/lib/Registries.js","../../node_modules/@mcschema/core/lib/ValidationOption.js","../../node_modules/@mcschema/core/lib/index.js","../../node_modules/rfdc/index.js","../../node_modules/@mcschema/java-1.15/lib/Collections.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.15/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.15/lib/LootContext.js","../../node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.15/lib/schemas/index.js","../../node_modules/@mcschema/java-1.15/lib/index.js","../../node_modules/@mcschema/java-1.16/lib/Collections.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.16/lib/LootContext.js","../../node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.16/lib/schemas/index.js","../../node_modules/@mcschema/java-1.16/lib/index.js","../../node_modules/@mcschema/java-1.17/lib/Collections.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.17/lib/LootContext.js","../../node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.17/lib/schemas/index.js","../../node_modules/@mcschema/java-1.17/lib/index.js","../../node_modules/@mcschema/java-1.18/lib/Collections.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18/lib/LootContext.js","../../node_modules/@mcschema/java-1.18/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18/lib/index.js","../../node_modules/@mcschema/java-1.18.2/lib/Collections.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Advancement.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/Model.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/BlockDefinition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/assets/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Common.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Condition.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Dimension.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/DimensionType.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/ItemModifier.js","../../node_modules/@mcschema/java-1.18.2/lib/LootContext.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/LootTable.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/PackMcmeta.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Predicates.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Recipe.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/Tags.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/TextComponent.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Biome.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Carver.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Decorator.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/DensityFunction.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/ProcessorList.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/Feature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/NoiseSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureFeature.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/StructureSet.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/SurfaceRule.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/TemplatePool.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/worldgen/index.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/WorldSettings.js","../../node_modules/@mcschema/java-1.18.2/lib/schemas/index.js","../../node_modules/@mcschema/java-1.18.2/lib/index.js","../../node_modules/pako/dist/pako.esm.mjs","../../node_modules/crypt/crypt.js","../../node_modules/charenc/charenc.js","../../node_modules/is-buffer/index.js","../../node_modules/md5/md5.js","../../node_modules/deepslate/dist/deepslate.esm.js","../../node_modules/deepslate-rs/deepslate_rs.js","../../node_modules/deepslate-rs/deepslate_rs_bg.wasm?url","../../node_modules/brace/index.js","../../node_modules/brace/worker/json.js","../../node_modules/brace/mode/json.js","../../node_modules/brace/mode/yaml.js","../../node_modules/esprima/dist/esprima.js","../../node_modules/base64-js/index.js","../../node_modules/core-util-is/lib/util.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/array-timsort/src/index.js","../../node_modules/has-own-prop/index.js","../../node_modules/comment-json/src/common.js","../../node_modules/comment-json/src/array.js","../../node_modules/comment-json/src/parse.js","../../node_modules/repeat-string/index.js","../../node_modules/comment-json/src/stringify.js","../../node_modules/comment-json/src/index.js","../../node_modules/js-yaml/lib/js-yaml/common.js","../../node_modules/js-yaml/lib/js-yaml/exception.js","../../node_modules/js-yaml/lib/js-yaml/mark.js","../../node_modules/js-yaml/lib/js-yaml/type.js","../../node_modules/js-yaml/lib/js-yaml/schema.js","../../node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","../../node_modules/js-yaml/lib/js-yaml/type/str.js","../../node_modules/js-yaml/lib/js-yaml/type/seq.js","../../node_modules/js-yaml/lib/js-yaml/type/map.js","../../node_modules/js-yaml/lib/js-yaml/type/null.js","../../node_modules/js-yaml/lib/js-yaml/type/bool.js","../../node_modules/js-yaml/lib/js-yaml/type/int.js","../../node_modules/js-yaml/lib/js-yaml/type/float.js","../../node_modules/js-yaml/lib/js-yaml/schema/json.js","../../node_modules/js-yaml/lib/js-yaml/schema/core.js","../../node_modules/js-yaml/lib/js-yaml/type/timestamp.js","../../node_modules/js-yaml/lib/js-yaml/type/binary.js","../../node_modules/js-yaml/lib/js-yaml/type/merge.js","../../node_modules/js-yaml/lib/js-yaml/type/omap.js","../../node_modules/js-yaml/lib/js-yaml/type/pairs.js","../../node_modules/js-yaml/lib/js-yaml/type/set.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","../../node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","../../node_modules/js-yaml/lib/js-yaml/type/js/function.js","../../node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","../../node_modules/js-yaml/lib/js-yaml/schema/default_full.js","../../node_modules/js-yaml/lib/js-yaml/loader.js","../../node_modules/js-yaml/lib/js-yaml/dumper.js","../../node_modules/js-yaml/lib/js-yaml.js","../../node_modules/js-yaml/index.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/marked/lib/marked.esm.js","../../node_modules/howler/dist/howler.js"],"sourcesContent":["var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o b.rank) ? -1 :\n\t\t\t\t(a.index - b.index)\n\t);\n}\n\n// filter out VNodes without attributes (which are unrankeable), and add `index`/`rank` properties to be used in sorting.\nfunction prepareVNodeForRanking(vnode, index) {\n\tvnode.index = index;\n\tvnode.rank = rankChild(vnode);\n\treturn vnode.props;\n}\n\nfunction segmentize(url) {\n\treturn url.replace(/(^\\/+|\\/+$)/g, '').split('/');\n}\n\nfunction rankSegment(segment) {\n\treturn segment.charAt(0)==':' ? (1 + '*+?'.indexOf(segment.charAt(segment.length-1))) || 4 : 5;\n}\n\nfunction rank(path) {\n\treturn segmentize(path).map(rankSegment).join('');\n}\n\nfunction rankChild(vnode) {\n\treturn vnode.props.default ? 0 : rank(vnode.props.path);\n}\n\nvar customHistory = null;\n\nvar ROUTERS = [];\n\nvar subscribers = [];\n\nvar EMPTY = {};\n\nfunction setUrl(url, type) {\n\tif ( type === void 0 ) type='push';\n\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tvar url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn (\"\" + (url.pathname || '') + (url.search || ''));\n}\n\n\n\nfunction route(url, replace) {\n\tif ( replace === void 0 ) replace=false;\n\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (var i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) { return true; }\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tvar didRoute = false;\n\tfor (var i=0; i 0;\n\t};\n\n\t/** Re-render children with a new URL to match against. */\n\tRouter.prototype.routeTo = function routeTo (url) {\n\t\tthis.setState({ url: url });\n\n\t\tvar didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) { this.forceUpdate(); }\n\n\t\treturn didRoute;\n\t};\n\n\tRouter.prototype.componentWillMount = function componentWillMount () {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidMount = function componentDidMount () {\n\t\tvar this$1 = this;\n\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen(function (location) {\n\t\t\t\tthis$1.routeTo((\"\" + (location.pathname || '') + (location.search || '')));\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.componentWillUnmount = function componentWillUnmount () {\n\t\tif (typeof this.unlisten==='function') { this.unlisten(); }\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t};\n\n\tRouter.prototype.componentWillUpdate = function componentWillUpdate () {\n\t\tthis.updating = true;\n\t};\n\n\tRouter.prototype.componentDidUpdate = function componentDidUpdate () {\n\t\tthis.updating = false;\n\t};\n\n\tRouter.prototype.getMatchingChildren = function getMatchingChildren (children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( function (vnode) {\n\t\t\t\tvar matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tvar newProps = { url: url, matches: matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t};\n\n\tRouter.prototype.render = function render (ref, ref$1) {\n\t\tvar children = ref.children;\n\t\tvar onChange = ref.onChange;\n\t\tvar url = ref$1.url;\n\n\t\tvar active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tvar current = active[0] || null;\n\n\t\tvar previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl: url,\n\t\t\t\t\tprevious: previous,\n\t\t\t\t\tactive: active,\n\t\t\t\t\tcurrent: current\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t};\n\n\treturn Router;\n}(Component));\n\nvar Link = function (props) { return (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n); };\n\nvar Route = function (props) { return createElement(props.component, props); };\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };export default Router;\n//# sourceMappingURL=preact-router.es.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.hexId = exports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\nconst dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\r\nfunction hexId(length = 12) {\r\n var arr = new Uint8Array(length / 2);\r\n window.crypto.getRandomValues(arr);\r\n return Array.from(arr, dec2hex).join('');\r\n}\r\nexports.hexId = hexId;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\nconst utils_1 = require(\"../utils\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a, _b, _c, _d;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n this.verbose = (_b = options === null || options === void 0 ? void 0 : options.verbose) !== null && _b !== void 0 ? _b : false;\r\n this.wrapLists = (_c = options === null || options === void 0 ? void 0 : options.wrapLists) !== null && _c !== void 0 ? _c : false;\r\n this.schema = schema;\r\n const data = (_d = options === null || options === void 0 ? void 0 : options.initialData) !== null && _d !== void 0 ? _d : schema.default();\r\n this.data = this.wrapLists ? DataModel.wrapLists(data) : data;\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n if (this.wrapLists && typeof e === 'number') {\r\n node[e] = { node: {}, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[e] = {};\r\n }\r\n }\r\n if (this.wrapLists && typeof e === 'number') {\r\n node = node[e].node;\r\n }\r\n else {\r\n node = node[e];\r\n }\r\n });\r\n if (node === null)\r\n return;\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else if (this.wrapLists && typeof path.last() === 'number') {\r\n node[path.last()] = { node: value, id: utils_1.hexId() };\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n if (this.verbose) {\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n }\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose, wrapLists: this.wrapLists })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n static wrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => ({\r\n node: this.wrapLists(v),\r\n id: utils_1.hexId(),\r\n }));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.wrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n static unwrapLists(value) {\r\n if (Array.isArray(value)) {\r\n const res = value.map(v => this.unwrapLists(v.node));\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n const res = {};\r\n Object.entries(value).map(([k, v]) => {\r\n res[k] = this.unwrapLists(v);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n const res = value.map((obj, index) => {\r\n const newObj = children.validate(path.push(index), options.wrapLists ? obj.node : obj, errors, options);\r\n return options.wrapLists ? { node: newObj, id: obj.id } : newObj;\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n const res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberEnum = exports.NumberNode = void 0;\r\nconst __1 = require(\"..\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\nexports.NumberEnum = ({ integer, values }) => __1.Mod(exports.NumberNode({ integer }), node => ({\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (!values.includes(value)) {\r\n errors.add(path, 'error.invalid_number_enum', values.join(', '));\r\n }\r\n return value;\r\n }\r\n}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default();\r\n }\r\n if (typeof value !== 'object' || value === null) {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n const res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n delete res[k];\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n for (const a of Object.getOwnPropertySymbols(value)) {\r\n res[a] = value[a];\r\n }\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, config: config !== null && config !== void 0 ? config : {}, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst DataModel_1 = require(\"../model/DataModel\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = () => {\r\n var _a, _b, _c, _d;\r\n if (isEnum(config)) {\r\n if (typeof config.enum === 'string') {\r\n return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : [];\r\n }\r\n return config.enum;\r\n }\r\n if ((config === null || config === void 0 ? void 0 : config.validator) === 'resource') {\r\n if (typeof config.params.pool === 'string') {\r\n if (config.params.requireTag) {\r\n return (_b = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${config.params.pool}`).map(e => `#${e}`)) !== null && _b !== void 0 ? _b : [];\r\n }\r\n const registry = config.params.pool.replace(/^\\$/, '');\r\n return [\r\n ...config.params.allowTag ? (_c = collections === null || collections === void 0 ? void 0 : collections.get(`tag/${registry}`).map(e => `#${e}`)) !== null && _c !== void 0 ? _c : [] : [],\r\n ...(_d = collections === null || collections === void 0 ? void 0 : collections.get(registry)) !== null && _d !== void 0 ? _d : [],\r\n ];\r\n }\r\n return config.params.pool;\r\n }\r\n return [];\r\n };\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = (options.wrapLists ? DataModel_1.DataModel.wrapLists(this.default()) : this.default()) || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value.startsWith('#')\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && typeof value == 'string') {\r\n let id = value;\r\n if (value.startsWith('#')) {\r\n if (typeof config.params.pool === 'string' && config.params.pool.startsWith('$tag/')) {\r\n errors.add(path, 'error.disallowed_tag_prefix');\r\n return value;\r\n }\r\n else if (!config.params.allowTag && !config.params.requireTag) {\r\n errors.add(path, 'error.disallowed_tag');\r\n return value;\r\n }\r\n id = id.slice(1);\r\n }\r\n else if (config.params.requireTag) {\r\n errors.add(path, 'error.expected_tag');\r\n return value;\r\n }\r\n if (!id.match(/^(?:[_\\-a-z0-9.]*:)?[_\\-a-z0-9/.]*$/g)) {\r\n errors.add(path, 'error.invalid_resource_location');\r\n return value;\r\n }\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n ((config.params.allowTag || config.params.requireTag) && value.startsWith('#')) ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n\n if (opts.circles) return rfdcCircles(opts)\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n var refs = []\n var refsNew = []\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n var keys = Object.keys(a)\n var a2 = new Array(keys.length)\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i]\n var cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur instanceof Date) {\n a2[k] = new Date(cur)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n var index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), clone))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), clone))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), clone))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), clone))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (o instanceof Date) return new Date(o)\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o instanceof Map) return new Map(cloneArray(Array.from(o), cloneProto))\n if (o instanceof Set) return new Set(cloneArray(Array.from(o), cloneProto))\n var o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (var k in o) {\n var cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur instanceof Date) {\n o2[k] = new Date(cur)\n } else if (cur instanceof Map) {\n o2[k] = new Map(cloneArray(Array.from(cur), cloneProto))\n } else if (cur instanceof Set) {\n o2[k] = new Set(cloneArray(Array.from(cur), cloneProto))\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n var i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true }),\r\n extra_count: core_1.NumberNode({ integer: true }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_in: core_1.Opt(core_1.ListNode(Reference('block_state'))),\r\n place_under: core_1.Opt(core_1.ListNode(Reference('block_state')))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nconst DefaultStructureSettings = {\r\n 'minecraft:igloo': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357618\r\n },\r\n 'minecraft:mansion': {\r\n spacing: 80,\r\n separation: 20,\r\n salt: 10387319\r\n },\r\n 'minecraft:jungle_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357619\r\n },\r\n 'minecraft:nether_fossil': {\r\n spacing: 2,\r\n separation: 1,\r\n salt: 14357921\r\n },\r\n 'minecraft:stronghold': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:shipwreck': {\r\n spacing: 24,\r\n separation: 4,\r\n salt: 165745295\r\n },\r\n 'minecraft:mineshaft': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:desert_pyramid': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357617\r\n },\r\n 'minecraft:ruined_portal': {\r\n spacing: 40,\r\n separation: 15,\r\n salt: 34222645\r\n },\r\n 'minecraft:fortress': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:pillager_outpost': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 165745296\r\n },\r\n 'minecraft:village': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 10387312\r\n },\r\n 'minecraft:endcity': {\r\n spacing: 20,\r\n separation: 11,\r\n salt: 10387313\r\n },\r\n 'minecraft:buried_treasure': {\r\n spacing: 1,\r\n separation: 0,\r\n salt: 0\r\n },\r\n 'minecraft:ocean_ruin': {\r\n spacing: 20,\r\n separation: 8,\r\n salt: 14357621\r\n },\r\n 'minecraft:bastion_remnant': {\r\n spacing: 27,\r\n separation: 4,\r\n salt: 30084232\r\n },\r\n 'minecraft:swamp_hut': {\r\n spacing: 32,\r\n separation: 8,\r\n salt: 14357620\r\n },\r\n 'minecraft:monument': {\r\n spacing: 32,\r\n separation: 5,\r\n salt: 10387313\r\n }\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n structures: DefaultStructureSettings\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n },\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {\r\n stronghold: {\r\n distance: 32,\r\n spread: 3,\r\n count: 128\r\n },\r\n structures: DefaultStructureSettings,\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(PlacedFeature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'fluid' } }))\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n add_surface_secondary_depth: core_1.BooleanNode(),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:fall_from_height',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:lightning_strike',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:ride_entity_in_lava',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:started_riding',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:using_item',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mountain',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end',\r\n 'underground'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n collections.register('cave_surface', [\r\n 'floor',\r\n 'ceiling'\r\n ]);\r\n collections.register('direction', [\r\n 'down',\r\n 'up',\r\n 'north',\r\n 'east',\r\n 'south',\r\n 'west'\r\n ]);\r\n collections.register('axis', [\r\n 'x',\r\n 'y',\r\n 'z'\r\n ]);\r\n collections.register('display_position', [\r\n 'firstperson_righthand',\r\n 'firstperson_lefthand',\r\n 'thirdperson_righthand',\r\n 'thirdperson_lefthand',\r\n 'gui',\r\n 'head',\r\n 'ground',\r\n 'fixed'\r\n ]);\r\n collections.register('gui_light', [\r\n 'front',\r\n 'side'\r\n ]);\r\n collections.register('item_model_predicates', [\r\n 'angle',\r\n 'blocking',\r\n 'broken',\r\n 'cast',\r\n 'charged',\r\n 'cooldown',\r\n 'custom_model_data',\r\n 'damage',\r\n 'damaged',\r\n 'firework',\r\n 'lefthanded',\r\n 'pull',\r\n 'pulling',\r\n 'throwing',\r\n 'time'\r\n ]);\r\n collections.register('mob_category', [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'axolotls',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc',\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n }))),\r\n source: core_1.Opt(EntityPredicate)\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:fall_from_height': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:ride_entity_in_lava': {\r\n start_position: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Reference('float_bounds'))\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:using_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initModelSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initModelSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Vec = (length, min, max) => core_1.ListNode(core_1.NumberNode({ min, max }), { minLength: length, maxLength: length });\r\n const Texture = core_1.ChoiceNode([\r\n {\r\n type: 'alias',\r\n match: (v) => typeof v === 'string' && v.startsWith('#'),\r\n node: StringNode(),\r\n change: (v) => typeof v === 'string' ? `#${v}` : \"#0\"\r\n },\r\n {\r\n type: 'reference',\r\n match: (v) => typeof v === 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$texture' } }),\r\n change: (v) => typeof v === 'string' ? v.replace(/^#/, '') : \"\"\r\n }\r\n ], { choiceContext: 'texture' });\r\n schemas.register('model', core_1.Mod(core_1.ObjectNode({\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$model' } })),\r\n ambientocclusion: core_1.Opt(core_1.BooleanNode()),\r\n gui_light: core_1.Opt(StringNode({ enum: 'gui_light' })),\r\n textures: core_1.Opt(core_1.MapNode(StringNode(), Texture)),\r\n elements: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n from: Vec(3, -16, 32),\r\n to: Vec(3, -16, 32),\r\n rotation: core_1.Opt(core_1.ObjectNode({\r\n origin: Vec(3),\r\n axis: StringNode({ enum: 'axis' }),\r\n angle: core_1.NumberEnum({ values: [-45, -22.5, 0, 22.5, 45] }),\r\n rescale: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n shade: core_1.Opt(core_1.BooleanNode()),\r\n faces: core_1.MapNode(StringNode({ enum: 'direction' }), core_1.ObjectNode({\r\n texture: Texture,\r\n uv: core_1.Opt(Vec(4)),\r\n cullface: core_1.Opt(StringNode({ enum: 'direction' })),\r\n rotation: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tintindex: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }))\r\n }, { context: 'model_element' }))),\r\n display: core_1.Opt(core_1.MapNode(StringNode({ enum: 'display_position' }), core_1.ObjectNode({\r\n rotation: Vec(3),\r\n translation: Vec(3, -80, 80),\r\n scale: Vec(3, -4, 4)\r\n }, { context: 'item_transform' }))),\r\n overrides: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n predicate: core_1.MapNode(StringNode({ enum: 'item_model_predicates' }), core_1.NumberNode()),\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } })\r\n }, { context: 'model_override' })))\r\n }, { context: 'model' }), {\r\n default: () => ({\r\n parent: 'minecraft:item/generated',\r\n textures: {\r\n layer0: 'minecraft:item/diamond'\r\n }\r\n })\r\n }));\r\n}\r\nexports.initModelSchemas = initModelSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBlockDefinitionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBlockDefinitionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('block_definition', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'variants',\r\n match: (v) => v.variants !== undefined,\r\n node: core_1.ObjectNode({\r\n variants: core_1.MapNode(StringNode(), Reference('model_variant'))\r\n }),\r\n change: (v) => ({ variants: { \"\": {} } })\r\n },\r\n {\r\n type: 'multipart',\r\n match: (v) => v.multipart !== undefined,\r\n node: core_1.ObjectNode({\r\n multipart: core_1.ListNode(core_1.ObjectNode({\r\n when: core_1.Opt(Reference('multipart_condition')),\r\n apply: Reference('model_variant'),\r\n }))\r\n }),\r\n change: (v) => ({ multipart: { when: {}, apply: {} } })\r\n }\r\n ], { context: 'block_definition' }), {\r\n default: () => ({\r\n variants: {\r\n \"\": {\r\n model: 'minecraft:block/stone'\r\n }\r\n }\r\n })\r\n }));\r\n const VariantChildren = {\r\n model: StringNode({ validator: 'resource', params: { pool: '$model' } }),\r\n x: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n y: core_1.Opt(core_1.NumberEnum({ integer: true, values: [0, 90, 180, 270] })),\r\n uvlock: core_1.Opt(core_1.BooleanNode()),\r\n };\r\n schemas.register('model_variant', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode(VariantChildren),\r\n change: (v) => Array.isArray(v) && v.length > 0 ? v[0] : ({})\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.ObjectNode({\r\n ...VariantChildren,\r\n weight: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }, { context: 'model_variant' })),\r\n change: (v) => [{ weight: 1, ...v }]\r\n }\r\n ], { context: 'model_variant' }));\r\n schemas.register('multipart_condition', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n priority: -1,\r\n match: () => true,\r\n node: core_1.MapNode(StringNode(), StringNode()),\r\n change: (v) => typeof v === 'object' && Array.isArray(v === null || v === void 0 ? void 0 : v.OR) && v.OR.length > 0 ? v.OR[0] : ({})\r\n },\r\n {\r\n type: 'or',\r\n match: (v) => typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.OR) !== undefined,\r\n node: core_1.ObjectNode({\r\n OR: core_1.ListNode(Reference('multipart_condition'))\r\n }),\r\n change: (v) => ({ OR: [v !== null && v !== void 0 ? v : {}] })\r\n }\r\n ], { context: 'multipart_condition' }));\r\n}\r\nexports.initBlockDefinitionSchemas = initBlockDefinitionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAssetsSchemas = void 0;\r\nconst Model_1 = require(\"./Model\");\r\nconst BlockDefinition_1 = require(\"./BlockDefinition\");\r\nfunction initAssetsSchemas(schemas, collections) {\r\n BlockDefinition_1.initBlockDefinitionSchemas(schemas, collections);\r\n Model_1.initModelSchemas(schemas, collections);\r\n}\r\nexports.initAssetsSchemas = initAssetsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Tag = exports.InclusiveRange = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: '#minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:weighted_list': {\r\n distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Reference('int_provider'),\r\n }))\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.InclusiveRange = (config) => core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_inclusive: core_1.NumberNode(config)\r\n }, { context: 'range' });\r\n schemas.register('noise_parameters', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'noise_parameters' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n exports.Tag = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource, allowTag: true } }),\r\n change: (v) => {\r\n if (Array.isArray(v) && typeof v[0] === 'string' && !v[0].startsWith('#')) {\r\n return v[0];\r\n }\r\n return undefined;\r\n }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(config.inlineSchema\r\n ? core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: config.resource } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference(config.inlineSchema)\r\n }\r\n ], { choiceContext: 'tag.list' })\r\n : StringNode({ validator: 'resource', params: { pool: config.resource } })),\r\n change: (v) => {\r\n if (typeof v === 'string' && !v.startsWith('#')) {\r\n return [v];\r\n }\r\n return [];\r\n }\r\n },\r\n ], { choiceContext: 'tag' });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_entity_type' } }),\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_potion': {\r\n id: StringNode({ validator: 'resource', params: { pool: 'potion' } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: '#minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: '#minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:netherrack'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:lava'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:end': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:end_stone'\r\n },\r\n default_fluid: {\r\n Name: 'minecraft:air'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:amplified': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n noise_caves_enabled: true,\r\n deepslate_enabled: true,\r\n ore_veins_enabled: true,\r\n noodle_caves_enabled: true,\r\n disable_mob_generation: false,\r\n aquifers_enabled: true,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: -64,\r\n height: 384,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 1,\r\n density_offset: -0.51875,\r\n amplified: true,\r\n top_slide: {\r\n target: -0.078125,\r\n size: 2,\r\n offset: 8\r\n },\r\n bottom_slide: {\r\n target: 0.1171875,\r\n size: 3,\r\n offset: 0\r\n },\r\n sampling: {\r\n xz_scale: 0.9999999814507745,\r\n y_scale: 0.9999999814507745,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {},\r\n },\r\n 'minecraft:caves': {\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n density_factor: 0,\r\n density_offset: -0.030078125,\r\n top_slide: {\r\n target: 0.9375,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 2.5,\r\n size: 4,\r\n offset: -1\r\n },\r\n sampling: {\r\n xz_scale: 1.0,\r\n y_scale: 3.0,\r\n xz_factor: 80.0,\r\n y_factor: 60.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n },\r\n 'minecraft:floating_islands': {\r\n bedrock_roof_position: -2147483648,\r\n bedrock_floor_position: -2147483648,\r\n sea_level: 0,\r\n noise_caves_enabled: false,\r\n deepslate_enabled: false,\r\n ore_veins_enabled: false,\r\n noodle_caves_enabled: false,\r\n disable_mob_generation: false,\r\n aquifers_enabled: false,\r\n default_block: {\r\n Name: 'minecraft:stone'\r\n },\r\n default_fluid: {\r\n Properties: {\r\n level: '0'\r\n },\r\n Name: 'minecraft:water'\r\n },\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n density_factor: 0,\r\n density_offset: 0,\r\n island_noise_override: true,\r\n top_slide: {\r\n target: -23.4375,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -0.234375,\r\n size: 7,\r\n offset: 1\r\n },\r\n sampling: {\r\n xz_scale: 2.0,\r\n y_scale: 1.0,\r\n xz_factor: 80.0,\r\n y_factor: 160.0\r\n },\r\n terrain_shaper: {\r\n offset: 0,\r\n factor: 1,\r\n jaggedness: 0\r\n }\r\n },\r\n surface_rule: {\r\n type: 'minecraft:sequence',\r\n sequence: []\r\n },\r\n structures: {}\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ validator: 'resource', params: { pool: ['minecraft:overworld', 'minecraft:nether'] } })),\r\n biomes: core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n enabled: path => path.push('preset').get() === undefined,\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n })\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' })\r\n },\r\n 'minecraft:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true })\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n const ClimateParameter = core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ min: -2, max: 2 }),\r\n change: (v) => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : 0; }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(core_1.NumberNode({ min: -2, max: 2 }), { minLength: 2, maxLength: 2 }),\r\n change: (v) => [v !== null && v !== void 0 ? v : 0, v !== null && v !== void 0 ? v : 0]\r\n }\r\n ]);\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n temperature: ClimateParameter,\r\n humidity: ClimateParameter,\r\n continentalness: ClimateParameter,\r\n erosion: ClimateParameter,\r\n weirdness: ClimateParameter,\r\n depth: ClimateParameter,\r\n offset: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4064 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2032, max: 2031 }),\r\n height: core_1.NumberNode({ integer: true, min: 16, max: 4064 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2032) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2032);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 8;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n items: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'item' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n blocks: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate'))),\r\n looking_at: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n stepping_on: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe', disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = exports.SpawnSettings = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.SpawnSettings = core_1.MapNode(StringNode({ enum: 'mob_category' }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n }));\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n spawners: exports.SpawnSettings,\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(Common_1.Tag({ resource: '$worldgen/configured_carver', inlineSchema: 'configured_carver' }), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }), { category: () => 'predicate' }), { maxLength: 11 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state')),\r\n water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/placement_modifier_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_predicate_filter': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:rarity_filter': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:count_on_every_layer': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:noise_threshold_count': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:noise_based_count': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:environment_scan': {\r\n direction_of_search: StringNode({ enum: ['up', 'down'] }),\r\n max_steps: core_1.NumberNode({ integer: true, min: 1, max: 32 }),\r\n target_condition: Reference('block_predicate_worldgen'),\r\n allowed_search_condition: core_1.Opt(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:height_range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:random_offset': {\r\n xz_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n y_spread: Common_1.IntProvider({ min: -16, max: 16 }),\r\n },\r\n 'minecraft:surface_relative_threshold_filter': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n min_inclusive: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_inclusive: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:surface_water_depth_filter': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDensityFunctionSchemas = exports.DensityFunction = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initDensityFunctionSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n exports.DensityFunction = core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: () => 0\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/density_function' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('density_function'),\r\n change: () => ({})\r\n }\r\n ], { choiceContext: 'density_function' }), {\r\n default: () => 0\r\n });\r\n const NoiseParameters = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n change: () => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('noise_parameters')\r\n }\r\n ], { choiceContext: 'noise_parameters' });\r\n const NoiseRange = core_1.NumberNode({ min: -1000000, max: 1000000 });\r\n const YRange = core_1.NumberNode({ integer: true, min: -2032 * 2, max: 2031 * 2 });\r\n schemas.register('density_function', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/density_function_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:abs': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:add': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_2d': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_all_in_cell': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:cache_once': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:clamp': {\r\n input: exports.DensityFunction,\r\n min: NoiseRange,\r\n max: NoiseRange,\r\n },\r\n 'minecraft:cube': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:flat_cache': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:half_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:interpolated': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:max': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:min': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:mul': {\r\n argument1: exports.DensityFunction,\r\n argument2: exports.DensityFunction,\r\n },\r\n 'minecraft:noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n },\r\n 'minecraft:quarter_negative': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:range_choice': {\r\n input: exports.DensityFunction,\r\n min_inclusive: NoiseRange,\r\n max_exclusive: NoiseRange,\r\n when_in_range: exports.DensityFunction,\r\n when_out_of_range: exports.DensityFunction,\r\n },\r\n 'minecraft:shift': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_a': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shift_b': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:shifted_noise': {\r\n noise: NoiseParameters,\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n shift_x: exports.DensityFunction,\r\n shift_y: exports.DensityFunction,\r\n shift_z: exports.DensityFunction,\r\n },\r\n 'minecraft:slide': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:square': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:squeeze': {\r\n argument: exports.DensityFunction,\r\n },\r\n 'minecraft:terrain_shaper_spline': {\r\n spline: StringNode({ enum: ['offset', 'factor', 'jaggedness'] }),\r\n min_value: NoiseRange,\r\n max_value: NoiseRange,\r\n continentalness: exports.DensityFunction,\r\n erosion: exports.DensityFunction,\r\n weirdness: exports.DensityFunction,\r\n },\r\n 'minecraft:weird_scaled_sampler': {\r\n rarity_value_mapper: StringNode({ enum: ['type_1', 'type_2'] }),\r\n noise: NoiseParameters,\r\n input: exports.DensityFunction,\r\n },\r\n 'minecraft:y_clamped_gradient': {\r\n from_y: YRange,\r\n to_y: YRange,\r\n from_value: NoiseRange,\r\n to_value: NoiseRange,\r\n },\r\n }\r\n }, { context: 'density_function', disableSwitchContext: true }), node => ({\r\n default: () => ({\r\n type: 'minecraft:noise',\r\n noise: 'minecraft:cave_entrance',\r\n xz_scale: 0.75,\r\n y_scale: 0.5\r\n }),\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if (typeof value === 'object' && value !== null && value.type === 'minecraft:constant') {\r\n return 0;\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDensityFunctionSchemas = initDensityFunctionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 }))\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const ConfiguredFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const PlacedFeature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('placed_feature')\r\n }\r\n ], { choiceContext: 'placed_feature' });\r\n const RandomPatchConfig = {\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n xz_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n y_spread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n feature: PlacedFeature,\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n });\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(TargetBlockState)\r\n };\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: 'cave_surface' }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: PlacedFeature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_column': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allowed_placement: Reference('block_predicate_worldgen'),\r\n prioritize_tip: core_1.BooleanNode(),\r\n layers: core_1.ListNode(core_1.ObjectNode({\r\n height: Common_1.IntProvider({ min: 0 }),\r\n provider: Reference('block_state_provider')\r\n }))\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(core_1.BooleanNode())\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state')),\r\n cannot_replace: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n fluid: Reference('block_state_provider'),\r\n barrier: Reference('block_state_provider')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider'),\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 })\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:pointed_dripstone': {\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_directional_spread: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius2: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n chance_of_spread_radius3: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n },\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: PlacedFeature,\r\n feature_true: PlacedFeature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: PlacedFeature\r\n })),\r\n default: PlacedFeature\r\n },\r\n 'minecraft:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: 'block', requireTag: true } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n allowed_tree_position: Reference('block_predicate_worldgen'),\r\n feature: PlacedFeature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider')\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: Common_1.Tag({ resource: '$worldgen/placed_feature', inlineSchema: 'placed_feature' }),\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:twisting_vines': {\r\n spread_width: core_1.NumberNode({ integer: true, min: 1 }),\r\n spread_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n max_height: core_1.NumberNode({ integer: true, min: 1 }),\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:tree',\r\n config: {\r\n minimum_size: {\r\n type: 'minecraft:two_layers_feature_size'\r\n },\r\n trunk_placer: {\r\n type: 'minecraft:straight_trunk_placer',\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n type: 'minecraft:blob_foliage_placer',\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('placed_feature', core_1.Mod(core_1.ObjectNode({\r\n feature: ConfiguredFeature,\r\n placement: core_1.ListNode(Reference('decorator'))\r\n }, { context: 'placed_feature' }), {\r\n default: () => ({\r\n feature: 'minecraft:oak',\r\n placement: [\r\n {\r\n type: 'minecraft:count',\r\n count: 4\r\n },\r\n {\r\n type: 'minecraft:in_square'\r\n },\r\n {\r\n type: 'minecraft:heightmap',\r\n heightmap: 'OCEAN_FLOOR'\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n const NoiseProvider = {\r\n seed: core_1.NumberNode({ integer: true }),\r\n noise: Reference('noise_parameters'),\r\n scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 })\r\n };\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:dual_noise_provider': {\r\n ...NoiseProvider,\r\n variety: Common_1.InclusiveRange({ integer: true, min: 1, max: 64 }),\r\n slow_noise: Reference('noise_parameters'),\r\n slow_scale: core_1.Mod(core_1.NumberNode({ min: Number.MIN_VALUE }), { default: () => 1 }),\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_threshold_provider': {\r\n ...NoiseProvider,\r\n threshold: core_1.NumberNode({ min: -1, max: 1 }),\r\n high_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n default_state: Reference('block_state'),\r\n low_states: core_1.ListNode(Reference('block_state')),\r\n high_states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:noise_provider': {\r\n ...NoiseProvider,\r\n states: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n const Offset = {\r\n offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n };\r\n schemas.register('block_predicate_worldgen', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'block_predicate_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:all_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:any_of': {\r\n predicates: core_1.ListNode(Reference('block_predicate_worldgen'))\r\n },\r\n 'minecraft:has_sturdy_face': {\r\n ...Offset,\r\n direction: StringNode({ enum: 'direction' })\r\n },\r\n 'minecraft:inside_world_bounds': {\r\n ...Offset,\r\n },\r\n 'minecraft:matching_block_tag': {\r\n ...Offset,\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n },\r\n 'minecraft:matching_blocks': {\r\n ...Offset,\r\n blocks: Common_1.Tag({ resource: 'block' })\r\n },\r\n 'minecraft:matching_fluids': {\r\n ...Offset,\r\n fluids: Common_1.Tag({ resource: 'fluid' })\r\n },\r\n 'minecraft:not': {\r\n predicate: Reference('block_predicate_worldgen')\r\n },\r\n 'minecraft:would_survive': {\r\n ...Offset,\r\n state: Reference('block_state')\r\n }\r\n }\r\n }, { context: 'block_predicate' }), {\r\n default: () => ({\r\n type: 'minecraft:true'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n legacy_random_source: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: Reference('noise_slider'),\r\n top_slide: Reference('noise_slider'),\r\n terrain_shaper: Reference('terrain_shaper')\r\n }),\r\n noise_router: core_1.ObjectNode({\r\n barrier: DensityFunction_1.DensityFunction,\r\n fluid_level_floodedness: DensityFunction_1.DensityFunction,\r\n fluid_level_spread: DensityFunction_1.DensityFunction,\r\n lava: DensityFunction_1.DensityFunction,\r\n temperature: DensityFunction_1.DensityFunction,\r\n vegetation: DensityFunction_1.DensityFunction,\r\n continents: DensityFunction_1.DensityFunction,\r\n erosion: DensityFunction_1.DensityFunction,\r\n depth: DensityFunction_1.DensityFunction,\r\n initial_density_without_jaggedness: DensityFunction_1.DensityFunction,\r\n final_density: DensityFunction_1.DensityFunction,\r\n vein_toggle: DensityFunction_1.DensityFunction,\r\n vein_ridged: DensityFunction_1.DensityFunction,\r\n vein_gap: DensityFunction_1.DensityFunction,\r\n }),\r\n surface_rule: Reference('material_rule'),\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('noise_slider', core_1.ObjectNode({\r\n target: core_1.NumberNode(),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n schemas.register('terrain_shaper', core_1.Mod(core_1.ObjectNode({\r\n offset: Reference('terrain_spline'),\r\n factor: Reference('terrain_spline'),\r\n jaggedness: Reference('terrain_spline'),\r\n }, { context: 'terrain_shaper' }), {\r\n default: () => ({\r\n offset: 0,\r\n factor: 0,\r\n jaggedness: 0,\r\n })\r\n }));\r\n schemas.register('terrain_spline', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode()\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n coordinate: core_1.Mod(StringNode({ enum: ['continents', 'erosion', 'weirdness', 'ridges'] }), { default: () => 'continents' }),\r\n points: core_1.ListNode(core_1.ObjectNode({\r\n location: core_1.NumberNode(),\r\n derivative: core_1.NumberNode(),\r\n value: Reference('terrain_spline')\r\n }))\r\n }, { category: 'function' })\r\n }\r\n ], { context: 'terrain_spline', choiceContext: 'terrain_spline' }), {\r\n default: () => 0\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nconst Biome_1 = require(\"./Biome\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n biomes: Common_1.Tag({ resource: '$worldgen/biome' }),\r\n adapt_noise: core_1.Opt(core_1.BooleanNode()),\r\n spawn_overrides: core_1.MapNode(StringNode({ enum: 'mob_category' }), core_1.ObjectNode({\r\n bounding_box: StringNode({ enum: ['piece', 'full'] }),\r\n spawns: Biome_1.SpawnSettings,\r\n })),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:nether_fossil': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureSetSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initStructureSetSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('structure_set', core_1.ObjectNode({\r\n structures: core_1.ListNode(core_1.ObjectNode({\r\n structure: Common_1.Tag({ resource: '$worldgen/configured_structure_feature' }),\r\n weight: core_1.NumberNode({ integer: true, min: 1 })\r\n })),\r\n placement: Reference('structure_placement')\r\n }, { context: 'structure_set' }));\r\n schemas.register('structure_placement', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_placement' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:concentric_rings': {\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n },\r\n 'minecraft:random_spread': {\r\n spread_type: core_1.Opt(StringNode({ enum: ['linear', 'triangular'] })),\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 }),\r\n locate_offset: core_1.Opt(core_1.ListNode(core_1.NumberNode({ integer: true, min: -16, max: 16 }), { minLength: 3, maxLength: 3 }))\r\n }\r\n }\r\n }, { context: 'structure_placement' }), {\r\n default: () => ({\r\n type: 'minecraft:random_spread',\r\n spacing: 10,\r\n separation: 5,\r\n salt: Math.floor(Math.random() * 2147483647)\r\n })\r\n }));\r\n}\r\nexports.initStructureSetSchemas = initStructureSetSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceRuleSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceRuleSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('material_rule', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_rule' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block': {\r\n result_state: Reference('block_state'),\r\n },\r\n 'minecraft:condition': {\r\n if_true: Reference('material_condition'),\r\n then_run: Reference('material_rule')\r\n },\r\n 'minecraft:sequence': {\r\n sequence: core_1.ListNode(Reference('material_rule'))\r\n }\r\n }\r\n }, { context: 'material_rule', category: 'pool' }), {\r\n default: () => ({\r\n type: 'minecraft:block',\r\n result_state: {\r\n Name: 'minecraft:stone'\r\n }\r\n })\r\n }));\r\n schemas.register('material_condition', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/material_condition' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:biome': {\r\n biome_is: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:noise_threshold': {\r\n noise: StringNode({ validator: 'resource', params: { pool: '$worldgen/noise' } }),\r\n min_threshold: core_1.NumberNode(),\r\n max_threshold: core_1.NumberNode()\r\n },\r\n 'minecraft:not': {\r\n invert: Reference('material_condition')\r\n },\r\n 'minecraft:stone_depth': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_type: StringNode({ enum: 'cave_surface' }),\r\n add_surface_depth: core_1.BooleanNode(),\r\n secondary_depth_range: core_1.NumberNode({ integer: true }),\r\n },\r\n 'minecraft:vertical_gradient': {\r\n random_name: StringNode(),\r\n true_at_and_below: Reference('vertical_anchor'),\r\n false_at_and_above: Reference('vertical_anchor'),\r\n },\r\n 'minecraft:water': {\r\n offset: core_1.NumberNode({ integer: true }),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n },\r\n 'minecraft:y_above': {\r\n anchor: Reference('vertical_anchor'),\r\n surface_depth_multiplier: core_1.NumberNode({ integer: true, min: -20, max: 20 }),\r\n add_stone_depth: core_1.BooleanNode()\r\n }\r\n }\r\n }, { context: 'material_condition' }), {\r\n default: () => ({\r\n type: 'minecraft:biome',\r\n is_biome: 'minecraft:plains'\r\n })\r\n }));\r\n}\r\nexports.initSurfaceRuleSchemas = initSurfaceRuleSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/placed_feature' } })\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst DensityFunction_1 = require(\"./DensityFunction\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst StructureSet_1 = require(\"./StructureSet\");\r\nconst SurfaceRule_1 = require(\"./SurfaceRule\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts`, `DensityFunction.ts`, and `Biome.ts` have exports. They should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n DensityFunction_1.initDensityFunctionSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n StructureSet_1.initStructureSetSchemas(schemas, collections);\r\n SurfaceRule_1.initSurfaceRuleSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:overworld\"\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n preset: \"minecraft:nether\"\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst assets_1 = require(\"./assets\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n assets_1.initAssetsSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\n/*! pako 2.0.4 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//const Z_FILTERED = 1;\n//const Z_HUFFMAN_ONLY = 2;\n//const Z_RLE = 3;\nconst Z_FIXED$1 = 4;\n//const Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nconst Z_BINARY = 0;\nconst Z_TEXT = 1;\n//const Z_ASCII = 1; // = Z_TEXT\nconst Z_UNKNOWN$1 = 2;\n\n/*============================================================================*/\n\n\nfunction zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nconst STORED_BLOCK = 0;\nconst STATIC_TREES = 1;\nconst DYN_TREES = 2;\n/* The three kinds of block type */\n\nconst MIN_MATCH$1 = 3;\nconst MAX_MATCH$1 = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nconst LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nconst LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\n\nconst L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nconst D_CODES$1 = 30;\n/* number of distance codes */\n\nconst BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\n\nconst HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\n\nconst MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nconst MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nconst END_BLOCK = 256;\n/* end of block literal code */\n\nconst REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nconst REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nconst REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nconst extra_lbits = /* extra bits for each length code */\n new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]);\n\nconst extra_dbits = /* extra bits for each distance code */\n new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]);\n\nconst extra_blbits = /* extra bits for each bit length code */\n new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]);\n\nconst bl_order =\n new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nconst DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nconst static_ltree = new Array((L_CODES$1 + 2) * 2);\nzero$1(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nconst static_dtree = new Array(D_CODES$1 * 2);\nzero$1(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nconst _dist_code = new Array(DIST_CODE_LEN);\nzero$1(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nconst _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);\nzero$1(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nconst base_length = new Array(LENGTH_CODES$1);\nzero$1(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nconst base_dist = new Array(D_CODES$1);\nzero$1(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nlet static_l_desc;\nlet static_d_desc;\nlet static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nconst d_code = (dist) => {\n\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n};\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nconst put_short = (s, w) => {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n};\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nconst send_bits = (s, value, length) => {\n\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n};\n\n\nconst send_code = (s, c, tree) => {\n\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n};\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nconst bi_reverse = (code, len) => {\n\n let res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nconst bi_flush = (s) => {\n\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n};\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nconst gen_bitlen = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const max_code = desc.max_code;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const extra = desc.stat_desc.extra_bits;\n const base = desc.stat_desc.extra_base;\n const max_length = desc.stat_desc.max_length;\n let h; /* heap index */\n let n, m; /* iterate over the tree elements */\n let bits; /* bit length */\n let xbits; /* extra bits */\n let f; /* frequency */\n let overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n};\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nconst gen_codes = (tree, max_code, bl_count) =>\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */\n let code = 0; /* running code value */\n let bits; /* bit index */\n let n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS$1; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< {\n\n let n; /* iterates over tree elements */\n let bits; /* bit counter */\n let length; /* length value */\n let code; /* code value */\n let dist; /* distance index */\n const bl_count = new Array(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES$1 - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES$1; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS$1; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES$1 + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES$1; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);\n\n //static_init_done = true;\n};\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nconst init_block = (s) => {\n\n let n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n};\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nconst bi_windup = (s) =>\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n};\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nconst copy_block = (s, buf, len, header) =>\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n s.pending_buf.set(s.window.subarray(buf, buf + len), s.pending);\n s.pending += len;\n};\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nconst smaller = (tree, n, m, depth) => {\n\n const _n2 = n * 2;\n const _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n};\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nconst pqdownheap = (s, tree, k) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n const v = s.heap[k];\n let j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n};\n\n\n// inlined manually\n// const SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nconst compress_block = (s, ltree, dtree) =>\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n let dist; /* distance of matched string */\n let lc; /* match length or unmatched char (if dist == 0) */\n let lx = 0; /* running index in l_buf */\n let code; /* the code to send */\n let extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n};\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nconst build_tree = (s, desc) =>\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n const tree = desc.dyn_tree;\n const stree = desc.stat_desc.static_tree;\n const has_stree = desc.stat_desc.has_stree;\n const elems = desc.stat_desc.elems;\n let n, m; /* iterate over heap elements */\n let max_code = -1; /* largest code with non zero frequency */\n let node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE$1;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n};\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nconst scan_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nconst send_tree = (s, tree, max_code) =>\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n let n; /* iterates over all tree elements */\n let prevlen = -1; /* last emitted length */\n let curlen; /* length of current code */\n\n let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n let count = 0; /* repeat count of the current code */\n let max_count = 7; /* max repeat count */\n let min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n};\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nconst build_bl_tree = (s) => {\n\n let max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n};\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nconst send_all_trees = (s, lcodes, dcodes, blcodes) =>\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n let rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n};\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nconst detect_data_type = (s) => {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n let black_mask = 0xf3ffc07f;\n let n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS$1; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n};\n\n\nlet static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nconst _tr_init$1 = (s) =>\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n};\n\n\n/* ===========================================================================\n * Send a stored block\n */\nconst _tr_stored_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n};\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nconst _tr_align$1 = (s) => {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n};\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nconst _tr_flush_block$1 = (s, buf, stored_len, last) =>\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n let opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n let max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN$1) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block$1(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n};\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nconst _tr_tally$1 = (s, dist, lc) =>\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //let out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n};\n\nvar _tr_init_1 = _tr_init$1;\nvar _tr_stored_block_1 = _tr_stored_block$1;\nvar _tr_flush_block_1 = _tr_flush_block$1;\nvar _tr_tally_1 = _tr_tally$1;\nvar _tr_align_1 = _tr_align$1;\n\nvar trees = {\n\t_tr_init: _tr_init_1,\n\t_tr_stored_block: _tr_stored_block_1,\n\t_tr_flush_block: _tr_flush_block_1,\n\t_tr_tally: _tr_tally_1,\n\t_tr_align: _tr_align_1\n};\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst adler32 = (adler, buf, len, pos) => {\n let s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n};\n\n\nvar adler32_1 = adler32;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nconst makeTable = () => {\n let c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n};\n\n// Create table on load. Just 255 signed longs. Not a problem.\nconst crcTable = new Uint32Array(makeTable());\n\n\nconst crc32 = (crc, buf, len, pos) => {\n const t = crcTable;\n const end = pos + len;\n\n crc ^= -1;\n\n for (let i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n};\n\n\nvar crc32_1 = crc32;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar messages = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar constants$2 = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees;\n\n\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1,\n Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1,\n Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1,\n Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1,\n Z_UNKNOWN,\n Z_DEFLATED: Z_DEFLATED$2\n} = constants$2;\n\n/*============================================================================*/\n\n\nconst MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nconst MAX_WBITS$1 = 15;\n/* 32K LZ77 window */\nconst DEF_MEM_LEVEL = 8;\n\n\nconst LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nconst LITERALS = 256;\n/* number of literal bytes 0..255 */\nconst L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nconst D_CODES = 30;\n/* number of distance codes */\nconst BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nconst HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nconst MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nconst MIN_MATCH = 3;\nconst MAX_MATCH = 258;\nconst MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nconst PRESET_DICT = 0x20;\n\nconst INIT_STATE = 42;\nconst EXTRA_STATE = 69;\nconst NAME_STATE = 73;\nconst COMMENT_STATE = 91;\nconst HCRC_STATE = 103;\nconst BUSY_STATE = 113;\nconst FINISH_STATE = 666;\n\nconst BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nconst BS_BLOCK_DONE = 2; /* block flush performed */\nconst BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nconst BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nconst OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nconst err = (strm, errorCode) => {\n strm.msg = messages[errorCode];\n return errorCode;\n};\n\nconst rank = (f) => {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n};\n\nconst zero = (buf) => {\n let len = buf.length; while (--len >= 0) { buf[len] = 0; }\n};\n\n\n/* eslint-disable new-cap */\nlet HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask;\n// This hash causes less collisions, https://github.com/nodeca/pako/issues/135\n// But breaks binary compatibility\n//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask;\nlet HASH = HASH_ZLIB;\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nconst flush_pending = (strm) => {\n const s = strm.state;\n\n //_tr_flush_bits(s);\n let len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n};\n\n\nconst flush_block_only = (s, last) => {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n};\n\n\nconst put_byte = (s, b) => {\n s.pending_buf[s.pending++] = b;\n};\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nconst putShortMSB = (s, b) => {\n\n // put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n};\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nconst read_buf = (strm, buf, start, size) => {\n\n let len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32_1(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32_1(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n};\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nconst longest_match = (s, cur_match) => {\n\n let chain_length = s.max_chain_length; /* max hash chain length */\n let scan = s.strstart; /* current string */\n let match; /* matched string */\n let len; /* length of current match */\n let best_len = s.prev_length; /* best match length so far */\n let nice_match = s.nice_match; /* stop if match long enough */\n const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n const _win = s.window; // shortcut\n\n const wmask = s.w_mask;\n const prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n const strend = s.strstart + MAX_MATCH;\n let scan_end1 = _win[scan + best_len - 1];\n let scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n};\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nconst fill_window = (s) => {\n\n const _w_size = s.w_size;\n let p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n s.window.set(s.window.subarray(_w_size, _w_size + _w_size), 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// const curr = s.strstart + s.lookahead;\n// let init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n};\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nconst deflate_stored = (s, flush) => {\n\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n let max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n const max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n};\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nconst deflate_fast = (s, flush) => {\n\n let hash_head; /* head of the hash chain */\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nconst deflate_slow = (s, flush) => {\n\n let hash_head; /* head of hash chain */\n let bflush; /* set if current block must be flushed */\n\n let max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n};\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nconst deflate_rle = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n let prev; /* byte at distance one to match */\n let scan, strend; /* scan goes up to strend for length of run */\n\n const _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nconst deflate_huff = (s, flush) => {\n\n let bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH$2) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH$3) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n};\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nconst configuration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nconst lm_init = (s) => {\n\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n};\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED$2; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);\n this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);\n this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new Uint16Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nconst deflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n const s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH$2;\n _tr_init(s);\n return Z_OK$3;\n};\n\n\nconst deflateReset = (strm) => {\n\n const ret = deflateResetKeep(strm);\n if (ret === Z_OK$3) {\n lm_init(strm.state);\n }\n return ret;\n};\n\n\nconst deflateSetHeader = (strm, head) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$2; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR$2; }\n strm.state.gzhead = head;\n return Z_OK$3;\n};\n\n\nconst deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {\n\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR$2;\n }\n let wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION$1) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n const s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new Uint8Array(s.w_size * 2);\n s.head = new Uint16Array(s.hash_size);\n s.prev = new Uint16Array(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new Uint8Array(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n};\n\nconst deflateInit = (strm, level) => {\n\n return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);\n};\n\n\nconst deflate$2 = (strm, flush) => {\n\n let beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK$1 || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH$3)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2);\n }\n\n s.strm = strm; /* just in case */\n const old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8;\n let level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK$3;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH$3) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR$1);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) {\n let bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK$3;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH$1) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK$3;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH$3) { return Z_OK$3; }\n if (s.wrap <= 0) { return Z_STREAM_END$3; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3;\n};\n\n\nconst deflateEnd = (strm) => {\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR$2);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3;\n};\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nconst deflateSetDictionary = (strm, dictionary) => {\n\n let dictLength = dictionary.length;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR$2;\n }\n\n const s = strm.state;\n const wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR$2;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n let tmpDict = new Uint8Array(s.w_size);\n tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n const avail = strm.avail_in;\n const next = strm.next_in;\n const input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n let str = s.strstart;\n let n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK$3;\n};\n\n\nvar deflateInit_1 = deflateInit;\nvar deflateInit2_1 = deflateInit2;\nvar deflateReset_1 = deflateReset;\nvar deflateResetKeep_1 = deflateResetKeep;\nvar deflateSetHeader_1 = deflateSetHeader;\nvar deflate_2$1 = deflate$2;\nvar deflateEnd_1 = deflateEnd;\nvar deflateSetDictionary_1 = deflateSetDictionary;\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.deflateBound = deflateBound;\nmodule.exports.deflateCopy = deflateCopy;\nmodule.exports.deflateParams = deflateParams;\nmodule.exports.deflatePending = deflatePending;\nmodule.exports.deflatePrime = deflatePrime;\nmodule.exports.deflateTune = deflateTune;\n*/\n\nvar deflate_1$2 = {\n\tdeflateInit: deflateInit_1,\n\tdeflateInit2: deflateInit2_1,\n\tdeflateReset: deflateReset_1,\n\tdeflateResetKeep: deflateResetKeep_1,\n\tdeflateSetHeader: deflateSetHeader_1,\n\tdeflate: deflate_2$1,\n\tdeflateEnd: deflateEnd_1,\n\tdeflateSetDictionary: deflateSetDictionary_1,\n\tdeflateInfo: deflateInfo\n};\n\nconst _has = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nvar assign = function (obj /*from1, from2, from3, ...*/) {\n const sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n const source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (const p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// Join array of chunks to single array.\nvar flattenChunks = (chunks) => {\n // calculate data length\n let len = 0;\n\n for (let i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n const result = new Uint8Array(len);\n\n for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {\n let chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n};\n\nvar common = {\n\tassign: assign,\n\tflattenChunks: flattenChunks\n};\n\n// String encode/decode helpers\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nlet STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nconst _utf8len = new Uint8Array(256);\nfor (let q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nvar string2buf = (str) => {\n if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) {\n return new TextEncoder().encode(str);\n }\n\n let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper\nconst buf2binstring = (buf, len) => {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if (buf.subarray && STR_APPLY_UIA_OK) {\n return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));\n }\n }\n\n let result = '';\n for (let i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n};\n\n\n// convert array to string\nvar buf2string = (buf, max) => {\n const len = max || buf.length;\n\n if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) {\n return new TextDecoder().decode(buf.subarray(0, max));\n }\n\n let i, out;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n const utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n let c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n let c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = (buf, max) => {\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n let pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\nvar strings = {\n\tstring2buf: string2buf,\n\tbuf2string: buf2string,\n\tutf8border: utf8border\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nvar zstream = ZStream;\n\nconst toString$1 = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2,\n Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2,\n Z_DEFAULT_COMPRESSION,\n Z_DEFAULT_STRATEGY,\n Z_DEFLATED: Z_DEFLATED$1\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate$1(options) {\n this.options = common.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED$1,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY\n }, options || {});\n\n let opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = deflate_1$2.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n if (opt.header) {\n deflate_1$2.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n let dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflate_1$2.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK$2) {\n throw new Error(messages[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must\n * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending\n * buffers and call [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n let status, _flush_mode;\n\n if (this.ended) { return false; }\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1;\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n // Make sure avail_out > 6 to avoid repeating markers\n if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n status = deflate_1$2.deflate(strm, _flush_mode);\n\n // Ended => flush and finish\n if (status === Z_STREAM_END$2) {\n if (strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n }\n status = deflate_1$2.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK$2;\n }\n\n // Flush if out buffer full\n if (strm.avail_out === 0) {\n this.onData(strm.output);\n continue;\n }\n\n // Flush if requested and has data\n if (_flush_mode > 0 && strm.next_out > 0) {\n this.onData(strm.output.subarray(0, strm.next_out));\n strm.avail_out = 0;\n continue;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array): output data.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK$2) {\n this.result = common.flattenChunks(this.chunks);\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n const deflator = new Deflate$1(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || messages[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array\n * - data (Uint8Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip$1(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\n\nvar Deflate_1$1 = Deflate$1;\nvar deflate_2 = deflate$1;\nvar deflateRaw_1$1 = deflateRaw$1;\nvar gzip_1$1 = gzip$1;\nvar constants$1 = constants$2;\n\nvar deflate_1$1 = {\n\tDeflate: Deflate_1$1,\n\tdeflate: deflate_2,\n\tdeflateRaw: deflateRaw_1$1,\n\tgzip: gzip_1$1,\n\tconstants: constants$1\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nconst BAD$1 = 30; /* got a data error -- remain here until reset */\nconst TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nvar inffast = function inflate_fast(strm, start) {\n let _in; /* local strm.input */\n let last; /* have enough input while in < last */\n let _out; /* local strm.output */\n let beg; /* inflate()'s initial strm.output */\n let end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n let dmax; /* maximum distance from zlib header */\n//#endif\n let wsize; /* window size or zero if not using window */\n let whave; /* valid bytes in the window */\n let wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n let s_window; /* allocated sliding window, if wsize != 0 */\n let hold; /* local strm.hold */\n let bits; /* local strm.bits */\n let lcode; /* local strm.lencode */\n let dcode; /* local strm.distcode */\n let lmask; /* mask for first level of length codes */\n let dmask; /* mask for first level of distance codes */\n let here; /* retrieved table entry */\n let op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n let len; /* match length, unused bytes */\n let dist; /* match distance */\n let from; /* where to copy match from */\n let from_source;\n\n\n let input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n const state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE$1;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nconst MAXBITS = 15;\nconst ENOUGH_LENS$1 = 852;\nconst ENOUGH_DISTS$1 = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst CODES$1 = 0;\nconst LENS$1 = 1;\nconst DISTS$1 = 2;\n\nconst lbase = new Uint16Array([ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n]);\n\nconst lext = new Uint8Array([ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n]);\n\nconst dbase = new Uint16Array([ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n]);\n\nconst dext = new Uint8Array([ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n]);\n\nconst inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) =>\n{\n const bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n let len = 0; /* a code's length in bits */\n let sym = 0; /* index of code symbols */\n let min = 0, max = 0; /* minimum and maximum code lengths */\n let root = 0; /* number of index bits for root table */\n let curr = 0; /* number of index bits for current table */\n let drop = 0; /* code bits to drop for sub-table */\n let left = 0; /* number of prefix codes available */\n let used = 0; /* code entries in table used */\n let huff = 0; /* Huffman code */\n let incr; /* for incrementing code, index */\n let fill; /* index for replicating entries */\n let low; /* low bits for current root entry */\n let mask; /* mask for low root bits */\n let next; /* next available space in table */\n let base = null; /* base value table to use */\n let base_index = 0;\n// let shoextra; /* extra bits table to use */\n let end; /* use base and extra for symbol > end */\n const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n let extra = null;\n let extra_index = 0;\n\n let here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES$1 || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES$1) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS$1) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS$1 && used > ENOUGH_LENS$1) ||\n (type === DISTS$1 && used > ENOUGH_DISTS$1)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\nvar inftrees = inflate_table;\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n\n\n\n\n\nconst CODES = 0;\nconst LENS = 1;\nconst DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES,\n Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR,\n Z_DEFLATED\n} = constants$2;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nconst HEAD = 1; /* i: waiting for magic header */\nconst FLAGS = 2; /* i: waiting for method and flags (gzip) */\nconst TIME = 3; /* i: waiting for modification time (gzip) */\nconst OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nconst EXLEN = 5; /* i: waiting for extra length (gzip) */\nconst EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nconst NAME = 7; /* i: waiting for end of file name (gzip) */\nconst COMMENT = 8; /* i: waiting for end of comment (gzip) */\nconst HCRC = 9; /* i: waiting for header crc (gzip) */\nconst DICTID = 10; /* i: waiting for dictionary check value */\nconst DICT = 11; /* waiting for inflateSetDictionary() call */\nconst TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nconst TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nconst STORED = 14; /* i: waiting for stored size (length and complement) */\nconst COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nconst COPY = 16; /* i/o: waiting for input or output to copy stored block */\nconst TABLE = 17; /* i: waiting for dynamic block table lengths */\nconst LENLENS = 18; /* i: waiting for code length code lengths */\nconst CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nconst LEN_ = 20; /* i: same as LEN below, but only first time in */\nconst LEN = 21; /* i: waiting for length/lit/eob code */\nconst LENEXT = 22; /* i: waiting for length extra bits */\nconst DIST = 23; /* i: waiting for distance code */\nconst DISTEXT = 24; /* i: waiting for distance extra bits */\nconst MATCH = 25; /* o: waiting for output space to copy string */\nconst LIT = 26; /* o: waiting for output space to write literal */\nconst CHECK = 27; /* i: waiting for 32-bit check value */\nconst LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nconst DONE = 29; /* finished check, done -- remain here until reset */\nconst BAD = 30; /* got a data error -- remain here until reset */\nconst MEM = 31; /* got an inflate() memory error -- remain here until reset */\nconst SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nconst ENOUGH_LENS = 852;\nconst ENOUGH_DISTS = 592;\n//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nconst MAX_WBITS = 15;\n/* 32K LZ77 window */\nconst DEF_WBITS = MAX_WBITS;\n\n\nconst zswap32 = (q) => {\n\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n};\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new Uint16Array(320); /* temporary storage for code lengths */\n this.work = new Uint16Array(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new Int32Array(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\n\nconst inflateResetKeep = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);\n state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n};\n\n\nconst inflateReset = (strm) => {\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n};\n\n\nconst inflateReset2 = (strm, windowBits) => {\n let wrap;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n};\n\n\nconst inflateInit2 = (strm, windowBits) => {\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n const state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n const ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n};\n\n\nconst inflateInit = (strm) => {\n\n return inflateInit2(strm, DEF_WBITS);\n};\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nlet virgin = true;\n\nlet lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\nconst fixedtables = (state) => {\n\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n lenfix = new Int32Array(512);\n distfix = new Int32Array(32);\n\n /* literal/length table */\n let sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n};\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nconst updatewindow = (strm, src, end, copy) => {\n\n let dist;\n const state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new Uint8Array(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n state.window.set(src.subarray(end - state.wsize, end), 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n state.window.set(src.subarray(end - copy, end), 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n};\n\n\nconst inflate$2 = (strm, flush) => {\n\n let state;\n let input, output; // input/output buffers\n let next; /* next input INDEX */\n let put; /* next output INDEX */\n let have, left; /* available input and output */\n let hold; /* bit buffer */\n let bits; /* bits in bit buffer */\n let _in, _out; /* save starting available input and output */\n let copy; /* number of stored or match bytes to copy */\n let from; /* where to copy match bytes from */\n let from_source;\n let here = 0; /* current decoding table entry */\n let here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //let last; /* parent table entry */\n let last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n let len; /* length to copy for repeats, bits to drop */\n let ret; /* return code */\n const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */\n let opts;\n\n let n; // temporary variable for NEED_BITS\n\n const order = /* permutation of code lengths */\n new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]);\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n // !!! pako patch. Force use `options.windowBits` if passed.\n // Required to always use max window size by default.\n state.dmax = 1 << state.wbits;\n //state.dmax = 1 << len;\n\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32_1(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32_1(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Uint8Array(state.head.extra_len);\n }\n state.head.extra.set(\n input.subarray(\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n next + copy\n ),\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32_1(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n output.set(input.subarray(next, next + copy), put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inffast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR$1;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n};\n\n\nconst inflateEnd = (strm) => {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n let state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n};\n\n\nconst inflateGetHeader = (strm, head) => {\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n const state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n};\n\n\nconst inflateSetDictionary = (strm, dictionary) => {\n const dictLength = dictionary.length;\n\n let state;\n let dictid;\n let ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32_1(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR$1;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n};\n\n\nvar inflateReset_1 = inflateReset;\nvar inflateReset2_1 = inflateReset2;\nvar inflateResetKeep_1 = inflateResetKeep;\nvar inflateInit_1 = inflateInit;\nvar inflateInit2_1 = inflateInit2;\nvar inflate_2$1 = inflate$2;\nvar inflateEnd_1 = inflateEnd;\nvar inflateGetHeader_1 = inflateGetHeader;\nvar inflateSetDictionary_1 = inflateSetDictionary;\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nmodule.exports.inflateCopy = inflateCopy;\nmodule.exports.inflateGetDictionary = inflateGetDictionary;\nmodule.exports.inflateMark = inflateMark;\nmodule.exports.inflatePrime = inflatePrime;\nmodule.exports.inflateSync = inflateSync;\nmodule.exports.inflateSyncPoint = inflateSyncPoint;\nmodule.exports.inflateUndermine = inflateUndermine;\n*/\n\nvar inflate_1$2 = {\n\tinflateReset: inflateReset_1,\n\tinflateReset2: inflateReset2_1,\n\tinflateResetKeep: inflateResetKeep_1,\n\tinflateInit: inflateInit_1,\n\tinflateInit2: inflateInit2_1,\n\tinflate: inflate_2$1,\n\tinflateEnd: inflateEnd_1,\n\tinflateGetHeader: inflateGetHeader_1,\n\tinflateSetDictionary: inflateSetDictionary_1,\n\tinflateInfo: inflateInfo\n};\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nvar gzheader = GZheader;\n\nconst toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nconst {\n Z_NO_FLUSH, Z_FINISH,\n Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR\n} = constants$2;\n\n/* ===========================================================================*/\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako')\n * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9])\n * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * const inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate$1(options) {\n this.options = common.assign({\n chunkSize: 1024 * 64,\n windowBits: 15,\n to: ''\n }, options || {});\n\n const opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n let status = inflate_1$2.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n\n this.header = new gzheader();\n\n inflate_1$2.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(messages[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, flush_mode]) -> Boolean\n * - data (Uint8Array|ArrayBuffer): input data\n * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE\n * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH,\n * `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. If end of stream detected,\n * [[Inflate#onEnd]] will be called.\n *\n * `flush_mode` is not needed for normal operation, because end of stream\n * detected automatically. You may try to use it for advanced things, but\n * this functionality was not tested.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate$1.prototype.push = function (data, flush_mode) {\n const strm = this.strm;\n const chunkSize = this.options.chunkSize;\n const dictionary = this.options.dictionary;\n let status, _flush_mode, last_avail_out;\n\n if (this.ended) return false;\n\n if (flush_mode === ~~flush_mode) _flush_mode = flush_mode;\n else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;\n\n // Convert data if needed\n if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n for (;;) {\n if (strm.avail_out === 0) {\n strm.output = new Uint8Array(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate_1$2.inflate(strm, _flush_mode);\n\n if (status === Z_NEED_DICT && dictionary) {\n status = inflate_1$2.inflateSetDictionary(strm, dictionary);\n\n if (status === Z_OK) {\n status = inflate_1$2.inflate(strm, _flush_mode);\n } else if (status === Z_DATA_ERROR) {\n // Replace code with more verbose\n status = Z_NEED_DICT;\n }\n }\n\n // Skip snyc markers if more data follows and not raw mode\n while (strm.avail_in > 0 &&\n status === Z_STREAM_END &&\n strm.state.wrap > 0 &&\n data[strm.next_in] !== 0)\n {\n inflate_1$2.inflateReset(strm);\n status = inflate_1$2.inflate(strm, _flush_mode);\n }\n\n switch (status) {\n case Z_STREAM_ERROR:\n case Z_DATA_ERROR:\n case Z_NEED_DICT:\n case Z_MEM_ERROR:\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n // Remember real `avail_out` value, because we may patch out buffer content\n // to align utf8 strings boundaries.\n last_avail_out = strm.avail_out;\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END) {\n\n if (this.options.to === 'string') {\n\n let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n let tail = strm.next_out - next_out_utf8;\n let utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail & realign counters\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);\n\n this.onData(utf8str);\n\n } else {\n this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));\n }\n }\n }\n\n // Must repeat iteration if out buffer is full\n if (status === Z_OK && last_avail_out === 0) continue;\n\n // Finalize if end of stream reached.\n if (status === Z_STREAM_END) {\n status = inflate_1$2.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return true;\n }\n\n if (strm.avail_in === 0) break;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|String): output data. When string output requested,\n * each chunk will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate$1.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH). By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate$1.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = common.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * const pako = require('pako');\n * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9]));\n * let output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err) {\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n const inflator = new Inflate$1(options);\n\n inflator.push(input);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) throw inflator.msg || messages[inflator.err];\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw$1(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|String\n * - data (Uint8Array): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nvar Inflate_1$1 = Inflate$1;\nvar inflate_2 = inflate$1;\nvar inflateRaw_1$1 = inflateRaw$1;\nvar ungzip$1 = inflate$1;\nvar constants = constants$2;\n\nvar inflate_1$1 = {\n\tInflate: Inflate_1$1,\n\tinflate: inflate_2,\n\tinflateRaw: inflateRaw_1$1,\n\tungzip: ungzip$1,\n\tconstants: constants\n};\n\nconst { Deflate, deflate, deflateRaw, gzip } = deflate_1$1;\n\nconst { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1;\n\n\n\nvar Deflate_1 = Deflate;\nvar deflate_1 = deflate;\nvar deflateRaw_1 = deflateRaw;\nvar gzip_1 = gzip;\nvar Inflate_1 = Inflate;\nvar inflate_1 = inflate;\nvar inflateRaw_1 = inflateRaw;\nvar ungzip_1 = ungzip;\nvar constants_1 = constants$2;\n\nvar pako = {\n\tDeflate: Deflate_1,\n\tdeflate: deflate_1,\n\tdeflateRaw: deflateRaw_1,\n\tgzip: gzip_1,\n\tInflate: Inflate_1,\n\tinflate: inflate_1,\n\tinflateRaw: inflateRaw_1,\n\tungzip: ungzip_1,\n\tconstants: constants_1\n};\n\nexport { Deflate_1 as Deflate, Inflate_1 as Inflate, constants_1 as constants, pako as default, deflate_1 as deflate, deflateRaw_1 as deflateRaw, gzip_1 as gzip, inflate_1 as inflate, inflateRaw_1 as inflateRaw, ungzip_1 as ungzip };\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","import t from\"pako\";import e from\"md5\";import{vec3 as i,mat4 as s,glMatrix as n}from\"gl-matrix\";var r;!function(t){t.UP=\"up\",t.DOWN=\"down\",t.NORTH=\"north\",t.EAST=\"east\",t.SOUTH=\"south\",t.WEST=\"west\"}(r||(r={}));const o={[r.UP]:[0,1,0],[r.DOWN]:[0,-1,0],[r.NORTH]:[0,0,-1],[r.EAST]:[1,0,0],[r.SOUTH]:[0,0,1],[r.WEST]:[-1,0,0]};var a;!function(t){t.ALL=[t.UP,t.DOWN,t.NORTH,t.EAST,t.SOUTH,t.WEST],t.normal=function(t){return o[t]}}(r||(r={})),function(t){t.create=function(t,e,i){return[t,e,i]},t.offset=function(t,e,i,s){return[t[0]+e,t[1]+i,t[2]+s]},t.towards=function(e,i){return t.offset(e,...r.normal(i))}}(a||(a={}));const l={end:0,byte:1,short:2,int:3,long:4,float:5,double:6,byteArray:7,string:8,list:9,compound:10,intArray:11,longArray:12},h=[\"end\",\"byte\",\"short\",\"int\",\"long\",\"float\",\"double\",\"byteArray\",\"string\",\"list\",\"compound\",\"intArray\",\"longArray\"];class u{constructor(t,e=!1){this.byte=this.readNum.bind(this,\"getInt8\",1),this.short=this.readNum.bind(this,\"getInt16\",2),this.int=this.readNum.bind(this,\"getInt32\",4),this.float=this.readNum.bind(this,\"getFloat32\",4),this.double=this.readNum.bind(this,\"getFloat64\",8),this.offset=0,this.littleEndian=e,this.arrayView=t,this.dataView=new DataView(t.buffer,t.byteOffset)}end(){return null}readNum(t,e){const i=this.dataView[t](this.offset,this.littleEndian);return this.offset+=e,i}long(){return[this.int(),this.int()]}byteArray(){const t=this.int(),e=[];for(let i=0;i=e)return;let i=this.buffer.byteLength;for(;ithis.buffer.byteLength&&n.fill(0,this.buffer.byteLength,this.offset),this.buffer=s,this.dataView=new DataView(s),this.arrayView=n}getData(){return this.accommodate(0),this.arrayView.slice(0,this.offset)}end(t){}writeNum(t,e,i){this.accommodate(e),this.dataView[t](this.offset,i,this.littleEndian),this.offset+=e}long(t){this.int(t[0]),this.int(t[1])}byteArray(t){this.int(t.length),this.accommodate(t.length),this.arrayView.set(t,this.offset),this.offset+=t.length}intArray(t){this.int(t.length);for(let e=0;e>6),s.push(128|63&i)):i<65536?(s.push(224|i>>12),s.push(128|i>>6&63),s.push(128|63&i)):(s.push(240|i>>18&7),s.push(128|i>>12&63),s.push(128|i>>6&63),s.push(128|63&i));return s}(t);this.short(e.length),this.accommodate(e.length),this.arrayView.set(e,this.offset),this.offset+=e.length}list(t){this.byte(l[t.type]),this.int(t.value.length),t.value;for(let e=0;e>16),s.setInt16(t+1,65535&n),s.setInt8(t+3,r),s.setInt32(t+4096,e.timestamp);const o=4096*n;s.setInt32(o,e.data.length+1),s.setInt8(o+4,e.compression),i.set(e.data,o+5),n+=r}return i}function I(t,e,i,s){const n=w(t,e,i);switch(n.compression){case 1:n.data=b(s);break;case 2:n.data=b(s,!1,!0);break;case 3:n.data=v(s);break;default:throw new Error(`Invalid compression mode ${n.compression}`)}return n}function w(t,e,i){const s=t.find((t=>t.x===e&&t.z===i));if(void 0===s)throw new Error(`Cannot find chunk [${e}, ${i}]`);return s}function A(t,e,i){if(!t[e])throw new Error(`Missing ${e} tag`);if(t[e].type!==i)throw new Error(`Expected ${e} to be of type ${i}, but found ${t[e].type}`);return t[e].value}function N(t,e,i,s){const n=A(t,e,\"list\");if(n.type!==i)throw new Error(`Expected ${e} to be a list of ${i}s, but found ${n.type}s`);if(s&&n.value.length!==s)throw new Error(`Expected ${e} to be a list of length ${s}, but found length ${n.value.length}`);return n.value}function F(t,e){try{return t()}catch(t){return e}}var _,y,P,R,B;!function(t){function e(t){return\"object\"==typeof t&&null!==t?t:void 0}t.readNumber=function(t){return\"number\"==typeof t?t:void 0},t.readInt=function(t){return\"number\"==typeof t?Math.floor(t):void 0},t.readString=function(t){return\"string\"==typeof t?t:void 0},t.readBoolean=function(t){return\"boolean\"==typeof t?t:void 0},t.readObject=e,t.readArray=function(t,e){if(Array.isArray(t))return t.map((t=>e(t)))},t.readMap=function(t,i){var s;const n=null!==(s=e(t))&&void 0!==s?s:{};return Object.fromEntries(Object.entries(n).map((([t,e])=>[t,i(e)])))},t.compose=function(t,e,i){const s=e(t);return s?i(s):void 0}}(_||(_={}));class x{constructor(t,e={}){this.name=t,this.properties=e}getName(){return this.name}getProperties(){return this.properties}getProperty(t){return this.properties[t]}isFluid(){return\"minecraft:water\"===this.name||\"minecraft:lava\"===this.name}equals(t){return this.name===t.name&&Object.keys(this.properties).every((e=>t.properties[e]===this.properties[e]))}toString(){return 0===Object.keys(this.properties).length?this.name:`${this.name}[${Object.entries(this.properties).map((([t,e])=>t+\"=\"+e)).join(\",\")}]`}static fromNbt(t){const e=A(t.value,\"Name\",\"string\"),i=F((()=>A(t.value,\"Properties\",\"compound\")),{}),s=Object.keys(i).reduce(((t,e)=>Object.assign(Object.assign({},t),{[e]:A(i,e,\"string\")})),{});return new x(e,s)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.Name))&&void 0!==i?i:\"minecraft:stone\",r=_.readMap(s.Properties,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"}));return new x(n,r)}}x.AIR=new x(\"minecraft:air\");class T{constructor(t){this.minY=t,this.storage=Array(T.SIZE),this.palette=[x.AIR]}get minBlockY(){return this.minY<<4}index(t,e,i){return(t<<8)+(e<<4)+i}getBlockState(t,e,i){var s;const n=this.storage[this.index(t,e,i)];return null!==(s=this.palette[n])&&void 0!==s?s:x.AIR}setBlockState(t,e,i,s){let n=this.palette.findIndex((t=>t.equals(s)));-1===n&&(n=this.palette.length,this.palette.push(s)),this.storage[this.index(t,e,i)]=n}}T.WIDTH=16,T.SIZE=T.WIDTH*T.WIDTH*T.WIDTH;class C{constructor(t,e,i){this.minY=t,this.height=e,this.pos=i,this.sections=Array(this.sectionsCount).fill(null)}get maxY(){return this.minY+this.height}get minSection(){return this.minY>>4}get maxSection(){return 1+(this.maxY-1>>4)}get sectionsCount(){return this.maxSection-this.minSection}getSectionIndex(t){return(t>>4)-this.minSection}getBlockState(t){var e;const[i,s,n]=t,r=this.sections[this.getSectionIndex(s)];return null!==(e=null==r?void 0:r.getBlockState(15&i,15&s,15&n))&&void 0!==e?e:x.AIR}setBlockState(t,e){const[i,s,n]=t,r=this.getSectionIndex(s);let o=this.sections[r];if(null===o){if(e.equals(x.AIR))return;o=this.getOrCreateSection(r)}o.setBlockState(15&i,15&s,15&n,e)}getOrCreateSection(t){return null==this.sections[t]&&(this.sections[t]=new T(this.minSection+t)),this.sections[t]}}!function(t){function e(t,e){return BigInt(4294967295&t)|BigInt(4294967295&e)<>4,t[2]>>4]},t.fromLong=function(t){return[4294967295&Number(t),Number(t>>BigInt(32))]},t.toLong=function(t){return e(t[0],t[1])},t.asLong=e,t.minBlockX=function(t){return t[0]<<4},t.minBlockZ=function(t){return t[1]<<4},t.maxBlockX=function(t){return 15+(t[0]<<4)},t.maxBlockZ=function(t){return 15+(t[1]<<4)}}(y||(y={}));class k{constructor(t,e=[],i=[]){this.size=t,this.palette=e,this.blocks=i,this.blocksMap=[],i.forEach((e=>{if(!this.isInside(e.pos))throw new Error(`Found block at ${e.pos} which is outside the structure bounds ${this.size}`);this.blocksMap[e.pos[0]*t[1]*t[2]+e.pos[1]*t[2]+e.pos[2]]=e}))}getSize(){return this.size}addBlock(t,e,i,s){if(!this.isInside(t))throw new Error(`Cannot add block at ${t} outside the structure bounds ${this.size}`);const n=new x(e,i);let r=this.palette.findIndex((t=>t.equals(n)));return-1===r&&(r=this.palette.length,this.palette.push(n)),this.blocks.push({pos:t,state:r,nbt:s}),this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]]={pos:t,state:r,nbt:s},this}getBlocks(){return this.blocks.map((t=>({pos:t.pos,state:this.palette[t.state],nbt:t.nbt})))}getBlock(t){if(!this.isInside(t))return null;const e=this.blocksMap[t[0]*this.size[1]*this.size[2]+t[1]*this.size[2]+t[2]];if(!e)return null;return{pos:e.pos,state:this.palette[e.state],nbt:e.nbt}}isInside(t){return t[0]>=0&&t[0]=0&&t[1]=0&&t[2]x.fromNbt({name:\"\",value:t}))),s=N(t.value,\"blocks\",\"compound\").map((t=>({pos:N(t,\"pos\",\"int\",3),state:A(t,\"state\",\"int\"),nbt:F((()=>A(t,\"nbt\",\"compound\")),void 0)})));return new k(e,i,s)}}function D(t){let e=null;return()=>(null==e&&(e=t()),e)}function M(t,e,i){const s=t.get(e);if(s)return s;const n=i(e);return t.set(e,n),n}function O(t){return t*t}function L(t,e,i){return Math.max(e,Math.min(i,t))}function U(t,e,i){return e+t*(i-e)}function Y(t,e,i,s,n,r){return U(e,U(t,i,s),U(t,n,r))}function G(t,e,i,s,n,r,o,a,l,h,u){return U(i,Y(t,e,s,n,r,o),Y(t,e,a,l,h,u))}function H(t,e,i){return i<0?t:i>1?e:U(i,t,e)}function V(t,e,i){return(t-e)/(i-e)}function z(t){return t*t*t*(t*(6*t-15)+10)}function j(t,e,i,s,n){return U(V(t,e,i),s,n)}function J(t,e,i,s,n){return H(s,n,V(t,e,i))}function X(t,e,i){let s=e-t;for(;s>0;){const e=Math.floor(s/2),n=t+e;i(n)?s=e:(t=n+1,s-=e+1)}return t}function Z(t,e,i){let s=BigInt(3129871*t)^BigInt(i)*BigInt(116129781)^BigInt(e);return s=s*s*BigInt(42317861)+s*BigInt(11),s>>BigInt(16)}function W(t,e,i,s,n,r,o,a){return BigInt(t)<>BigInt(q.MODULUS_BITS-t));return e>2147483647?e-4294967296:e}nextInt(t){if(void 0===t)return this.next(32);if(0==(t&t-1))return Number(BigInt(t)*BigInt(this.next(31))>>BigInt(31));let e,i;for(;(e=this.next(31))-(i=e%t)+(t-1)<0;);return i}nextLong(){return(BigInt(this.next(32))<>BigInt(30))*BigInt(\"-4658895280553007687\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(27))*BigInt(\"-7723592293110705685\")&BigInt(\"0xFFFFFFFFFFFFFFFF\"))^t>>BigInt(31))&BigInt(\"0xFFFFFFFFFFFFFFFF\")}static upgradeSeedTo128bit(t){t<0&&(t+=BigInt(\"0x10000000000000000\"));const e=t^K.SILVER_RATIO_64,i=e+K.GOLDEN_RATIO_64&BigInt(\"0xFFFFFFFFFFFFFFFF\");return[K.mixStafford13(e),K.mixStafford13(i)]}static rotateLeft(t,e){return t<>BigInt(64)-e}setSeed(t){this.seed=K.upgradeSeedTo128bit(t)}fork(){return new K([this.next(),this.next()])}forkPositional(){return new Q(this.next(),this.next())}next(){const t=this.seed[0];let e=this.seed[1];const i=K.rotateLeft(t+e&BigInt(\"0xFFFFFFFFFFFFFFFF\"),BigInt(17))+t&BigInt(\"0xFFFFFFFFFFFFFFFF\");return e^=t,this.seed=[K.rotateLeft(t,BigInt(49))^e^e<BigInt(\"0x8000000000000000\")&&(t-=BigInt(\"0x10000000000000000\")),t}consume(t){let e=this.seed[0],i=this.seed[1];for(let s=0;s>BigInt(64-t)}nextInt(t){let e=this.next()&BigInt(4294967295);if(t){const i=BigInt(t);let s=e*i,n=s&BigInt(4294967295);if(n>BigInt(32);return Number(r)}{let t=Number(e);return t>=2147483648&&(t-=4294967296),t}}nextFloat(){return Number(this.nextBits(24))*K.FLOAT_MULTIPLIER}nextDouble(){return Number(this.nextBits(53))*K.DOUBLE_MULTIPLIER}parityConfigString(){return\"seedLo: \"+this.seed[0]+\", seedHi: \"+this.seed[1]}}K.SILVER_RATIO_64=BigInt(\"7640891576956012809\"),K.GOLDEN_RATIO_64=BigInt(\"-7046029254386353131\"),K.FLOAT_MULTIPLIER=1/Math.pow(2,24),K.DOUBLE_MULTIPLIER=11102230246251565e-32;class Q{constructor(t,e){this.seedLo=t,this.seedHi=e}at(t,e,i){const s=Z(t,e,i)^this.seedLo;return new K([s,this.seedHi])}fromHashOf(t){const i=e(t,{asBytes:!0}),s=W(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]),n=W(i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]);return new K([s^this.seedLo,n^this.seedHi])}}class tt{constructor(t){this.xo=256*t.nextDouble(),this.yo=256*t.nextDouble(),this.zo=256*t.nextDouble(),this.p=Array(256);for(let t=0;t<256;t+=1)this.p[t]=t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample2D(t,e){let i,s,n;const r=(t+e)*tt.F2,o=Math.floor(t+r),a=t-(o-(i=(o+(s=Math.floor(e+r)))*tt.G2));let l,h;a>(n=e-(s-i))?(l=1,h=0):(l=0,h=1);const u=a-l+tt.G2,c=n-h+tt.G2,d=a-1+2*tt.G2,f=n-1+2*tt.G2,g=255&o,p=255&s,m=this.P(g+this.P(p))%12,v=this.P(g+l+this.P(p+h))%12,b=this.P(g+1+this.P(p+1))%12;return 70*(this.getCornerNoise3D(m,a,n,0,.5)+this.getCornerNoise3D(v,u,c,0,.5)+this.getCornerNoise3D(b,d,f,0,.5))}sample(t,e,i){const s=.3333333333333333*(t+e+i),n=Math.floor(t+s),r=Math.floor(e+s),o=Math.floor(i+s),a=.16666666666666666*(n+r+o),l=t-(n-a),h=e-(r-a),u=i-(o-a);let c,d,f,g,p,m;l>=h?h>=u?(c=1,d=0,f=0,g=1,p=1,m=0):l>=u?(c=1,d=0,f=0,g=1,p=0,m=1):(c=0,d=0,f=1,g=1,p=0,m=1):h127?t-256:t;for(let e=0;e<256;e+=1){const i=t.nextInt(256-e),s=this.p[e];this.p[e]=this.p[e+i],this.p[e+i]=s}}sample(t,e,i,s=0,n=0){const r=t+this.xo,o=e+this.yo,a=i+this.zo,l=Math.floor(r),h=Math.floor(o),u=Math.floor(a),c=r-l,d=o-h,f=a-u;let g=0;if(0!==s){const t=n>=0&&n=0;s-=1)s0&&(s=this.maxLimitNoise.getOctaveNoise(l))&&(a+=s.sample(c,d,f,u,e*u)/r),r/=2}return H(o/512,a/512,n)/128}}!function(t){t.fromJson=function(t){var e,i,s,n,r;const o=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{xzScale:null!==(i=_.readNumber(o.xz_scale))&&void 0!==i?i:1,yScale:null!==(s=_.readNumber(o.y_scale))&&void 0!==s?s:1,xzFactor:null!==(n=_.readNumber(o.xz_factor))&&void 0!==n?n:80,yFactor:null!==(r=_.readNumber(o.y_factor))&&void 0!==r?r:80}}}(P||(P={}));class nt{constructor(t,{firstOctave:e,amplitudes:i}){this.first=new it(t,e,i),this.second=new it(t,e,i);let s=1/0,n=-1/0;for(let t=0;t{var e;return null!==(e=_.readNumber(t))&&void 0!==e?e:0})))&&void 0!==s?s:[]}}}(R||(R={}));class rt{constructor(t,e){const i=e[e.length-1],s=-e[0]+i+1,n=new Set(e),r=new tt(t);this.noiseLevels=Array(s),i>=0&&i=0&&n.has(i-e)?this.noiseLevels[e]=new tt(t):t.consume(262);if(i>0)throw new Error(\"Positive octaves are not allowed\");this.highestFreqInputFactor=Math.pow(2,i),this.highestFreqValueFactor=1/(Math.pow(2,s)-1)}sample(t,e,i){let s=0,n=this.highestFreqInputFactor,r=this.highestFreqValueFactor;for(let o=0;o{var e;return null!==(e=_.readObject(t))&&void 0!==e?e:{}})))&&void 0!==n?n:[];if(0===h.length)return new ot(0);for(const e of h){const s=null!==(r=_.readNumber(e.location))&&void 0!==r?r:0,n=t.fromJson(e.value,i),a=null!==(o=_.readNumber(e.derivative))&&void 0!==o?o:0;l.addPoint(s,n,a)}return l}}(B||(B={}));class ot{constructor(t){this.value=t}apply(){return this.value}toJson(){return this.value}}class at{constructor(t,e=[],i=[],s=[]){this.coordinate=t,this.locations=e,this.values=i,this.derivatives=s}apply(t){const e=this.coordinate.apply(t),i=X(0,this.locations.length,(t=>e({location:t,value:this.values[e].toJson(),derivative:this.derivatives[e]})))}}}const lt=t=>[(t>>16&255)/256,(t>>8&255)/256,(255&t)/256],ht=[124/256,189/256,107/256],ut=lt(6396257),ct=lt(8431445),dt=lt(4764952),ft=lt(4159204),gt=lt(8431445),pt=lt(2129968),mt=t=>[t/8,1-t/32,64*t],vt={large_fern:()=>ht,tall_grass:()=>ht,grass_block:()=>ht,fern:()=>ht,grass:()=>ht,potted_fern:()=>ht,spruce_leaves:()=>ut,birch_leaves:()=>ct,oak_leaves:()=>dt,jungle_leaves:()=>dt,acacia_leaves:()=>dt,dark_oak_leaves:()=>dt,vine:()=>dt,water:()=>ft,bubble_column:()=>ft,cauldron:()=>ft,redstone_wire:t=>{var e;return(t=>{const e=t/15;return[.6*e+(e>0?.4:.3),L(e*e*.7-.5,0,1),L(e*e*.6-.7,0,1)]})(parseInt(null!==(e=t.power)&&void 0!==e?e:\"0\"))},sugar_cane:()=>ht,attached_melon_stem:()=>gt,attached_pumpkin_stem:()=>gt,melon_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},pumpkin_stem:t=>{var e;return mt(parseInt(null!==(e=t.age)&&void 0!==e?e:\"0\"))},lily_pad:()=>pt};var bt;function St(...t){let e=0;for(const i of t)e+=i.length;const i=new Float32Array(e);let s=0;for(const e of t)i.set(e,s),s+=e.length;return i}function Et(t,e){const s=i.create();for(let n=0;nthis.matchesVariant(e,t)));if(0===e.length)return[];const i=this.variants[e[0]];return[Array.isArray(i)?i[0]:i]}if(this.multipart){return this.multipart.filter((e=>!e.when||this.matchesCase(e.when,t))).map((t=>Array.isArray(t.apply)?t.apply[0]:t.apply))}return[]}getBuffers(t,e,i,r,o,a){var l,h,u,c;const d=this.getModelVariants(e),f=[],g=[],p=[],m=[];for(const v of d){const d=bt.rotate(a,null!==(l=v.x)&&void 0!==l?l:0,null!==(h=v.y)&&void 0!==h?h:0),b=r.getBlockModel(v.model).getBuffers(t,e,i,o,d);if(v.x||v.y){const t=s.create();s.identity(t),s.translate(t,t,[8,8,8]),s.rotateY(t,t,-n.toRadian(null!==(u=v.y)&&void 0!==u?u:0)),s.rotateX(t,t,-n.toRadian(null!==(c=v.x)&&void 0!==c?c:0)),s.translate(t,t,[-8,-8,-8]),Et(b.position,t)}f.push(b.position),g.push(...b.texCoord),p.push(...b.tintColor),m.push(...b.index),o+=b.texCoord.length/2}const v=s.create();s.identity(v),s.scale(v,v,[.0625,.0625,.0625]);const b=St(...f);return Et(b,v),{position:b,texCoord:g,tintColor:p,index:m}}matchesVariant(t,e){return t.split(\",\").every((t=>{const[i,s]=t.split(\"=\");return e[i]===s}))}matchesCase(t,e){if(Array.isArray(t.OR))return t.OR.some((t=>this.matchesCase(t,e)));const i=t;return Object.keys(i).every((t=>i[t].split(\"|\").includes(e[t])))}static fromJson(t,e){return new It(t,e.variants,e.multipart)}}const wt={0:[0,3,2,3,2,1,0,1],90:[2,3,2,1,0,1,0,3],180:[2,1,0,1,0,3,2,3],270:[0,1,0,3,2,3,2,1]},At={x:[1,0,0],y:[0,1,0],z:[0,0,1]},Nt=1.41421356237,Ft={x:[1,Nt,Nt],y:[Nt,1,Nt],z:[Nt,Nt,1]};class _t{constructor(t,e,i,s){this.id=t,this.parent=e,this.textures=i,this.elements=s,this.flattened=!1}getBuffers(t,e,i,s,n){var r;const o=[],a=[],l=[],h=[];for(const u of null!==(r=this.elements)&&void 0!==r?r:[]){const r=this.getElementBuffers(t,e,u,s,i,n);o.push(r.position),a.push(...r.texCoord),l.push(...r.tintColor),h.push(...r.index),s+=r.texCoord.length/2}return{position:St(...o),texCoord:a,tintColor:l,index:h}}getElementBuffers(t,e,r,o,a,l){var h,u,c,d,f,g,p,m,v,b,S,E;const I=r.from[0],w=r.from[1],A=r.from[2],N=r.to[0],F=r.to[1],_=r.to[2],y=[],P=[],R=[],B=[],x=(i,s,n)=>{var r,l,h,u,c,d,f,g,p,m,v,b;const[S,E,I,w]=a.getTextureUV(this.getTexture(i.texture)),A=(I-S)/16,N=(w-E)/16,F=A/16,_=N/16;s[0]=(null!==(l=null===(r=i.uv)||void 0===r?void 0:r[0])&&void 0!==l?l:s[0])*A+F,s[1]=(null!==(u=null===(h=i.uv)||void 0===h?void 0:h[1])&&void 0!==u?u:s[1])*N+_,s[2]=(null!==(d=null===(c=i.uv)||void 0===c?void 0:c[2])&&void 0!==d?d:s[2])*A-F,s[3]=(null!==(g=null===(f=i.uv)||void 0===f?void 0:f[3])&&void 0!==g?g:s[3])*N-_;const x=wt[null!==(p=i.rotation)&&void 0!==p?p:0];P.push(S+s[x[0]],E+s[x[1]],S+s[x[2]],E+s[x[3]],S+s[x[4]],E+s[x[5]],S+s[x[6]],E+s[x[7]]);const T=(null!==(m=i.tintindex)&&void 0!==m?m:-1)>=0&&null!==(b=null===(v=vt[t.slice(10)])||void 0===v?void 0:v.call(vt,e))&&void 0!==b?b:[1,1,1];R.push(...T,...T,...T,...T),y.push(...n),B.push(o,o+1,o+2,o,o+2,o+3),o+=4};!(null===(u=null===(h=r.faces)||void 0===h?void 0:h.up)||void 0===u?void 0:u.texture)||r.faces.up.cullface&&l[r.faces.up.cullface]||x(r.faces.up,[I,16-_,N,16-A],[I,F,_,N,F,_,N,F,A,I,F,A]),!(null===(d=null===(c=r.faces)||void 0===c?void 0:c.down)||void 0===d?void 0:d.texture)||r.faces.down.cullface&&l[r.faces.down.cullface]||x(r.faces.down,[16-_,16-N,16-A,16-I],[I,w,A,N,w,A,N,w,_,I,w,_]),!(null===(g=null===(f=r.faces)||void 0===f?void 0:f.south)||void 0===g?void 0:g.texture)||r.faces.south.cullface&&l[r.faces.south.cullface]||x(r.faces.south,[I,16-F,N,16-w],[I,w,_,N,w,_,N,F,_,I,F,_]),!(null===(m=null===(p=r.faces)||void 0===p?void 0:p.north)||void 0===m?void 0:m.texture)||r.faces.north.cullface&&l[r.faces.north.cullface]||x(r.faces.north,[16-N,16-F,16-I,16-w],[N,w,A,I,w,A,I,F,A,N,F,A]),!(null===(b=null===(v=r.faces)||void 0===v?void 0:v.east)||void 0===b?void 0:b.texture)||r.faces.east.cullface&&l[r.faces.east.cullface]||x(r.faces.east,[16-_,16-F,16-A,16-w],[N,w,_,N,w,A,N,F,A,N,F,_]),!(null===(E=null===(S=r.faces)||void 0===S?void 0:S.west)||void 0===E?void 0:E.texture)||r.faces.west.cullface&&l[r.faces.west.cullface]||x(r.faces.west,[A,16-F,_,16-w],[I,w,A,I,w,_,I,F,_,I,F,A]);const T=s.create();if(s.identity(T),r.rotation){const t=i.fromValues(...r.rotation.origin);s.translate(T,T,t),s.rotate(T,T,n.toRadian(r.rotation.angle),At[r.rotation.axis]),r.rotation.rescale&&s.scale(T,T,Ft[r.rotation.axis]),i.negate(t,t),s.translate(T,T,t)}const C=new Float32Array(y);return Et(C,T),{position:C,texCoord:P,tintColor:R,index:B}}getTexture(t){for(var e,i;t.startsWith(\"#\");)t=null!==(i=null===(e=this.textures)||void 0===e?void 0:e[t.slice(1)])&&void 0!==i?i:\"\";return t.startsWith(\"minecraft:\")||(t=\"minecraft:\"+t),t}flatten(t){var e;if(!this.flattened&&this.parent){const i=t.getBlockModel(this.parent);if(!i)return console.warn(`parent ${this.parent} does not exist!`),void(this.flattened=!0);i.flatten(t),this.elements||(this.elements=i.elements),this.textures||(this.textures={}),Object.keys(null!==(e=i.textures)&&void 0!==e?e:{}).forEach((t=>{this.textures[t]||(this.textures[t]=i.textures[t])})),this.flattened=!0}}static fromJson(t,e){let i=e.parent;return i&&!i.startsWith(\"minecraft:\")&&(i=\"minecraft:\"+i),new _t(t,i,e.textures,e.elements)}}class yt{constructor(t,e,i){this.gl=t,this.program=this.initShaderProgram(e,i)}getProgram(){return this.program}initShaderProgram(t,e){const i=this.loadShader(this.gl.VERTEX_SHADER,t),s=this.loadShader(this.gl.FRAGMENT_SHADER,e),n=this.gl.createProgram();if(this.gl.attachShader(n,i),this.gl.attachShader(n,s),this.gl.linkProgram(n),!this.gl.getProgramParameter(n,this.gl.LINK_STATUS))throw new Error(`Unable to link shader program: ${this.gl.getProgramInfoLog(n)}`);return n}loadShader(t,e){const i=this.gl.createShader(t);if(this.gl.shaderSource(i,e),this.gl.compileShader(i),!this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)){const e=new Error(`Compiling ${t===this.gl.VERTEX_SHADER?\"vertex\":\"fragment\"} shader: ${this.gl.getShaderInfoLog(i)}`);throw this.gl.deleteShader(i),e}return i}}function Pt(t,e,i,s,n){const r=new It(\"\",{\"\":{model:\"\"}},void 0),o={getBlockModel:()=>n};return n.flatten(o),r.getBuffers(t,{},e,o,i,s)}function Rt(t,e,i,s,n,o){const a=n.up?16:[14.2,12.5,10.5,9,7,5.3,3.7,1.9,16,16,16,16,16,16,16,16][i];return Pt(`minecraft:${t}`,s,e,n,new _t(\"\",\"\",{still:`minecraft:block/${t}_still`,flow:`minecraft:block/${t}_flow`},[{from:[0,0,0],to:[16,a,16],faces:{up:{texture:\"#still\",tintindex:o,cullface:r.UP},down:{texture:\"#still\",tintindex:o,cullface:r.DOWN},north:{texture:\"#flow\",tintindex:o,cullface:r.NORTH},east:{texture:\"#flow\",tintindex:o,cullface:r.EAST},south:{texture:\"#flow\",tintindex:o,cullface:r.SOUTH},west:{texture:\"#flow\",tintindex:o,cullface:r.WEST}}}]))}const Bt={\"minecraft:water\":(t,e,i,s)=>Rt(\"water\",t,parseInt(e.level),i,s,0),\"minecraft:lava\":(t,e,i,s)=>Rt(\"lava\",t,parseInt(e.level),i,s),\"minecraft:chest\":(t,e,i)=>function(t,e,i,s){return Pt(\"minecraft:chest\",s,t,{},new _t(\"\",\"\",{0:\"minecraft:block/chest\"},[{from:[1,0,1],to:[15,14,15],faces:{up:{texture:\"#0\"},down:{texture:\"#0\"},north:{texture:\"#0\"},east:{texture:\"#0\"},south:{texture:\"#0\"},west:{texture:\"#0\"}}}]))}(t,e.facing,e.type,i)},xt=new Set(Object.keys(Bt));class Tt{constructor(t,e,i,s){var n,r;this.gl=t,this.structure=e,this.resources=i,this.chunks=[],(null==s?void 0:s.facesPerBuffer)&&console.warn(\"webgl render warning: facesPerBuffer option has been removed in favor of chunkSize\"),this.chunkSize=null!==(n=null==s?void 0:s.chunkSize)&&void 0!==n?n:16,this.useInvisibleBlockBuffer=null===(r=null==s?void 0:s.useInvisibleBlockBuffer)||void 0===r||r,this.shaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec2 texCoord;\\n attribute vec3 tintColor;\\n attribute vec3 normal;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vTexCoord = texCoord;\\n vTintColor = tintColor;\\n vLighting = normal.y * 0.2 + abs(normal.z) * 0.1 + 0.8;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec2 vTexCoord;\\n varying highp vec3 vTintColor;\\n varying highp float vLighting;\\n\\n uniform sampler2D sampler;\\n\\n void main(void) {\\n vec4 texColor = texture2D(sampler, vTexCoord);\\n if(texColor.a < 0.01) discard;\\n gl_FragColor = vec4(texColor.xyz * vTintColor * vLighting, texColor.a);\\n }\\n\").getProgram(),this.gridShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 vertColor;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = vertColor;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.colorShaderProgram=new yt(t,\"\\n attribute vec4 vertPos;\\n attribute vec3 blockPos;\\n\\n uniform mat4 mView;\\n uniform mat4 mProj;\\n\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_Position = mProj * mView * vertPos;\\n vColor = blockPos / 256.0;\\n }\\n\",\"\\n precision highp float;\\n varying highp vec3 vColor;\\n\\n void main(void) {\\n gl_FragColor = vec4(vColor, 1.0);\\n }\\n\").getProgram(),this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.outlineBuffers=this.getOutlineBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers(),this.atlasTexture=this.getBlockTexture(),this.projMatrix=this.getPerspective(),this.activeShader=this.shaderProgram,this.initialize()}setStructure(t){this.structure=t,this.updateStructureBuffers(),this.gridBuffers=this.getGridBuffers(),this.invisibleBlockBuffers=this.getInvisibleBlockBuffers()}initialize(){this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.BACK)}getBlockTexture(){const t=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.resources.getTextureAtlas()),this.gl.generateMipmap(this.gl.TEXTURE_2D),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),t}getPerspective(){const t=70*Math.PI/180,e=this.gl.canvas.clientWidth/this.gl.canvas.clientHeight,i=s.create();return s.perspective(i,t,e,.1,500),i}getChunk(t){const e=2*Math.abs(t[0])+(t[0]<0?1:0),i=2*Math.abs(t[1])+(t[1]<0?1:0),s=2*Math.abs(t[2])+(t[2]<0?1:0);return this.chunks[e]||(this.chunks[e]=[]),this.chunks[e][i]||(this.chunks[e][i]=[]),this.chunks[e][i][s]||(this.chunks[e][i][s]={positions:[],textureCoordinates:[],tintColors:[],blockPositions:[],normals:[],indices:[],indexOffset:0}),this.chunks[e][i][s]}updateStructureBuffers(t){var e;const n=(t,e,n)=>{const r=s.create();s.translate(r,r,e),Et(t.position,r),n.positions.push(t.position),n.textureCoordinates.push(...t.texCoord),n.tintColors.push(...t.tintColor);for(let e=0;e{t.positions=[],t.textureCoordinates=[],t.tintColors=[],t.blockPositions=[],t.normals=[],t.indices=[],t.indexOffset=0},a=t=>{t.buffer?(this.updateBuffer(t.buffer.position,this.gl.ARRAY_BUFFER,St(...t.positions)),this.updateBuffer(t.buffer.texCoord,this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),this.updateBuffer(t.buffer.tintColor,this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),this.updateBuffer(t.buffer.normal,this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),this.updateBuffer(t.buffer.blockPos,this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),this.updateBuffer(t.buffer.index,this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),t.buffer.length=t.indices.length):t.buffer={position:this.createBuffer(this.gl.ARRAY_BUFFER,St(...t.positions)),texCoord:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.textureCoordinates)),tintColor:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.tintColors)),blockPos:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.blockPositions)),normal:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t.normals)),index:this.createBuffer(this.gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(t.indices)),length:t.indices.length}};let l;t?t.forEach((t=>{const e=this.getChunk(t);o(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{o(t)}))))));for(const s of this.structure.getBlocks()){const o=s.state.getName(),a=s.state.getProperties(),h=null!==(e=this.resources.getDefaultBlockProperties(o))&&void 0!==e?e:{};Object.entries(h).forEach((([t,e])=>{a[t]||(a[t]=e)}));const u=[Math.floor(s.pos[0]/this.chunkSize),Math.floor(s.pos[1]/this.chunkSize),Math.floor(s.pos[2]/this.chunkSize)];if(t&&!t.some((t=>i.equals(t,u))))continue;const c=this.getChunk(u);try{const t=this.resources.getBlockDefinition(o),e={up:this.needsCull(s,r.UP),down:this.needsCull(s,r.DOWN),west:this.needsCull(s,r.WEST),east:this.needsCull(s,r.EAST),north:this.needsCull(s,r.NORTH),south:this.needsCull(s,r.SOUTH)};t&&(l=t.getBuffers(o,a,this.resources,this.resources,c.indexOffset,e),n(l,s.pos,c)),xt.has(o)&&(l=Bt[o](c.indexOffset,a,this.resources,e),n(l,s.pos,c))}catch(t){console.error(`Error rendering block ${o}`,t)}}t?t.forEach((t=>{const e=this.getChunk(t);a(e)})):this.chunks.forEach((t=>t.forEach((t=>t.forEach((t=>{a(t)}))))))}needsCull(t,e){var i,s;const n=null===(i=this.structure.getBlock(a.towards(t.pos,e)))||void 0===i?void 0:i.state;return!!n&&((null===(s=this.resources.getBlockFlags(n.getName()))||void 0===s?void 0:s.opaque)?!(e===r.UP&&t.state.isFluid()):t.state.isFluid()&&n.isFluid())}getGridBuffers(){const[t,e,i]=this.structure.getSize(),s=[],n=[];s.push(0,0,0,t,0,0),n.push(1,0,0,1,0,0),s.push(0,0,0,0,0,i),n.push(0,0,1,0,0,1),s.push(0,0,0,0,e,0),s.push(t,0,0,t,e,0),s.push(0,0,i,0,e,i),s.push(t,0,i,t,e,i),s.push(0,e,0,0,e,i),s.push(t,e,0,t,e,i),s.push(0,e,0,t,e,0),s.push(0,e,i,t,e,i);for(let e=1;e<=t;e+=1)s.push(e,0,0,e,0,i);for(let e=1;e<=i;e+=1)s.push(0,0,e,t,0,e);for(let e=0;e<8+t+i;e+=1)n.push(.8,.8,.8,.8,.8,.8);return{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(s)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(n)),length:s.length/3}}getOutlineBuffers(){const t=[],e=[];return this.addCube(t,e,[1,1,1],[0,0,0],[1,1,1]),{position:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(t)),color:this.createBuffer(this.gl.ARRAY_BUFFER,new Float32Array(e)),length:t.length/3}}getInvisibleBlockBuffers(){if(!this.useInvisibleBlockBuffer)return;const t=this.structure.getSize(),e=[],i=[];for(let s=0;s{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"texCoord\",2,t.buffer.texCoord),this.setVertexAttr(\"tintColor\",3,t.buffer.tintColor),this.setVertexAttr(\"normal\",3,t.buffer.normal),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawColoredStructure(t){this.setShader(this.colorShaderProgram),this.setUniform(\"mView\",t),this.setUniform(\"mProj\",this.projMatrix),this.chunks.forEach((t=>{t.forEach((t=>{t.forEach((t=>{t.buffer&&(this.setVertexAttr(\"vertPos\",3,t.buffer.position),this.setVertexAttr(\"blockPos\",3,t.buffer.blockPos),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,t.buffer.index),this.gl.drawElements(this.gl.TRIANGLES,t.buffer.length,this.gl.UNSIGNED_SHORT,0))}))}))}))}drawOutline(t,e){this.setShader(this.gridShaderProgram),this.setVertexAttr(\"vertPos\",3,this.outlineBuffers.position),this.setVertexAttr(\"vertColor\",3,this.outlineBuffers.color);const i=s.create();s.copy(i,t),s.translate(i,i,e),this.setUniform(\"mView\",i),this.setUniform(\"mProj\",this.projMatrix),this.gl.drawArrays(this.gl.LINES,0,this.outlineBuffers.length)}setViewport(t,e,i,s){this.gl.viewport(t,e,i,s),this.projMatrix=this.getPerspective()}setShader(t){this.gl.useProgram(t),this.activeShader=t}setVertexAttr(t,e,i){const s=this.gl.getAttribLocation(this.activeShader,t);this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.vertexAttribPointer(s,e,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(s)}setUniform(t,e){const i=this.gl.getUniformLocation(this.activeShader,t);this.gl.uniformMatrix4fv(i,!1,e)}}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function Ct(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}l((s=s.apply(t,e||[])).next())}))}class kt{constructor(t,e){this.img=t,this.idMap=e,this.part=16/t.width}getTextureAtlas(){return this.img}getTextureUV(t){var e;return null!==(e=this.idMap[t])&&void 0!==e?e:[0,0,this.part,this.part]}static fromBlobs(t){return Ct(this,void 0,void 0,(function*(){const e=Math.sqrt(Object.keys(t).length+1),i=Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))),s=16*i,n=1/i,r=document.createElement(\"canvas\");r.width=s,r.height=s;const o=r.getContext(\"2d\");this.drawInvalidTexture(o);const a={};let l=1;return yield Promise.all(Object.keys(t).map((e=>Ct(this,void 0,void 0,(function*(){const s=l%i,r=Math.floor(l/i);l+=1,a[e]=[n*s,n*r,n*s+n,n*r+n];const h=yield createImageBitmap(t[e]);o.drawImage(h,0,0,16,16,16*s,16*r,16,16)}))))),new kt(o.getImageData(0,0,s,s),a)}))}static empty(){const t=document.createElement(\"canvas\");t.width=16,t.height=16;const e=t.getContext(\"2d\");return kt.drawInvalidTexture(e),new kt(e.getImageData(0,0,16,16),{})}static drawInvalidTexture(t){t.fillStyle=\"black\",t.fillRect(0,0,16,16),t.fillStyle=\"magenta\",t.fillRect(0,0,8,8),t.fillRect(8,8,8,8)}}var Dt,Mt,Ot,Lt,Ut,Yt,Gt,Ht,Vt,zt,jt,Jt,Xt;!function(t){function e(t,e){return\"number\"==typeof t?new i(t,null!=e?e:t):t}t.target=function(t,e,i,s,r,o){return new n(t,e,i,s,r,o)},t.parameters=function(t,i,n,r,o,a,l){return new s(e(t),e(i),e(n),e(r),e(o),e(a),l)},t.param=e;class i{constructor(t,e){this.min=t,this.max=e}distance(t){const e=(\"number\"==typeof t?t:t.min)-this.max,i=this.min-(\"number\"==typeof t?t:t.max);return e>0?e:Math.max(i,0)}union(t){return new i(Math.min(this.min,t.min),Math.max(this.max,t.max))}static fromJson(t){var e;if(\"number\"==typeof t)return new i(t,t);const[s,n]=null!==(e=_.readArray(t,(t=>_.readNumber(t))))&&void 0!==e?e:[];return new i(null!=s?s:0,null!=n?n:0)}}t.Param=i;class s{constructor(t,e,i,s,n,r,o){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r,this.offset=o}fittness(t){return O(this.temperature.distance(t.temperature))+O(this.humidity.distance(t.humidity))+O(this.continentalness.distance(t.continentalness))+O(this.erosion.distance(t.erosion))+O(this.depth.distance(t.depth))+O(this.weirdness.distance(t.weirdness))+O(this.offset-t.offset)}space(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,new i(this.offset,this.offset)]}static fromJson(t){var e,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new s(i.fromJson(r.temperature),i.fromJson(r.humidity),i.fromJson(r.continentalness),i.fromJson(r.erosion),i.fromJson(r.depth),i.fromJson(r.weirdness),null!==(n=_.readInt(r.offset))&&void 0!==n?n:0)}}t.ParamPoint=s;class n{constructor(t,e,i,s,n,r){this.temperature=t,this.humidity=e,this.continentalness=i,this.erosion=s,this.depth=n,this.weirdness=r}get offset(){return 0}toArray(){return[this.temperature,this.humidity,this.continentalness,this.erosion,this.depth,this.weirdness,this.offset]}}t.TargetPoint=n;t.Parameters=class{constructor(t){this.things=t,this.index=new r(t)}find(t){return this.index.search(t,((t,e)=>t.distance(e)))}};class r{constructor(t){this.root=r.build(t.map((([t,e])=>new l(t,e))))}static build(t){if(1===t.length)return t[0];if(t.length<=r.CHILDREN_PER_NODE){const e=t.map((t=>{let e=0;for(let i=0;i<7;i+=1){const s=t.space[i];e+=Math.abs((s.min+s.max)/2)}return{key:e,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t));return new a(e)}let e=1/0,i=-1,s=[];for(let n=0;n<7;++n){t=r.sort(t,n,!1),s=r.bucketize(t);let o=0;for(const t of s)o+=r.area(t.space);e>o&&(e=o,i=n)}return t=r.sort(t,i,!1),s=r.bucketize(t),s=r.sort(s,i,!0),new a(s.map((t=>r.build(t.children))))}static sort(t,e,i){return t.map((t=>{const s=t.space[e],n=(s.min+s.max)/2;return{key:i?Math.abs(n):n,node:t}})).sort(((t,e)=>t.key-e.key)).map((({node:t})=>t))}static bucketize(t){const e=[];let i=[];const s=Math.pow(10,Math.floor(Math.log(t.length-.01)/Math.log(10)));for(const n of t)i.push(n),i.lengthnew i(1/0,-1/0)));for(const i of t)e=[...Array(7)].map(((t,s)=>e[s].union(i.space[s])));return e}search(t,e){let i=1/0,s=null;for(const n of this.children){const r=e(n,t);if(i<=r)continue;const o=n.search(t,e),a=n==o?r:e(o,t);i<=a||(i=a,s=o)}return s}}t.RSubTree=a;class l extends o{constructor(t,e){super(t.space()),this.thing=e}search(){return this}}t.RLeaf=l}(Dt||(Dt={}));class Zt{constructor(t){this.biome=t}getBiome(){return this.biome}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=null!==(i=_.readString(s.biome))&&void 0!==i?i:\"minecraft:the_void\";return new Zt(n)}}class Wt{constructor(t){this.parameters=t}getBiome(t,e,i,s){const n=s(t,e,i);return this.parameters.find(n)}static fromJson(t){var e,i;const s=null!==(e=_.readObject(t))&&void 0!==e?e:{},n=(null!==(i=_.readArray(s.biomes,(t=>{var e;return(t=>{var e;return{biome:null!==(e=_.readString(t.biome))&&void 0!==e?e:\"minecraft:the_void\",parameters:Dt.ParamPoint.fromJson(t.parameters)}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})})))&&void 0!==i?i:[]).map((t=>[t.parameters,()=>t.biome]));return new Wt(new Dt.Parameters(n))}}class qt{constructor(t,e,i){this.offsetSampler=t,this.factorSampler=e,this.jaggednessSampler=i}static extractor(t){return{apply:e=>e[t],toJson:()=>t}}static fromJson(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return new qt(B.fromJson(i.offset,this.EXTRACTOR),B.fromJson(i.factor,this.EXTRACTOR),B.fromJson(i.jaggedness,this.EXTRACTOR))}toJson(){return{offset:this.offsetSampler.toJson(),factor:this.factorSampler.toJson(),jaggedness:this.jaggednessSampler.toJson()}}offset(t){return this.offsetSampler.apply(t)+qt.GLOBAL_OFFSET}factor(t){return this.factorSampler.apply(t)}jaggedness(t){return this.jaggednessSampler.apply(t)}static point(t,e,i){return{continents:t,erosion:e,weirdness:i,ridges:this.peaksAndValleys(i)}}static peaksAndValleys(t){return 3*-(Math.abs(Math.abs(t)-.6666667)-.33333334)}static overworld(){const t=this.buildErosionOffsetSpline(-.05,0,0,.1,0,-.03,!1,!1),e=this.buildErosionOffsetSpline(-.1,.03,.1,.1,.01,-.03,!1,!1),i=this.buildErosionOffsetSpline(-.1,.03,.1,.7,.01,-.03,!0,!0),s=this.buildErosionOffsetSpline(.3,.03,.1,1,.01,.01,!0,!0),n=new at(this.CONTINENTS).addPoint(-1.1,.044).addPoint(-1.02,-.2222).addPoint(-.51,-.2222).addPoint(-.44,-.12).addPoint(-.18,-.12).addPoint(-.16,t).addPoint(-.15,t).addPoint(-.1,e).addPoint(.25,i).addPoint(1,s),r=new at(this.CONTINENTS).addPoint(-.19,3.95).addPoint(-.15,this.getErosionFactor(6.25,!0)).addPoint(-.1,this.getErosionFactor(5.47,!0)).addPoint(.03,this.getErosionFactor(5.08,!0)).addPoint(.06,this.getErosionFactor(4.69,!1)),o=new at(this.CONTINENTS).addPoint(.11,0).addPoint(.03,this.buildErosionJaggednessSpline(1,.5,0,0)).addPoint(.65,this.buildErosionJaggednessSpline(1,1,1,0));return new qt(n,r,o)}static getErosionFactor(t,e){const i=new at(this.WEIRDNESS).addPoint(-.2,6.3).addPoint(.2,t),s=new at(this.EROSION).addPoint(-.6,i).addPoint(-.5,new at(this.WEIRDNESS).addPoint(-.05,6.3).addPoint(.05,2.67)).addPoint(-.35,i).addPoint(-.25,i).addPoint(-.1,new at(this.WEIRDNESS).addPoint(-.05,2.67).addPoint(.05,6.3)).addPoint(.03,i);if(e){const e=new at(this.WEIRDNESS).addPoint(0,t).addPoint(.1,.625),i=new at(this.RIDGES).addPoint(-.9,t).addPoint(-.69,e);s.addPoint(.35,t).addPoint(.45,i).addPoint(.55,i).addPoint(.62,t)}else{const e=new at(this.RIDGES).addPoint(-.7,i).addPoint(-.15,1.37),n=new at(this.RIDGES).addPoint(.45,i).addPoint(.7,1.56);s.addPoint(.05,n).addPoint(.4,n).addPoint(.45,e).addPoint(.55,e).addPoint(.58,t)}return s}static buildErosionOffsetSpline(t,e,i,s,n,r,o,a){const l=this.buildMountainRidgeSplineWithPoints(U(s,.6,1.5),a),h=this.buildMountainRidgeSplineWithPoints(U(s,.6,1),a),u=this.buildMountainRidgeSplineWithPoints(s,a),c=this.ridgeSpline(t-.15,.5*s,U(.5,.5,.5)*s,.5*s,.6*s,.5),d=this.ridgeSpline(t,n*s,e*s,.5*s,.6*s,.5),f=this.ridgeSpline(t,n,n,e,i,.5),g=this.ridgeSpline(t,n,n,e,i,.5),p=new at(this.RIDGES).addPoint(-1,t).addPoint(-.4,f).addPoint(0,i+.07),m=this.ridgeSpline(-.02,r,r,e,i,0),v=new at(this.EROSION).addPoint(-.85,l).addPoint(-.7,h).addPoint(-.4,u).addPoint(-.35,c).addPoint(-.1,d).addPoint(.2,f);return o&&v.addPoint(.4,g).addPoint(.45,p).addPoint(.55,p).addPoint(.58,g),v.addPoint(.7,m),v}static buildMountainRidgeSplineWithPoints(t,e){const i=new at(this.RIDGES),s=this.mountainContinentalness(-1,t,-.7),n=this.mountainContinentalness(1,t,-.7),r=this.calculateMountainRidgeZeroContinentalnessPoint(t);if(-.650?this.buildWeirdnessJaggednessSpline(e):0).addPoint(1,t>0?this.buildWeirdnessJaggednessSpline(t):0)}static buildWeirdnessJaggednessSpline(t){return new at(qt.WEIRDNESS).addPoint(-.01,.63*t).addPoint(.01,.3*t)}}qt.GLOBAL_OFFSET=-.50375,qt.EXTRACTOR=t=>{var e;const i=null!==(e=_.readString(t))&&void 0!==e?e:\"continents\";return qt.extractor(i)},qt.CONTINENTS=qt.extractor(\"continents\"),qt.EROSION=qt.extractor(\"erosion\"),qt.WEIRDNESS=qt.extractor(\"weirdness\"),qt.RIDGES=qt.extractor(\"ridges\"),function(t){t.fromList=function(t){return(e,i,s,n)=>{for(const r of t){const t=r(e,i,s,n);if(t)return t}return null}}}(Mt||(Mt={})),function(t){function e(t){return t.ySize<<2}t.fromJson=function(t){var e,i,s,n,r,o,a,l;const h=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{minY:null!==(i=_.readInt(h.min_y))&&void 0!==i?i:0,height:null!==(s=_.readInt(h.height))&&void 0!==s?s:256,xzSize:null!==(n=_.readInt(h.size_horizontal))&&void 0!==n?n:1,ySize:null!==(r=_.readInt(h.size_vertical))&&void 0!==r?r:1,sampling:P.fromJson(h.sampling),topSlide:Lt.fromJson(h.top_slide),bottomSlide:Lt.fromJson(h.bottom_slide),terrainShaper:qt.fromJson(h.terrain_shaper),islandNoiseOverride:null!==(o=_.readBoolean(h.island_noise_override))&&void 0!==o&&o,isAmplified:null!==(a=_.readBoolean(h.amplified))&&void 0!==a&&a,hasLargeBiomes:null!==(l=_.readBoolean(h.large_biomes))&&void 0!==l&&l}},t.cellHeight=e,t.cellWidth=function(t){return t.xzSize<<2},t.cellCountY=function(t){return t.height/e(t)},t.minCellY=function(t){return Math.floor(t.minY/e(t))}}(Ot||(Ot={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{target:null!==(i=_.readNumber(r.target))&&void 0!==i?i:0,size:null!==(s=_.readInt(r.size))&&void 0!==s?s:0,offset:null!==(n=_.readInt(r.offset))&&void 0!==n?n:0}},t.apply=function(t,e,i){if(t.size<=0)return e;const s=(i-t.offset)/t.size;return H(t.target,e,s)}}(Lt||(Lt={}));class $t{constructor(t,e){this.chunk=t,this.filler=e,this.noise000=0,this.noise001=0,this.noise100=0,this.noise101=0,this.noise010=0,this.noise011=0,this.noise110=0,this.noise111=0,this.valueXZ00=0,this.valueXZ10=0,this.valueXZ01=0,this.valueXZ11=0,this.valueZ0=0,this.valueZ1=0,this.value=0,this.slice0=$t.allocateSlice(t.cellCountY,t.cellCountXZ),this.slice1=$t.allocateSlice(t.cellCountY,t.cellCountXZ)}static allocateSlice(t,e){const i=Array(e+1);for(let s=0;s>2,this.firstNoiseZ=r>>2,this.interpolators=[];const h=t*l>>2;this.noiseData=Array(h+1);for(let t=0;t<=h;t+=1){const e=this.firstNoiseX+t;this.noiseData[t]=Array(h+1);for(let i=0;i<=h;i+=1){const n=this.firstNoiseZ+i;this.noiseData[t][i]=s.noiseData(e,n)}}this.preliminarySurfaceLevel=new Map,this.baseNoise=s.makeBaseNoiseFiller(this,o,a.noodleCavesEnabled)}getNoiseData(t,e){return this.noiseData[t-this.firstNoiseX][e-this.firstNoiseZ]}getPreliminarySurfaceLevel(t,e){return M(this.preliminarySurfaceLevel,y.asLong(t,e),(()=>{const i=t-this.firstNoiseX,s=e-this.firstNoiseZ,n=this.noiseData.length,r=i>=0&&s>=0&&it.initializeForFirstCellX()))}advanceCellX(t){this.interpolators.forEach((e=>e.advanceCellX(t)))}selectCellYZ(t,e){this.interpolators.forEach((i=>i.selectCellYZ(t,e)))}updateForY(t){this.interpolators.forEach((e=>e.updateForY(t)))}updateForX(t){this.interpolators.forEach((e=>e.updateForX(t)))}updateForZ(t){this.interpolators.forEach((e=>e.updateForZ(t)))}swapSlices(){this.interpolators.forEach((t=>t.swapSlices()))}updateNoiseAndGenerateBaseState(t,e,i){return this.baseNoise(t,e,i)}}!function(t){t.create=function(t,e,i){return{offset:t,factor:e,jaggedness:i}}}(Ut||(Ut={})),function(t){const e=new Map;function i(t,i,s){const n=Object.assign({name:`minecraft:${t}`},R.create(i,s));return e.set(t,n),n}t.TEMPERATURE=i(\"temperature\",-10,[1.5,0,1,0,0,0]),t.VEGETATION=i(\"vegetation\",-8,[1,1,0,0,0,0]),t.CONTINENTALNESS=i(\"continentalness\",-9,[1,1,2,2,2,1,1,1,1]),t.EROSION=i(\"erosion\",-9,[1,1,0,1,1]),t.TEMPERATURE_LARGE=i(\"temperature_large\",-12,[1.5,0,1,0,0,0]),t.VEGETATION_LARGE=i(\"vegetation_large\",-10,[1,1,0,0,0,0]),t.CONTINENTALNESS_LARGE=i(\"continentalness_large\",-11,[1,1,2,2,2,1,1,1,1]),t.EROSION_LARGE=i(\"erosion_large\",-11,[1,1,0,1,1]),t.RIDGE=i(\"ridge\",-7,[1,2,1,0,0,0]),t.SHIFT=i(\"offset\",-3,[1,1,1,0]),t.PILLAR=i(\"pillar\",-7,[1,1]),t.PILLAR_RARENESS=i(\"pillar_rareness\",-8,[1]),t.PILLAR_THICKNESS=i(\"pillar_thickness\",-8,[1]),t.SPAGHETTI_2D=i(\"spaghetti_2d\",-8,[1]),t.SPAGHETTI_2D_ELEVATION=i(\"spaghetti_2d_elevation\",-8,[1]),t.SPAGHETTI_2D_MODULATOR=i(\"spaghetti_2d_modulator\",-8,[1]),t.SPAGHETTI_2D_THICKNESS=i(\"spaghetti_2d_thickness\",-8,[1]),t.SPAGHETTI_3D_1=i(\"spaghetti_3d_1\",-8,[1]),t.SPAGHETTI_3D_2=i(\"spaghetti_3d_2\",-8,[1]),t.SPAGHETTI_3D_RARITY=i(\"spaghetti_3d_rarity\",-8,[1]),t.SPAGHETTI_3D_THICKNESS=i(\"spaghetti_3d_thickness\",-8,[1]),t.SPAGHETTI_ROUGHNESS=i(\"spaghetti_roughness\",-8,[1]),t.SPAGHETTI_ROUGHNESS_MODULATOR=i(\"spaghetti_roughness_modulator\",-8,[1]),t.CAVE_ENTRANCE=i(\"cave_entrance\",-7,[.4,.5,1]),t.CAVE_LAYER=i(\"cave_layer\",-8,[1]),t.CAVE_CHEESE=i(\"cave_cheese\",-8,[.5,1,2,1,2,1,0,2,0]),t.NOODLE=i(\"noodle\",-8,[1]),t.NOODLE_THICKNESS=i(\"noodle_thickness\",-8,[1]),t.NOODLE_RIDGE_A=i(\"noodle_ridge_a\",-7,[1]),t.NOODLE_RIDGE_B=i(\"noodle_ridge_b\",-7,[1]),t.JAGGED=i(\"jagged\",-16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),t.SURFACE=i(\"surface\",-6,[1,1,1]),t.SURFACE_SECONDARY=i(\"surface_secondary\",-6,[1,1,0,1]),t.instantiate=function(t,e){return new nt(t.fromHashOf(e.name),e)}}(Yt||(Yt={}));class Qt{constructor(t,e,i,s=!1){this.settings=t,this.isNoiseCavesEnabled=e;const n=t.hasLargeBiomes,r=(s?new q(i):K.create(i)).forkPositional();s?(this.blendedNoise=new st(new q(i),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=new nt(new q(i),R.create(-7,[1,1])),this.humidityNoise=new nt(new q(i+BigInt(1)),R.create(-7,[1,1])),this.offsetNoise=new nt(new q(i+BigInt(5)),R.create(0,[0]))):(this.blendedNoise=new st(r.fromHashOf(\"minecraft:terrain\"),t.sampling,Ot.cellWidth(t),Ot.cellHeight(t)),this.temperatureNoise=Yt.instantiate(r,n?Yt.TEMPERATURE_LARGE:Yt.TEMPERATURE),this.humidityNoise=Yt.instantiate(r,n?Yt.VEGETATION_LARGE:Yt.VEGETATION),this.offsetNoise=Yt.instantiate(r,Yt.SHIFT)),this.continentalnessNoise=Yt.instantiate(r,n?Yt.CONTINENTALNESS_LARGE:Yt.CONTINENTALNESS),this.erosionNoise=Yt.instantiate(r,n?Yt.EROSION_LARGE:Yt.EROSION),this.weirdnessNoise=Yt.instantiate(r,Yt.RIDGE),this.pillarNoise=Yt.instantiate(r,Yt.PILLAR),this.pillarRarenessModulator=Yt.instantiate(r,Yt.PILLAR_RARENESS),this.pillarThicknessModulator=Yt.instantiate(r,Yt.PILLAR_THICKNESS),this.spaghetti2DNoise=Yt.instantiate(r,Yt.SPAGHETTI_2D),this.spaghetti2DElevationModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_ELEVATION),this.spaghetti2DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_MODULATOR),this.spaghetti2DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_2D_THICKNESS),this.spaghetti3DNoise1=Yt.instantiate(r,Yt.SPAGHETTI_3D_1),this.spaghetti3DNoise2=Yt.instantiate(r,Yt.SPAGHETTI_3D_2),this.spaghetti3DRarityModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_RARITY),this.spaghetti3DThicknessModulator=Yt.instantiate(r,Yt.SPAGHETTI_3D_THICKNESS),this.spaghettiRoughnessNoise=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS),this.spaghettiRoughnessModulator=Yt.instantiate(r,Yt.SPAGHETTI_ROUGHNESS_MODULATOR),this.bigEntranceNoise=Yt.instantiate(r,Yt.CAVE_ENTRANCE),this.layerNoise=Yt.instantiate(r,Yt.CAVE_LAYER),this.cheeseNoise=Yt.instantiate(r,Yt.CAVE_CHEESE);const o=t.minY+4,a=o+t.height;this.noodleToggleNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE),o,a,-1,1),this.noodleThicknessNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_THICKNESS),o,a,0,1),this.noodleRidgeANoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_A),o,a,0,8/3),this.noodleRidgeBNoise=this.yLimitedInterpolatable(Yt.instantiate(r,Yt.NOODLE_RIDGE_B),o,a,0,8/3),this.jaggedNoise=Yt.instantiate(r,Yt.JAGGED),this.shaper=t.terrainShaper,this.baseNoise=t=>t.createNoiseInterpolator(((e,i,s)=>this.calculateBlendedBaseNoise(e,i,s,t.getNoiseData(e>>2,s>>2).terrainInfo)))}yLimitedInterpolatable(t,e,i,s,n){const r=(r,o,a)=>o>i||ot.createNoiseInterpolator(r)}noiseData(t,e){const i=t+this.getOffset(t,0,e),s=e+this.getOffset(e,t,0),n=this.getContinentalness(i,s),r=this.getErosion(i,s),o=this.getWeirdness(i,s),a=this.terrainInfo(n,r,o);return Gt.create(i,s,n,r,o,a)}sample(t,e,i){return this.target(t,e,i,this.noiseData(t,i))}target(t,e,i,s){const n=s.shiftedX,r=e+this.getOffset(e,i,t),o=s.shiftedZ,a=this.getTemperature(n,r,o),l=this.getHumidity(n,r,o),h=this.computeDimensionDensity(e<<2,s.terrainInfo);return Dt.target(a,l,s.continentalness,s.erosion,h,s.weirdness)}terrainInfo(t,e,i){const s=qt.point(t,e,i),n=this.shaper.offset(s),r=this.shaper.factor(s),o=this.shaper.jaggedness(s);return Ut.create(n,r,o)}getOffset(t,e,i){return 4*this.offsetNoise.sample(t,e,i)}getTemperature(t,e,i){return this.temperatureNoise.sample(t,e,i)}getHumidity(t,e,i){return this.humidityNoise.sample(t,e,i)}getContinentalness(t,e){return this.continentalnessNoise.sample(t,0,e)}getErosion(t,e){return this.erosionNoise.sample(t,0,e)}getWeirdness(t,e){return this.weirdnessNoise.sample(t,0,e)}makeBaseNoiseFiller(t,e,i){const s=this.baseNoise(t),n=i?this.noodleToggleNoise(t):()=>-1,r=i?this.noodleThicknessNoise(t):()=>0,o=i?this.noodleRidgeANoise(t):()=>0,a=i?this.noodleRidgeBNoise(t):()=>0;return(t,i,l)=>{let h=s();if(h=L(.64*h,-1,1),h=h/2-h*h*h/24,n()>=0){const t=J(r(),-1,1,.05,.1),e=Math.abs(1.5*o())-t,i=Math.abs(1.5*a())-t;h=Math.min(h,Math.max(e,i))}return h+=e(t,i,l),h>0?null:x.AIR}}calculateBlendedBaseNoise(t,e,i,s){const n=this.blendedNoise.sample(t,e,i);return this.calculateBaseNoise(t,e,i,s,n,!this.isNoiseCavesEnabled,!0)}calculateBaseNoise(t,e,i,s,n,r,o){if(!this.settings.islandNoiseOverride){const r=o?this.sampleJaggedNoise(s.jaggedness,t,i):0,a=this.computeDimensionDensity(e,s),l=s.factor*(r+a);n+=l>0?4*l:l}let a=-64,l=64;if(!r&&n>=-64){const s=n-1.5625,r=this.getBigEntrances(t,e,i),o=this.getSpaghettiRoughness(t,e,i),h=this.getSpaghetti3D(t,e,i),u=Math.min(r,h+o);if(s<0)l=u;else{const r=this.getLayerizedCaverns(t,e,i);if(r>64)n=64;else{n=this.getCheese(t,e,i)+r+H(.5,0,1.28*s)}const h=this.getSpaghetti2D(t,e,i);a=this.getPillars(t,e,i),l=Math.min(u,h+o)}}return n=L(n,a,l),n=L(n=this.applySlide(n,e/Ot.cellHeight(this.settings)),-64,64)}sampleJaggedNoise(t,e,i){if(0===t)return 0;const s=this.jaggedNoise.sample(1500*e,0,1500*i);return s>0?t*s:t/2*s}computeDimensionDensity(t,e){return 1-t/128+e.offset}getBigEntrances(t,e,i){return this.bigEntranceNoise.sample(.75*t,.5*e,.75*i)+.37+H(.3,0,(e+10)/40)}getSpaghettiRoughness(t,e,i){const s=this.spaghettiRoughnessNoise.sample(t,e,i),n=j(this.spaghettiRoughnessModulator.sample(t,e,i),-1,1,0,1);return(.4-Math.abs(s))*n}getSpaghetti2D(t,e,i){const s=this.quantizeSpaghettiRarity2D(this.spaghetti2DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti2DThicknessModulator.sample(2*t,e,2*i),-1,1,.6,1.3),r=this.sampleWithRarity(this.spaghetti2DNoise,t,e,i,s),o=Math.abs(s*r)-.083*n,a=Ot.minCellY(this.settings),l=j(this.spaghetti2DElevationModulator.sample(t,0,i),-1,1,a,8),h=Math.abs(l-e/8)-1*n;return L(Math.max(h,o),-1,1)}getSpaghetti3D(t,e,i){const s=this.quantizeSpaghettiRarity3D(this.spaghetti3DRarityModulator.sample(2*t,e,2*i)),n=j(this.spaghetti3DThicknessModulator.sample(t,e,i),-1,1,.065,.088),r=this.sampleWithRarity(this.spaghetti3DNoise1,t,e,i,s),o=Math.abs(s*r)-n,a=this.sampleWithRarity(this.spaghetti3DNoise2,t,e,i,s),l=Math.abs(s*a)-n;return L(Math.max(o,l),-1,1)}quantizeSpaghettiRarity2D(t){return t<-.75?.5:t<-.5?.75:t<.5?1:t<.75?2:3}quantizeSpaghettiRarity3D(t){return t<-.5?.75:t<0?1:t<.5?1.5:2}sampleWithRarity(t,e,i,s,n){return t.sample(e/n,i/n,s/n)}getLayerizedCaverns(t,e,i){return 4*O(this.layerNoise.sample(t,8*e,i))}getCheese(t,e,i){return L(this.cheeseNoise.sample(t,e/1.5,i)+.27,-1,1)}getPillars(t,e,i){const s=j(this.pillarRarenessModulator.sample(t,e,i),-1,1,0,2),n=j(this.pillarThicknessModulator.sample(t,e,i),-1,1,0,1.1),r=this.pillarNoise.sample(25*t,.3*e,25*i),o=Math.pow(n,3)*(2*r-s);return o<=.03?Number.MIN_SAFE_INTEGER:o}applySlide(t,e){const i=e-Ot.minCellY(this.settings);return t=Lt.apply(this.settings.topSlide,t,Ot.cellCountY(this.settings)-i),t=Lt.apply(this.settings.bottomSlide,t,i)}getPreliminarySurfaceLevel(t,e,i){const s=Ot.minCellY(this.settings)+Ot.cellCountY(this.settings),n=Ot.minCellY(this.settings),r=Ot.cellHeight(this.settings);for(let o=s;o>=n;o-=1){const s=o*r;if(this.calculateBaseNoise(t,s,e,i,-.703125,!0,!1)>=.390625)return s}return Number.MAX_SAFE_INTEGER}}!function(t){t.create=function(t,e,i,s,n,r){return{shiftedX:t,shiftedZ:e,continentalness:i,weirdness:s,erosion:n,terrainInfo:r}}}(Gt||(Gt={})),function(t){t.fromJson=function(t){var e,i,s,n;const r=null!==(e=_.readObject(t))&&void 0!==e?e:{};return void 0!==r.absolute?(o=null!==(i=_.readNumber(r.absolute))&&void 0!==i?i:0,()=>o):void 0!==r.above_bottom?function(t){return e=>e.minY+t}(null!==(s=_.readNumber(r.above_bottom))&&void 0!==s?s:0):void 0!==r.below_top?function(t){return e=>e.maxY-t}(null!==(n=_.readNumber(r.below_top))&&void 0!==n?n:0):()=>0;var o}}(Ht||(Ht={})),function(t){t.create=function(t,e){return{minY:t,height:e,maxY:t+e-1}}}(Vt||(Vt={}));class te{constructor(t,e,i){this.rule=t,this.defaultBlock=e,this.random=K.create(i).forkPositional(),this.surfaceNoise=Yt.instantiate(this.random,Yt.SURFACE),this.surfaceSecondaryNoise=Yt.instantiate(this.random,Yt.SURFACE_SECONDARY),this.positionalRandoms=new Map}buildSurface(t,e,i,s){const n=y.minBlockX(t.pos),r=y.minBlockZ(t.pos),o=new ee(this,t,e,i,s),l=this.rule(o);for(let e=0;e<16;e+=1){const i=n+e;for(let e=0;e<1;e+=1){const s=r+e;o.updateXZ(i,s);let n=0,h=Number.MIN_SAFE_INTEGER,u=Number.MAX_SAFE_INTEGER;for(let e=t.maxY;e>=t.minY;e-=1){const r=a.create(i,e,s),c=t.getBlockState(r);if(c.equals(x.AIR)){n=0,h=Number.MIN_SAFE_INTEGER;continue}if(c.isFluid()){h===Number.MIN_SAFE_INTEGER&&(h=e+1);continue}if(u>=e){u=Number.MIN_SAFE_INTEGER;for(let n=e-1;n>=t.minY;n-=1){const e=t.getBlockState(a.create(i,n,s));if(e.equals(x.AIR)||e.isFluid()){u=n+1;break}}}n+=1;const d=e-u+1;if(!c.equals(this.defaultBlock))continue;o.updateY(n,d,h,e);const f=l(i,e,s);f&&t.setBlockState(r,f)}}}}getSurfaceDepth(t,e){return 2.75*this.surfaceNoise.sample(t,0,e)+3+.25*this.random.at(t,0,e).nextDouble()}getSurfaceSecondary(t,e){return this.surfaceSecondaryNoise.sample(t,0,e)}getRandom(t){return M(this.positionalRandoms,t,(()=>this.random.fromHashOf(t)))}}class ee{constructor(t,e,i,s,n){this.system=t,this.chunk=e,this.noiseChunk=i,this.context=s,this.getBiome=n,this.blockX=0,this.blockY=0,this.blockZ=0,this.stoneDepthAbove=0,this.stoneDepthBelow=0,this.surfaceDepth=0,this.waterHeight=0,this.biome=()=>\"\",this.surfaceSecondary=()=>0,this.minSurfaceLevel=()=>0}updateXZ(t,e){this.blockX=t,this.blockZ=e,this.surfaceDepth=this.system.getSurfaceDepth(t,e),this.surfaceSecondary=D((()=>this.system.getSurfaceSecondary(t,e))),this.minSurfaceLevel=D((()=>this.calculateMinSurfaceLevel(t,e)))}updateY(t,e,i,s){this.blockY=s,this.stoneDepthAbove=t,this.stoneDepthBelow=e,this.waterHeight=i,this.biome=D((()=>this.getBiome(a.create(this.blockX,this.blockY,this.blockZ))))}calculateMinSurfaceLevel(t,e){const i=t>>4,s=e>>4,n=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s<<4),r=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s<<4),o=this.noiseChunk.getPreliminarySurfaceLevel(i<<4,s+1<<4),a=this.noiseChunk.getPreliminarySurfaceLevel(i+1<<4,s+1<<4);return Math.floor(Y((15&t)/16,(15&e)/16,n,r,o,a))+this.surfaceDepth-8}}!function(t){function e(t){return()=>()=>t}function i(t){return e=>{const i=t.map((t=>t(e)));return(t,e,s)=>{for(const n of i){const i=n(t,e,s);if(i)return i}}}}function s(t,e){return i=>(s,n,r)=>{if(t(i))return e(i)(s,n,r)}}t.NOOP=()=>()=>{},t.fromJson=function(n){var r,o,a;const l=null!==(r=_.readObject(n))&&void 0!==r?r:{};switch(null===(o=_.readString(l.type))||void 0===o?void 0:o.replace(/^minecraft:/,\"\")){case\"block\":return e(x.fromJson(l.result_state));case\"sequence\":return i(null!==(a=_.readArray(l.sequence,t.fromJson))&&void 0!==a?a:[]);case\"condition\":return s(jt.fromJson(l.if_true),t.fromJson(l.then_run))}return t.NOOP},t.block=e,t.sequence=i,t.condition=s}(zt||(zt={})),function(t){function e(){return t=>t.blockY>=t.minSurfaceLevel()}function i(t){const e=new Set(t);return t=>e.has(t.biome())}function s(t){return e=>!t(e)}function n(t,e,i,s){return n=>{const r=s?n.stoneDepthBelow:n.stoneDepthAbove,o=e?n.surfaceDepth:0,a=0===i?0:j(n.surfaceSecondary(),-1,1,0,i);return r<=1+t+o+a}}function r(t,e,i){return s=>{const n=e(s.context),r=i(s.context);if(s.blockY<=n)return!0;if(s.blockY>=r)return!1;const o=s.system.getRandom(t),a=j(s.blockY,n,r,1,0);return o.nextFloat(){if(s.waterHeight===Number.MIN_SAFE_INTEGER)return!0;const n=i?s.stoneDepthAbove:0;return s.blockY+n>=s.waterHeight+t+s.surfaceDepth*e}}function a(t,e,i){return s=>{const n=i?s.stoneDepthAbove:0;return s.blockY+n>=t(s.context)+s.surfaceDepth*e}}t.FALSE=()=>!1,t.TRUE=()=>!0,t.fromJson=function(e){var l,h,u,c,d,f,g,p,m,v,b,S;const E=null!==(l=_.readObject(e))&&void 0!==l?l:{};switch(null===(h=_.readString(E.type))||void 0===h?void 0:h.replace(/^minecraft:/,\"\")){case\"above_preliminary_surface\":return t=>t.blockY>=t.minSurfaceLevel();case\"biome\":return i(null!==(u=_.readArray(E.biome_is,(t=>{var e;return null!==(e=_.readString(t))&&void 0!==e?e:\"\"})))&&void 0!==u?u:[]);case\"not\":return s(t.fromJson(E.invert));case\"stone_depth\":return n(null!==(c=_.readInt(E.offset))&&void 0!==c?c:0,null!==(d=_.readBoolean(E.add_surface_depth))&&void 0!==d&&d,null!==(f=_.readInt(E.secondary_depth_range))&&void 0!==f?f:0,\"ceiling\"===_.readString(E.surface_type));case\"vertical_gradient\":return r(null!==(g=_.readString(E.random_name))&&void 0!==g?g:\"\",Ht.fromJson(E.true_at_and_below),Ht.fromJson(E.false_at_and_above));case\"water\":return o(null!==(p=_.readInt(E.offset))&&void 0!==p?p:0,null!==(m=_.readInt(E.surface_depth_multiplier))&&void 0!==m?m:0,null!==(v=_.readBoolean(E.add_surface_depth))&&void 0!==v&&v);case\"y_above\":return a(Ht.fromJson(E.anchor),null!==(b=_.readInt(E.surface_depth_multiplier))&&void 0!==b?b:0,null!==(S=_.readBoolean(E.add_surface_depth))&&void 0!==S&&S)}return t.FALSE},t.abovePreliminarySurface=e,t.biome=i,t.not=s,t.stoneDepth=n,t.verticalGradient=r,t.water=o,t.yAbove=a}(jt||(jt={}));class ie{constructor(t,e,i){this.biomeSource=e,this.settings=i,this.sampler=new Qt(i.noise,i.noiseCavesEnabled,t,i.legacyRandomSource),this.noiseChunkCache=new Map,this.materialRule=Mt.fromList([(t,e,i,s)=>t.updateNoiseAndGenerateBaseState(e,i,s)]),this.surfaceSystem=new te(i.surfaceRule,i.defaultBlock,t)}fill(t){var e;const i=Math.max(t.minY,this.settings.noise.minY),s=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),n=Ot.cellWidth(this.settings.noise),r=Ot.cellHeight(this.settings.noise),o=Math.floor(16/n),a=Math.floor(i/r),l=Math.floor((s-i)/r),h=y.minBlockX(t.pos),u=y.minBlockZ(t.pos),c=this.getNoiseChunk(t);c.initializeForFirstCellX();for(let i=0;i=0;d-=1){c.selectCellYZ(d,s);for(let l=r-1;l>=0;l-=1){const f=(a+d)*r+l,g=15&f,p=t.getSectionIndex(f);t.getSectionIndex(o.minBlockY)!==p&&(o=t.getOrCreateSection(p));const m=l/r;c.updateForY(m);for(let t=0;te))}getNoiseChunk(t){return M(this.noiseChunkCache,y.toLong(t.pos),(()=>{const e=Math.max(t.minY,this.settings.noise.minY),i=Math.min(t.maxY,this.settings.noise.minY+this.settings.noise.height),s=Ot.cellWidth(this.settings.noise),n=Ot.cellHeight(this.settings.noise),r=Math.floor(16/s),o=Math.floor(e/n),a=Math.floor((i-e)/n),l=y.minBlockX(t.pos),h=y.minBlockZ(t.pos);return new Kt(r,a,o,this.sampler,l,h,(()=>0),this.settings)}))}}!function(t){t.fromJson=function(t){var e,i,s,n,r,o,a,l,h,u,c;const d=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{structures:Xt.fromJson(d.structures),surfaceRule:zt.fromJson(d.surface_rule),noise:Ot.fromJson(d.noise),defaultBlock:x.fromJson(d.default_block),defaultFluid:x.fromJson(d.default_fluid),bedrockRoofPosition:null!==(i=_.readInt(d.bedrock_roof_position))&&void 0!==i?i:0,bedrockFloorPosition:null!==(s=_.readInt(d.bedrock_floor_position))&&void 0!==s?s:0,seaLevel:null!==(n=_.readInt(d.sea_level))&&void 0!==n?n:0,disableMobGeneration:null!==(r=_.readBoolean(d.disable_mob_generation))&&void 0!==r&&r,aquifersEnabled:null!==(o=_.readBoolean(d.aquifers_enabled))&&void 0!==o&&o,noiseCavesEnabled:null!==(a=_.readBoolean(d.noise_caves_enabled))&&void 0!==a&&a,deepslateEnabled:null!==(l=_.readBoolean(d.deepslate_enabled))&&void 0!==l&&l,oreVeinsEnabled:null!==(h=_.readBoolean(d.ore_veins_enabled))&&void 0!==h&&h,noodleCavesEnabled:null!==(u=_.readBoolean(d.noodle_caves_enabled))&&void 0!==u&&u,legacyRandomSource:null!==(c=_.readBoolean(d.legacy_random_source))&&void 0!==c&&c}}}(Jt||(Jt={})),function(t){t.fromJson=function(t){var e;const i=null!==(e=_.readObject(t))&&void 0!==e?e:{};return{stronghold:_.compose(i.stronghold,_.readObject,(t=>{var e,i,s;return{distance:null!==(e=_.readInt(t.distance))&&void 0!==e?e:0,spread:null!==(i=_.readInt(t.spread))&&void 0!==i?i:0,count:null!==(s=_.readInt(t.count))&&void 0!==s?s:0}})),structures:_.readMap(i.structures,(t=>{var e;return(t=>{var e,i,s;return{spacing:null!==(e=_.readInt(t.spacing))&&void 0!==e?e:0,separation:null!==(i=_.readInt(t.separation))&&void 0!==i?i:0,salt:null!==(s=_.readInt(t.salt))&&void 0!==s?s:0}})(null!==(e=_.readObject(t))&&void 0!==e?e:{})}))}}}(Xt||(Xt={}));export{st as BlendedNoise,vt as BlockColors,It as BlockDefinition,_t as BlockModel,a as BlockPos,x as BlockState,C as Chunk,y as ChunkPos,T as ChunkSection,Dt as Climate,ot as ConstantProvider,r as Direction,Zt as FixedBiome,Gt as FlatNoiseData,et as ImprovedNoise,_ as Json,$ as LegacyPositionalRandom,q as LegacyRandom,Mt as MaterialRule,Wt as MultiNoise,u as NbtReader,c as NbtWriter,Kt as NoiseChunk,ie as NoiseChunkGenerator,Jt as NoiseGeneratorSettings,$t as NoiseInterpolator,R as NoiseParameters,Qt as NoiseSampler,P as NoiseSamplingSettings,Ot as NoiseSettings,Lt as NoiseSlideSettings,Yt as Noises,nt as NormalNoise,B as NumberProvider,it as PerlinNoise,rt as PerlinSimplexNoise,tt as SimplexNoise,at as Spline,k as Structure,Tt as StructureRenderer,Xt as StructureSettings,jt as SurfaceCondition,ee as SurfaceContext,zt as SurfaceRule,te as SurfaceSystem,Ut as TerrainInfo,qt as TerrainShaper,kt as TextureAtlas,Ht as VerticalAnchor,Vt as WorldgenContext,Q as XoroshiroPositionalRandom,K as XoroshiroRandom,X as binarySearch,L as clamp,H as clampedLerp,J as clampedMap,M as computeIfAbsent,N as getListTag,F as getOptional,Z as getSeed,A as getTag,V as inverseLerp,D as lazy,U as lerp,Y as lerp2,G as lerp3,W as longfromBytes,j as map,g as read,m as readChunk,f as readCompressed,p as readRegion,d as readUncompressed,z as smoothstep,O as square,h as tagNames,l as tagTypes,S as write,I as writeChunk,b as writeCompressed,E as writeRegion,v as writeUncompressed};\n//# sourceMappingURL=deepslate.esm.js.map\n","\nlet wasm;\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nlet cachegetUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachegetUint8Memory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\n\nconst u32CvtShim = new Uint32Array(2);\n\nconst int64CvtShim = new BigInt64Array(u32CvtShim.buffer);\n\nlet cachegetInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {\n cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachegetInt32Memory0;\n}\n\nlet cachegetFloat64Memory0 = null;\nfunction getFloat64Memory0() {\n if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {\n cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);\n }\n return cachegetFloat64Memory0;\n}\n\nfunction getArrayF64FromWasm0(ptr, len) {\n return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);\n}\n/**\n* @param {BigInt} seed\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function improved_noise(seed, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n wasm.improved_noise(retptr, low0, high0, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v1 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction passArrayF64ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 8);\n getFloat64Memory0().set(arg, ptr / 8);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function perlin_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.perlin_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function normal_noise(seed, first_octave, amplitudes, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n wasm.normal_noise(retptr, low0, high0, first_octave, ptr1, len1, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v2 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\nlet cachegetUint32Memory0 = null;\nfunction getUint32Memory0() {\n if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {\n cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachegetUint32Memory0;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4);\n getUint32Memory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n/**\n* @param {Float64Array} t_min\n* @param {Float64Array} t_max\n* @param {Float64Array} h_min\n* @param {Float64Array} h_max\n* @param {Float64Array} c_min\n* @param {Float64Array} c_max\n* @param {Float64Array} e_min\n* @param {Float64Array} e_max\n* @param {Float64Array} w_min\n* @param {Float64Array} w_max\n* @param {Float64Array} d_min\n* @param {Float64Array} d_max\n* @param {Float64Array} offset\n* @param {Int32Array} biome\n* @returns {ParameterList}\n*/\nexport function biome_parameters(t_min, t_max, h_min, h_max, c_min, c_max, e_min, e_max, w_min, w_max, d_min, d_max, offset, biome) {\n var ptr0 = passArrayF64ToWasm0(t_min, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ptr1 = passArrayF64ToWasm0(t_max, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_min, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(h_max, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(c_min, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(c_max, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(e_min, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ptr7 = passArrayF64ToWasm0(e_max, wasm.__wbindgen_malloc);\n var len7 = WASM_VECTOR_LEN;\n var ptr8 = passArrayF64ToWasm0(w_min, wasm.__wbindgen_malloc);\n var len8 = WASM_VECTOR_LEN;\n var ptr9 = passArrayF64ToWasm0(w_max, wasm.__wbindgen_malloc);\n var len9 = WASM_VECTOR_LEN;\n var ptr10 = passArrayF64ToWasm0(d_min, wasm.__wbindgen_malloc);\n var len10 = WASM_VECTOR_LEN;\n var ptr11 = passArrayF64ToWasm0(d_max, wasm.__wbindgen_malloc);\n var len11 = WASM_VECTOR_LEN;\n var ptr12 = passArrayF64ToWasm0(offset, wasm.__wbindgen_malloc);\n var len12 = WASM_VECTOR_LEN;\n var ptr13 = passArray32ToWasm0(biome, wasm.__wbindgen_malloc);\n var len13 = WASM_VECTOR_LEN;\n var ret = wasm.biome_parameters(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, ptr12, len12, ptr13, len13);\n return ParameterList.__wrap(ret);\n}\n\n/**\n* @param {number} first_octave\n* @param {Float64Array} amplitudes\n* @returns {NoiseParameters}\n*/\nexport function noise_parameters(first_octave, amplitudes) {\n var ptr0 = passArrayF64ToWasm0(amplitudes, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.noise_parameters(first_octave, ptr0, len0);\n return NoiseParameters.__wrap(ret);\n}\n\n/**\n* @param {BigInt} seed\n* @param {number} t_first\n* @param {Float64Array} t_amplitudes\n* @param {number} h_first\n* @param {Float64Array} h_amplitudes\n* @param {number} c_first\n* @param {Float64Array} c_amplitudes\n* @param {number} e_first\n* @param {Float64Array} e_amplitudes\n* @param {number} w_first\n* @param {Float64Array} w_amplitudes\n* @param {number} s_first\n* @param {Float64Array} s_amplitudes\n* @returns {Sampler}\n*/\nexport function climate_sampler(seed, t_first, t_amplitudes, h_first, h_amplitudes, c_first, c_amplitudes, e_first, e_amplitudes, w_first, w_amplitudes, s_first, s_amplitudes) {\n int64CvtShim[0] = seed;\n const low0 = u32CvtShim[0];\n const high0 = u32CvtShim[1];\n var ptr1 = passArrayF64ToWasm0(t_amplitudes, wasm.__wbindgen_malloc);\n var len1 = WASM_VECTOR_LEN;\n var ptr2 = passArrayF64ToWasm0(h_amplitudes, wasm.__wbindgen_malloc);\n var len2 = WASM_VECTOR_LEN;\n var ptr3 = passArrayF64ToWasm0(c_amplitudes, wasm.__wbindgen_malloc);\n var len3 = WASM_VECTOR_LEN;\n var ptr4 = passArrayF64ToWasm0(e_amplitudes, wasm.__wbindgen_malloc);\n var len4 = WASM_VECTOR_LEN;\n var ptr5 = passArrayF64ToWasm0(w_amplitudes, wasm.__wbindgen_malloc);\n var len5 = WASM_VECTOR_LEN;\n var ptr6 = passArrayF64ToWasm0(s_amplitudes, wasm.__wbindgen_malloc);\n var len6 = WASM_VECTOR_LEN;\n var ret = wasm.climate_sampler(low0, high0, t_first, ptr1, len1, h_first, ptr2, len2, c_first, ptr3, len3, e_first, ptr4, len4, w_first, ptr5, len5, s_first, ptr6, len6);\n return Sampler.__wrap(ret);\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n return instance.ptr;\n}\n/**\n* @param {ParameterList} parameters\n* @param {Float64Array} target\n* @returns {number}\n*/\nexport function find_biome(parameters, target) {\n _assertClass(parameters, ParameterList);\n var ptr0 = passArrayF64ToWasm0(target, wasm.__wbindgen_malloc);\n var len0 = WASM_VECTOR_LEN;\n var ret = wasm.find_biome(parameters.ptr, ptr0, len0);\n return ret;\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);\n}\n/**\n* @param {ParameterList} parameters\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Int32Array}\n*/\nexport function multi_noise(parameters, sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(parameters, ParameterList);\n _assertClass(sampler, Sampler);\n wasm.multi_noise(retptr, parameters.ptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayI32FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 4);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {Sampler} sampler\n* @param {number} x_from\n* @param {number} x_to\n* @param {number} x_step\n* @param {number} y_from\n* @param {number} y_to\n* @param {number} y_step\n* @param {number} z_from\n* @param {number} z_to\n* @param {number} z_step\n* @returns {Float64Array}\n*/\nexport function climate_noise(sampler, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertClass(sampler, Sampler);\n wasm.climate_noise(retptr, sampler.ptr, x_from, x_to, x_step, y_from, y_to, y_step, z_from, z_to, z_step);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var v0 = getArrayF64FromWasm0(r0, r1).slice();\n wasm.__wbindgen_free(r0, r1 * 8);\n return v0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n}\n\n/**\n* @param {number} x\n* @returns {Test}\n*/\nexport function create_test(x) {\n var ret = wasm.create_test(x);\n return Test.__wrap(ret);\n}\n\n/**\n* @param {Test} test\n* @returns {number}\n*/\nexport function calc_test(test) {\n _assertClass(test, Test);\n var ret = wasm.calc_test(test.ptr);\n return ret;\n}\n\n/**\n*/\nexport class ImprovedNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_improvednoise_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseOctaves {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseoctaves_free(ptr);\n }\n}\n/**\n*/\nexport class NoiseParameters {\n\n static __wrap(ptr) {\n const obj = Object.create(NoiseParameters.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_noiseparameters_free(ptr);\n }\n}\n/**\n*/\nexport class NormalNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_normalnoise_free(ptr);\n }\n}\n/**\n*/\nexport class ParameterList {\n\n static __wrap(ptr) {\n const obj = Object.create(ParameterList.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_parameterlist_free(ptr);\n }\n}\n/**\n*/\nexport class PerlinNoise {\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_perlinnoise_free(ptr);\n }\n}\n/**\n*/\nexport class Sampler {\n\n static __wrap(ptr) {\n const obj = Object.create(Sampler.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_sampler_free(ptr);\n }\n}\n/**\n*/\nexport class Test {\n\n static __wrap(ptr) {\n const obj = Object.create(Test.prototype);\n obj.ptr = ptr;\n\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.ptr;\n this.ptr = 0;\n\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_test_free(ptr);\n }\n}\n\nasync function load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nasync function init(input) {\n if (typeof input === 'undefined') {\n input = new URL('deepslate_rs_bg.wasm', import.meta.url);\n }\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n\n if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {\n input = fetch(input);\n }\n\n\n\n const { instance, module } = await load(await input, imports);\n\n wasm = instance.exports;\n init.__wbindgen_wasm_module = module;\n\n return wasm;\n}\n\nexport default init;\n\n","export default \"__VITE_ASSET__4990c219__\"","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (acequire, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof acequirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _acequire = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && acequire.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar acequire = function(module, callback) {\n var packagedModule = _acequire(\"\", module, callback);\n if (packagedModule == undefined && acequire.original)\n return acequire.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin acequires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative acequires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _acequire(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.acequire || !root.acequire.packaged) {\n acequire.original = root.acequire;\n root.acequire = acequire;\n root.acequire.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/regexp\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\n var real = {\n exec: RegExp.prototype.exec,\n test: RegExp.prototype.test,\n match: String.prototype.match,\n replace: String.prototype.replace,\n split: String.prototype.split\n },\n compliantExecNpcg = real.exec.call(/()??/, \"\")[1] === undefined, // check `exec` handling of nonparticipating capturing groups\n compliantLastIndexIncrement = function () {\n var x = /^/g;\n real.test.call(x, \"\");\n return !x.lastIndex;\n }();\n\n if (compliantLastIndexIncrement && compliantExecNpcg)\n return;\n RegExp.prototype.exec = function (str) {\n var match = real.exec.apply(this, arguments),\n name, r2;\n if ( typeof(str) == 'string' && match) {\n if (!compliantExecNpcg && match.length > 1 && indexOf(match, \"\") > -1) {\n r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), \"g\", \"\"));\n real.replace.call(str.slice(match.index), r2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined)\n match[i] = undefined;\n }\n });\n }\n if (this._xregexp && this._xregexp.captureNames) {\n for (var i = 1; i < match.length; i++) {\n name = this._xregexp.captureNames[i - 1];\n if (name)\n match[name] = match[i];\n }\n }\n if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n }\n return match;\n };\n if (!compliantLastIndexIncrement) {\n RegExp.prototype.test = function (str) {\n var match = real.exec.call(this, str);\n if (match && this.global && !match[0].length && (this.lastIndex > match.index))\n this.lastIndex--;\n return !!match;\n };\n }\n\n function getNativeFlags (regex) {\n return (regex.global ? \"g\" : \"\") +\n (regex.ignoreCase ? \"i\" : \"\") +\n (regex.multiline ? \"m\" : \"\") +\n (regex.extended ? \"x\" : \"\") + // Proposed for ES4; included in AS3\n (regex.sticky ? \"y\" : \"\");\n }\n\n function indexOf (array, item, from) {\n if (Array.prototype.indexOf) // Use the native array method if available\n return array.indexOf(item, from);\n for (var i = from || 0; i < array.length; i++) {\n if (array[i] === item)\n return i;\n }\n return -1;\n }\n\n});\n\nace.define(\"ace/lib/es5-shim\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\nfunction Empty() {}\n\nif (!Function.prototype.bind) {\n Function.prototype.bind = function bind(that) { // .length is 1\n var target = this;\n if (typeof target != \"function\") {\n throw new TypeError(\"Function.prototype.bind called on incompatible \" + target);\n }\n var args = slice.call(arguments, 1); // for normal call\n var bound = function () {\n\n if (this instanceof bound) {\n\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n\n }\n\n };\n if(target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n}\nvar call = Function.prototype.call;\nvar prototypeOfArray = Array.prototype;\nvar prototypeOfObject = Object.prototype;\nvar slice = prototypeOfArray.slice;\nvar _toString = call.bind(prototypeOfObject.toString);\nvar owns = call.bind(prototypeOfObject.hasOwnProperty);\nvar defineGetter;\nvar defineSetter;\nvar lookupGetter;\nvar lookupSetter;\nvar supportsAccessors;\nif ((supportsAccessors = owns(prototypeOfObject, \"__defineGetter__\"))) {\n defineGetter = call.bind(prototypeOfObject.__defineGetter__);\n defineSetter = call.bind(prototypeOfObject.__defineSetter__);\n lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);\n lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);\n}\nif ([1,2].splice(0).length != 2) {\n if(function() { // test IE < 9 to splice bug - see issue #138\n function makeArray(l) {\n var a = new Array(l+2);\n a[0] = a[1] = 0;\n return a;\n }\n var array = [], lengthBefore;\n \n array.splice.apply(array, makeArray(20));\n array.splice.apply(array, makeArray(26));\n\n lengthBefore = array.length; //46\n array.splice(5, 0, \"XXX\"); // add one element\n\n lengthBefore + 1 == array.length\n\n if (lengthBefore + 1 == array.length) {\n return true;// has right splice implementation without bugs\n }\n }()) {//IE 6/7\n var array_splice = Array.prototype.splice;\n Array.prototype.splice = function(start, deleteCount) {\n if (!arguments.length) {\n return [];\n } else {\n return array_splice.apply(this, [\n start === void 0 ? 0 : start,\n deleteCount === void 0 ? (this.length - start) : deleteCount\n ].concat(slice.call(arguments, 2)))\n }\n };\n } else {//IE8\n Array.prototype.splice = function(pos, removeCount){\n var length = this.length;\n if (pos > 0) {\n if (pos > length)\n pos = length;\n } else if (pos == void 0) {\n pos = 0;\n } else if (pos < 0) {\n pos = Math.max(length + pos, 0);\n }\n\n if (!(pos+removeCount < length))\n removeCount = length - pos;\n\n var removed = this.slice(pos, pos+removeCount);\n var insert = slice.call(arguments, 2);\n var add = insert.length; \n if (pos === length) {\n if (add) {\n this.push.apply(this, insert);\n }\n } else {\n var remove = Math.min(removeCount, length - pos);\n var tailOldPos = pos + remove;\n var tailNewPos = tailOldPos + add - remove;\n var tailCount = length - tailOldPos;\n var lengthAfterRemove = length - remove;\n\n if (tailNewPos < tailOldPos) { // case A\n for (var i = 0; i < tailCount; ++i) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } else if (tailNewPos > tailOldPos) { // case B\n for (i = tailCount; i--; ) {\n this[tailNewPos+i] = this[tailOldPos+i];\n }\n } // else, add == remove (nothing to do)\n\n if (add && pos === lengthAfterRemove) {\n this.length = lengthAfterRemove; // truncate array\n this.push.apply(this, insert);\n } else {\n this.length = lengthAfterRemove + add; // reserves space\n for (i = 0; i < add; ++i) {\n this[pos+i] = insert[i];\n }\n }\n }\n return removed;\n };\n }\n}\nif (!Array.isArray) {\n Array.isArray = function isArray(obj) {\n return _toString(obj) == \"[object Array]\";\n };\n}\nvar boxedString = Object(\"a\"),\n splitString = boxedString[0] != \"a\" || !(0 in boxedString);\n\nif (!Array.prototype.forEach) {\n Array.prototype.forEach = function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n fun.call(thisp, self[i], i, object);\n }\n }\n };\n}\nif (!Array.prototype.map) {\n Array.prototype.map = function map(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = Array(length),\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self)\n result[i] = fun.call(thisp, self[i], i, object);\n }\n return result;\n };\n}\nif (!Array.prototype.filter) {\n Array.prototype.filter = function filter(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n result = [],\n value,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self) {\n value = self[i];\n if (fun.call(thisp, value, i, object)) {\n result.push(value);\n }\n }\n }\n return result;\n };\n}\nif (!Array.prototype.every) {\n Array.prototype.every = function every(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && !fun.call(thisp, self[i], i, object)) {\n return false;\n }\n }\n return true;\n };\n}\nif (!Array.prototype.some) {\n Array.prototype.some = function some(fun /*, thisp */) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0,\n thisp = arguments[1];\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n\n for (var i = 0; i < length; i++) {\n if (i in self && fun.call(thisp, self[i], i, object)) {\n return true;\n }\n }\n return false;\n };\n}\nif (!Array.prototype.reduce) {\n Array.prototype.reduce = function reduce(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n\n var i = 0;\n var result;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i++];\n break;\n }\n if (++i >= length) {\n throw new TypeError(\"reduce of empty array with no initial value\");\n }\n } while (true);\n }\n\n for (; i < length; i++) {\n if (i in self) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n }\n\n return result;\n };\n}\nif (!Array.prototype.reduceRight) {\n Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {\n var object = toObject(this),\n self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n object,\n length = self.length >>> 0;\n if (_toString(fun) != \"[object Function]\") {\n throw new TypeError(fun + \" is not a function\");\n }\n if (!length && arguments.length == 1) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n\n var result, i = length - 1;\n if (arguments.length >= 2) {\n result = arguments[1];\n } else {\n do {\n if (i in self) {\n result = self[i--];\n break;\n }\n if (--i < 0) {\n throw new TypeError(\"reduceRight of empty array with no initial value\");\n }\n } while (true);\n }\n\n do {\n if (i in this) {\n result = fun.call(void 0, result, self[i], i, object);\n }\n } while (i--);\n\n return result;\n };\n}\nif (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {\n Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {\n Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {\n var self = splitString && _toString(this) == \"[object String]\" ?\n this.split(\"\") :\n toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n var i = length - 1;\n if (arguments.length > 1) {\n i = Math.min(i, toInteger(arguments[1]));\n }\n i = i >= 0 ? i : length - Math.abs(i);\n for (; i >= 0; i--) {\n if (i in self && sought === self[i]) {\n return i;\n }\n }\n return -1;\n };\n}\nif (!Object.getPrototypeOf) {\n Object.getPrototypeOf = function getPrototypeOf(object) {\n return object.__proto__ || (\n object.constructor ?\n object.constructor.prototype :\n prototypeOfObject\n );\n };\n}\nif (!Object.getOwnPropertyDescriptor) {\n var ERR_NON_OBJECT = \"Object.getOwnPropertyDescriptor called on a \" +\n \"non-object: \";\n Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT + object);\n if (!owns(object, property))\n return;\n\n var descriptor, getter, setter;\n descriptor = { enumerable: true, configurable: true };\n if (supportsAccessors) {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n\n var getter = lookupGetter(object, property);\n var setter = lookupSetter(object, property);\n object.__proto__ = prototype;\n\n if (getter || setter) {\n if (getter) descriptor.get = getter;\n if (setter) descriptor.set = setter;\n return descriptor;\n }\n }\n descriptor.value = object[property];\n return descriptor;\n };\n}\nif (!Object.getOwnPropertyNames) {\n Object.getOwnPropertyNames = function getOwnPropertyNames(object) {\n return Object.keys(object);\n };\n}\nif (!Object.create) {\n var createEmpty;\n if (Object.prototype.__proto__ === null) {\n createEmpty = function () {\n return { \"__proto__\": null };\n };\n } else {\n createEmpty = function () {\n var empty = {};\n for (var i in empty)\n empty[i] = null;\n empty.constructor =\n empty.hasOwnProperty =\n empty.propertyIsEnumerable =\n empty.isPrototypeOf =\n empty.toLocaleString =\n empty.toString =\n empty.valueOf =\n empty.__proto__ = null;\n return empty;\n }\n }\n\n Object.create = function create(prototype, properties) {\n var object;\n if (prototype === null) {\n object = createEmpty();\n } else {\n if (typeof prototype != \"object\")\n throw new TypeError(\"typeof prototype[\"+(typeof prototype)+\"] != 'object'\");\n var Type = function () {};\n Type.prototype = prototype;\n object = new Type();\n object.__proto__ = prototype;\n }\n if (properties !== void 0)\n Object.defineProperties(object, properties);\n return object;\n };\n}\n\nfunction doesDefinePropertyWork(object) {\n try {\n Object.defineProperty(object, \"sentinel\", {});\n return \"sentinel\" in object;\n } catch (exception) {\n }\n}\nif (Object.defineProperty) {\n var definePropertyWorksOnObject = doesDefinePropertyWork({});\n var definePropertyWorksOnDom = typeof document == \"undefined\" ||\n doesDefinePropertyWork(document.createElement(\"div\"));\n if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {\n var definePropertyFallback = Object.defineProperty;\n }\n}\n\nif (!Object.defineProperty || definePropertyFallback) {\n var ERR_NON_OBJECT_DESCRIPTOR = \"Property description must be an object: \";\n var ERR_NON_OBJECT_TARGET = \"Object.defineProperty called on non-object: \"\n var ERR_ACCESSORS_NOT_SUPPORTED = \"getters & setters can not be defined \" +\n \"on this javascript engine\";\n\n Object.defineProperty = function defineProperty(object, property, descriptor) {\n if ((typeof object != \"object\" && typeof object != \"function\") || object === null)\n throw new TypeError(ERR_NON_OBJECT_TARGET + object);\n if ((typeof descriptor != \"object\" && typeof descriptor != \"function\") || descriptor === null)\n throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);\n if (definePropertyFallback) {\n try {\n return definePropertyFallback.call(Object, object, property, descriptor);\n } catch (exception) {\n }\n }\n if (owns(descriptor, \"value\")) {\n\n if (supportsAccessors && (lookupGetter(object, property) ||\n lookupSetter(object, property)))\n {\n var prototype = object.__proto__;\n object.__proto__ = prototypeOfObject;\n delete object[property];\n object[property] = descriptor.value;\n object.__proto__ = prototype;\n } else {\n object[property] = descriptor.value;\n }\n } else {\n if (!supportsAccessors)\n throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);\n if (owns(descriptor, \"get\"))\n defineGetter(object, property, descriptor.get);\n if (owns(descriptor, \"set\"))\n defineSetter(object, property, descriptor.set);\n }\n\n return object;\n };\n}\nif (!Object.defineProperties) {\n Object.defineProperties = function defineProperties(object, properties) {\n for (var property in properties) {\n if (owns(properties, property))\n Object.defineProperty(object, property, properties[property]);\n }\n return object;\n };\n}\nif (!Object.seal) {\n Object.seal = function seal(object) {\n return object;\n };\n}\nif (!Object.freeze) {\n Object.freeze = function freeze(object) {\n return object;\n };\n}\ntry {\n Object.freeze(function () {});\n} catch (exception) {\n Object.freeze = (function freeze(freezeObject) {\n return function freeze(object) {\n if (typeof object == \"function\") {\n return object;\n } else {\n return freezeObject(object);\n }\n };\n })(Object.freeze);\n}\nif (!Object.preventExtensions) {\n Object.preventExtensions = function preventExtensions(object) {\n return object;\n };\n}\nif (!Object.isSealed) {\n Object.isSealed = function isSealed(object) {\n return false;\n };\n}\nif (!Object.isFrozen) {\n Object.isFrozen = function isFrozen(object) {\n return false;\n };\n}\nif (!Object.isExtensible) {\n Object.isExtensible = function isExtensible(object) {\n if (Object(object) === object) {\n throw new TypeError(); // TODO message\n }\n var name = '';\n while (owns(object, name)) {\n name += '?';\n }\n object[name] = true;\n var returnValue = owns(object, name);\n delete object[name];\n return returnValue;\n };\n}\nif (!Object.keys) {\n var hasDontEnumBug = true,\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ],\n dontEnumsLength = dontEnums.length;\n\n for (var key in {\"toString\": null}) {\n hasDontEnumBug = false;\n }\n\n Object.keys = function keys(object) {\n\n if (\n (typeof object != \"object\" && typeof object != \"function\") ||\n object === null\n ) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n\n var keys = [];\n for (var name in object) {\n if (owns(object, name)) {\n keys.push(name);\n }\n }\n\n if (hasDontEnumBug) {\n for (var i = 0, ii = dontEnumsLength; i < ii; i++) {\n var dontEnum = dontEnums[i];\n if (owns(object, dontEnum)) {\n keys.push(dontEnum);\n }\n }\n }\n return keys;\n };\n\n}\nif (!Date.now) {\n Date.now = function now() {\n return new Date().getTime();\n };\n}\nvar ws = \"\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\" +\n \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" +\n \"\\u2029\\uFEFF\";\nif (!String.prototype.trim || ws.trim()) {\n ws = \"[\" + ws + \"]\";\n var trimBeginRegexp = new RegExp(\"^\" + ws + ws + \"*\"),\n trimEndRegexp = new RegExp(ws + ws + \"*$\");\n String.prototype.trim = function trim() {\n return String(this).replace(trimBeginRegexp, \"\").replace(trimEndRegexp, \"\");\n };\n}\n\nfunction toInteger(n) {\n n = +n;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction isPrimitive(input) {\n var type = typeof input;\n return (\n input === null ||\n type === \"undefined\" ||\n type === \"boolean\" ||\n type === \"number\" ||\n type === \"string\"\n );\n}\n\nfunction toPrimitive(input) {\n var val, valueOf, toString;\n if (isPrimitive(input)) {\n return input;\n }\n valueOf = input.valueOf;\n if (typeof valueOf === \"function\") {\n val = valueOf.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n toString = input.toString;\n if (typeof toString === \"function\") {\n val = toString.call(input);\n if (isPrimitive(val)) {\n return val;\n }\n }\n throw new TypeError();\n}\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \"+o+\" to object\");\n }\n return Object(o);\n};\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/regexp\",\"ace/lib/es5-shim\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./regexp\");\nacequire(\"./es5-shim\");\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\n\nexports.getDocumentHead = function(doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\n\nexports.createElement = function(tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\n\nexports.hasCssClass = function(el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function(el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\n\nexports.toggleCssClass = function(el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function(node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n } else {\n exports.removeCssClass(node, className);\n }\n};\n\nexports.hasCssString = function(id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n\n if (doc.createStyleSheet && (sheets = doc.styleSheets)) {\n while (index < sheets.length)\n if (sheets[index++].owningElement.id === id) return true;\n } else if ((sheets = doc.getElementsByTagName(\"style\"))) {\n while (index < sheets.length)\n if (sheets[index++].id === id) return true;\n }\n\n return false;\n};\n\nexports.importCssString = function importCssString(cssText, id, doc) {\n doc = doc || document;\n if (id && exports.hasCssString(id, doc))\n return null;\n \n var style;\n \n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n \n if (doc.createStyleSheet) {\n style = doc.createStyleSheet();\n style.cssText = cssText;\n if (id)\n style.owningElement.id = id;\n } else {\n style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n\n exports.getDocumentHead(doc).appendChild(style);\n }\n};\n\nexports.importCssStylsheet = function(uri, doc) {\n if (doc.createStyleSheet) {\n doc.createStyleSheet(uri);\n } else {\n var link = exports.createElement('link');\n link.rel = 'stylesheet';\n link.href = uri;\n\n exports.getDocumentHead(doc).appendChild(link);\n }\n};\n\nexports.getInnerWidth = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingLeft\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingRight\"), 10) + \n element.clientWidth\n );\n};\n\nexports.getInnerHeight = function(element) {\n return (\n parseInt(exports.computedStyle(element, \"paddingTop\"), 10) +\n parseInt(exports.computedStyle(element, \"paddingBottom\"), 10) +\n element.clientHeight\n );\n};\n\nexports.scrollbarWidth = function(document) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n\n outer.appendChild(inner);\n\n var body = document.documentElement;\n body.appendChild(outer);\n\n var noScrollbar = inner.offsetWidth;\n\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n\n if (noScrollbar == withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n\n body.removeChild(outer);\n\n return noScrollbar-withScrollbar;\n};\n\nif (typeof document == \"undefined\") {\n exports.importCssString = function() {};\n return;\n}\n\nif (window.pageYOffset !== undefined) {\n exports.getPageScrollTop = function() {\n return window.pageYOffset;\n };\n\n exports.getPageScrollLeft = function() {\n return window.pageXOffset;\n };\n}\nelse {\n exports.getPageScrollTop = function() {\n return document.body.scrollTop;\n };\n\n exports.getPageScrollLeft = function() {\n return document.body.scrollLeft;\n };\n}\n\nif (window.getComputedStyle)\n exports.computedStyle = function(element, style) {\n if (style)\n return (window.getComputedStyle(element, \"\") || {})[style] || \"\";\n return window.getComputedStyle(element, \"\") || {};\n };\nelse\n exports.computedStyle = function(element, style) {\n if (style)\n return element.currentStyle[style];\n return element.currentStyle;\n };\nexports.setInnerHtml = function(el, innerHtml) {\n var element = el.cloneNode(false);//document.createElement(\"div\");\n element.innerHTML = innerHtml;\n el.parentNode.replaceChild(element, el);\n return element;\n};\n\nif (\"textContent\" in document.documentElement) {\n exports.setInnerText = function(el, innerText) {\n el.textContent = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.textContent;\n };\n}\nelse {\n exports.setInnerText = function(el, innerText) {\n el.innerText = innerText;\n };\n\n exports.getInnerText = function(el) {\n return el.innerText;\n };\n}\n\nexports.getParentWindow = function(document) {\n return document.defaultView || document.parentWindow;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.inherits = function(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\n\nexports.mixin = function(obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\n\nexports.implement = function(proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./fixoldbrowsers\");\n\nvar oop = acequire(\"./oop\");\nvar Keys = (function() {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta'\n },\n\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\" : 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8\n },\n\n FUNCTION_KEYS : {\n 8 : \"Backspace\",\n 9 : \"Tab\",\n 13 : \"Return\",\n 19 : \"Pause\",\n 27 : \"Esc\",\n 32 : \"Space\",\n 33 : \"PageUp\",\n 34 : \"PageDown\",\n 35 : \"End\",\n 36 : \"Home\",\n 37 : \"Left\",\n 38 : \"Up\",\n 39 : \"Right\",\n 40 : \"Down\",\n 44 : \"Print\",\n 45 : \"Insert\",\n 46 : \"Delete\",\n 96 : \"Numpad0\",\n 97 : \"Numpad1\",\n 98 : \"Numpad2\",\n 99 : \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n ret[173] = '-';\n \n (function() {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) { \n ret.KEY_MODS[i] = mods.filter(function(x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n\n return ret;\n})();\noop.mixin(exports, Keys);\n\nexports.keyCodeToString = function(keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/useragent\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.OS = {\n LINUX: \"LINUX\",\n MAC: \"MAC\",\n WINDOWS: \"WINDOWS\"\n};\nexports.getOS = function() {\n if (exports.isMac) {\n return exports.OS.MAC;\n } else if (exports.isLinux) {\n return exports.OS.LINUX;\n } else {\n return exports.OS.WINDOWS;\n }\n};\nif (typeof navigator != \"object\")\n return;\n\nvar os = (navigator.platform.match(/mac|win|linux/i) || [\"other\"])[0].toLowerCase();\nvar ua = navigator.userAgent;\nexports.isWin = (os == \"win\");\nexports.isMac = (os == \"mac\");\nexports.isLinux = (os == \"linux\");\nexports.isIE = \n (navigator.appName == \"Microsoft Internet Explorer\" || navigator.appName.indexOf(\"MSAppHost\") >= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/)||[])[1]); // for ie\n \nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === \"Gecko\";\nexports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\\d+)/)||[])[1], 10) < 4;\nexports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\n\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\n\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\n\nexports.isIPad = ua.indexOf(\"iPad\") >= 0;\n\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\n\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\n\nif (exports.isIOS) exports.isMac = true;\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keys = acequire(\"./keys\");\nvar useragent = acequire(\"./useragent\");\n\nvar pressedKeys = null;\nvar ts = 0;\n\nexports.addListener = function(elem, type, callback) {\n if (elem.addEventListener) {\n return elem.addEventListener(type, callback, false);\n }\n if (elem.attachEvent) {\n var wrapper = function() {\n callback.call(elem, window.event);\n };\n callback._wrapper = wrapper;\n elem.attachEvent(\"on\" + type, wrapper);\n }\n};\n\nexports.removeListener = function(elem, type, callback) {\n if (elem.removeEventListener) {\n return elem.removeEventListener(type, callback, false);\n }\n if (elem.detachEvent) {\n elem.detachEvent(\"on\" + type, callback._wrapper || callback);\n }\n};\nexports.stopEvent = function(e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\n\nexports.stopPropagation = function(e) {\n if (e.stopPropagation)\n e.stopPropagation();\n else\n e.cancelBubble = true;\n};\n\nexports.preventDefault = function(e) {\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n};\nexports.getButton = function(e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n if (e.preventDefault) {\n return e.button;\n }\n else {\n return {1:0, 2:2, 4:1}[e.button];\n }\n};\n\nexports.capture = function(el, eventHandler, releaseCaptureHandler) {\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n\n exports.removeListener(document, \"mousemove\", eventHandler, true);\n exports.removeListener(document, \"mouseup\", onMouseUp, true);\n exports.removeListener(document, \"dragstart\", onMouseUp, true);\n }\n\n exports.addListener(document, \"mousemove\", eventHandler, true);\n exports.addListener(document, \"mouseup\", onMouseUp, true);\n exports.addListener(document, \"dragstart\", onMouseUp, true);\n \n return onMouseUp;\n};\n\nexports.addTouchMoveListener = function (el, callback) {\n var startx, starty;\n exports.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n var touchObj = touches[0];\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n });\n exports.addListener(el, \"touchmove\", function (e) {\n var touches = e.touches;\n if (touches.length > 1) return;\n\n var touchObj = touches[0];\n\n e.wheelX = startx - touchObj.clientX;\n e.wheelY = starty - touchObj.clientY;\n\n startx = touchObj.clientX;\n starty = touchObj.clientY;\n\n callback(e);\n });\n};\n\nexports.addMouseWheelListener = function(el, callback) {\n if (\"onmousewheel\" in el) {\n exports.addListener(el, \"mousewheel\", function(e) {\n var factor = 8;\n if (e.wheelDeltaX !== undefined) {\n e.wheelX = -e.wheelDeltaX / factor;\n e.wheelY = -e.wheelDeltaY / factor;\n } else {\n e.wheelX = 0;\n e.wheelY = -e.wheelDelta / factor;\n }\n callback(e);\n });\n } else if (\"onwheel\" in el) {\n exports.addListener(el, \"wheel\", function(e) {\n var factor = 0.35;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = e.deltaX * factor || 0;\n e.wheelY = e.deltaY * factor || 0;\n break;\n case e.DOM_DELTA_LINE:\n case e.DOM_DELTA_PAGE:\n e.wheelX = (e.deltaX || 0) * 5;\n e.wheelY = (e.deltaY || 0) * 5;\n break;\n }\n \n callback(e);\n });\n } else {\n exports.addListener(el, \"DOMMouseScroll\", function(e) {\n if (e.axis && e.axis == e.HORIZONTAL_AXIS) {\n e.wheelX = (e.detail || 0) * 5;\n e.wheelY = 0;\n } else {\n e.wheelX = 0;\n e.wheelY = (e.detail || 0) * 5;\n }\n callback(e);\n });\n }\n};\n\nexports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) {\n var clicks = 0;\n var startX, startY, timer; \n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n } else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n } else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n \n e._clicks = clicks;\n\n eventHandler[callbackName](\"mousedown\", e);\n\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n function onDblclick(e) {\n clicks = 2;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600);\n eventHandler[callbackName](\"mousedown\", e);\n eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function(el) {\n exports.addListener(el, \"mousedown\", onMousedown);\n if (useragent.isOldIE)\n exports.addListener(el, \"dblclick\", onDblclick);\n });\n};\n\nvar getModifierHash = useragent.isMac && useragent.isOpera && !(\"KeyboardEvent\" in window)\n ? function(e) {\n return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0);\n }\n : function(e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n };\n\nexports.getModifierString = function(e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\n\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n } else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n \n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) {\n keyCode = -1;\n }\n \n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n \n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n \n return callback(e, hashId, keyCode);\n}\n\n\nexports.addCommandKeyListener = function(el, callback) {\n var addListener = exports.addListener;\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function(e) {\n lastKeyDownKeyCode = e.keyCode;\n });\n addListener(el, \"keypress\", function(e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n });\n } else {\n var lastDefaultPrevented = null;\n\n addListener(el, \"keydown\", function(e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n });\n\n addListener(el, \"keypress\", function(e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n });\n\n addListener(el, \"keyup\", function(e) {\n pressedKeys[e.keyCode] = null;\n });\n\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\n\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function(callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + postMessageId;\n exports.addListener(win, \"message\", function listener(e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n exports.removeListener(win, \"message\", listener);\n callback();\n }\n });\n win.postMessage(messageName, \"*\");\n };\n}\n\n\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\n\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function(callback) {\n setTimeout(callback, 17);\n };\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.last = function(a) {\n return a[a.length - 1];\n};\n\nexports.stringReverse = function(string) {\n return string.split(\"\").reverse().join(\"\");\n};\n\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n\n if (count >>= 1)\n string += string;\n }\n return result;\n};\n\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\n\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\n\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\n\nexports.copyObject = function(obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\n\nexports.copyArray = function(array){\n var copy = [];\n for (var i=0, l=array.length; i PLACEHOLDER.length)\n data = data.substr(9);\n else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))\n data = data.substr(4, data.length - PLACEHOLDER.length + 1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data == PLACEHOLDER.charAt(0)) {\n } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n\n if (data)\n host.onTextInput(data);\n }\n if (copied) {\n copied = false;\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n\n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n if (useragent.isIOS) {\n cut = isCut;\n text.value = \"\\n aa\" + data + \"a a\\n\";\n text.setSelectionRange(4, 4 + data.length);\n copied = {\n value: data\n };\n }\n isCut ? host.onCut() : host.onCopy();\n if (!useragent.isIOS) event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n\n var onCut = function(e) {\n doCopy(e, true);\n };\n\n var onCopy = function(e) {\n doCopy(e, false);\n };\n\n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\x01/g, \"\");\n if (inComposition.lastValue === val) return;\n\n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\x01/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\x01/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n\n\n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n\n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n };\n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n\n if (useragent.isIOS) {\n var typingResetTimeout = null;\n var typing = false;\n\n parentNode.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout) clearTimeout(typingResetTimeout);\n typing = true;\n });\n\n parentNode.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n });\n var detectArrowKeys = function(e) {\n if (document.activeElement !== text) return;\n if (typing) return;\n\n if (cut) {\n return setTimeout(function () {\n cut = false;\n }, 100);\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n text.setSelectionRange(4, 5);\n if (selectionStart == selectionEnd) {\n switch (selectionStart) {\n case 0: host.onCommandKey(null, 0, KEYS.up); break;\n case 1: host.onCommandKey(null, 0, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;\n case 4: host.onCommandKey(null, 0, KEYS.left); break;\n case 5: host.onCommandKey(null, 0, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, 0, KEYS.end); break;\n case 9: host.onCommandKey(null, 0, KEYS.down); break;\n }\n } else {\n switch (selectionEnd) {\n case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;\n case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;\n case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;\n case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;\n }\n switch (selectionStart) {\n case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;\n case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;\n case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;\n case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;\n }\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function() {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/keyboard/textinput_ios\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\n\nvar TextInputIOS = acequire(\"./textinput_ios\").TextInput;\nvar TextInput = function(parentNode, host) {\n if (useragent.isIOS)\n return TextInputIOS.call(this, parentNode, host);\n\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n\n var PLACEHOLDER = \"\\u2028\\u2028\";\n\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var tempStyle = '';\n var isSelectionEmpty = true;\n try { var isFocused = document.activeElement === text; } catch(e) {}\n \n event.addListener(text, \"blur\", function(e) {\n host.onBlur(e);\n isFocused = false;\n });\n event.addListener(text, \"focus\", function(e) {\n isFocused = true;\n host.onFocus(e);\n resetSelection();\n });\n this.focus = function() {\n if (tempStyle) return text.focus();\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n text.focus();\n setTimeout(function() {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function() {\n text.blur();\n };\n this.isFocused = function() {\n return isFocused;\n };\n var syncSelection = lang.delayedCall(function() {\n isFocused && resetSelection(isSelectionEmpty);\n });\n var syncValue = lang.delayedCall(function() {\n if (!inComposition) {\n text.value = PLACEHOLDER;\n isFocused && resetSelection();\n }\n });\n\n function resetSelection(isEmpty) {\n if (inComposition)\n return;\n inComposition = true;\n \n if (inputHandler) {\n var selectionStart = 0;\n var selectionEnd = isEmpty ? 0 : text.value.length - 1;\n } else {\n var selectionStart = isEmpty ? 2 : 1;\n var selectionEnd = 2;\n }\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n } catch(e){}\n \n inComposition = false;\n }\n\n function resetValue() {\n if (inComposition)\n return;\n text.value = PLACEHOLDER;\n if (useragent.isWebKit)\n syncValue.schedule();\n }\n\n useragent.isWebKit || host.addEventListener('changeSelection', function() {\n if (host.selection.isEmpty() != isSelectionEmpty) {\n isSelectionEmpty = !isSelectionEmpty;\n syncSelection.schedule();\n }\n });\n\n resetValue();\n if (isFocused)\n host.onFocus();\n\n\n var isAllSelected = function(text) {\n return text.selectionStart === 0 && text.selectionEnd === text.value.length;\n };\n\n var onSelect = function(e) {\n if (copied) {\n copied = false;\n } else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n } else if (inputHandler) {\n resetSelection(host.selection.isEmpty());\n }\n };\n\n var inputHandler = null;\n this.setInputHandler = function(cb) {inputHandler = cb;};\n this.getInputHandler = function() {return inputHandler;};\n var afterContextMenu = false;\n \n var sendText = function(data) {\n if (inputHandler) {\n data = inputHandler(data);\n inputHandler = null;\n }\n if (pasted) {\n resetSelection();\n if (data)\n host.onPaste(data);\n pasted = false;\n } else if (data == PLACEHOLDER.charAt(0)) {\n if (afterContextMenu)\n host.execCommand(\"del\", {source: \"ace\"});\n else // some versions of android do not fire keydown when pressing backspace\n host.execCommand(\"backspace\", {source: \"ace\"});\n } else {\n if (data.substring(0, 2) == PLACEHOLDER)\n data = data.substr(2);\n else if (data.charAt(0) == PLACEHOLDER.charAt(0))\n data = data.substr(1);\n else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))\n data = data.slice(0, -1);\n \n if (data)\n host.onTextInput(data);\n }\n if (afterContextMenu)\n afterContextMenu = false;\n };\n var onInput = function(e) {\n if (inComposition)\n return;\n var data = text.value;\n sendText(data);\n resetValue();\n };\n \n var handleClipboardData = function(e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n } else {\n return clipboardData.getData(mime);\n }\n } catch(e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n\n var doCopy = function(e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n\n if (handleClipboardData(e, data)) {\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n } else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function(){\n copied = false;\n resetValue();\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n \n var onCut = function(e) {\n doCopy(e, true);\n };\n \n var onCopy = function(e) {\n doCopy(e, false);\n };\n \n var onPaste = function(e) {\n var data = handleClipboardData(e);\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n\n event.addCommandKeyListener(text, host.onCommandKey.bind(host));\n\n event.addListener(text, \"select\", onSelect);\n\n event.addListener(text, \"input\", onInput);\n\n event.addListener(text, \"cut\", onCut);\n event.addListener(text, \"copy\", onCopy);\n event.addListener(text, \"paste\", onPaste);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function(e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n });\n }\n var onCompositionStart = function(e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly) \n return;\n inComposition = {};\n inComposition.canUndo = host.session.$undoManager;\n host.onCompositionStart();\n setTimeout(onCompositionUpdate, 0);\n host.on(\"mousedown\", onCompositionEnd);\n if (inComposition.canUndo && !host.selection.isEmpty()) {\n host.insert(\"\");\n host.session.markUndoGroup();\n host.selection.clearSelection();\n }\n host.session.markUndoGroup();\n };\n\n var onCompositionUpdate = function() {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n var val = text.value.replace(/\\u2028/g, \"\");\n if (inComposition.lastValue === val) return;\n \n host.onCompositionUpdate(val);\n if (inComposition.lastValue)\n host.undo();\n if (inComposition.canUndo)\n inComposition.lastValue = val;\n if (inComposition.lastValue) {\n var r = host.selection.getRange();\n host.insert(inComposition.lastValue);\n host.session.markUndoGroup();\n inComposition.range = host.selection.getRange();\n host.selection.setRange(r);\n host.selection.clearSelection();\n }\n };\n\n var onCompositionEnd = function(e) {\n if (!host.onCompositionEnd || host.$readOnly) return;\n var c = inComposition;\n inComposition = false;\n var timer = setTimeout(function() {\n timer = null;\n var str = text.value.replace(/\\u2028/g, \"\");\n if (inComposition)\n return;\n else if (str == c.lastValue)\n resetValue();\n else if (!c.lastValue && str) {\n resetValue();\n sendText(str);\n }\n });\n inputHandler = function compositionInputHandler(str) {\n if (timer)\n clearTimeout(timer);\n str = str.replace(/\\u2028/g, \"\");\n if (str == c.lastValue)\n return \"\";\n if (c.lastValue && timer)\n host.undo();\n return str;\n };\n host.onCompositionEnd();\n host.removeListener(\"mousedown\", onCompositionEnd);\n if (e.type == \"compositionend\" && c.range) {\n host.selection.setRange(c.range);\n }\n var needsOnInput =\n (!!useragent.isChrome && useragent.isChrome >= 53) ||\n (!!useragent.isWebKit && useragent.isWebKit >= 603);\n\n if (needsOnInput) {\n onInput();\n }\n };\n \n \n\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50);\n\n event.addListener(text, \"compositionstart\", onCompositionStart);\n if (useragent.isGecko) {\n event.addListener(text, \"text\", function(){syncComposition.schedule();});\n } else {\n event.addListener(text, \"keyup\", function(){syncComposition.schedule();});\n event.addListener(text, \"keydown\", function(){syncComposition.schedule();});\n }\n event.addListener(text, \"compositionend\", onCompositionEnd);\n\n this.getElement = function() {\n return text;\n };\n\n this.setReadOnly = function(readOnly) {\n text.readOnly = readOnly;\n };\n\n this.onContextMenu = function(e) {\n afterContextMenu = true;\n resetSelection(host.selection.isEmpty());\n host._emit(\"nativecontextmenu\", {target: host, domEvent: e});\n this.moveToMouse(e, true);\n };\n \n this.moveToMouse = function(e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + \"height:\" + text.style.height + \";\"\n + (useragent.isIE ? \"opacity:0.1;\" : \"\");\n\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight -2;\n var move = function(e) {\n text.style.left = e.clientX - left - 2 + \"px\";\n text.style.top = Math.min(e.clientY - top - 2, maxTop) + \"px\";\n }; \n move(e);\n\n if (e.type != \"mousedown\")\n return;\n\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$keepTextAreaAtCursor = null;\n\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n if (host.renderer.$keepTextAreaAtCursor == null) {\n host.renderer.$keepTextAreaAtCursor = true;\n host.renderer.$moveTextAreaToCursor();\n }\n }, 0);\n }\n\n var onContextMenu = function(e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu);\n event.addListener(text, \"mousedown\", function(e) {\n e.preventDefault();\n onContextMenuClose();\n });\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu);\n event.addListener(text, \"contextmenu\", onContextMenu);\n};\n\nexports.TextInput = TextInput;\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 250; // milliseconds\n\nfunction DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n editor.setDefaultHandler(\"touchmove\", this.onTouchMove.bind(mouseHandler));\n\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n}\n\n(function() {\n\n this.onMouseDown = function(ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n editor.$blockScrolling++;\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n editor.$blockScrolling--;\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n\n this.startSelect = function(pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n editor.$blockScrolling++;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n if (editor.renderer.scroller.setCapture) {\n editor.renderer.scroller.setCapture();\n }\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n editor.$blockScrolling--;\n };\n\n this.select = function() {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n } else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.extendSelectionBy = function(unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n editor.$blockScrolling++;\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n } else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n } else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n } else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.$blockScrolling--;\n editor.renderer.scrollCursorIntoView();\n };\n\n this.selectEnd =\n this.selectAllEnd =\n this.selectByWordsEnd =\n this.selectByLinesEnd = function() {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n if (this.editor.renderer.scroller.releaseCapture) {\n this.editor.renderer.scroller.releaseCapture();\n }\n };\n\n this.focusWait = function() {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n\n this.onDoubleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n } else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n\n this.onTripleClick = function(ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n } else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n\n this.onQuadClick = function(ev) {\n var editor = this.editor;\n\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n\n this.onMouseWheel = function(ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n \n var editor = this.editor;\n\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = ev.wheelX / dt;\n var vy = ev.wheelY / dt;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n\n var direction = Math.abs(vx / vy);\n\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n\n if (canScroll) {\n prevScroll.allowed = t;\n } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.1 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.1 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n\n this.onTouchMove = function(ev) {\n this.editor._emit(\"mousewheel\", ev);\n };\n\n}).call(DefaultHandlers.prototype);\n\nexports.DefaultHandlers = DefaultHandlers;\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n\n if (cmp < 0)\n return {cursor: range.start, anchor: range.end};\n else\n return {cursor: range.end, anchor: range.start};\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nfunction Tooltip (parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n}\n\n(function() {\n this.$init = function() {\n this.$element = dom.createElement(\"div\");\n this.$element.className = \"ace_tooltip\";\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n this.getElement = function() {\n return this.$element || this.$init();\n };\n this.setText = function(text) {\n dom.setInnerText(this.getElement(), text);\n };\n this.setHtml = function(html) {\n this.getElement().innerHTML = html;\n };\n this.setPosition = function(x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n this.setClassName = function(className) {\n dom.addCssClass(this.getElement(), className);\n };\n this.show = function(text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n\n this.hide = function() {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n }\n };\n this.getHeight = function() {\n return this.getElement().offsetHeight;\n };\n this.getWidth = function() {\n return this.getElement().offsetWidth;\n };\n\n this.destroy = function() {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n\n}).call(Tooltip.prototype);\n\nexports.Tooltip = Tooltip;\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event\",\"ace/tooltip\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar event = acequire(\"../lib/event\");\nvar Tooltip = acequire(\"../tooltip\").Tooltip;\n\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor.container);\n\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function(e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n\n if (gutterRegion == \"foldWidgets\")\n return;\n\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n\n\n var tooltipTimeout, mouseEvent, tooltipAnnotation;\n\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var annotation = gutter.$annotations[row];\n if (!annotation)\n return hideTooltip();\n\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n\n if (tooltipAnnotation == annotation)\n return;\n tooltipAnnotation = annotation.text.join(\"
    \");\n\n tooltip.setHtml(tooltipAnnotation);\n tooltip.show();\n editor._signal(\"showGutterTooltip\", tooltip);\n editor.on(\"mousewheel\", hideTooltip);\n\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n } else {\n var gutterElement = mouseEvent.domEvent.target;\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n }\n\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltipAnnotation) {\n tooltip.hide();\n tooltipAnnotation = null;\n editor._signal(\"hideGutterTooltip\", tooltip);\n editor.removeEventListener(\"mousewheel\", hideTooltip);\n }\n }\n\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function(e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n\n if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n\n event.addListener(editor.renderer.$gutter, \"mouseout\", function(e) {\n mouseEvent = null;\n if (!tooltipAnnotation || tooltipTimeout)\n return;\n\n tooltipTimeout = setTimeout(function() {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n });\n \n editor.on(\"changeSession\", hideTooltip);\n}\n\nfunction GutterTooltip(parentNode) {\n Tooltip.call(this, parentNode);\n}\n\noop.inherits(GutterTooltip, Tooltip);\n\n(function(){\n this.setPosition = function(x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n\n}).call(GutterTooltip.prototype);\n\n\n\nexports.GutterHandler = GutterHandler;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nvar MouseEvent = exports.MouseEvent = function(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n \n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n\n this.$pos = null;\n this.$inSelection = null;\n \n this.propagationStopped = false;\n this.defaultPrevented = false;\n};\n\n(function() { \n \n this.stopPropagation = function() {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n \n this.preventDefault = function() {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n \n this.stop = function() {\n this.stopPropagation();\n this.preventDefault();\n };\n this.getDocumentPosition = function() {\n if (this.$pos)\n return this.$pos;\n \n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n this.inSelection = function() {\n if (this.$inSelection !== null)\n return this.$inSelection;\n \n var editor = this.editor;\n \n\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n\n return this.$inSelection;\n };\n this.getButton = function() {\n return event.getButton(this.domEvent);\n };\n this.getShiftKey = function() {\n return this.domEvent.shiftKey;\n };\n \n this.getAccelKey = useragent.isMac\n ? function() { return this.domEvent.metaKey; }\n : function() { return this.domEvent.ctrlKey; };\n \n}).call(MouseEvent.prototype);\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\n\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\n\nfunction DragdropHandler(mouseHandler) {\n\n var editor = mouseHandler.editor;\n\n var blankImage = dom.createElement(\"img\");\n blankImage.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (useragent.isOpera)\n blankImage.style.cssText = \"width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;\";\n\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n\n exports.forEach(function(x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.addEventListener(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n\n\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n\n this.onDragStart = function(e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function(){\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n if (useragent.isOpera) {\n editor.container.appendChild(blankImage);\n blankImage.scrollTop = 0;\n }\n dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0);\n if (useragent.isOpera) {\n editor.container.removeChild(blankImage);\n }\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n\n isInternal = true;\n this.setState(\"drag\");\n };\n\n this.onDragEnd = function(e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.renderer.$cursorLayer.setBlinking(true);\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n\n this.onDragEnter = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragOver = function(e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n\n this.onDragLeave = function(e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n\n this.onDrop = function(e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n } else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n } else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler));\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler));\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler));\n\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.$blockScrolling += 1;\n editor.moveCursorToPosition(cursor);\n editor.$blockScrolling -= 1;\n cursorMovedTime = now;\n cursorPointOnCaretMoved = {x: x, y: y};\n } else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = {row: cursor.row, column: cursor.column};\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n } else {\n autoScrollStartTime = null;\n }\n }\n\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.$blockScrolling += 1;\n editor.selection.fromOrientedRange(range);\n editor.$blockScrolling -= 1;\n if (editor.isFocused() && !isInternal)\n editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly());\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function() {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function(type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n } catch (e) {}\n var dropEffect = \"none\";\n\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n\n return dropEffect;\n }\n}\n\n(function() {\n\n this.dragWait = function() {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n\n this.dragWaitEnd = function() {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n\n this.dragReadyEnd = function(e) {\n this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n\n this.startDrag = function(){\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n\n this.onMouseDrag = function(e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n\n this.onMouseDown = function(e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n } else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n\n}).call(DragdropHandler.prototype);\n\n\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\n\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\nvar dom = acequire(\"./dom\");\n\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\n\nexports.loadScript = function(path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n\n s.src = path;\n head.appendChild(s);\n\n s.onload = s.onreadystatechange = function(_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function(url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar EventEmitter = {};\nvar stopPropagation = function() { this.propagationStopped = true; };\nvar preventDefault = function() { this.defaultPrevented = true; };\n\nEventEmitter._emit =\nEventEmitter._dispatchEvent = function(eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n\n if (typeof e != \"object\" || !e)\n e = {};\n\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n\n listeners = listeners.slice();\n for (var i=0; i 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n } else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\n\nexports.setModuleUrl = function(name, subst) {\n return options.$moduleUrls[name] = subst;\n};\n\nexports.$loading = {};\nexports.loadModule = function(moduleName, onLoad) {\n var module, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n\n try {\n module = acequire(moduleName);\n } catch (e) {}\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n\n exports.$loading[moduleName].push(onLoad);\n\n if (exports.$loading[moduleName].length > 1)\n return;\n\n var afterLoad = function() {\n acequire([moduleName], function(module) {\n exports._emit(\"load.module\", {name: moduleName, module: module});\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function(onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n options.packaged = packaged || acequire.packaged || module.packaged || (global.define && define.packaged);\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i 0){\n\t\t\tif (action == 0x10){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = 1;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t} else {\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tcond = impTab[newState][6];\n\t\tif (cond){\n\t\t\tif(condPos == -1){\n\t\t\t\tcondPos = ix;\n\t\t\t}\n\t\t}else{\n\t\t\tif (condPos > -1){\n\t\t\t\tfor(i = condPos; i < ix; i++){\n\t\t\t\t\tlevels[i] = newLevel;\n\t\t\t\t}\n\t\t\t\tcondPos = -1;\n\t\t\t}\n\t\t}\n\t\tif (charTypes[ix] == B){\n\t\t\tlevels[ix] = 0;\n\t\t}\n\t\thiLevel |= newLevel;\n\t}\n\tif (hasUBAT_S){\n\t\tfor(i = 0; i < len; i++){\n\t\t\tif(charTypes[i] == S){\n\t\t\t\tlevels[i] = dir;\n\t\t\t\tfor(var j = i - 1; j >= 0; j--){\n\t\t\t\t\tif(charTypes[j] == WS){\n\t\t\t\t\t\tlevels[j] = dir;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction _invertLevel(lev, levels, _array) {\n\tif (hiLevel < lev){\n\t\treturn;\n\t}\n\tif (lev == 1 && dir == RTL && !hasUBAT_B){\n\t\t_array.reverse();\n\t\treturn;\n\t}\n\tvar len = _array.length, start = 0, end, lo, hi, tmp;\n\twhile(start < len){\n\t\tif (levels[start] >= lev){\n\t\t\tend = start + 1;\n\t\twhile(end < len && levels[end] >= lev){\n\t\t\tend++;\n\t\t}\n\t\tfor(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){\n\t\t\ttmp = _array[lo];\n\t\t\t_array[lo] = _array[hi];\n\t\t\t_array[hi] = tmp;\n\t\t}\n\t\tstart = end;\n\t}\n\tstart++;\n\t}\n}\n\nfunction _getCharClass(chars, types, classes, ix) {\n\tvar cType = types[ix], wType, nType, len, i;\n\tswitch(cType){\n\t\tcase L:\n\t\tcase R:\n\t\t\tlastArabic = false;\n\t\tcase ON:\n\t\tcase AN:\n\t\t\treturn cType;\n\t\tcase EN:\n\t\t\treturn lastArabic ? AN : EN;\n\t\tcase AL:\n\t\t\tlastArabic = true;\n\t\t\thasUBAT_AL = true;\n\t\t\treturn R;\n\t\tcase WS:\n\t\t\treturn ON;\n\t\tcase CS:\n\t\t\tif (ix < 1 || (ix + 1) >= types.length ||\n\t\t\t\t((wType = classes[ix - 1]) != EN && wType != AN) ||\n\t\t\t\t((nType = types[ix + 1]) != EN && nType != AN)){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\tif (lastArabic){nType = AN;}\n\t\t\treturn nType == wType ? nType : ON;\n\t\tcase ES:\n\t\t\twType = ix > 0 ? classes[ix - 1] : B;\n\t\t\tif (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase ET:\n\t\t\tif (ix > 0 && classes[ix - 1] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\tif (lastArabic){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\ti = ix + 1;\n\t\t\tlen = types.length;\n\t\t\twhile (i < len && types[i] == ET){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len && types[i] == EN){\n\t\t\t\treturn EN;\n\t\t\t}\n\t\t\treturn ON;\n\t\tcase NSM:\n\t\t\tlen = types.length;\n\t\t\ti = ix + 1;\n\t\t\twhile (i < len && types[i] == NSM){\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tif (i < len){\n\t\t\t\tvar c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n\n\t\t\t\twType = types[i];\n\t\t\t\tif (rtlCandidate && (wType == R || wType == AL)){\n\t\t\t\t\treturn R;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (ix < 1 || (wType = types[ix - 1]) == B){\n\t\t\t\treturn ON;\n\t\t\t}\n\t\t\treturn classes[ix - 1];\n\t\tcase B:\n\t\t\tlastArabic = false;\n\t\t\thasUBAT_B = true;\n\t\t\treturn dir;\n\t\tcase S:\n\t\t\thasUBAT_S = true;\n\t\t\treturn ON;\n\t\tcase LRE:\n\t\tcase RLE:\n\t\tcase LRO:\n\t\tcase RLO:\n\t\tcase PDF:\n\t\t\tlastArabic = false;\n\t\tcase BN:\n\t\t\treturn ON;\n\t}\n}\n\nfunction _getCharacterType( ch ) {\n\tvar uc = ch.charCodeAt(0), hi = uc >> 8;\n\n\tif (hi == 0) {\n\t\treturn ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n\t} else if (hi == 5) {\n\t\treturn (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n\t} else if (hi == 6) {\n\t\tif (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n\t\t\treturn NSM;\n\t\telse if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n\t\t\treturn AN;\n\t\telse if (uc == 0x066A)\n\t\t\treturn ET;\n\t\telse if (/[\\u06f0-\\u06f9]/.test(ch))\n\t\t\treturn EN;\n\t\telse\n\t\t\treturn AL;\n\t} else if (hi == 0x20 && uc <= 0x205F) {\n\t\treturn UnicodeTBL20[uc & 0xFF];\n\t} else if (hi == 0xFE) {\n\t\treturn (uc >= 0xFE70 ? AL : ON);\n\t}\n\treturn ON;\n}\n\nfunction _isArabicDiacritics( ch ) {\n\treturn (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\n\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function(text, textCharTypes, isRtl) {\n\tif (text.length < 2)\n\t\treturn {};\n\n\tvar chars = text.split(\"\"), logicalFromVisual = new Array(chars.length),\n\t\tbidiLevels = new Array(chars.length), levels = [];\n\n\tdir = isRtl ? RTL : LTR;\n\n\t_computeLevels(chars, levels, chars.length, textCharTypes);\n\n\tfor (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++);\n\n\t_invertLevel(2, levels, logicalFromVisual);\n\t_invertLevel(1, levels, logicalFromVisual);\n\n\tfor (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n\t\tif (textCharTypes[i] === AN) {\n\t\t\tlevels[i] = exports.AN;\n\t\t} else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n\t\t\t|| textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n\t\t\tlevels[i] = exports.ON_R;\n\t\t} else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n\t\t\tlevels[i - 1] = levels[i] = exports.R_H;\n\t\t\ti++;\n\t\t}\n\t}\n\tif (chars[chars.length - 1] === exports.DOT)\n\t\tlevels[chars.length - 1] = exports.B;\n\n\tfor (var i = 0; i < logicalFromVisual.length; i++) {\n\t\tbidiLevels[i] = levels[logicalFromVisual[i]];\n\t}\n\n\treturn {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels};\n};\nexports.hasBidiCharacters = function(text, textCharTypes){\n\tvar ret = false;\n\tfor (var i = 0; i < text.length; i++){\n\t\ttextCharTypes[i] = _getCharacterType(text.charAt(i));\n\t\tif (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL))\n\t\t\tret = true;\n\t}\n\treturn ret;\n};\nexports.getVisualFromLogicalIdx = function(logIdx, rowMap) {\n\tfor (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n\t\tif (rowMap.logicalFromVisual[i] == logIdx)\n\t\t\treturn i;\n\t}\n\treturn 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar bidiUtil = acequire(\"./lib/bidiutil\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\nvar BidiHandler = function(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.isLastRow = false;\n this.EOF = \"\\xB6\";\n this.seenBidi = false;\n};\n\n(function() {\n this.isBidiRow = function(screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n\n this.onChange = function(delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n\n this.getDocumentRow = function() {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n\n return docRow;\n };\n\n this.getSplitIndex = function() {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n\n return splitIndex;\n };\n\n this.updateRowLine = function(docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n\n this.wrapIndent = 0;\n this.isLastRow = (docRow === this.session.getLength() - 1);\n this.line = this.session.getLine(docRow);\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n\n if(splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splits.length - 1]) :\n this.line.substring(splits[splits.length - 1]);\n } else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n }\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function(ch, i){\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n };\n\n this.updateBidiMap = function() {\n var textCharTypes = [], endOfLine = this.isLastRow ? this.EOF : this.EOL;\n var line = this.line + (this.showInvisibles ? endOfLine : bidiUtil.DOT);\n if (bidiUtil.hasBidiCharacters(line, textCharTypes)) {\n this.bidiMap = bidiUtil.doBidiReorder(line, textCharTypes, this.isRtlDir);\n } else {\n this.bidiMap = {};\n }\n };\n this.markAsDirty = function() {\n this.currentRow = null;\n };\n this.updateCharacterWidths = function(fontMetrics) {\n if (!this.seenBidi)\n return;\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = useragent.isChrome ? bidiCharWidth : bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = 0;\n\n this.currentRow = null;\n };\n\n this.getShowInvisibles = function() {\n return this.showInvisibles;\n };\n\n this.setShowInvisibles = function(showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n\n this.setEolChar = function(eolChar) {\n this.EOL = eolChar;\n };\n\n this.setTextDir = function(isRtlDir) {\n this.isRtlDir = isRtlDir;\n };\n this.getPosLeft = function(col) {\n col -= this.wrapIndent;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(col > 0 ? col - 1 : 0, this.bidiMap),\n levels = this.bidiMap.bidiLevels, left = 0;\n\n if (col === 0 && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n\n if (col !== 0 && levels[visualIdx] % 2 === 0)\n left += this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent)\n left += this.wrapIndent * this.charWidths[bidiUtil.L];\n\n return left;\n };\n this.getSelections = function(startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, offset = this.wrapIndent * this.charWidths[bidiUtil.L], selections = [],\n selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent,\n isSelected = false, isSelectedPrev = false, selectionStart = 0;\n\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n } else if (!isSelected && isSelectedPrev) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n\n if (isSelected && (visIdx === levels.length)) {\n selections.push({left: selectionStart, width: offset - selectionStart});\n }\n\n return selections;\n };\n this.offsetToCol = function(posX) {\n var logicalIdx = 0, posX = Math.max(posX, 0),\n offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels,\n charWidth = this.charWidths[levels[visualIdx]];\n\n if (this.wrapIndent) {\n posX -= this.wrapIndent * this.charWidths[bidiUtil.L];\n }\n\n while(posX > offset + charWidth/2) {\n offset += charWidth;\n if(visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){\n if(posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n\n } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n\n } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n } else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n\n return (logicalIdx + this.wrapIndent);\n };\n\n}).call(BidiHandler.prototype);\n\nexports.BidiHandler = BidiHandler;\n});\n\nace.define(\"ace/range\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nvar Range = function(startRow, startColumn, endRow, endColumn) {\n this.start = {\n row: startRow,\n column: startColumn\n };\n\n this.end = {\n row: endRow,\n column: endColumn\n };\n};\n\n(function() {\n this.isEqual = function(range) {\n return this.start.row === range.start.row &&\n this.end.row === range.end.row &&\n this.start.column === range.start.column &&\n this.end.column === range.end.column;\n };\n this.toString = function() {\n return (\"Range: [\" + this.start.row + \"/\" + this.start.column +\n \"] -> [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n\n this.contains = function(row, column) {\n return this.compare(row, column) == 0;\n };\n this.compareRange = function(range) {\n var cmp,\n end = range.end,\n start = range.start;\n\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n } else if (cmp == 0) {\n return 1;\n } else {\n return 0;\n }\n } else if (cmp == -1) {\n return -2;\n } else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n } else if (cmp == 1) {\n return 42;\n } else {\n return 0;\n }\n }\n };\n this.comparePoint = function(p) {\n return this.compare(p.row, p.column);\n };\n this.containsRange = function(range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n this.intersects = function(range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n this.isEnd = function(row, column) {\n return this.end.row == row && this.end.column == column;\n };\n this.isStart = function(row, column) {\n return this.start.row == row && this.start.column == column;\n };\n this.setStart = function(row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n } else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n this.setEnd = function(row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n } else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n this.inside = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideStart = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.insideEnd = function(row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n } else {\n return true;\n }\n }\n return false;\n };\n this.compare = function(row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n\n if (row < this.start.row)\n return -1;\n\n if (row > this.end.row)\n return 1;\n\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n\n return 0;\n };\n this.compareStart = function(row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareEnd = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else {\n return this.compare(row, column);\n }\n };\n this.compareInside = function(row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n } else if (this.start.row == row && this.start.column == column) {\n return -1;\n } else {\n return this.compare(row, column);\n }\n };\n this.clipRows = function(firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = {row: lastRow + 1, column: 0};\n else if (this.end.row < firstRow)\n var end = {row: firstRow, column: 0};\n\n if (this.start.row > lastRow)\n var start = {row: lastRow + 1, column: 0};\n else if (this.start.row < firstRow)\n var start = {row: firstRow, column: 0};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n this.extend = function(row, column) {\n var cmp = this.compare(row, column);\n\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = {row: row, column: column};\n else\n var end = {row: row, column: column};\n\n return Range.fromPoints(start || this.start, end || this.end);\n };\n\n this.isEmpty = function() {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n this.isMultiLine = function() {\n return (this.start.row !== this.end.row);\n };\n this.clone = function() {\n return Range.fromPoints(this.start, this.end);\n };\n this.collapseRows = function() {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n this.toScreenRange = function(session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n\n return new Range(\n screenPosStart.row, screenPosStart.column,\n screenPosEnd.row, screenPosEnd.column\n );\n };\n this.moveBy = function(row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n\n}).call(Range.prototype);\nRange.fromPoints = function(start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\n\nRange.comparePoints = function(p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\n\n\nexports.Range = Range;\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Selection = function(session) {\n this.session = session;\n this.doc = session.getDocument();\n\n this.clearSelection();\n this.lead = this.selectionLead = this.doc.createAnchor(0, 0);\n this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0);\n\n var self = this;\n this.lead.on(\"change\", function(e) {\n self._emit(\"changeCursor\");\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n\n this.selectionAnchor.on(\"change\", function() {\n if (!self.$isEmpty)\n self._emit(\"changeSelection\");\n });\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.isEmpty = function() {\n return (this.$isEmpty || (\n this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column\n ));\n };\n this.isMultiLine = function() {\n if (this.isEmpty()) {\n return false;\n }\n\n return this.getRange().isMultiLine();\n };\n this.getCursor = function() {\n return this.lead.getPosition();\n };\n this.setSelectionAnchor = function(row, column) {\n this.anchor.setPosition(row, column);\n\n if (this.$isEmpty) {\n this.$isEmpty = false;\n this._emit(\"changeSelection\");\n }\n };\n this.getSelectionAnchor = function() {\n if (this.$isEmpty)\n return this.getSelectionLead();\n else\n return this.anchor.getPosition();\n };\n this.getSelectionLead = function() {\n return this.lead.getPosition();\n };\n this.shiftSelection = function(columns) {\n if (this.$isEmpty) {\n this.moveCursorTo(this.lead.row, this.lead.column + columns);\n return;\n }\n\n var anchor = this.getSelectionAnchor();\n var lead = this.getSelectionLead();\n\n var isBackwards = this.isBackwards();\n\n if (!isBackwards || anchor.column !== 0)\n this.setSelectionAnchor(anchor.row, anchor.column + columns);\n\n if (isBackwards || lead.column !== 0) {\n this.$moveSelection(function() {\n this.moveCursorTo(lead.row, lead.column + columns);\n });\n }\n };\n this.isBackwards = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function() {\n var anchor = this.anchor;\n var lead = this.lead;\n\n if (this.isEmpty())\n return Range.fromPoints(lead, lead);\n\n if (this.isBackwards()) {\n return Range.fromPoints(lead, anchor);\n }\n else {\n return Range.fromPoints(anchor, lead);\n }\n };\n this.clearSelection = function() {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function() {\n var lastRow = this.doc.getLength() - 1;\n this.setSelectionAnchor(0, 0);\n this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length);\n };\n this.setRange =\n this.setSelectionRange = function(range, reverse) {\n if (reverse) {\n this.setSelectionAnchor(range.end.row, range.end.column);\n this.selectTo(range.start.row, range.start.column);\n } else {\n this.setSelectionAnchor(range.start.row, range.start.column);\n this.selectTo(range.end.row, range.end.column);\n }\n if (this.getRange().isEmpty())\n this.$isEmpty = true;\n this.$desiredColumn = null;\n };\n\n this.$moveSelection = function(mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n\n mover.call(this);\n };\n this.selectTo = function(row, column) {\n this.$moveSelection(function() {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function(pos) {\n this.$moveSelection(function() {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function(row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function(pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function() {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function() {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function() {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function() {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function() {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function() {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function() {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function() {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function() {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function() {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function(row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function() {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function() {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n\n this.getLineRange = function(row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n } else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function() {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function() {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function() {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length-1 == tabSize;\n };\n this.moveCursorLeft = function() {\n var cursor = this.lead.getPosition(),\n fold;\n\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n } else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n } else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function() {\n var cursor = this.lead.getPosition(),\n fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n } else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(\n row, null, firstColumnPosition.row,\n firstColumnPosition.column\n );\n\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function() {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function() {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function() {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (match = this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n\n var leftOfCursor = lang.stringReverse(str);\n var match;\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (match = this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (match = this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n\n this.moveCursorTo(row, column);\n };\n\n this.$shortWordEndIndex = function(rightOfCursor) {\n var match, index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n\n tokenRe.lastIndex = 0;\n if (match = this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index ++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n } else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index ++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n\n return index;\n };\n\n this.moveCursorShortWordRight = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n\n var index = this.$shortWordEndIndex(rightOfCursor);\n\n this.moveCursorTo(row, column + index);\n };\n\n this.moveCursorShortWordLeft = function() {\n var row = this.lead.row;\n var column = this.lead.column;\n\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n\n return this.moveCursorTo(row, column - index);\n };\n\n this.moveCursorWordRight = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n\n this.moveCursorWordLeft = function() {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function(rows, chars) {\n var screenPos = this.session.documentToScreenPosition(\n this.lead.row,\n this.lead.column\n );\n\n var offsetX;\n\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n } else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n \n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) {\n if (docPos.row > 0 || rows > 0)\n docPos.row++;\n }\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function(position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function(row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function(row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function() {\n this.lead.detach();\n this.anchor.detach();\n this.session = this.doc = null;\n };\n\n this.fromOrientedRange = function(range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n\n this.toOrientedRange = function(range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n } else {\n range = r;\n }\n\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function(func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start,end);\n } catch(e) {\n return Range.fromPoints(start,start);\n } finally {\n this.moveCursorToPosition(start);\n }\n };\n\n this.toJSON = function() {\n if (this.rangeCount) {\n var data = this.ranges.map(function(r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n } else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n\n this.fromJSON = function(data) {\n if (data.start == undefined) {\n if (this.rangeList) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--; ) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n } else\n data = data[0];\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n\n this.isEqual = function(data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n\n for (var i = this.ranges.length; i--; ) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n\n}).call(Selection.prototype);\n\nexports.Selection = Selection;\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar config = acequire(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = function(rules) {\n this.states = rules;\n\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = {defaultToken: \"text\"};\n var flag = \"g\";\n\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive)\n flag = \"gi\";\n if (rule.regex == null)\n continue;\n\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n } else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", { \n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n } else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n } else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function(match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n } else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n \n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n \n splitterRurles.forEach(function(rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n};\n\n(function() {\n this.$setMaxTokenCount = function(m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n \n this.$applyToken = function(str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{type: types, value: str}];\n\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n\n this.$arrayTokens = function(str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n\n this.removeCapturingGroups = function(src) {\n var r = src.replace(\n /\\[(?:\\\\.|[^\\]])*?\\]|\\\\.|\\(\\?[:=!]|(\\()/g,\n function(x, y) {return y ? \"(?:\" : x;}\n );\n return r;\n };\n\n this.createSplitterRegexp = function(src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function(\n m, esc, parenOpen, parenClose, square, index\n ) {\n if (inChClass) {\n inChClass = square != \"]\";\n } else if (square) {\n inChClass = true;\n } else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index+1;\n lastCapture.stack = -1;\n }\n stack--;\n } else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\") src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\") src += \"$\";\n \n return new RegExp(src, (flag||\"\").replace(\"g\", \"\"));\n };\n this.getLineTokens = function(line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n } else\n var stack = [];\n\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n\n var token = {type: null, value: \"\"};\n\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: skipped};\n }\n }\n\n for (var i = 0; i < match.length-2; i++) {\n if (match[i + 1] === undefined)\n continue;\n\n rule = state[mapping[i]];\n\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n } else {\n currentState = rule.next(currentState, stack);\n }\n \n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n } else {\n if (token.type)\n tokens.push(token);\n token = {type: type, value: value};\n }\n } else if (type) {\n if (token.type)\n tokens.push(token);\n token = {type: null, value: \"\"};\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n\n if (lastIndex == line.length)\n break;\n\n lastIndex = index;\n\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 2000),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n\n if (token.type)\n tokens.push(token);\n \n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens : tokens,\n state : stack.length ? stack : currentState\n };\n };\n \n this.reportError = config.reportError;\n \n}).call(Tokenizer.prototype);\n\nexports.Tokenizer = Tokenizer;\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\n\nvar TextHighlightRules = function() {\n\n this.$rules = {\n \"start\" : [{\n token : \"empty_line\",\n regex : '^$'\n }, {\n defaultToken : \"text\"\n }]\n };\n};\n\n(function() {\n\n this.addRules = function(rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n\n this.getRules = function() {\n return this.$rules;\n };\n\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n } else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n\n this.addRules(embedRules, prefix);\n\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n\n this.getEmbeds = function() {\n return this.$embeds;\n };\n\n var pushState = function(currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function(currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n\n this.normalizeRules = function() {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n } else if (next == \"pop\") {\n rule.next = popState;\n }\n\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n } else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (Array.isArray(includeName))\n toInsert = includeName.map(function(x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function(x) {return !x.next;});\n state.splice.apply(state, args);\n i--;\n }\n \n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(\n rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive\n );\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n\n this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n Object.keys(map).forEach(function(className) {\n var a = map[className];\n if (ignoreCase)\n a = a.toLowerCase();\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--; )\n keywords[list[i]] = className;\n });\n if (Object.getPrototypeOf(keywords)) {\n keywords.__proto__ = null;\n }\n this.$keywordList = Object.keys(keywords);\n map = null;\n return ignoreCase\n ? function(value) {return keywords[value.toLowerCase()] || defaultToken; }\n : function(value) {return keywords[value] || defaultToken; };\n };\n\n this.getKeywords = function() {\n return this.$keywords;\n };\n\n}).call(TextHighlightRules.prototype);\n\nexports.TextHighlightRules = TextHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Behaviour = function() {\n this.$behaviours = {};\n};\n\n(function () {\n\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n \n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n \n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n \n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n } else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n \n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n } else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n\n}).call(Behaviour.prototype);\n\nexports.Behaviour = Behaviour;\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar TokenIterator = function(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n};\n\n(function() { \n this.stepBackward = function() {\n this.$tokenIndex -= 1;\n \n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n \n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.stepForward = function() {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n \n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n }; \n this.getCurrentTokenRow = function () {\n return this.$row;\n }; \n this.getCurrentTokenColumn = function() {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n \n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n \n return column; \n };\n this.getCurrentTokenPosition = function() {\n return {row: this.$row, column: this.getCurrentTokenColumn()};\n };\n this.getCurrentTokenRange = function() {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n\n}).call(TokenIterator.prototype);\n\nexports.TokenIterator = TokenIterator;\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nvar SAFE_INSERT_IN_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS =\n [\"text\", \"paren.rparen\", \"punctuation.operator\", \"comment\"];\n\nvar context;\nvar contextCache = {};\nvar defaultQuotes = {'\"' : '\"', \"'\" : \"'\"};\n\nvar initContext = function(editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = {rangeCount: editor.multiSelect.rangeCount};\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\n\nvar getWrapped = function(selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\n\nvar CstyleBehaviour = function(options) {\n this.add(\"braces\", \"insertion\", function(state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n } else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n } else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n } else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n } else if (closing) {\n var next_indent = this.$getIndent(line);\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n } else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n\n this.add(\"braces\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n } else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n\n this.add(\"parens\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n } else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"parens\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"brackets\", \"insertion\", function(state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n } else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n } else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row});\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"brackets\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"string_dquotes\", \"insertion\", function(state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n } else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column-1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n } else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(leftChar);\n if (isWordBefore || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1,1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n};\n\n\nCstyleBehaviour.isSaneInsertion = function(editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\n\nCstyleBehaviour.$matchTokenType = function(token, types) {\n return types.indexOf(token.type || token) > -1;\n};\n\nCstyleBehaviour.recordAutoInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\n\nCstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\n\nCstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\n\nCstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\n\nCstyleBehaviour.popAutoInsertedClosing = function() {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\n\nCstyleBehaviour.clearMaybeInsertedClosing = function() {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\n\n\n\noop.inherits(CstyleBehaviour, Behaviour);\n\nexports.CstyleBehaviour = CstyleBehaviour;\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nexports.packages = {};\n\naddUnicodePackage({\n L: \"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n Ll: \"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A\",\n Lu: \"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A\",\n Lt: \"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC\",\n Lm: \"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F\",\n Lo: \"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC\",\n M: \"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26\",\n Mn: \"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26\",\n Mc: \"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC\",\n Me: \"0488048906DE20DD-20E020E2-20E4A670-A672\",\n N: \"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nd: \"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19\",\n Nl: \"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF\",\n No: \"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835\",\n P: \"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65\",\n Pd: \"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D\",\n Ps: \"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62\",\n Pe: \"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63\",\n Pi: \"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20\",\n Pf: \"00BB2019201D203A2E032E052E0A2E0D2E1D2E21\",\n Pc: \"005F203F20402054FE33FE34FE4D-FE4FFF3F\",\n Po: \"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65\",\n S: \"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD\",\n Sm: \"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC\",\n Sc: \"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6\",\n Sk: \"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3\",\n So: \"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD\",\n Z: \"002000A01680180E2000-200A20282029202F205F3000\",\n Zs: \"002000A01680180E2000-200A202F205F3000\",\n Zl: \"2028\",\n Zp: \"2029\",\n C: \"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF\",\n Cc: \"0000-001F007F-009F\",\n Cf: \"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB\",\n Co: \"E000-F8FF\",\n Cs: \"D800-DFFF\",\n Cn: \"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF\"\n});\n\nfunction addUnicodePackage (pack) {\n var codePoint = /\\w{4}/g;\n for (var name in pack)\n exports.packages[name] = pack[name].replace(codePoint, \"\\\\u$&\");\n}\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Tokenizer = acequire(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = acequire(\"../unicode\");\nvar lang = acequire(\"../lib/lang\");\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\nvar Mode = function() {\n this.HighlightRules = TextHighlightRules;\n};\n\n(function() {\n this.$defaultBehaviour = new CstyleBehaviour();\n\n this.tokenRe = new RegExp(\"^[\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]+\", \"g\"\n );\n\n this.nonTokenRe = new RegExp(\"^(?:[^\"\n + unicode.packages.L\n + unicode.packages.Mn + unicode.packages.Mc\n + unicode.packages.Nd\n + unicode.packages.Pc + \"\\\\$_]|\\\\s])+\", \"g\"\n );\n\n this.getTokenizer = function() {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n\n this.toggleCommentLines = function(state, session, startRow, endRow) {\n var doc = session.doc;\n\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n\n var comment = function(line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({row: i, column: line.length}, lineCommentEnd);\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n\n var uncomment = function(line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n\n var testRemove = function(line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n } else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n } else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n \n insertAtTabStop = session.getUseSoftTabs();\n\n var uncomment = function(line, i) {\n var m = line.match(regexpStart);\n if (!m) return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function(line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({row: i, column: minIndent}, commentWithSpace);\n else\n doc.insertInLine({row: i, column: minIndent}, lineCommentStart);\n }\n };\n var testRemove = function(line, i) {\n return regexpStart.test(line);\n };\n \n var shouldInsertSpace = function(line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n return true;\n };\n }\n\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n\n\n var minEmptyLength = Infinity;\n iter(function(line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n } else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n\n iter(shouldRemove ? uncomment : comment);\n };\n\n this.toggleBlockComment = function(state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n } else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.autoOutdent = function(state, doc, row) {\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n this.createWorker = function(session) {\n return null;\n };\n\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n this.$embeds.push(i);\n this.$modes[i] = new mapping[i]();\n }\n }\n\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\", \n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n\n for (var i = 0; i < delegations.length; i++) {\n (function(scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function() {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n\n this.$delegator = function(method, args, defaultHandler) {\n var state = args[0];\n if (typeof state != \"string\")\n state = state[0];\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]]) continue;\n\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n\n this.transformAction = function(state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n \n this.getKeywords = function(append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { \n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n \n this.$createKeywordList = function() {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function(word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nfunction throwDeltaError(delta, errorText){\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\n\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\n\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\n\nexports.applyDelta = function(docLines, delta, doNotValidate) {\n \n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n } else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n } else {\n docLines.splice(\n row, endRow - row + 1,\n line.substring(0, startColumn) + docLines[endRow].substring(endColumn)\n );\n }\n break;\n }\n};\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar Anchor = exports.Anchor = function(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n \n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.getPosition = function() {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n this.getDocument = function() {\n return this.document;\n };\n this.$insertRight = false;\n this.onChange = function(delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n\n if (delta.start.row > this.row)\n return;\n \n var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n \n function $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n }\n \n function $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n \n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n }\n this.setPosition = function(row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n } else {\n pos = this.$clipPositionToDocument(row, column);\n }\n\n if (this.row == pos.row && this.column == pos.column)\n return;\n\n var old = {\n row: this.row,\n column: this.column\n };\n\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n this.detach = function() {\n this.document.removeEventListener(\"change\", this.$onChange);\n };\n this.attach = function(doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n this.$clipPositionToDocument = function(row, column) {\n var pos = {};\n\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n\n if (column < 0)\n pos.column = 0;\n\n return pos;\n };\n\n}).call(Anchor.prototype);\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar applyDelta = acequire(\"./apply_delta\").applyDelta;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Range = acequire(\"./range\").Range;\nvar Anchor = acequire(\"./anchor\").Anchor;\n\nvar Document = function(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n } else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({row: 0, column: 0}, textOrLines);\n } else {\n this.insert({row: 0, column:0}, textOrLines);\n }\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setValue = function(text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({row: 0, column: 0}, text);\n };\n this.getValue = function() {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n this.createAnchor = function(row, column) {\n return new Anchor(this, row, column);\n };\n if (\"aaa\".split(/a/).length === 0) {\n this.$split = function(text) {\n return text.replace(/\\r\\n|\\r/g, \"\\n\").split(\"\\n\");\n };\n } else {\n this.$split = function(text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n }\n\n\n this.$detectNewLine = function(text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineCharacter = function() {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n\n this.$autoNewLine = \"\";\n this.$newLineMode = \"auto\";\n this.setNewLineMode = function(newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n this.getNewLineMode = function() {\n return this.$newLineMode;\n };\n this.isNewLine = function(text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n this.getLine = function(row) {\n return this.$lines[row] || \"\";\n };\n this.getLines = function(firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n this.getAllLines = function() {\n return this.getLines(0, this.getLength());\n };\n this.getLength = function() {\n return this.$lines.length;\n };\n this.getTextRange = function(range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n this.getLinesForRange = function(range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n } else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n this.insertLines = function(row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n this.removeLines = function(firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n this.insertNewLine = function(position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n this.insert = function(position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n \n return this.insertMergedLines(position, this.$split(text));\n };\n this.insertInLine = function(position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n \n return this.clonePos(end);\n };\n \n this.clippedPos = function(row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n } else if (row < 0) {\n row = 0;\n } else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return {row: row, column: column};\n };\n \n this.clonePos = function(pos) {\n return {row: pos.row, column: pos.column};\n };\n \n this.pos = function(row, column) {\n return {row: row, column: column};\n };\n \n this.$clipPosition = function(position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n } else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n this.insertFullLines = function(row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n } else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({row: row, column: column}, lines);\n }; \n this.insertMergedLines = function(position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n \n return this.clonePos(end);\n };\n this.remove = function(range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n });\n return this.clonePos(start);\n };\n this.removeInLine = function(row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n \n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({start: start, end: end})\n }, true);\n \n return this.clonePos(start);\n };\n this.removeFullLines = function(firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow );\n var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 );\n var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow );\n var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); \n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n \n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n this.removeNewLine = function(row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n this.replace = function(range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n \n return end;\n };\n this.applyDeltas = function(deltas) {\n for (var i=0; i=0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n this.applyDelta = function(delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n \n if (isInsert && delta.lines.length > 20000)\n this.$splitAndapplyLargeDelta(delta, 20000);\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n };\n \n this.$splitAndapplyLargeDelta = function(delta, MAX) {\n var lines = delta.lines;\n var l = lines.length;\n var row = delta.start.row; \n var column = delta.start.column;\n var from = 0, to = 0;\n do {\n from = to;\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n if (to > l) {\n delta.lines = chunk;\n delta.start.row = row + from;\n delta.start.column = column;\n break;\n }\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n } while(true);\n };\n this.revertDelta = function(delta) {\n this.applyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n this.indexToPosition = function(index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return {row: i, column: index + lines[i].length + newlineLength};\n }\n return {row: l-1, column: lines[l-1].length};\n };\n this.positionToIndex = function(pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n\n return index + pos.column;\n };\n\n}).call(Document.prototype);\n\nexports.Document = Document;\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\n\nvar BackgroundTokenizer = function(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n\n var self = this;\n\n this.$worker = function() {\n if (!self.running) { return; }\n\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n \n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines ++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { \n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n \n if (endLine == -1)\n endLine = currentLine;\n\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n this.setTokenizer = function(tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n\n this.start(0);\n };\n this.setDocument = function(doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n\n this.stop();\n };\n this.fireUpdateEvent = function(firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", {data: data});\n };\n this.start = function(startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n \n this.scheduleStart = function() {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n\n this.$updateOnChange = function(delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n this.lines[startRow] = null;\n } else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n\n this.stop();\n };\n this.stop = function() {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n this.getTokens = function(row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n this.getState = function(row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n\n this.$tokenizeRow = function(row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n\n var data = this.tokenizer.getLineTokens(line, state, row);\n\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n } else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n\n return this.lines[row] = data.tokens;\n };\n\n}).call(BackgroundTokenizer.prototype);\n\nexports.BackgroundTokenizer = BackgroundTokenizer;\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar SearchHighlight = function(regExp, clazz, type) {\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type || \"text\";\n};\n\n(function() {\n this.MAX_RANGES = 500;\n \n this.setRegexp = function(regExp) {\n if (this.regExp+\"\" == regExp+\"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n\n this.update = function(html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function(match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n\n for (var j = ranges.length; j --; ) {\n markerLayer.drawSingleLineMarker(\n html, ranges[j].toScreenRange(session), this.clazz, config);\n }\n }\n };\n\n}).call(SearchHighlight.prototype);\n\nexports.SearchHighlight = SearchHighlight;\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nfunction FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n } else {\n folds = this.folds = [ folds ];\n }\n\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column,\n last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n\n this.folds.forEach(function(fold) {\n fold.setFoldLine(this);\n }, this);\n}\n\n(function() {\n this.shiftRow = function(shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function(fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n\n this.addFold = function(fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function(a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n } else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n } else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n } else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n\n this.containsRow = function(row) {\n return row >= this.start.row && row <= this.end.row;\n };\n\n this.walk = function(callback, endRow, endColumn) {\n var lastEnd = 0,\n folds = this.folds,\n fold,\n cmp, stop, isNewRow = true;\n\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n\n this.getNextFoldTo = function(row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n } else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n\n this.addRemoveChars = function(row, column, len) {\n var ret = this.getNextFoldTo(row, column),\n fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row)\n {\n window.console && window.console.log(row, column, fold);\n } else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n\n this.split = function(row, column) {\n var pos = this.getNextFoldTo(row, column);\n \n if (!pos || pos.kind == \"inside\")\n return null;\n \n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n \n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n\n this.merge = function(foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n\n this.toString = function() {\n var ret = [this.range.toString() + \": [\" ];\n\n this.folds.forEach(function(fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n\n this.idxToPosition = function(idx) {\n var lastFoldEndColumn = 0;\n\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n\n lastFoldEndColumn = fold.end.column;\n }\n\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n}).call(FoldLine.prototype);\n\nexports.FoldLine = FoldLine;\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar Range = acequire(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\n\nvar RangeList = function() {\n this.ranges = [];\n};\n\n(function() {\n this.comparePoints = comparePoints;\n\n this.pointIndex = function(pos, excludeEdges, startIndex) {\n var list = this.ranges;\n\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i-2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n\n return -i-1;\n }\n return -i - 1;\n };\n\n this.add = function(range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n\n this.addList = function(list) {\n var removed = [];\n for (var i = list.length; i--; ) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n\n this.substractPoint = function(pos) {\n var i = this.pointIndex(pos);\n\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n this.merge = function() {\n var removed = [];\n var list = this.ranges;\n \n list = list.sort(function(a, b) {\n return comparePoints(a.start, b.start);\n });\n \n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n \n this.ranges = list;\n\n return removed;\n };\n\n this.contains = function(row, column) {\n return this.pointIndex({row: row, column: column}) >= 0;\n };\n\n this.containsPoint = function(pos) {\n return this.pointIndex(pos) >= 0;\n };\n\n this.rangeAtPoint = function(pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n\n\n this.clipRows = function(startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n\n var startIndex = this.pointIndex({row: startRow, column: 0});\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n\n this.removeAll = function() {\n return this.ranges.splice(0, this.ranges.length);\n };\n\n this.attach = function(session) {\n if (this.session)\n this.detach();\n\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n\n this.session.on('change', this.onChange);\n };\n\n this.detach = function() {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n\n this.$onChange = function(delta) {\n if (delta.action == \"insert\"){\n var start = delta.start;\n var end = delta.end;\n } else {\n var end = delta.start;\n var start = delta.end;\n }\n var startRow = start.row;\n var endRow = end.row;\n var lineDif = endRow - startRow;\n\n var colDiff = -start.column + end.column;\n var ranges = this.ranges;\n\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row < startRow)\n continue;\n if (r.start.row > startRow)\n break;\n\n if (r.start.row == startRow && r.start.column >= start.column ) {\n if (r.start.column == start.column && this.$insertRight) {\n } else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$insertRight) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) { \n if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n\n}).call(RangeList.prototype);\n\nexports.RangeList = RangeList;\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/range_list\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar RangeList = acequire(\"../range_list\").RangeList;\nvar oop = acequire(\"../lib/oop\");\nvar Fold = exports.Fold = function(range, placeholder) {\n this.foldLine = null;\n this.placeholder = placeholder;\n this.range = range;\n this.start = range.start;\n this.end = range.end;\n\n this.sameRow = range.start.row == range.end.row;\n this.subFolds = this.ranges = [];\n};\n\noop.inherits(Fold, RangeList);\n\n(function() {\n\n this.toString = function() {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n\n this.setFoldLine = function(foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function(fold) {\n fold.setFoldLine(foldLine);\n });\n };\n\n this.clone = function() {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function(subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n\n this.addSubFold = function(fold) {\n if (this.range.isEqual(fold))\n return;\n\n if (!this.range.containsRange(fold))\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n consumeRange(fold, this.start);\n\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n\n if (cmp == 0)\n return afterStart.addSubFold(fold);\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterEnd = this.subFolds[j];\n\n if (cmp == 0)\n throw new Error(\"A fold can't intersect already existing fold\" + fold.range + this.range);\n\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n fold.setFoldLine(this.foldLine);\n\n return fold;\n };\n \n this.restoreRange = function(range) {\n return restoreRange(range, this.start);\n };\n\n}).call(Fold.prototype);\n\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar FoldLine = acequire(\"./fold_line\").FoldLine;\nvar Fold = acequire(\"./fold\").Fold;\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nfunction Folding() {\n this.getFoldAt = function(row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var fold = folds[i];\n if (fold.range.contains(row, column)) {\n if (side == 1 && fold.range.isEnd(row, column)) {\n continue;\n } else if (side == -1 && fold.range.isStart(row, column)) {\n continue;\n }\n return fold;\n }\n }\n };\n this.getFoldsInRange = function(range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n\n start.column += 1;\n end.column -= 1;\n\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n } else if (cmp == 2) {\n continue;\n } else\n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n\n return foundFolds;\n };\n\n this.getFoldsInRangeList = function(ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function(range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n } else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function() {\n var folds = [];\n var foldLines = this.$foldData;\n \n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n\n return folds;\n };\n this.getFoldStringAt = function(row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n\n this.getFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n } else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function(docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n\n this.getFoldedRowCount = function(first, last) {\n var foldData = this.$foldData, rowCount = last-first+1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i],\n end = foldLine.end.row,\n start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last-start;\n else\n rowCount = 0; // in one fold\n }\n break;\n } else if (end >= first){\n if (start >= first) // fold inside range\n rowCount -= end-start;\n else\n rowCount -= end-first+1;\n }\n }\n return rowCount;\n };\n\n this.$addFoldLine = function(foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function(a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function(placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n \n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n if (!(startRow < endRow || \n startRow == endRow && startColumn <= endColumn - 2))\n throw new Error(\"The range has to be at least 2 characters width\");\n\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n \n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n folds.forEach(function(subFold) {\n fold.addSubFold(subFold);\n });\n }\n\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n } else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n } else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n\n return fold;\n };\n\n this.addFolds = function(folds) {\n folds.forEach(function(fold) {\n this.addFold(fold);\n }, this);\n };\n\n this.removeFold = function(fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n } else\n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n } else\n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n } else\n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n } else\n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n\n this.removeFolds = function(folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n\n cloneFolds.forEach(function(fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n\n this.expandFold = function(fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function(subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1);\n }\n fold.subFolds = [];\n };\n\n this.expandFolds = function(folds) {\n folds.forEach(function(fold) {\n this.expandFold(fold);\n }, this);\n };\n\n this.unfold = function(location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n expandInner = true;\n } else if (typeof location == \"number\")\n range = new Range(location, 0, location, this.getLine(location).length);\n else if (\"row\" in location)\n range = Range.fromPoints(location, location);\n else\n range = location;\n \n folds = this.getFoldsInRangeList(range);\n if (expandInner) {\n this.removeFolds(folds);\n } else {\n var subFolds = folds;\n while (subFolds.length) {\n this.expandFolds(subFolds);\n subFolds = this.getFoldsInRangeList(range);\n }\n }\n if (folds.length)\n return folds;\n };\n this.isRowFolded = function(docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n\n this.getRowFoldEnd = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n\n this.getRowFoldStart = function(docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n\n this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n\n if (placeholder != null) {\n textLine += placeholder;\n } else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n\n this.getDisplayLine = function(row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n } else {\n return this.getFoldDisplayLine(\n foldLine, row, endColumn, startRow, startColumn);\n }\n };\n\n this.$cloneFoldData = function() {\n var fd = [];\n fd = this.$foldData.map(function(foldLine) {\n var folds = foldLine.folds.map(function(fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n\n return fd;\n };\n\n this.toggleFold = function(tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n\n if (fold) {\n this.expandFold(fold);\n return;\n } else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n } else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n\n range.start.column++;\n } else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n } else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n } else if (folds.length == 1 ) {\n fold = folds[0];\n }\n }\n\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n\n this.addFold(placeholder, range);\n };\n\n this.getCommentFoldRange = function(row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type));\n iterator.stepForward();\n }\n \n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + 2;\n\n iterator = new TokenIterator(this, row, column);\n \n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n } else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type));\n token = iterator.stepBackward();\n } else\n token = iterator.getCurrentToken();\n\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2;\n return range;\n }\n };\n\n this.foldAll = function(startRow, endRow, depth) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow\n ) {\n row = range.end.row;\n try {\n var fold = this.addFold(\"...\", range);\n if (fold)\n fold.collapseChildren = depth;\n } catch(e) {}\n }\n }\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function(style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n \n if (this.$foldStyle == style)\n return;\n\n this.$foldStyle = style;\n \n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n\n this.$setFolding = function(foldMode) {\n if (this.$foldMode == foldMode)\n return;\n \n this.$foldMode = foldMode;\n \n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n \n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n \n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n \n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n\n this.onFoldWidgetClick = function(row, e) {\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n \n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n \n this.$toggleFoldWidget = function(row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n \n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n } else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n } else if (range) {\n if (options.all) \n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n \n return range;\n };\n \n \n \n this.toggleFoldWidget = function(toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n \n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n \n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n\n if (fold) {\n this.removeFold(fold);\n } else {\n this.addFold(\"...\", range);\n }\n }\n };\n\n this.updateFoldWidgets = function(delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n } else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n } else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function(e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\n\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\nvar Range = acequire(\"../range\").Range;\n\n\nfunction BracketMatch() {\n\n this.findMatchingBracket = function(position, chr) {\n if (position.column == 0) return null;\n\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1);\n if (charBeforeCursor == \"\") return null;\n\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n \n this.getBracketRange = function(pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n\n var chr = line.charAt(pos.column-1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = {row: pos.row, column: pos.column + 1};\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n } else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n \n return range;\n };\n\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\"\n };\n\n this.$findOpeningBracket = function(bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n \n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n \n while (true) {\n \n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n \n value = token.value;\n valueIndex = value.length - 1;\n }\n \n return null;\n };\n\n this.$findClosingBracket = function(bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n\n if (!typeRe){\n typeRe = new RegExp(\n \"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n + \")+\"\n );\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n\n while (true) {\n\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return {row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn()};\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n\n if (token == null)\n break;\n\n valueIndex = 0;\n }\n \n return null;\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar lang = acequire(\"./lib/lang\");\nvar BidiHandler = acequire(\"./bidihandler\").BidiHandler;\nvar config = acequire(\"./config\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar Selection = acequire(\"./selection\").Selection;\nvar TextMode = acequire(\"./mode/text\").Mode;\nvar Range = acequire(\"./range\").Range;\nvar Document = acequire(\"./document\").Document;\nvar BackgroundTokenizer = acequire(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = acequire(\"./search_highlight\").SearchHighlight;\n\nvar EditSession = function(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function() {\n return this.join(\"\\n\");\n };\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n\n this.$bidiHandler = new BidiHandler(this);\n this.setDocument(text);\n this.selection = new Selection(this);\n\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n};\n\n\nEditSession.$uid = 0;\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setDocument = function(doc) {\n if (this.doc)\n this.doc.removeListener(\"change\", this.$onChange);\n\n this.doc = doc;\n doc.on(\"change\", this.$onChange);\n\n if (this.bgTokenizer)\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.resetCaches();\n };\n this.getDocument = function() {\n return this.doc;\n };\n this.$resetRowCache = function(docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n\n this.$getRowCacheIndex = function(cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n\n return low -1;\n };\n\n this.resetCaches = function() {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (this.bgTokenizer)\n this.bgTokenizer.start(0);\n };\n\n this.onChangeFold = function(e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n\n this.onChange = function(delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager && !delta.ignore) {\n this.$deltasDoc.push(delta);\n if (removedFolds && removedFolds.length != 0) {\n this.$deltasFold.push({\n action: \"removeFolds\",\n folds: removedFolds\n });\n }\n\n this.$informUndoManager.schedule();\n }\n\n this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n this.setValue = function(text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n\n this.$resetRowCache(0);\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n this.getValue =\n this.toString = function() {\n return this.doc.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.getState = function(row) {\n return this.bgTokenizer.getState(row);\n };\n this.getTokens = function(row) {\n return this.bgTokenizer.getTokens(row);\n };\n this.getTokenAt = function(row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n } else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n this.setUndoManager = function(undoManager) {\n this.$undoManager = undoManager;\n this.$deltas = [];\n this.$deltasDoc = [];\n this.$deltasFold = [];\n\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n\n if (undoManager) {\n var self = this;\n\n this.$syncInformUndoManager = function() {\n self.$informUndoManager.cancel();\n\n if (self.$deltasFold.length) {\n self.$deltas.push({\n group: \"fold\",\n deltas: self.$deltasFold\n });\n self.$deltasFold = [];\n }\n\n if (self.$deltasDoc.length) {\n self.$deltas.push({\n group: \"doc\",\n deltas: self.$deltasDoc\n });\n self.$deltasDoc = [];\n }\n\n if (self.$deltas.length > 0) {\n undoManager.execute({\n action: \"aceupdate\",\n args: [self.$deltas, self],\n merge: self.mergeUndoDeltas\n });\n }\n self.mergeUndoDeltas = false;\n self.$deltas = [];\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n };\n this.markUndoGroup = function() {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n \n this.$defaultUndoManager = {\n undo: function() {},\n redo: function() {},\n reset: function() {}\n };\n this.getUndoManager = function() {\n return this.$undoManager || this.$defaultUndoManager;\n };\n this.getTabString = function() {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n } else {\n return \"\\t\";\n }\n };\n this.setUseSoftTabs = function(val) {\n this.setOption(\"useSoftTabs\", val);\n };\n this.getUseSoftTabs = function() {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n this.setTabSize = function(tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n this.getTabSize = function() {\n return this.$tabSize;\n };\n this.isTabStop = function(position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n this.getNavigateWithinSoftTabs = function() {\n return this.$navigateWithinSoftTabs;\n };\n\n this.$overwrite = false;\n this.setOverwrite = function(overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n this.getOverwrite = function() {\n return this.$overwrite;\n };\n this.toggleOverwrite = function() {\n this.setOverwrite(!this.$overwrite);\n };\n this.addGutterDecoration = function(row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n this.removeGutterDecoration = function(row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n this.getBreakpoints = function() {\n return this.$breakpoints;\n };\n this.setBreakpoints = function(rows) {\n this.$breakpoints = [];\n for (var i=0; i 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column-1, column+1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n\n var start = column;\n if (start > 0) {\n do {\n start--;\n }\n while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n\n return new Range(row, start, row, end);\n };\n this.getAWordRange = function(row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n this.setNewLineMode = function(newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n this.getNewLineMode = function() {\n return this.doc.getNewLineMode();\n };\n this.setUseWorker = function(useWorker) { this.setOption(\"useWorker\", useWorker); };\n this.getUseWorker = function() { return this.$useWorker; };\n this.onReloadTokenizer = function(e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n\n this.$modes = {};\n this.$mode = null;\n this.$modeId = null;\n this.setMode = function(mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n } else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function(m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n } else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n\n this.$onChangeMode = function(mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode) \n return;\n\n this.$mode = mode;\n\n this.$stopWorker();\n\n if (this.$useWorker)\n this.$startWorker();\n\n var tokenizer = mode.getTokenizer();\n\n if(tokenizer.addEventListener !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.addEventListener(\"update\", onReloadTokenizer);\n }\n\n if (!this.bgTokenizer) {\n this.bgTokenizer = new BackgroundTokenizer(tokenizer);\n var _self = this;\n this.bgTokenizer.addEventListener(\"update\", function(e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n } else {\n this.bgTokenizer.setTokenizer(tokenizer);\n }\n\n this.bgTokenizer.setDocument(this.getDocument());\n\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n\n \n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\");\n }\n };\n\n this.$stopWorker = function() {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n\n this.$startWorker = function() {\n try {\n this.$worker = this.$mode.createWorker(this);\n } catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n this.getMode = function() {\n return this.$mode;\n };\n\n this.$scrollTop = 0;\n this.setScrollTop = function(scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n this.getScrollTop = function() {\n return this.$scrollTop;\n };\n\n this.$scrollLeft = 0;\n this.setScrollLeft = function(scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n this.getScrollLeft = function() {\n return this.$scrollLeft;\n };\n this.getScreenWidth = function() {\n this.$computeWidth();\n if (this.lineWidgets) \n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n \n this.getLineWidgetMaxWidth = function() {\n if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function(w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n\n this.$computeWidth = function(force) {\n if (this.$modified || force) {\n this.$modified = false;\n\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n this.getLine = function(row) {\n return this.doc.getLine(row);\n };\n this.getLines = function(firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n this.getLength = function() {\n return this.doc.getLength();\n };\n this.getTextRange = function(range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n this.insert = function(position, text) {\n return this.doc.insert(position, text);\n };\n this.remove = function(range) {\n return this.doc.remove(range);\n };\n this.removeFullLines = function(firstRow, lastRow){\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n this.undoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.revertDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, true, lastUndoRange);\n } else {\n delta.deltas.forEach(function(foldDelta) {\n this.addFolds(foldDelta.folds);\n }, this);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.redoChanges = function(deltas, dontSelect) {\n if (!deltas.length)\n return;\n\n this.$fromUndo = true;\n var lastUndoRange = null;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.group == \"doc\") {\n this.doc.applyDeltas(delta.deltas);\n lastUndoRange =\n this.$getUndoSelection(delta.deltas, false, lastUndoRange);\n }\n }\n this.$fromUndo = false;\n lastUndoRange &&\n this.$undoSelect &&\n !dontSelect &&\n this.selection.setSelectionRange(lastUndoRange);\n return lastUndoRange;\n };\n this.setUndoSelect = function(enable) {\n this.$undoSelect = enable;\n };\n\n this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n\n var delta = deltas[0];\n var range, point;\n var lastDeltaIsInsert = false;\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n lastDeltaIsInsert = true;\n } else {\n range = Range.fromPoints(delta.start, delta.start);\n lastDeltaIsInsert = false;\n }\n\n for (var i = 1; i < deltas.length; i++) {\n delta = deltas[i];\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n lastDeltaIsInsert = true;\n } else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n lastDeltaIsInsert = false;\n }\n }\n if (lastUndoRange != null) {\n if (Range.comparePoints(lastUndoRange.start, range.start) === 0) {\n lastUndoRange.start.column += range.end.column - range.start.column;\n lastUndoRange.end.column += range.end.column - range.start.column;\n }\n\n var cmp = lastUndoRange.compareRange(range);\n if (cmp == 1) {\n range.setStart(lastUndoRange.start);\n } else if (cmp == -1) {\n range.setEnd(lastUndoRange.end);\n }\n }\n\n return range;\n };\n this.replace = function(range, text) {\n return this.doc.replace(range, text);\n };\n this.moveText = function(fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function(x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n\n return toRange;\n };\n this.indentRows = function(startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row=startRow; row<=endRow; row++)\n this.doc.insertInLine({row: row, column: 0}, indentString);\n };\n this.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n } else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n\n this.$moveLines = function(firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0) return 0;\n var diff = row-firstRow;\n } else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength()-1) return 0;\n var diff = row-lastRow;\n } else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function(x){\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n \n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow+diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n this.moveLinesUp = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n this.moveLinesDown = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n this.duplicateLines = function(firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n\n\n this.$clipRowToDocument = function(row) {\n return Math.max(0, Math.min(row, this.doc.getLength()-1));\n };\n\n this.$clipColumnToRow = function(row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n\n\n this.$clipPositionToDocument = function(row, column) {\n column = Math.max(0, column);\n\n if (row < 0) {\n row = 0;\n column = 0;\n } else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len-1).length;\n } else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n\n return {\n row: row,\n column: column\n };\n };\n\n this.$clipRangeToDocument = function(range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n } else {\n range.start.column = this.$clipColumnToRow(\n range.start.row,\n range.start.column\n );\n }\n\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n } else {\n range.end.column = this.$clipColumnToRow(\n range.end.row,\n range.end.column\n );\n }\n return range;\n };\n this.$wrapLimit = 80;\n this.$useWrapMode = false;\n this.$wrapLimitRange = {\n min : null,\n max : null\n };\n this.setUseWrapMode = function(useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n\n this._signal(\"changeWrapMode\");\n }\n };\n this.getUseWrapMode = function() {\n return this.$useWrapMode;\n };\n this.setWrapLimitRange = function(min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n this.adjustWrapLimit = function(desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = {min: $printMargin, max: $printMargin};\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n\n this.$constrainWrapLimit = function(wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n\n return wrapLimit;\n };\n this.getWrapLimit = function() {\n return this.$wrapLimit;\n };\n this.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n this.getWrapLimitRange = function() {\n return {\n min : this.$wrapLimitRange.min,\n max : this.$wrapLimitRange.max\n };\n };\n\n this.$updateInternalDataOnChange = function(delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n \n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n\n lastRow = firstRow;\n } else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n } else\n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n } else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n\n return removedFolds;\n };\n\n this.$updateRowLengthCache = function(firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n\n this.$updateWrapData = function(firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row ++;\n } else {\n tokens = [];\n foldLine.walk(function(placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(\n placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n } else {\n walkTokens = this.$getDisplayTokens(\n lines[row].substring(lastColumn, column),\n tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this),\n foldLine.end.row,\n lines[foldLine.end.row].length + 1\n );\n\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n var CHAR = 1,\n CHAR_EXT = 2,\n PLACEHOLDER_START = 3,\n PLACEHOLDER_BODY = 4,\n PUNCTUATION = 9,\n SPACE = 10,\n TAB = 11,\n TAB_SPACE = 12;\n\n\n this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n\n var isCode = this.$wrapAsCode;\n\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var displayed = tokens.slice(lastSplit, screenPos);\n var len = displayed.length;\n displayed.join(\"\")\n .replace(/12/g, function() {\n len -= 1;\n })\n .replace(/2/g, function() {\n len -= 1;\n });\n\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split --;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split --;\n }\n } else {\n while (split > minSplit && tokens[split] < SPACE) {\n split --;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n this.$getDisplayTokens = function(str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n } else if((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n } else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n } else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n\n return [screenColumn, column];\n };\n\n this.lineWidgets = null;\n this.getRowLength = function(row) {\n if (this.lineWidgets)\n var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n this.getRowLineCount = function(row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n } else {\n return this.$wrapData[row].length + 1;\n }\n };\n\n this.getRowWrapIndent = function(screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n } else {\n return 0;\n }\n };\n this.getScreenLastRowColumn = function(screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n this.getDocumentLastRowColumn = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n this.getDocumentLastRowColumnPosition = function(docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n this.getRowSplitData = function(row) {\n if (!this.$useWrapMode) {\n return undefined;\n } else {\n return this.$wrapData[row];\n }\n };\n this.getScreenTabSize = function(screenColumn) {\n return this.$tabSize - screenColumn % this.$tabSize;\n };\n\n\n this.screenToDocumentRow = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n\n\n this.screenToDocumentColumn = function(screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return {row: 0, column: 0};\n\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n } else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row+1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n } else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n } else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if(splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n\n return {row: docRow, column: docColumn};\n };\n this.documentToScreenPosition = function(docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n\n docRow = pos.row;\n docColumn = pos.column;\n\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n\n var rowEnd, row = 0;\n\n\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n } else {\n var doCache = !l;\n }\n\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ?foldLine.start.row :Infinity;\n\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ?foldLine.start.row :Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n\n screenRow += this.getRowLength(row);\n row = rowEnd;\n\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n } else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow ++;\n screenRowOffset++;\n }\n textLine = textLine.substring(\n wrapRow[screenRowOffset - 1] || 0, textLine.length\n );\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n this.documentToScreenColumn = function(row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n this.documentToScreenRow = function(docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n this.getScreenLength = function() {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n } else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row :Infinity;\n\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row ++;\n if (row > foldStart) {\n row = fold.end.row+1;\n fold = this.$foldData[i++];\n foldStart = fold ?fold.start.row :Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n\n return screenRows;\n };\n this.$setFontMetrics = function(fm) {\n if (!this.$enableVarChar) return;\n this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n \n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n } else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n \n return [screenColumn, column];\n };\n };\n \n this.destroy = function() {\n if (this.bgTokenizer) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer = null;\n }\n this.$stopWorker();\n };\n\n this.isFullWidth = isFullWidth;\n function isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n }\n\n}).call(EditSession.prototype);\n\nacequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nacequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\n\n\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function(value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n } else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function() {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n }, \n wrapMethod: {\n set: function(val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$modified = true;\n this.$resetRowCache(0);\n this.$updateWrapData(0, this.getLength() - 1);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: { initialValue: true },\n firstLineNumber: {\n set: function() {this._signal(\"changeBreakpoint\");},\n initialValue: 1\n },\n useWorker: {\n set: function(useWorker) {\n this.$useWorker = useWorker;\n\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: {initialValue: true},\n tabSize: {\n set: function(tabSize) {\n if (isNaN(tabSize) || this.$tabSize === tabSize) return;\n\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: {initialValue: false},\n overwrite: {\n set: function(val) {this._signal(\"changeOverwrite\");},\n initialValue: false\n },\n newLineMode: {\n set: function(val) {this.doc.setNewLineMode(val);},\n get: function() {return this.doc.getNewLineMode();},\n handlesSet: true\n },\n mode: {\n set: function(val) { this.setMode(val); },\n get: function() { return this.$modeId; }\n }\n});\n\nexports.EditSession = EditSession;\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"./lib/lang\");\nvar oop = acequire(\"./lib/oop\");\nvar Range = acequire(\"./range\").Range;\n\nvar Search = function() {\n this.$options = {};\n};\n\n(function() {\n this.set = function(options) {\n oop.mixin(this.$options, options);\n return this;\n };\n this.getOptions = function() {\n return lang.copyObject(this.$options);\n };\n this.setOptions = function(options) {\n this.$options = options;\n };\n this.find = function(session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n\n var firstRange = null;\n iterator.forEach(function(sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)\n ) {\n firstRange = null;\n return false;\n }\n\n return true;\n });\n\n return firstRange;\n };\n this.findAll = function(session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n \n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n \n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex\n ) {\n continue;\n }\n ranges.push(prevRange = new Range(\n row, startIndex, row + len - 1, endIndex\n ));\n if (len > 2)\n row = row + len - 2;\n }\n } else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.start.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row)\n i++;\n\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row)\n j--;\n \n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n\n return ranges;\n };\n this.replace = function(input, replacement) {\n var options = this.$options;\n\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n\n if (!re)\n return;\n\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n \n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--; ) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n \n return replacement;\n };\n\n this.$assembleRegExp = function(options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n\n var needle = options.needle;\n\n if (!options.needle)\n return options.re = false;\n\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n\n try {\n var re = new RegExp(needle, modifier);\n } catch(e) {\n re = false;\n }\n return options.re = re;\n };\n\n this.$assembleMultilineRegExp = function(needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++) try {\n re.push(new RegExp(parts[i], modifier));\n } catch(e) {\n return false;\n }\n return re;\n };\n\n this.$matchIterator = function(session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n \n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n\n if (backwards) {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function(callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n \n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function(row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0) return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1) return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset) return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function(row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length) break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function(row, startIndex, callback) {\n var line = session.getLine(row);\n var m;\n var last = startIndex;\n re.lastIndex = startIndex;\n while((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row,last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length) return false;\n }\n }\n };\n }\n return {forEach: forEach};\n };\n\n}).call(Search.prototype);\n\nfunction addWordBoundary(needle, options) {\n function wordBoundary(c) {\n if (/\\w/.test(c) || options.regExp) return \"\\\\b\";\n return \"\";\n }\n return wordBoundary(needle[0]) + needle\n + wordBoundary(needle[needle.length - 1]);\n}\n\nexports.Search = Search;\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar keyUtil = acequire(\"../lib/keys\");\nvar useragent = acequire(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\n\nfunction HashHandler(config, platform) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = true;\n}\n\nfunction MultiHashHandler(config, platform) {\n HashHandler.call(this, config, platform);\n this.$singleCommand = false;\n}\n\nMultiHashHandler.prototype = HashHandler.prototype;\n\n(function() {\n \n\n this.addCommand = function(command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n\n this.commands[command.name] = command;\n\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n\n this.removeCommand = function(command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n } else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n\n this.bindKey = function(key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({exec: command, bindKey: key, name: command.name || key});\n \n key.split(\"|\").forEach(function(keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function(keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n \n function getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n }\n this._addCommandToBinding = function(keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n } else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n } else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n } else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n\n this.addCommands = function(commands) {\n commands && Object.keys(commands).forEach(function(name) {\n var command = commands[name];\n if (!command)\n return;\n \n if (typeof command === \"string\")\n return this.bindKey(command, name);\n\n if (typeof command === \"function\")\n command = { exec: command };\n\n if (typeof command !== \"object\")\n return;\n\n if (!command.name)\n command.name = name;\n\n this.addCommand(command);\n }, this);\n };\n\n this.removeCommands = function(commands) {\n Object.keys(commands).forEach(function(name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n\n this.bindKeys = function(keyList) {\n Object.keys(keyList).forEach(function(key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n\n this._buildKeyHash = function(command) {\n this.bindKey(command.bindKey, command);\n };\n this.parseKeys = function(keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function(x){return x;});\n var key = parts.pop();\n\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return {key: key, hashId: -1};\n else if (parts.length == 1 && parts[0] == \"shift\")\n return {key: key.toUpperCase(), hashId: -1};\n\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return {key: key, hashId: hashId};\n };\n\n this.findKeyCommand = function findKeyCommand(hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n\n this.handleKeyboard = function(data, hashId, keyString, keyCode) {\n if (keyCode < 0) return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n \n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return {command: \"null\"};\n }\n }\n \n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return {command: command};\n };\n \n this.getStatusText = function(editor, data) {\n return data.$keyChain || \"\";\n };\n\n}).call(HashHandler.prototype);\n\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar MultiHashHandler = acequire(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CommandManager = function(platform, commands) {\n MultiHashHandler.call(this, commands, platform);\n this.byName = this.commands;\n this.setDefaultHandler(\"exec\", function(e) {\n return e.command.exec(e.editor, e.args || {});\n });\n};\n\noop.inherits(CommandManager, MultiHashHandler);\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.exec = function(command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--; ) {\n if (this.exec(command[i], editor, args)) return true;\n }\n return false;\n }\n\n if (typeof command === \"string\")\n command = this.commands[command];\n\n if (!command)\n return false;\n\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n\n if (command.isAvailable && !command.isAvailable(editor))\n return false;\n\n var e = {editor: editor, command: command, args: args};\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n\n return e.returnValue === false ? false : true;\n };\n\n this.toggleRecording = function(editor) {\n if (this.$inReplay)\n return;\n\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.removeEventListener(\"exec\", this.$addCommandToMacro);\n\n if (!this.macro.length)\n this.macro = this.oldMacro;\n\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function(e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n\n this.replay = function(editor) {\n if (this.$inReplay || !this.macro)\n return;\n\n if (this.recording)\n return this.toggleRecording(editor);\n\n try {\n this.$inReplay = true;\n this.macro.forEach(function(x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n } finally {\n this.$inReplay = false;\n }\n };\n\n this.trimMacro = function(m) {\n return m.map(function(x){\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n\n}).call(CommandManager.prototype);\n\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar lang = acequire(\"../lib/lang\");\nvar config = acequire(\"../config\");\nvar Range = acequire(\"../range\").Range;\n\nfunction bindKey(win, mac) {\n return {win: win, mac: mac};\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/settings_menu\", function(module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n}, {\n name: \"goToNextError\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"goToPreviousError\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/error_marker\", function(module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selectall\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function(editor) { editor.selectAll(); },\n readOnly: true\n}, {\n name: \"centerselection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function(editor) { editor.centerSelection(); },\n readOnly: true\n}, {\n name: \"gotoline\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function(editor) {\n var line = parseInt(prompt(\"Enter line number:\"), 10);\n if (!isNaN(line)) {\n editor.gotoLine(line);\n }\n },\n readOnly: true\n}, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function(editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function(editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleFoldWidget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"toggleParentFoldWidget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function(editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldall\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function(editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"foldOther\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function(editor) { \n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"unfoldall\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function(editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findnext\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function(editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"findprevious\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function(editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n}, {\n name: \"selectOrFindNext\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function(editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext(); \n },\n readOnly: true\n}, {\n name: \"selectOrFindPrevious\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function(editor) { \n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n}, {\n name: \"find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor);});\n },\n readOnly: true\n}, {\n name: \"overwrite\",\n bindKey: \"Insert\",\n exec: function(editor) { editor.toggleOverwrite(); },\n readOnly: true\n}, {\n name: \"selecttostart\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function(editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotostart\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function(editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectup\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function(editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golineup\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function(editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttoend\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function(editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"gotoend\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function(editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n}, {\n name: \"selectdown\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function(editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"golinedown\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function(editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordleft\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function(editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordleft\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function(editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolinestart\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolinestart\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function(editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectleft\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function(editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoleft\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function(editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectwordright\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotowordright\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function(editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selecttolineend\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotolineend\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function(editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectright\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function(editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"gotoright\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function(editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectpagedown\",\n bindKey: \"Shift-PageDown\",\n exec: function(editor) { editor.selectPageDown(); },\n readOnly: true\n}, {\n name: \"pagedown\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function(editor) { editor.scrollPageDown(); },\n readOnly: true\n}, {\n name: \"gotopagedown\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function(editor) { editor.gotoPageDown(); },\n readOnly: true\n}, {\n name: \"selectpageup\",\n bindKey: \"Shift-PageUp\",\n exec: function(editor) { editor.selectPageUp(); },\n readOnly: true\n}, {\n name: \"pageup\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function(editor) { editor.scrollPageUp(); },\n readOnly: true\n}, {\n name: \"gotopageup\",\n bindKey: \"PageUp\",\n exec: function(editor) { editor.gotoPageUp(); },\n readOnly: true\n}, {\n name: \"scrollup\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"scrolldown\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n}, {\n name: \"selectlinestart\",\n bindKey: \"Shift-Home\",\n exec: function(editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectlineend\",\n bindKey: \"Shift-End\",\n exec: function(editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"togglerecording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function(editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n}, {\n name: \"replaymacro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function(editor) { editor.commands.replay(editor); },\n readOnly: true\n}, {\n name: \"jumptomatching\",\n bindKey: bindKey(\"Ctrl-P\", \"Ctrl-P\"),\n exec: function(editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"selecttomatching\",\n bindKey: bindKey(\"Ctrl-Shift-P\", \"Ctrl-Shift-P\"),\n exec: function(editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"expandToMatching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function(editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n}, {\n name: \"passKeysToBrowser\",\n bindKey: bindKey(null, null),\n exec: function() {},\n passEvent: true,\n readOnly: true\n}, {\n name: \"copy\",\n exec: function(editor) {\n },\n readOnly: true\n},\n{\n name: \"cut\",\n exec: function(editor) {\n var range = editor.getSelectionRange();\n editor._emit(\"cut\", range);\n\n if (!editor.selection.isEmpty()) {\n editor.session.remove(range);\n editor.clearSelection();\n }\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"paste\",\n exec: function(editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n}, {\n name: \"removeline\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function(editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"duplicateSelection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function(editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"sortlines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function(editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n}, {\n name: \"togglecomment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function(editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"toggleBlockComment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function(editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"modifyNumberUp\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function(editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"modifyNumberDown\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function(editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n}, {\n name: \"replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function(editor) {\n config.loadModule(\"ace/ext/searchbox\", function(e) {e.Search(editor, true);});\n }\n}, {\n name: \"undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function(editor) { editor.undo(); }\n}, {\n name: \"redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function(editor) { editor.redo(); }\n}, {\n name: \"copylinesup\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function(editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesup\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function(editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"copylinesdown\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function(editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"movelinesdown\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function(editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"del\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function(editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"backspace\",\n bindKey: bindKey(\n \"Shift-Backspace|Backspace\",\n \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"\n ),\n exec: function(editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"cut_or_delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function(editor) { \n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n } else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestart\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function(editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineend\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function(editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolinestarthard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removetolineendhard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function(editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordleft\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function(editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"removewordright\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function(editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function(editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockoutdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function(editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"blockindent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function(editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n}, {\n name: \"insertstring\",\n exec: function(editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"inserttext\",\n exec: function(editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"splitline\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function(editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"transposeletters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function(editor) { editor.transposeLetters(); },\n multiSelectAction: function(editor) {editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n}, {\n name: \"touppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function(editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"tolowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function(editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n}, {\n name: \"expandtoline\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function(editor) {\n var range = editor.selection.getRange();\n\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"joinlines\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n } else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n}, {\n name: \"invertSelection\",\n bindKey: bindKey(null, null),\n exec: function(editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n } else {\n newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n\n editor.exitMultiSelectMode();\n editor.clearSelection();\n\n for(var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n}];\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar lang = acequire(\"./lib/lang\");\nvar useragent = acequire(\"./lib/useragent\");\nvar TextInput = acequire(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = acequire(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = acequire(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = acequire(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar Search = acequire(\"./search\").Search;\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = acequire(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = acequire(\"./commands/default_commands\").commands;\nvar config = acequire(\"./config\");\nvar TokenIterator = acequire(\"./token_iterator\").TokenIterator;\nvar Editor = function(renderer, session) {\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n\n this.keyBinding = new KeyBinding(this);\n\n this.$blockScrolling = 0;\n this.$search = new Search().set({\n wrap: true\n });\n\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n\n this.$initOperationListeners();\n \n this._$emitInputEvent = lang.delayedCall(function() {\n this._signal(\"input\", {});\n if (this.session && this.session.bgTokenizer)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n \n this.on(\"change\", function(_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n\n this.setSession(session || new EditSession(\"\"));\n config.resetOptions(this);\n config._signal(\"editor\", this);\n};\n\nEditor.$uid = 0;\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$initOperationListeners = function() {\n function last(a) {return a[a.length - 1];}\n\n this.selections = [];\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this));\n\n this.on(\"change\", function() {\n this.curOp || this.startOperation();\n this.curOp.docChanged = true;\n }.bind(this), true);\n\n this.on(\"changeSelection\", function() {\n this.curOp || this.startOperation();\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n\n this.curOp = null;\n this.prevOp = {};\n this.startOperation = function(commadEvent) {\n if (this.curOp) {\n if (!commadEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commadEvent) {\n this.previousCommand = null;\n commadEvent = {};\n }\n\n this.$opResetTimer.schedule();\n this.curOp = {\n command: commadEvent.command || {},\n args: commadEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined)\n this.$blockScrolling++;\n };\n\n this.endOperation = function(e) {\n if (this.curOp) {\n if (e && e.returnValue === false)\n return this.curOp = null;\n this._signal(\"beforeEndOperation\");\n var command = this.curOp.command;\n if (command.name && this.$blockScrolling > 0)\n this.$blockScrolling--;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n \n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n this.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\n this.$historyTracker = function(e) {\n if (!this.$mergeUndoDeltas)\n return;\n\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n\n this.mergeNextCommand = true;\n } else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n\n if (\n this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000\n ) {\n shouldMerge = false; // the sequence is too long\n }\n\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n this.setKeyboardHandler = function(keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function(module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n } else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n this.getKeyboardHandler = function() {\n return this.keyBinding.getKeyboardHandler();\n };\n this.setSession = function(session) {\n if (this.session == session)\n return;\n if (this.curOp) this.endOperation();\n this.curOp = {};\n\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n \n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n \n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n \n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n \n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n \n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n \n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n \n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n \n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n \n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n \n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n \n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n \n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n \n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n \n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n \n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n \n this.onChangeMode();\n \n this.$blockScrolling += 1;\n this.onCursorChange();\n this.$blockScrolling -= 1;\n \n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n } else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n \n this.curOp = null;\n \n oldSession && oldSession._signal(\"changeEditor\", {oldEditor: this});\n session && session._signal(\"changeEditor\", {editor: this});\n\n if (session && session.bgTokenizer)\n session.bgTokenizer.scheduleStart();\n };\n this.getSession = function() {\n return this.session;\n };\n this.setValue = function(val, cursorPos) {\n this.session.doc.setValue(val);\n\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n\n return val;\n };\n this.getValue = function() {\n return this.session.getValue();\n };\n this.getSelection = function() {\n return this.selection;\n };\n this.resize = function(force) {\n this.renderer.onResize(force);\n };\n this.setTheme = function(theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n this.getTheme = function() {\n return this.renderer.getTheme();\n };\n this.setStyle = function(style) {\n this.renderer.setStyle(style);\n };\n this.unsetStyle = function(style) {\n this.renderer.unsetStyle(style);\n };\n this.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container, \"fontSize\");\n };\n this.setFontSize = function(size) {\n this.setOption(\"fontSize\", size);\n };\n\n this.$highlightBrackets = function() {\n if (this.session.$bracketHighlight) {\n this.session.removeMarker(this.session.$bracketHighlight);\n this.session.$bracketHighlight = null;\n }\n\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function() {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n var pos = session.findMatchingBracket(self.getCursorPosition());\n if (pos) {\n var range = new Range(pos.row, pos.column, pos.row, pos.column + 1);\n } else if (session.$mode.getMatching) {\n var range = session.$mode.getMatching(self.session);\n }\n if (range)\n session.$bracketHighlight = session.addMarker(range, \"ace_bracket\", \"text\");\n }, 50);\n };\n this.$highlightTags = function() {\n if (this.$highlightTagPending)\n return;\n var self = this;\n this.$highlightTagPending = true;\n setTimeout(function() {\n self.$highlightTagPending = false;\n \n var session = self.session;\n if (!session || !session.bgTokenizer) return;\n \n var pos = self.getCursorPosition();\n var iterator = new TokenIterator(self.session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n \n if (!token || !/\\b(?:tag-open|tag-name)/.test(token.type)) {\n session.removeMarker(session.$tagHighlight);\n session.$tagHighlight = null;\n return;\n }\n \n if (token.type.indexOf(\"tag-open\") != -1) {\n token = iterator.stepForward();\n if (!token)\n return;\n }\n \n var tag = token.value;\n var depth = 0;\n var prevToken = iterator.stepBackward();\n \n if (prevToken.value == '<'){\n do {\n prevToken = token;\n token = iterator.stepForward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<'){\n depth++;\n } else if (prevToken.value === '= 0);\n } else {\n do {\n token = prevToken;\n prevToken = iterator.stepBackward();\n \n if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) {\n if (prevToken.value === '<') {\n depth++;\n } else if (prevToken.value === ' 1))\n highlight = false;\n }\n\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n } else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n } else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n\n this.onSelectionChange = function(e) {\n var session = this.session;\n\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n } else {\n this.$updateHighlightActiveLine();\n }\n\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n\n this._signal(\"changeSelection\");\n };\n\n this.$getSelectionHighLightRegexp = function() {\n var session = this.session;\n\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n\n var startOuter = selection.start.column - 1;\n var endOuter = selection.end.column + 1;\n var line = session.getLine(selection.start.row);\n var lineCols = line.length;\n var needle = line.substring(Math.max(startOuter, 0),\n Math.min(endOuter, lineCols));\n if ((startOuter >= 0 && /^[\\w\\d]/.test(needle)) ||\n (endOuter <= lineCols && /[\\w\\d]$/.test(needle)))\n return;\n\n needle = line.substring(selection.start.column, selection.end.column);\n if (!/^[\\w\\d]+$/.test(needle))\n return;\n\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n\n return re;\n };\n\n\n this.onChangeFrontMarker = function() {\n this.renderer.updateFrontMarkers();\n };\n\n this.onChangeBackMarker = function() {\n this.renderer.updateBackMarkers();\n };\n\n\n this.onChangeBreakpoint = function() {\n this.renderer.updateBreakpoints();\n };\n\n this.onChangeAnnotation = function() {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n\n\n this.onChangeMode = function(e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n\n\n this.onChangeWrapLimit = function() {\n this.renderer.updateFull();\n };\n\n this.onChangeWrapMode = function() {\n this.renderer.onResize(true);\n };\n\n\n this.onChangeFold = function() {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n this.getSelectedText = function() {\n return this.session.getTextRange(this.getSelectionRange());\n };\n this.getCopyText = function() {\n var text = this.getSelectedText();\n this._signal(\"copy\", text);\n return text;\n };\n this.onCopy = function() {\n this.commands.exec(\"copy\", this);\n };\n this.onCut = function() {\n this.commands.exec(\"cut\", this);\n };\n this.onPaste = function(text, event) {\n var e = {text: text, event: event};\n this.commands.exec(\"paste\", this, e);\n };\n \n this.$handlePaste = function(e) {\n if (typeof e == \"string\") \n e = {text: e};\n this._signal(\"paste\", e);\n var text = e.text;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n this.insert(text);\n } else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n \n if (lines.length > ranges.length || lines.length < 2 || !lines[1])\n return this.commands.exec(\"insertstring\", this, text);\n \n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n this.session.remove(range);\n \n this.session.insert(range.start, lines[i]);\n }\n }\n };\n\n this.execCommand = function(command, args) {\n return this.commands.exec(command, this, args);\n };\n this.insert = function(text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n this.session.mergeUndoDeltas = false;\n this.$mergeNextCommand = false;\n }\n text = transform.text;\n\n }\n }\n \n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n var end = session.insert(cursor, text);\n\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(\n new Range(cursor.row, start + transform.selection[0],\n cursor.row, start + transform.selection[1]));\n } else { // Transform relative to the current row.\n this.selection.setSelectionRange(\n new Range(cursor.row + transform.selection[0],\n transform.selection[1],\n cursor.row + transform.selection[2],\n transform.selection[3]));\n }\n }\n\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n\n session.insert({row: cursor.row+1, column: 0}, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n };\n\n this.onTextInput = function(text) {\n this.keyBinding.onTextInput(text);\n };\n\n this.onCommandKey = function(e, hashId, keyCode) {\n this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n this.setOverwrite = function(overwrite) {\n this.session.setOverwrite(overwrite);\n };\n this.getOverwrite = function() {\n return this.session.getOverwrite();\n };\n this.toggleOverwrite = function() {\n this.session.toggleOverwrite();\n };\n this.setScrollSpeed = function(speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n this.getScrollSpeed = function() {\n return this.getOption(\"scrollSpeed\");\n };\n this.setDragDelay = function(dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n this.getDragDelay = function() {\n return this.getOption(\"dragDelay\");\n };\n this.setSelectionStyle = function(val) {\n this.setOption(\"selectionStyle\", val);\n };\n this.getSelectionStyle = function() {\n return this.getOption(\"selectionStyle\");\n };\n this.setHighlightActiveLine = function(shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n this.getHighlightActiveLine = function() {\n return this.getOption(\"highlightActiveLine\");\n };\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n this.setHighlightSelectedWord = function(shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n this.getHighlightSelectedWord = function() {\n return this.$highlightSelectedWord;\n };\n\n this.setAnimatedScroll = function(shouldAnimate){\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n\n this.getAnimatedScroll = function(){\n return this.renderer.getAnimatedScroll();\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.renderer.getShowInvisibles();\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n\n this.getDisplayIndentGuides = function() {\n return this.renderer.getDisplayIndentGuides();\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.renderer.getShowPrintMargin();\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.renderer.getPrintMarginColumn();\n };\n this.setReadOnly = function(readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n this.getReadOnly = function() {\n return this.getOption(\"readOnly\");\n };\n this.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n this.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n this.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n this.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n this.setShowFoldWidgets = function(show) {\n this.setOption(\"showFoldWidgets\", show);\n\n };\n this.getShowFoldWidgets = function() {\n return this.getOption(\"showFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n\n this.getFadeFoldWidgets = function() {\n return this.getOption(\"fadeFoldWidgets\");\n };\n this.remove = function(dir) {\n if (this.selection.isEmpty()){\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.removeWordRight = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeWordLeft = function() {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineStart = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n this.removeToLineEnd = function() {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n\n this.session.remove(range);\n this.clearSelection();\n };\n this.splitLine = function() {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n this.transposeLetters = function() {\n if (!this.selection.isEmpty()) {\n return;\n }\n\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column-1);\n range = new Range(cursor.row, column-1, cursor.row, column+1);\n }\n else {\n swap = line.charAt(column-1) + line.charAt(column-2);\n range = new Range(cursor.row, column-2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n this.toLowerCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.toUpperCase = function() {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n this.indent = function() {\n var session = this.session;\n var range = this.getSelectionRange();\n\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n } else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n \n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n } else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n this.blockIndent = function() {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n this.blockOutdent = function() {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n this.sortLines = function() {\n var rows = this.$getSelectedRows();\n var session = this.session;\n\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n\n lines.sort(function(a, b) {\n if (a.toLowerCase() < b.toLowerCase()) return -1;\n if (a.toLowerCase() > b.toLowerCase()) return 1;\n return 0;\n });\n\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i-rows.first]);\n }\n };\n this.toggleCommentLines = function() {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n\n this.toggleBlockComment = function() {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n this.getNumberAt = function(row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if(m.index <= column && m.index+m[0].length >= column){\n var number = {\n value: m[0],\n start: m.index,\n end: m.index+m[0].length\n };\n return number;\n }\n }\n return null;\n };\n this.modifyNumber = function(amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column-1, row, column);\n\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n\n\n if(fp !== nr.end && column < fp){\n amount *= Math.pow(10, nr.end - column - 1);\n } else {\n amount *= Math.pow(10, nr.end - column);\n }\n\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length));\n\n }\n }\n };\n this.removeLines = function() {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n\n this.duplicateSelection = function() {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n } else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n\n sel.setSelectionRange(range, reverse);\n }\n };\n this.moveLinesDown = function() {\n this.$moveLines(1, false);\n };\n this.moveLinesUp = function() {\n this.$moveLines(-1, false);\n };\n this.moveText = function(range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n this.copyLinesUp = function() {\n this.$moveLines(-1, true);\n };\n this.copyLinesDown = function() {\n this.$moveLines(1, true);\n };\n this.$moveLines = function(dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1) moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n } else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n \n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff) ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1) rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy) diff = 0;\n totalDiff += diff;\n }\n \n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n this.$getSelectedRows = function(range) {\n range = (range || this.getSelectionRange()).collapseRows();\n\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n\n this.onCompositionStart = function(text) {\n this.renderer.showComposition(this.getCursorPosition());\n };\n\n this.onCompositionUpdate = function(text) {\n this.renderer.setCompositionText(text);\n };\n\n this.onCompositionEnd = function() {\n this.renderer.hideComposition();\n };\n this.getFirstVisibleRow = function() {\n return this.renderer.getFirstVisibleRow();\n };\n this.getLastVisibleRow = function() {\n return this.renderer.getLastVisibleRow();\n };\n this.isRowVisible = function(row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n this.isRowFullyVisible = function(row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n this.$getVisibleRowCount = function() {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n\n this.$moveByPage = function(dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n\n this.$blockScrolling++;\n if (select === true) {\n this.selection.$moveSelection(function(){\n this.moveCursorBy(rows, 0);\n });\n } else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n this.$blockScrolling--;\n\n var scrollTop = renderer.scrollTop;\n\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n\n renderer.animateScrolling(scrollTop);\n };\n this.selectPageDown = function() {\n this.$moveByPage(1, true);\n };\n this.selectPageUp = function() {\n this.$moveByPage(-1, true);\n };\n this.gotoPageDown = function() {\n this.$moveByPage(1, false);\n };\n this.gotoPageUp = function() {\n this.$moveByPage(-1, false);\n };\n this.scrollPageDown = function() {\n this.$moveByPage(1);\n };\n this.scrollPageUp = function() {\n this.$moveByPage(-1);\n };\n this.scrollToRow = function(row) {\n this.renderer.scrollToRow(row);\n };\n this.scrollToLine = function(line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n this.centerSelection = function() {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n this.getCursorPosition = function() {\n return this.selection.getCursor();\n };\n this.getCursorPositionScreen = function() {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n this.getSelectionRange = function() {\n return this.selection.getRange();\n };\n this.selectAll = function() {\n this.$blockScrolling += 1;\n this.selection.selectAll();\n this.$blockScrolling -= 1;\n };\n this.clearSelection = function() {\n this.selection.clearSelection();\n };\n this.moveCursorTo = function(row, column) {\n this.selection.moveCursorTo(row, column);\n };\n this.moveCursorToPosition = function(pos) {\n this.selection.moveCursorToPosition(pos);\n };\n this.jumpToMatching = function(select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var token = prevToken || iterator.stepForward();\n\n if (!token) return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n \n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token && token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n \n if (prevToken.value === '<') {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if(this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n\n this.selection.setSelectionRange(selection);\n this.$blockScrolling -= 1;\n\n return replaced;\n };\n\n this.$tryReplace = function(range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n } else {\n return null;\n }\n };\n this.getLastSearchOptions = function() {\n return this.$search.getOptions();\n };\n this.find = function(needle, options, animate) {\n if (!options)\n options = {};\n\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({needle: needle});\n }\n\n this.$search.set(options);\n if (!options.start)\n this.$search.set({start: range});\n\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n this.findNext = function(options, animate) {\n this.find({skipCurrent: true, backwards: false}, options, animate);\n };\n this.findPrevious = function(options, animate) {\n this.find(options, {skipCurrent: true, backwards: true}, animate);\n };\n\n this.revealRange = function(range, animate) {\n this.$blockScrolling += 1;\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n this.$blockScrolling -= 1;\n\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n this.undo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().undo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.redo = function() {\n this.$blockScrolling++;\n this.session.getUndoManager().redo();\n this.$blockScrolling--;\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n this.destroy = function() {\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session) {\n this.session.destroy();\n }\n };\n this.setAutoScrollEditorIntoView = function(enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function() {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function() {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function() {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())\n ) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n } else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n } else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function(enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n\n\n this.$resetCursorStyle = function() {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n\n}).call(Editor.prototype);\n\n\n\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function(style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", {data: style});\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function() {this.$updateHighlightActiveLine();},\n initialValue: true\n },\n highlightSelectedWord: {\n set: function(shouldHighlight) {this.$onSelectionChange();},\n initialValue: true\n },\n readOnly: {\n set: function(readOnly) {\n this.$resetCursorStyle(); \n },\n initialValue: false\n },\n cursorStyle: {\n set: function(val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: {initialValue: true},\n wrapBehavioursEnabled: {initialValue: true},\n autoScrollEditorIntoView: {\n set: function(val) {this.setAutoScrollEditorIntoView(val);}\n },\n keyboardHandler: {\n set: function(val) { this.setKeyboardHandler(val); },\n get: function() { return this.keybindingId; },\n handlesSet: true\n },\n\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n showLineNumbers: \"renderer\",\n showGutter: \"renderer\",\n displayIndentGuides: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\n\nexports.Editor = Editor;\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\nvar UndoManager = function() {\n this.reset();\n};\n\n(function() {\n this.execute = function(options) {\n var deltaSets = options.args[0];\n this.$doc = options.args[1];\n if (options.merge && this.hasUndo()){\n this.dirtyCounter--;\n deltaSets = this.$undoStack.pop().concat(deltaSets);\n }\n this.$undoStack.push(deltaSets);\n this.$redoStack = [];\n if (this.dirtyCounter < 0) {\n this.dirtyCounter = NaN;\n }\n this.dirtyCounter++;\n };\n this.undo = function(dontSelect) {\n var deltaSets = this.$undoStack.pop();\n var undoSelectionRange = null;\n if (deltaSets) {\n undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect);\n this.$redoStack.push(deltaSets);\n this.dirtyCounter--;\n }\n\n return undoSelectionRange;\n };\n this.redo = function(dontSelect) {\n var deltaSets = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSets) {\n redoSelectionRange =\n this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect);\n this.$undoStack.push(deltaSets);\n this.dirtyCounter++;\n }\n return redoSelectionRange;\n };\n this.reset = function() {\n this.$undoStack = [];\n this.$redoStack = [];\n this.dirtyCounter = 0;\n };\n this.hasUndo = function() {\n return this.$undoStack.length > 0;\n };\n this.hasRedo = function() {\n return this.$redoStack.length > 0;\n };\n this.markClean = function() {\n this.dirtyCounter = 0;\n };\n this.isClean = function() {\n return this.dirtyCounter === 0;\n };\n this.$serializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $serializeDelta);\n };\n this.$deserializeDeltas = function(deltaSets) {\n return cloneDeltaSetsObj(deltaSets, $deserializeDelta);\n };\n \n function $serializeDelta(delta){\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines.length == 1 ? null : delta.lines,\n text: delta.lines.length == 1 ? delta.lines[0] : null\n };\n }\n \n function $deserializeDelta(delta) {\n return {\n action: delta.action,\n start: delta.start,\n end: delta.end,\n lines: delta.lines || [delta.text]\n };\n }\n \n function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) {\n var deltaSets_new = new Array(deltaSets_old.length);\n for (var i = 0; i < deltaSets_old.length; i++) {\n var deltaSet_old = deltaSets_old[i];\n var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)};\n \n for (var j = 0; j < deltaSet_old.deltas.length; j++) {\n var delta_old = deltaSet_old.deltas[j];\n deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old);\n }\n \n deltaSets_new[i] = deltaSet_new;\n }\n return deltaSets_new;\n }\n \n}).call(UndoManager.prototype);\n\nexports.UndoManager = UndoManager;\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Gutter = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n \n this.gutterWidth = 0;\n\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n\n this.$cells = [];\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.setSession = function(session) {\n if (this.session)\n this.session.removeEventListener(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n\n this.addGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n\n this.removeGutterDecoration = function(row, className){\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n\n this.setAnnotations = function(annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = {text: []};\n \n var annoText = annotation.text;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n\n if (rowInfo.text.indexOf(annoText) === -1)\n rowInfo.text.push(annoText);\n\n var type = annotation.type;\n if (type == \"error\")\n rowInfo.className = \" ace_error\";\n else if (type == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (type == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n\n this.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n } else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n } else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n\n this.update = function(config) {\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineNumber = 0;\n \n var gutterRenderer = session.gutterRenderer || this.$renderer;\n\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$cells.length > index + 1) {\n cell = this.$cells.pop();\n this.element.removeChild(cell.element);\n }\n break;\n }\n\n cell = this.$cells[++index];\n if (!cell) {\n cell = {element: null, textNode: null, foldWidget: null};\n cell.element = dom.createElement(\"div\");\n cell.textNode = document.createTextNode('');\n cell.element.appendChild(cell.textNode);\n this.element.appendChild(cell.element);\n this.$cells[index] = cell;\n }\n\n var className = \"ace_gutter-cell \";\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row])\n className += this.$annotations[row].className;\n if (cell.element.className != className)\n cell.element.className = className;\n\n var height = session.getRowLength(row) * config.lineHeight + \"px\";\n if (height != cell.element.style.height)\n cell.element.style.height = height;\n\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n\n if (c) {\n if (!cell.foldWidget) {\n cell.foldWidget = dom.createElement(\"span\");\n cell.element.appendChild(cell.foldWidget);\n }\n var className = \"ace_fold-widget ace_\" + c;\n if (c == \"start\" && row == foldStart && row < fold.end.row)\n className += \" ace_closed\";\n else\n className += \" ace_open\";\n if (cell.foldWidget.className != className)\n cell.foldWidget.className = className;\n\n var height = config.lineHeight + \"px\";\n if (cell.foldWidget.style.height != height)\n cell.foldWidget.style.height = height;\n } else {\n if (cell.foldWidget) {\n cell.element.removeChild(cell.foldWidget);\n cell.foldWidget = null;\n }\n }\n \n var text = lastLineNumber = gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber;\n if (text !== cell.textNode.data)\n cell.textNode.data = text;\n\n row++;\n }\n\n this.element.style.height = config.minHeight + \"px\";\n\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineNumber = session.getLength() + firstLineNumber;\n\n var gutterWidth = gutterRenderer \n ? gutterRenderer.getWidth(session, lastLineNumber, config)\n : lastLineNumber.toString().length * config.characterWidth;\n \n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._emit(\"changeGutterWidth\", gutterWidth);\n }\n };\n\n this.$fixedWidth = false;\n \n this.$showLineNumbers = true;\n this.$renderer = \"\";\n this.setShowLineNumbers = function(show) {\n this.$renderer = !show && {\n getWidth: function() {return \"\";},\n getText: function() {return \"\";}\n };\n };\n \n this.getShowLineNumbers = function() {\n return this.$showLineNumbers;\n };\n \n this.$showFoldWidgets = true;\n this.setShowFoldWidgets = function(show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n \n this.getShowFoldWidgets = function() {\n return this.$showFoldWidgets;\n };\n\n this.$computePadding = function() {\n if (!this.element.firstChild)\n return {left: 0, right: 0};\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = parseInt(style.paddingLeft) + 1 || 0;\n this.$padding.right = parseInt(style.paddingRight) || 0;\n return this.$padding;\n };\n\n this.getRegion = function(point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n\n}).call(Gutter.prototype);\n\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\nvar dom = acequire(\"../lib/dom\");\n\nvar Marker = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n};\n\n(function() {\n\n this.$padding = 0;\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n this.setSession = function(session) {\n this.session = session;\n };\n \n this.setMarkers = function(markers) {\n this.markers = markers;\n };\n\n this.update = function(config) {\n if (!config) return;\n\n this.config = config;\n\n\n var html = [];\n for (var key in this.markers) {\n var marker = this.markers[key];\n\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty()) continue;\n\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + (this.session.$bidiHandler.isBidiRow(range.start.row)\n ? this.session.$bidiHandler.getPosLeft(range.start.column)\n : range.start.column * config.characterWidth);\n marker.renderer(html, range, left, top, config);\n } else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n } else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n } else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n } else {\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n this.drawBidiSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n } else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$getTop = function(row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n\n function getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n }\n this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0; \n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var clazzModified = null;\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n clazzModified = clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end);\n\n if (this.session.$bidiHandler.isBidiRow(row)) {\n this.drawBidiSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n } else {\n this.drawSingleLineMarker(stringBuilder, lineRange, clazzModified,\n layerConfig, row == end ? 0 : 1, extraStyle);\n }\n }\n };\n this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height, top, left;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n } else {\n height = config.lineHeight;\n top = this.$getTop(range.start.row, config);\n left = padding + range.start.column * config.characterWidth;\n stringBuilder.push(\n \"
    \"\n );\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n } else {\n var width = range.end.column * config.characterWidth;\n height = config.lineHeight;\n top = this.$getTop(range.end.row, config);\n stringBuilder.push(\n \"
    \"\n );\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n \n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n\n selections.forEach(function(selection) {\n stringBuilder.push(\n \"
    \"\n );\n });\n };\n\n this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n \n this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n\n stringBuilder.push(\n \"
    \"\n );\n };\n\n}).call(Marker.prototype);\n\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar Text = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n\n this.EOF_CHAR = \"\\xB6\";\n this.EOL_CHAR_LF = \"\\xAC\";\n this.EOL_CHAR_CRLF = \"\\xa4\";\n this.EOL_CHAR = this.EOL_CHAR_LF;\n this.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\n this.SPACE_CHAR = \"\\xB7\";\n this.$padding = 0;\n\n this.$updateEolChar = function() {\n var EOL_CHAR = this.session.doc.getNewLineCharacter() == \"\\n\"\n ? this.EOL_CHAR_LF\n : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.element.style.padding = \"0 \" + padding + \"px\";\n };\n\n this.getLineHeight = function() {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n\n this.getCharacterWidth = function() {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n \n this.$setFontMetrics = function(measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function(e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n\n this.checkForSizeChanges = function() {\n this.$fontMetrics.checkForSizeChanges();\n };\n this.$pollSizeChanges = function() {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n this.setSession = function(session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n\n this.showInvisibles = false;\n this.setShowInvisibles = function(showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n\n this.showInvisibles = showInvisibles;\n this.$computeTabString();\n return true;\n };\n\n this.displayIndentGuides = true;\n this.setDisplayIndentGuides = function(display) {\n if (this.displayIndentGuides == display)\n return false;\n\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n\n this.$tabStrings = [];\n this.onChangeTabSize =\n this.$computeTabString = function() {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showInvisibles) {\n tabStr.push(\"\"\n + lang.stringRepeat(this.TAB_CHAR, i)\n + \"\");\n } else {\n tabStr.push(lang.stringRepeat(\" \", i));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = \"\";\n var tabClass = \"\";\n if (this.showInvisibles) {\n className += \" ace_invisible\";\n spaceClass = \" ace_invisible_space\";\n tabClass = \" ace_invisible_tab\";\n var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize);\n var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize);\n } else{\n var spaceContent = lang.stringRepeat(\" \", this.tabSize);\n var tabContent = spaceContent;\n }\n\n this.$tabStrings[\" \"] = \"\" + spaceContent + \"\";\n this.$tabStrings[\"\\t\"] = \"\" + tabContent + \"\";\n }\n };\n\n this.updateLines = function(config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n this.scrollLines(config);\n }\n this.config = config;\n\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n } else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx ++;\n }\n\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > last)\n break;\n\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n var html = [];\n this.$renderLine(\n html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false\n );\n lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n lineElement.innerHTML = html.join(\"\");\n }\n row++;\n }\n };\n\n this.scrollLines = function(config) {\n var oldConfig = this.config;\n this.config = config;\n\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n\n var el = this.element;\n if (oldConfig.firstRow < config.firstRow)\n for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--)\n el.removeChild(el.firstChild);\n\n if (oldConfig.lastRow > config.lastRow)\n for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--)\n el.removeChild(el.lastChild);\n\n if (config.firstRow < oldConfig.firstRow) {\n var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1);\n if (el.firstChild)\n el.insertBefore(fragment, el.firstChild);\n else\n el.appendChild(fragment);\n }\n\n if (config.lastRow > oldConfig.lastRow) {\n var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow);\n el.appendChild(fragment);\n }\n };\n\n this.$renderLinesFragment = function(config, firstRow, lastRow) {\n var fragment = this.element.ownerDocument.createDocumentFragment();\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n\n var container = dom.createElement(\"div\");\n\n var html = [];\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n container.innerHTML = html.join(\"\");\n if (this.$useLineGroups()) {\n container.className = 'ace_line_group';\n fragment.appendChild(container);\n container.style.height = config.lineHeight * this.session.getRowLength(row) + \"px\";\n\n } else {\n while(container.firstChild)\n fragment.appendChild(container.firstChild);\n }\n\n row++;\n }\n return fragment;\n };\n\n this.update = function(config) {\n this.config = config;\n\n var html = [];\n var firstRow = config.firstRow, lastRow = config.lastRow;\n\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row+1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row :Infinity;\n }\n if (row > lastRow)\n break;\n\n if (this.$useLineGroups())\n html.push(\"
    \");\n\n this.$renderLine(html, row, false, row == foldStart ? foldLine : false);\n\n if (this.$useLineGroups())\n html.push(\"
    \"); // end the line group\n\n row++;\n }\n this.element.innerHTML = html.join(\"\");\n };\n\n this.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n };\n\n this.$renderToken = function(stringBuilder, screenColumn, token, value) {\n var self = this;\n var replaceReg = /\\t|&|<|>|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF\\uFFF9-\\uFFFC])|[\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3000-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n var replaceFunc = function(c, a, b, tabIdx, idx4) {\n if (a) {\n return self.showInvisibles\n ? \"\" + lang.stringRepeat(self.SPACE_CHAR, c.length) + \"\"\n : c;\n } else if (c == \"&\") {\n return \"&\";\n } else if (c == \"<\") {\n return \"<\";\n } else if (c == \">\") {\n return \">\";\n } else if (c == \"\\t\") {\n var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx);\n screenColumn += tabSize - 1;\n return self.$tabStrings[tabSize];\n } else if (c == \"\\u3000\") {\n var classToUse = self.showInvisibles ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n var space = self.showInvisibles ? self.SPACE_CHAR : \"\";\n screenColumn += 1;\n return \"\" + space + \"\";\n } else if (b) {\n return \"\" + self.SPACE_CHAR + \"\";\n } else {\n screenColumn += 1;\n return \"\" + c + \"\";\n }\n };\n\n var output = value.replace(replaceReg, replaceFunc);\n\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var style = \"\";\n if (token.type == \"fold\")\n style = \" style='width:\" + (token.value.length * this.config.characterWidth) + \"px;' \";\n stringBuilder.push(\"\", output, \"\");\n }\n else {\n stringBuilder.push(output);\n }\n return screenColumn + value.length;\n };\n\n this.renderIndentGuide = function(stringBuilder, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\" \"], cols/this.tabSize));\n return value.substr(cols);\n } else if (value[0] == \"\\t\") {\n stringBuilder.push(lang.stringRepeat(this.$tabStrings[\"\\t\"], cols));\n return value.substr(cols);\n }\n return value;\n };\n\n this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(stringBuilder, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n chars += value.length;\n } else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn,\n token, value.substring(0, splitChars - chars)\n );\n value = value.substring(splitChars - chars);\n chars = splitChars;\n\n if (!onlyContents) {\n stringBuilder.push(\"\",\n \"
    \"\n );\n }\n\n stringBuilder.push(lang.stringRepeat(\"\\xa0\", splits.indent));\n\n split ++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(\n stringBuilder, screenColumn, token, value\n );\n }\n }\n }\n };\n\n this.$renderSimpleLine = function(stringBuilder, tokens) {\n var screenColumn = 0;\n var token = tokens[0];\n var value = token.value;\n if (this.displayIndentGuides)\n value = this.renderIndentGuide(stringBuilder, value);\n if (value)\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n for (var i = 1; i < tokens.length; i++) {\n token = tokens[i];\n value = token.value;\n screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value);\n }\n };\n this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n\n\n if (!onlyContents) {\n stringBuilder.push(\n \"
    \"\n );\n }\n\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length)\n this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents);\n else\n this.$renderSimpleLine(stringBuilder, tokens);\n }\n\n if (this.showInvisibles) {\n if (foldLine)\n row = foldLine.end.row;\n\n stringBuilder.push(\n \"\",\n row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR,\n \"\"\n );\n }\n if (!onlyContents)\n stringBuilder.push(\"
    \");\n };\n\n this.$getFoldLineTokens = function(row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n\n col = from + value.length;\n idx += 1;\n }\n\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n } else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n\n var tokens = session.getTokens(row);\n foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n } else {\n if (isNewRow)\n tokens = session.getTokens(row);\n\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n\n return renderTokens;\n };\n\n this.$useLineGroups = function() {\n return this.session.getUseWrapMode();\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$measureNode)\n this.$measureNode.parentNode.removeChild(this.$measureNode);\n delete this.$measureNode;\n };\n\n}).call(Text.prototype);\n\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar dom = acequire(\"../lib/dom\");\nvar isIE8;\n\nvar Cursor = function(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n \n if (isIE8 === undefined)\n isIE8 = !(\"opacity\" in this.element.style);\n\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = (isIE8\n ? this.$updateVisibility\n : this.$updateOpacity).bind(this);\n};\n\n(function() {\n \n this.$updateVisibility = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.visibility = val ? \"\" : \"hidden\";\n };\n this.$updateOpacity = function(val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--; )\n cursors[i].style.opacity = val ? \"\" : \"0\";\n };\n \n\n this.$padding = 0;\n this.setPadding = function(padding) {\n this.$padding = padding;\n };\n\n this.setSession = function(session) {\n this.session = session;\n };\n\n this.setBlinking = function(blinking) {\n if (blinking != this.isBlinking){\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n\n this.setBlinkInterval = function(blinkInterval) {\n if (blinkInterval != this.blinkInterval){\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n\n this.setSmoothBlinking = function(smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking && !isIE8) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.$updateCursors = (this.$updateOpacity).bind(this);\n this.restartTimer();\n }\n };\n\n this.addCursor = function() {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n\n this.removeCursor = function() {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n\n this.hideCursor = function() {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.showCursor = function() {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n\n this.restartTimer = function() {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n if (this.smoothBlinking) {\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n \n update(true);\n\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible)\n return;\n\n if (this.smoothBlinking) {\n setTimeout(function(){\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }.bind(this));\n }\n \n var blink = function(){\n this.timeoutId = setTimeout(function() {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n\n this.intervalId = setInterval(function() {\n update(true);\n blink();\n }, this.blinkInterval);\n\n blink();\n };\n\n this.getPixelPosition = function(position, onScreen) {\n if (!this.config || !this.session)\n return {left : 0, top : 0};\n\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n\n return {left : cursorLeft, top : cursorTop};\n };\n\n this.update = function(config) {\n this.config = config;\n\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n\n if (selections === undefined || selections.length === 0){\n selections = [{cursor: null}];\n }\n\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n\n var style = (this.cursors[cursorIndex++] || this.addCursor()).style;\n \n if (!this.drawCursor) {\n style.left = pixelPos.left + \"px\";\n style.top = pixelPos.top + \"px\";\n style.width = config.characterWidth + \"px\";\n style.height = config.lineHeight + \"px\";\n } else {\n this.drawCursor(style, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n \n this.drawCursor = null;\n\n this.$setOverwrite = function(overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n\n this.destroy = function() {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n\n}).call(Cursor.prototype);\n\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar ScrollBar = function(parent) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + this.classSuffix;\n\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.element.appendChild(this.inner);\n\n parent.appendChild(this.element);\n\n this.setVisible(false);\n this.skipEvent = false;\n\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n\n this.setVisible = function(isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n}).call(ScrollBar.prototype);\nvar VScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollTop = 0;\n this.scrollHeight = 0;\n renderer.$scrollbarWidth = \n this.width = dom.scrollbarWidth(parent.ownerDocument);\n this.inner.style.width =\n this.element.style.width = (this.width || 15) + 5 + \"px\";\n this.$minWidth = 0;\n};\n\noop.inherits(VScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-v';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", {data: this.scrollTop});\n }\n this.skipEvent = false;\n };\n this.getWidth = function() {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n this.setHeight = function(height) {\n this.element.style.height = height + \"px\";\n };\n this.setInnerHeight =\n this.setScrollHeight = function(height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n } else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n this.setScrollTop = function(scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n\n}).call(VScrollBar.prototype);\nvar HScrollBar = function(parent, renderer) {\n ScrollBar.call(this, parent);\n this.scrollLeft = 0;\n this.height = renderer.$scrollbarWidth;\n this.inner.style.height =\n this.element.style.height = (this.height || 15) + 5 + \"px\";\n};\n\noop.inherits(HScrollBar, ScrollBar);\n\n(function() {\n\n this.classSuffix = '-h';\n this.onScroll = function() {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", {data: this.scrollLeft});\n }\n this.skipEvent = false;\n };\n this.getHeight = function() {\n return this.isVisible ? this.height : 0;\n };\n this.setWidth = function(width) {\n this.element.style.width = width + \"px\";\n };\n this.setInnerWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollWidth = function(width) {\n this.inner.style.width = width + \"px\";\n };\n this.setScrollLeft = function(scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n\n}).call(HScrollBar.prototype);\n\n\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\n\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar event = acequire(\"./lib/event\");\n\n\nvar RenderLoop = function(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.window = win || window;\n};\n\n(function() {\n\n\n this.schedule = function(change) {\n this.changes = this.changes | change;\n if (!this.pending && this.changes) {\n this.pending = true;\n var _self = this;\n event.nextFrame(function() {\n _self.pending = false;\n var changes;\n while (changes = _self.changes) {\n _self.changes = 0;\n _self.onRender(changes);\n }\n }, this.window);\n }\n };\n\n}).call(RenderLoop.prototype);\n\nexports.RenderLoop = RenderLoop;\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\nvar oop = acequire(\"../lib/oop\");\nvar dom = acequire(\"../lib/dom\");\nvar lang = acequire(\"../lib/lang\");\nvar useragent = acequire(\"../lib/useragent\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\n\nvar CHAR_COUNT = 0;\n\nvar FontMetrics = exports.FontMetrics = function(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n \n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n \n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n \n \n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n \n if (!CHAR_COUNT)\n this.$testFractionalRect();\n this.$measureNode.innerHTML = lang.stringRepeat(\"X\", CHAR_COUNT);\n \n this.$characterSize = {width: 0, height: 0};\n this.checkForSizeChanges();\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n \n this.$characterSize = {width: 0, height: 0};\n \n this.$testFractionalRect = function() {\n var el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(el.style);\n el.style.width = \"0.2px\";\n document.documentElement.appendChild(el);\n var w = el.getBoundingClientRect().width;\n if (w > 0 && w < 1)\n CHAR_COUNT = 50;\n else\n CHAR_COUNT = 100;\n el.parentNode.removeChild(el);\n };\n \n this.$setMeasureNodeStyles = function(style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n } else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n\n this.checkForSizeChanges = function() {\n var size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", {data: size});\n }\n };\n\n this.$pollSizeChanges = function() {\n if (this.$pollSizeChangesTimer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = setInterval(function() {\n self.checkForSizeChanges();\n }, 500);\n };\n \n this.setPolling = function(val) {\n if (val) {\n this.$pollSizeChanges();\n } else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n\n this.$measureSizes = function() {\n if (CHAR_COUNT === 50) {\n var rect = null;\n try { \n rect = this.$measureNode.getBoundingClientRect();\n } catch(e) {\n rect = {width: 0, height:0 };\n }\n var size = {\n height: rect.height,\n width: rect.width / CHAR_COUNT\n };\n } else {\n var size = {\n height: this.$measureNode.clientHeight,\n width: this.$measureNode.clientWidth / CHAR_COUNT\n };\n }\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n\n this.$measureCharWidth = function(ch) {\n this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n \n this.getCharacterWidth = function(ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n\n this.destroy = function() {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n\n}).call(FontMetrics.prototype);\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar config = acequire(\"./config\");\nvar useragent = acequire(\"./lib/useragent\");\nvar GutterLayer = acequire(\"./layer/gutter\").Gutter;\nvar MarkerLayer = acequire(\"./layer/marker\").Marker;\nvar TextLayer = acequire(\"./layer/text\").Text;\nvar CursorLayer = acequire(\"./layer/cursor\").Cursor;\nvar HScrollBar = acequire(\"./scrollbar\").HScrollBar;\nvar VScrollBar = acequire(\"./scrollbar\").VScrollBar;\nvar RenderLoop = acequire(\"./renderloop\").RenderLoop;\nvar FontMetrics = acequire(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = \".ace_editor {\\\nposition: relative;\\\noverflow: hidden;\\\nfont: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\\\ndirection: ltr;\\\ntext-align: left;\\\n-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\\n}\\\n.ace_scroller {\\\nposition: absolute;\\\noverflow: hidden;\\\ntop: 0;\\\nbottom: 0;\\\nbackground-color: inherit;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\ncursor: text;\\\n}\\\n.ace_content {\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmin-width: 100%;\\\n}\\\n.ace_dragging .ace_scroller:before{\\\nposition: absolute;\\\ntop: 0;\\\nleft: 0;\\\nright: 0;\\\nbottom: 0;\\\ncontent: '';\\\nbackground: rgba(250, 250, 250, 0.01);\\\nz-index: 1000;\\\n}\\\n.ace_dragging.ace_dark .ace_scroller:before{\\\nbackground: rgba(0, 0, 0, 0.01);\\\n}\\\n.ace_selecting, .ace_selecting * {\\\ncursor: text !important;\\\n}\\\n.ace_gutter {\\\nposition: absolute;\\\noverflow : hidden;\\\nwidth: auto;\\\ntop: 0;\\\nbottom: 0;\\\nleft: 0;\\\ncursor: default;\\\nz-index: 4;\\\n-ms-user-select: none;\\\n-moz-user-select: none;\\\n-webkit-user-select: none;\\\nuser-select: none;\\\n}\\\n.ace_gutter-active-line {\\\nposition: absolute;\\\nleft: 0;\\\nright: 0;\\\n}\\\n.ace_scroller.ace_scroll-left {\\\nbox-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\\\n}\\\n.ace_gutter-cell {\\\npadding-left: 19px;\\\npadding-right: 6px;\\\nbackground-repeat: no-repeat;\\\n}\\\n.ace_gutter-cell.ace_error {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_warning {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\\\");\\\nbackground-position: 2px center;\\\n}\\\n.ace_dark .ace_gutter-cell.ace_info {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_scrollbar {\\\nposition: absolute;\\\nright: 0;\\\nbottom: 0;\\\nz-index: 6;\\\n}\\\n.ace_scrollbar-inner {\\\nposition: absolute;\\\ncursor: text;\\\nleft: 0;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-v{\\\noverflow-x: hidden;\\\noverflow-y: scroll;\\\ntop: 0;\\\n}\\\n.ace_scrollbar-h {\\\noverflow-x: scroll;\\\noverflow-y: hidden;\\\nleft: 0;\\\n}\\\n.ace_print-margin {\\\nposition: absolute;\\\nheight: 100%;\\\n}\\\n.ace_text-input {\\\nposition: absolute;\\\nz-index: 0;\\\nwidth: 0.5em;\\\nheight: 1em;\\\nopacity: 0;\\\nbackground: transparent;\\\n-moz-appearance: none;\\\nappearance: none;\\\nborder: none;\\\nresize: none;\\\noutline: none;\\\noverflow: hidden;\\\nfont: inherit;\\\npadding: 0 1px;\\\nmargin: 0 -1px;\\\ntext-indent: -1em;\\\n-ms-user-select: text;\\\n-moz-user-select: text;\\\n-webkit-user-select: text;\\\nuser-select: text;\\\nwhite-space: pre!important;\\\n}\\\n.ace_text-input.ace_composition {\\\nbackground: inherit;\\\ncolor: inherit;\\\nz-index: 1000;\\\nopacity: 1;\\\ntext-indent: 0;\\\n}\\\n.ace_layer {\\\nz-index: 1;\\\nposition: absolute;\\\noverflow: hidden;\\\nword-wrap: normal;\\\nwhite-space: pre;\\\nheight: 100%;\\\nwidth: 100%;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\npointer-events: none;\\\n}\\\n.ace_gutter-layer {\\\nposition: relative;\\\nwidth: auto;\\\ntext-align: right;\\\npointer-events: auto;\\\n}\\\n.ace_text-layer {\\\nfont: inherit !important;\\\n}\\\n.ace_cjk {\\\ndisplay: inline-block;\\\ntext-align: center;\\\n}\\\n.ace_cursor-layer {\\\nz-index: 4;\\\n}\\\n.ace_cursor {\\\nz-index: 4;\\\nposition: absolute;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nborder-left: 2px solid;\\\ntransform: translatez(0);\\\n}\\\n.ace_multiselect .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_slim-cursors .ace_cursor {\\\nborder-left-width: 1px;\\\n}\\\n.ace_overwrite-cursors .ace_cursor {\\\nborder-left-width: 0;\\\nborder-bottom: 1px solid;\\\n}\\\n.ace_hidden-cursors .ace_cursor {\\\nopacity: 0.2;\\\n}\\\n.ace_smooth-blinking .ace_cursor {\\\n-webkit-transition: opacity 0.18s;\\\ntransition: opacity 0.18s;\\\n}\\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\\nposition: absolute;\\\nz-index: 3;\\\n}\\\n.ace_marker-layer .ace_selection {\\\nposition: absolute;\\\nz-index: 5;\\\n}\\\n.ace_marker-layer .ace_bracket {\\\nposition: absolute;\\\nz-index: 6;\\\n}\\\n.ace_marker-layer .ace_active-line {\\\nposition: absolute;\\\nz-index: 2;\\\n}\\\n.ace_marker-layer .ace_selected-word {\\\nposition: absolute;\\\nz-index: 4;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\n}\\\n.ace_line .ace_fold {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ndisplay: inline-block;\\\nheight: 11px;\\\nmargin-top: -2px;\\\nvertical-align: middle;\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\\nbackground-repeat: no-repeat, repeat-x;\\\nbackground-position: center center, top left;\\\ncolor: transparent;\\\nborder: 1px solid black;\\\nborder-radius: 2px;\\\ncursor: pointer;\\\npointer-events: auto;\\\n}\\\n.ace_dark .ace_fold {\\\n}\\\n.ace_fold:hover{\\\nbackground-image:\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\\nurl(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_tooltip {\\\nbackground-color: #FFF;\\\nbackground-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\\\nbackground-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\\\nborder: 1px solid gray;\\\nborder-radius: 1px;\\\nbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\\ncolor: black;\\\nmax-width: 100%;\\\npadding: 3px 4px;\\\nposition: fixed;\\\nz-index: 999999;\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\ncursor: default;\\\nwhite-space: pre;\\\nword-wrap: break-word;\\\nline-height: normal;\\\nfont-style: normal;\\\nfont-weight: normal;\\\nletter-spacing: normal;\\\npointer-events: none;\\\n}\\\n.ace_folding-enabled > .ace_gutter-cell {\\\npadding-right: 13px;\\\n}\\\n.ace_fold-widget {\\\n-moz-box-sizing: border-box;\\\n-webkit-box-sizing: border-box;\\\nbox-sizing: border-box;\\\nmargin: 0 -12px 0 1px;\\\ndisplay: none;\\\nwidth: 11px;\\\nvertical-align: top;\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\\nbackground-repeat: no-repeat;\\\nbackground-position: center;\\\nborder-radius: 3px;\\\nborder: 1px solid transparent;\\\ncursor: pointer;\\\n}\\\n.ace_folding-enabled .ace_fold-widget {\\\ndisplay: inline-block; \\\n}\\\n.ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\\n}\\\n.ace_fold-widget:hover {\\\nborder: 1px solid rgba(0, 0, 0, 0.3);\\\nbackground-color: rgba(255, 255, 255, 0.2);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\\n}\\\n.ace_fold-widget:active {\\\nborder: 1px solid rgba(0, 0, 0, 0.4);\\\nbackground-color: rgba(0, 0, 0, 0.05);\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\\n}\\\n.ace_dark .ace_fold-widget {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_end {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget.ace_closed {\\\nbackground-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\\n}\\\n.ace_dark .ace_fold-widget:hover {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\nbackground-color: rgba(255, 255, 255, 0.1);\\\n}\\\n.ace_dark .ace_fold-widget:active {\\\nbox-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\\n}\\\n.ace_fold-widget.ace_invalid {\\\nbackground-color: #FFB4B4;\\\nborder-color: #DE5555;\\\n}\\\n.ace_fade-fold-widgets .ace_fold-widget {\\\n-webkit-transition: opacity 0.4s ease 0.05s;\\\ntransition: opacity 0.4s ease 0.05s;\\\nopacity: 0;\\\n}\\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\\n-webkit-transition: opacity 0.05s ease 0.05s;\\\ntransition: opacity 0.05s ease 0.05s;\\\nopacity:1;\\\n}\\\n.ace_underline {\\\ntext-decoration: underline;\\\n}\\\n.ace_bold {\\\nfont-weight: bold;\\\n}\\\n.ace_nobold .ace_bold {\\\nfont-weight: normal;\\\n}\\\n.ace_italic {\\\nfont-style: italic;\\\n}\\\n.ace_error-marker {\\\nbackground-color: rgba(255, 0, 0,0.2);\\\nposition: absolute;\\\nz-index: 9;\\\n}\\\n.ace_highlight-marker {\\\nbackground-color: rgba(255, 255, 0,0.2);\\\nposition: absolute;\\\nz-index: 8;\\\n}\\\n.ace_br1 {border-top-left-radius : 3px;}\\\n.ace_br2 {border-top-right-radius : 3px;}\\\n.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\\\n.ace_br4 {border-bottom-right-radius: 3px;}\\\n.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\\\n.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\\\n.ace_br8 {border-bottom-left-radius : 3px;}\\\n.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\\\n.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\\\n.ace_text-input-ios {\\\nposition: absolute !important;\\\ntop: -100000px !important;\\\nleft: -100000px !important;\\\n}\\\n\";\n\ndom.importCssString(editorCss, \"ace_editor.css\");\n\nvar VirtualRenderer = function(container, theme) {\n var _self = this;\n\n this.container = container || dom.createElement(\"div\");\n this.$keepTextAreaAtCursor = !useragent.isOldIE;\n\n dom.addCssClass(this.container, \"ace_editor\");\n\n this.setTheme(theme);\n\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n\n this.$markerBack = new MarkerLayer(this.content);\n\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n\n this.$markerFront = new MarkerLayer(this.content);\n\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n\n this.scrollBar = \n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function(e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n\n this.scrollTop = 0;\n this.scrollLeft = 0;\n\n this.cursorPos = {\n row : 0,\n column : 0\n };\n\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.addEventListener(\"changeCharacterSize\", function(e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n\n this.layerConfig = {\n width : 1,\n padding : 0,\n firstRow : 0,\n firstRowScreen: 0,\n lastRow : 0,\n lineHeight : 0,\n characterWidth : 0,\n minHeight : 1,\n maxHeight : 1,\n offset : 0,\n height : 1,\n gutterOffset: 1\n };\n \n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n\n this.$loop = new RenderLoop(\n this.$renderChanges.bind(this),\n this.container.ownerDocument.defaultView\n );\n this.$loop.schedule(this.CHANGE_FULL);\n\n this.updateCharacterSize();\n this.setPadding(4);\n config.resetOptions(this);\n config._emit(\"renderer\", this);\n};\n\n(function() {\n\n this.CHANGE_CURSOR = 1;\n this.CHANGE_MARKER = 2;\n this.CHANGE_GUTTER = 4;\n this.CHANGE_SCROLL = 8;\n this.CHANGE_LINES = 16;\n this.CHANGE_TEXT = 32;\n this.CHANGE_SIZE = 64;\n this.CHANGE_MARKER_BACK = 128;\n this.CHANGE_MARKER_FRONT = 256;\n this.CHANGE_FULL = 512;\n this.CHANGE_H_SCROLL = 1024;\n\n oop.implement(this, EventEmitter);\n\n this.updateCharacterSize = function() {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n };\n this.setSession = function(session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n \n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n \n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n \n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n this.updateLines = function(firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n\n this.onChangeNewLineMode = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n \n this.onChangeTabSize = function() {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n this.updateText = function() {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n this.updateFull = function(force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n this.updateFontSize = function() {\n this.$textLayer.checkForSizeChanges();\n };\n\n this.$changes = 0;\n this.$updateSizeAsync = function() {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n this.onResize = function(force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n\n \n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n\n if (force)\n this.$gutterLayer.$padding = null;\n\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;\n };\n \n this.$updateCachedSize = function(force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n changes = changes | this.CHANGE_SCROLL;\n }\n\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n \n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n \n this.gutterWidth = gutterWidth;\n \n this.scrollBarH.element.style.left = \n this.scroller.style.left = gutterWidth + \"px\";\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); \n \n this.scrollBarH.element.style.right = \n this.scroller.style.right = this.scrollBarV.getWidth() + \"px\";\n this.scroller.style.bottom = this.scrollBarH.getHeight() + \"px\";\n\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force)\n changes |= this.CHANGE_FULL;\n }\n \n size.$dirty = !width || !height;\n\n if (changes)\n this._signal(\"resize\", oldSize);\n\n return changes;\n };\n\n this.onGutterResize = function() {\n var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n } else {\n this.$computeLayerConfig();\n this.$loop.schedule(this.CHANGE_MARKER);\n }\n };\n this.adjustWrapLimit = function() {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n this.setAnimatedScroll = function(shouldAnimate){\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n this.getAnimatedScroll = function() {\n return this.$animatedScroll;\n };\n this.setShowInvisibles = function(showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n this.getShowInvisibles = function() {\n return this.getOption(\"showInvisibles\");\n };\n this.getDisplayIndentGuides = function() {\n return this.getOption(\"displayIndentGuides\");\n };\n\n this.setDisplayIndentGuides = function(display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n this.setShowPrintMargin = function(showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n this.getShowPrintMargin = function() {\n return this.getOption(\"showPrintMargin\");\n };\n this.setPrintMarginColumn = function(showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n this.getPrintMarginColumn = function() {\n return this.getOption(\"printMarginColumn\");\n };\n this.getShowGutter = function(){\n return this.getOption(\"showGutter\");\n };\n this.setShowGutter = function(show){\n return this.setOption(\"showGutter\", show);\n };\n\n this.getFadeFoldWidgets = function(){\n return this.getOption(\"fadeFoldWidgets\");\n };\n\n this.setFadeFoldWidgets = function(show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n\n this.setHighlightGutterLine = function(shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n\n this.getHighlightGutterLine = function() {\n return this.getOption(\"highlightGutterLine\");\n };\n\n this.$updateGutterLineHighlight = function() {\n var pos = this.$cursorLayer.$pixelPos;\n var height = this.layerConfig.lineHeight;\n if (this.session.getUseWrapMode()) {\n var cursor = this.session.selection.getCursor();\n cursor.column = 0;\n pos = this.$cursorLayer.getPixelPosition(cursor, true);\n height *= this.session.getRowLength(cursor.row);\n }\n this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + \"px\";\n this.$gutterLineHighlight.style.height = height + \"px\";\n };\n\n this.$updatePrintMargin = function() {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n\n var style = this.$printMarginEl.style;\n style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n \n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n this.getContainerElement = function() {\n return this.container;\n };\n this.getMouseEventTarget = function() {\n return this.scroller;\n };\n this.getTextAreaContainer = function() {\n return this.container;\n };\n this.$moveTextAreaToCursor = function() {\n if (!this.$keepTextAreaAtCursor)\n return;\n var config = this.layerConfig;\n var posTop = this.$cursorLayer.$pixelPos.top;\n var posLeft = this.$cursorLayer.$pixelPos.left;\n posTop -= config.offset;\n\n var style = this.textarea.style;\n var h = this.lineHeight;\n if (posTop < 0 || posTop > config.height - h) {\n style.top = style.left = \"0\";\n return;\n }\n\n var w = this.characterWidth;\n if (this.$composition) {\n var val = this.textarea.value.replace(/^\\x01+/, \"\");\n w *= (this.session.$getStringScreenWidth(val)[0]+2);\n h += 2;\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n\n posLeft += this.gutterWidth;\n style.height = h + \"px\";\n style.width = w + \"px\";\n style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + \"px\";\n style.top = Math.min(posTop, this.$size.height - h) + \"px\";\n };\n this.getFirstVisibleRow = function() {\n return this.layerConfig.firstRow;\n };\n this.getFirstFullyVisibleRow = function() {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n this.getLastFullyVisibleRow = function() {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n this.getLastVisibleRow = function() {\n return this.layerConfig.lastRow;\n };\n\n this.$padding = null;\n this.setPadding = function(padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n \n this.setScrollMargin = function(top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top|0;\n sm.bottom = bottom|0;\n sm.right = right|0;\n sm.left = left|0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n this.getHScrollBarAlwaysVisible = function() {\n return this.$hScrollBarAlwaysVisible;\n };\n this.setHScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n this.getVScrollBarAlwaysVisible = function() {\n return this.$vScrollBarAlwaysVisible;\n };\n this.setVScrollBarAlwaysVisible = function(alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n\n this.$updateScrollBarV = function() {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n this.$updateScrollBarH = function() {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n \n this.$frozen = false;\n this.freeze = function() {\n this.$frozen = true;\n };\n \n this.unfreeze = function() {\n this.$frozen = false;\n };\n\n this.$renderChanges = function(changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return; \n } \n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n \n this._signal(\"beforeRender\");\n\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL\n ) {\n changes |= this.$computeLayerConfig();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n this.$gutterLayer.element.style.marginTop = (-config.offset) + \"px\";\n this.content.style.marginTop = (-config.offset) + \"px\";\n this.content.style.width = config.width + 2 * this.$padding + \"px\";\n this.content.style.height = config.minHeight + \"px\";\n }\n if (changes & this.CHANGE_H_SCROLL) {\n this.content.style.marginLeft = -this.scrollLeft + \"px\";\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller\" : \"ace_scroller ace_scroll-left\";\n }\n if (changes & this.CHANGE_FULL) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this._signal(\"afterRender\");\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\");\n return;\n }\n\n if (changes & this.CHANGE_TEXT) {\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n }\n\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this.$highlightGutterLine && this.$updateGutterLineHighlight();\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n\n this._signal(\"afterRender\");\n };\n\n \n this.$autosize = function() {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight,\n Math.max((this.$minLines || 1) * this.lineHeight, height)\n ) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var vScroll = height > maxHeight;\n \n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n \n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n \n this._signal(\"autosize\");\n }\n };\n \n this.$computeLayerConfig = function() {\n var session = this.session;\n var size = this.$size;\n \n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n\n var longestLine = this.$getLongestLine();\n \n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n\n var offset = this.scrollTop % this.lineHeight;\n var minHeight = size.scrollerHeight + this.lineHeight;\n \n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n \n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top,\n Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, \n longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n \n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n\n offset = this.scrollTop - firstRowScreen * lineHeight;\n\n var changes = 0;\n if (this.layerConfig.width != longestLine) \n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n \n this.layerConfig = {\n width : longestLine,\n padding : this.$padding,\n firstRow : firstRow,\n firstRowScreen: firstRowScreen,\n lastRow : lastRow,\n lineHeight : lineHeight,\n characterWidth : this.characterWidth,\n minHeight : minHeight,\n maxHeight : maxHeight,\n offset : offset,\n gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height : this.$size.scrollerHeight\n };\n\n return changes;\n };\n\n this.$updateLines = function() {\n if (!this.$changedLines) return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n\n var layerConfig = this.layerConfig;\n\n if (firstRow > layerConfig.lastRow + 1) { return; }\n if (lastRow < layerConfig.firstRow) { return; }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n\n this.$getLongestLine = function() {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n this.updateFrontMarkers = function() {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n this.updateBackMarkers = function() {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n this.addGutterDecoration = function(row, className){\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n this.removeGutterDecoration = function(row, className){\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n this.updateBreakpoints = function(rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.setAnnotations = function(annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n this.updateCursor = function() {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n this.hideCursor = function() {\n this.$cursorLayer.hideCursor();\n };\n this.showCursor = function() {\n this.$cursorLayer.showCursor();\n };\n\n this.scrollSelectionIntoView = function(anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n this.scrollCursorIntoView = function(cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n\n var left = pos.left;\n var top = pos.top;\n \n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n \n var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n \n if (scrollTop + topMargin > top) {\n if (offset && scrollTop + topMargin > top + this.lineHeight)\n top -= offset * this.$size.scrollerHeight;\n if (top === 0)\n top = -this.scrollMargin.top;\n this.session.setScrollTop(top);\n } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) {\n if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight)\n top += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight);\n }\n\n var scrollLeft = this.scrollLeft;\n\n if (scrollLeft > left) {\n if (left < this.$padding + 2 * this.layerConfig.characterWidth)\n left = -this.scrollMargin.left;\n this.session.setScrollLeft(left);\n } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) {\n this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth));\n } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n };\n this.getScrollTop = function() {\n return this.session.getScrollTop();\n };\n this.getScrollLeft = function() {\n return this.session.getScrollLeft();\n };\n this.getScrollTopRow = function() {\n return this.scrollTop / this.lineHeight;\n };\n this.getScrollBottomRow = function() {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n this.scrollToRow = function(row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n\n this.alignCursor = function(cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = {row: cursor, column: 0};\n\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n\n this.session.setScrollTop(offset);\n return offset;\n };\n\n this.STEPS = 8;\n this.$calcSteps = function(fromValue, toValue){\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n\n var func = function(t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n\n return steps;\n };\n this.scrollToLine = function(line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0});\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n\n this.animateScrolling = function(fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n \n if (fromValue == toValue)\n return;\n \n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n \n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps};\n\n clearInterval(this.$timer);\n\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n this.$timer = setInterval(function() {\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n } else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n } else {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n callback && callback();\n }\n }, 10);\n };\n this.scrollToY = function(scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n this.scrollToX = function(scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n this.scrollTo = function(x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(y);\n };\n this.scrollBy = function(deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n this.isScrollableBy = function(deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n\n this.pixelToScreenCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = Math.round(offset);\n\n return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX};\n };\n\n this.screenToTextCoordinates = function(x, y) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n\n var col = Math.round(offsetX / this.characterWidth);\n\n var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight;\n\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n this.textToScreenCoordinates = function(row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n\n var y = pos.row * this.lineHeight;\n\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n this.visualizeFocus = function() {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n this.visualizeBlur = function() {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n this.showComposition = function(position) {\n if (!this.$composition)\n this.$composition = {\n keepTextAreaAtCursor: this.$keepTextAreaAtCursor,\n cssText: this.textarea.style.cssText\n };\n\n this.$keepTextAreaAtCursor = true;\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n };\n this.setCompositionText = function(text) {\n this.$moveTextAreaToCursor();\n };\n this.hideComposition = function() {\n if (!this.$composition)\n return;\n\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor;\n this.textarea.style.cssText = this.$composition.cssText;\n this.$composition = null;\n };\n this.setTheme = function(theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange',{theme:theme});\n\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n } else {\n afterLoad(theme);\n }\n\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n dom.importCssString(\n module.cssText,\n module.cssClass,\n _self.container.ownerDocument\n );\n\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n\n var padding = \"padding\" in module ? module.padding \n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n\n _self._dispatchEvent('themeLoaded', {theme:module});\n cb && cb();\n }\n };\n this.getTheme = function() {\n return this.$themeId;\n };\n this.setStyle = function(style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n this.unsetStyle = function(style) {\n dom.removeCssClass(this.container, style);\n };\n \n this.setCursorStyle = function(style) {\n if (this.scroller.style.cursor != style)\n this.scroller.style.cursor = style;\n };\n this.setMouseCursor = function(cursorStyle) {\n this.scroller.style.cursor = cursorStyle;\n };\n this.destroy = function() {\n this.$textLayer.destroy();\n this.$cursorLayer.destroy();\n };\n\n}).call(VirtualRenderer.prototype);\n\n\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n animatedScroll: {initialValue: false},\n showInvisibles: {\n set: function(value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function() { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function(val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function() {\n return this.$showPrintMargin && this.$printMarginColumn; \n }\n },\n showGutter: {\n set: function(show){\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n fadeFoldWidgets: {\n set: function(show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function(show) {this.$gutterLayer.setShowFoldWidgets(show);},\n initialValue: true\n },\n showLineNumbers: {\n set: function(show) {\n this.$gutterLayer.setShowLineNumbers(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function(show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function(shouldHighlight) {\n if (!this.$gutterLineHighlight) {\n this.$gutterLineHighlight = dom.createElement(\"div\");\n this.$gutterLineHighlight.className = \"ace_gutter-active-line\";\n this.$gutter.appendChild(this.$gutterLineHighlight);\n return;\n }\n\n this.$gutterLineHighlight.style.display = shouldHighlight ? \"\" : \"none\";\n if (this.$cursorLayer.$pixelPos)\n this.$updateGutterLineHighlight();\n },\n initialValue: false,\n value: true\n },\n hScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function(val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function(size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function(name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function(val) {\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function(val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function(val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function(val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n theme: {\n set: function(val) { this.setTheme(val); },\n get: function() { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n }\n});\n\nexports.VirtualRenderer = VirtualRenderer;\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar net = acequire(\"../lib/net\");\nvar EventEmitter = acequire(\"../lib/event_emitter\").EventEmitter;\nvar config = acequire(\"../config\");\n\nfunction $workerBlob(workerUrl, mod) {\n var script = mod.src;\"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl, mod) {\n var blob = $workerBlob(workerUrl, mod);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n}\n\nvar WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n if (acequire.nameToUrl && !acequire.toUrl)\n acequire.toUrl = acequire.nameToUrl;\n \n if (config.get(\"packaged\") || !acequire.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod.id, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(acequire.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(acequire.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl, mod);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod.id,\n classname : classname\n });\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.callbackId = 1;\n this.callbacks = {};\n this.messageBuffer = [];\n\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n var _self = this;\n\n this.$worker = {};\n this.$worker.terminate = function() {};\n this.$worker.postMessage = function(e) {\n _self.messageBuffer.push(e);\n if (main) {\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n };\n this.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = _self.messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n _self.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (_self.messageBuffer.length)\n processNext();\n });\n};\n\nUIWorkerClient.prototype = WorkerClient.prototype;\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"./range\").Range;\nvar EventEmitter = acequire(\"./lib/event_emitter\").EventEmitter;\nvar oop = acequire(\"./lib/oop\");\n\nvar PlaceHolder = function(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate);\n this.$others = others;\n \n this.$onCursorChange = function() {\n setTimeout(function() {\n _self.onCursorChange();\n });\n };\n \n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1};\n this.$undoStackDepth = undoStack.length;\n this.setup();\n\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n};\n\n(function() {\n\n oop.implement(this, EventEmitter);\n this.setup = function() {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n \n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function(other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n this.showOtherMarkers = function() {\n if (this.othersActive) return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function(anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false);\n });\n };\n this.hideOtherMarkers = function() {\n if (!this.othersActive) return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n this.onUpdate = function(delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n \n var range = delta;\n if (range.start.row !== range.end.row) return;\n if (range.start.row !== this.pos.row) return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n \n this.updateAnchors(delta);\n \n if (inMainRange)\n this.length += lengthDiff;\n\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n } else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart};\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n \n this.$updating = false;\n this.updateMarkers();\n };\n \n this.updateAnchors = function(delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n \n this.updateMarkers = function() {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function(pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n\n this.onCursorChange = function(event) {\n if (this.$updating || !this.session) return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n } else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n }; \n this.detach = function() {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.removeEventListener(\"change\", this.$onUpdate);\n this.session.selection.removeEventListener(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n this.cancel = function() {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n}).call(PlaceHolder.prototype);\n\n\nexports.PlaceHolder = PlaceHolder;\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(acequire, exports, module) {\n\nvar event = acequire(\"../lib/event\");\nvar useragent = acequire(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\n\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n \n if (ctrl && useragent.isMac)\n button = ev.button;\n\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n \n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n \n if (button !== 0)\n return;\n\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function(e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n \n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n \n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n } else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n } else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n \n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n \n \n editor.$blockScrolling++;\n editor.inVirtualSelectionMode = true;\n \n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function() {\n var tmpSel = selection.toOrientedRange();\n\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n } else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.$blockScrolling--;\n editor.inVirtualSelectionMode = false;\n });\n\n } else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true; \n var initialRange;\n var rectSel = [];\n var blockSelect = function() {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n \n editor.$blockScrolling++;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n editor.$blockScrolling--;\n };\n editor.$blockScrolling++;\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n } else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n \n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead); \n else\n selection.moveToPosition(pos);\n editor.$blockScrolling--;\n \n screenCursor = {row: -1, column: -1};\n\n var onMouseSelectionEnd = function(e) {\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n editor.$blockScrolling++;\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n editor.$blockScrolling--;\n };\n\n var onSelectionInterval = blockSelect;\n\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function() {onSelectionInterval();}, 20);\n\n return e.preventDefault();\n }\n}\n\n\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(acequire, exports, module) {\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n exec: function(editor) { editor.selectMoreLines(-1); },\n bindKey: {win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelow\",\n exec: function(editor) { editor.selectMoreLines(1); },\n bindKey: {win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorAboveSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"addCursorBelowSkipCurrent\",\n exec: function(editor) { editor.selectMoreLines(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreBefore\",\n exec: function(editor) { editor.selectMore(-1); },\n bindKey: {win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectMoreAfter\",\n exec: function(editor) { editor.selectMore(1); },\n bindKey: {win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextBefore\",\n exec: function(editor) { editor.selectMore(-1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"selectNextAfter\",\n exec: function(editor) { editor.selectMore(1, true); },\n bindKey: {win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}, {\n name: \"splitIntoLines\",\n exec: function(editor) { editor.multiSelect.splitIntoLines(); },\n bindKey: {win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\"},\n readOnly: true\n}, {\n name: \"alignCursors\",\n exec: function(editor) { editor.alignCursors(); },\n bindKey: {win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\"},\n scrollIntoView: \"cursor\"\n}, {\n name: \"findAll\",\n exec: function(editor) { editor.findAll(); },\n bindKey: {win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\"},\n scrollIntoView: \"cursor\",\n readOnly: true\n}];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n bindKey: \"esc\",\n exec: function(editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function(editor) {return editor && editor.inMultiSelectMode;}\n}];\n\nvar HashHandler = acequire(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(acequire, exports, module) {\n\nvar RangeList = acequire(\"./range_list\").RangeList;\nvar Range = acequire(\"./range\").Range;\nvar Selection = acequire(\"./selection\").Selection;\nvar onMouseDown = acequire(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = acequire(\"./lib/event\");\nvar lang = acequire(\"./lib/lang\");\nvar commands = acequire(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = acequire(\"./search\").Search;\nvar search = new Search();\n\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = acequire(\"./edit_session\").EditSession;\n(function() {\n this.getSelectionMarkers = function() {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function() {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function(range, $blockChangeEvents) {\n if (!range)\n return;\n\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n\n if (!range.cursor)\n range.cursor = range.end;\n\n var removed = this.rangeList.add(range);\n\n this.$onAddRange(range);\n\n if (removed.length)\n this.$onRemoveRange(removed);\n\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n\n this.toSingleRange = function(range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function(pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function() {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n else if(this.ranges[0])\n this.fromOrientedRange(this.ranges[0]);\n };\n\n this.$onAddRange = function(range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", {range: range});\n };\n\n this.$onRemoveRange = function(removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n\n for (var i = removed.length; i--; ) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n\n this._signal(\"removeRange\", {ranges: removed});\n\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function() {\n if (this.rangeList)\n return;\n\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function() {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n\n this.splitIntoLines = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var range = this.getRange();\n var isBackwards = this.isBackwards();\n var startRow = range.start.row;\n var endRow = range.end.row;\n if (startRow == endRow) {\n if (isBackwards)\n var start = range.end, end = range.start;\n else\n var start = range.start, end = range.end;\n \n this.addRange(Range.fromPoints(end, end));\n this.addRange(Range.fromPoints(start, start));\n return;\n }\n\n var rectSel = [];\n var r = this.getLineRange(startRow, true);\n r.start.column = range.start.column;\n rectSel.push(r);\n\n for (var i = startRow + 1; i < endRow; i++)\n rectSel.push(this.getLineRange(i, true));\n\n r = this.getLineRange(endRow, true);\n r.end.column = range.end.column;\n rectSel.push(r);\n\n rectSel.forEach(this.addRange, this);\n }\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n } else {\n var cursor = this.session.documentToScreenPosition(this.selectionLead);\n var anchor = this.session.documentToScreenPosition(this.selectionAnchor);\n\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n } else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n } else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n\n if (startRow == endRow)\n includeEmptyLines = true;\n\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(\n this.session.screenToDocumentPosition(row, startColumn, startOffsetX),\n this.session.screenToDocumentPosition(row, endColumn, endOffsetX)\n );\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n var docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n\n if (yBackwards)\n rectSel.reverse();\n\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = acequire(\"./editor\").Editor;\n(function() {\n this.updateSelectionMarkers = function() {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function(orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function(range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n\n this.removeSelectionMarkers = function(ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--; ) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n\n this.$onAddRange = function(e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onRemoveRange = function(e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onMultiSelect = function(e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n\n this.$onSingleSelect = function(e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n\n this.$onMultiSelectExec = function(e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n } else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n } else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n } else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n } else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n }; \n this.forEachSelection = function(cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n \n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n \n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n \n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n \n return result;\n };\n this.exitMultiSelectMode = function() {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n\n this.getSelectedText = function() {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n } else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n \n this.$checkMultiselectChange = function(e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row \n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n }\n };\n this.findAll = function(needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n } \n this.$search.set(options);\n \n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n\n this.$blockScrolling += 1;\n var selection = this.multiSelect;\n\n if (!additive)\n selection.toSingleRange(ranges[0]);\n\n for (var i = ranges.length; i--; )\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n \n this.$blockScrolling -= 1;\n\n return ranges.length;\n };\n this.selectMoreLines = function(dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n } else {\n var anchor = lead;\n }\n\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n } else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n } else {\n if (skip)\n var toRemove = range.cursor;\n }\n\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function(dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n\n var words = [];\n for (var i = all.length; i--; ) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n\n for (var i = all.length; i--; ) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n };\n this.selectMore = function(dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.$blockScrolling += 1;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.$blockScrolling -= 1;\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function() {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function(r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n \n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n \n if (fr < 0) fr = 0;\n if (lr >= max) lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({row: fr, column: 0}, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n } else {\n sameRowRanges.forEach(function(r) {\n sel.substractPoint(r.cursor);\n });\n\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function(r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function(r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n\n this.$reAlignText = function(lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n\n return lines.map(function(line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW, \" \")\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\n\n\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function(e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n\n addAltCursorListeners(editor);\n}\n\nfunction addAltCursorListeners(editor){\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function(e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n } else if (altCursor) {\n reset();\n }\n });\n\n event.addListener(el, \"keyup\", reset);\n event.addListener(el, \"blur\", reset);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\n\nexports.MultiSelect = MultiSelect;\n\n\nacequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function(val) {\n MultiSelect(this);\n if (val) {\n this.on(\"changeSession\", this.$multiselectOnSessionChange);\n this.on(\"mousedown\", onMouseDown);\n } else {\n this.off(\"changeSession\", this.$multiselectOnSessionChange);\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function(val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\n\n(function() {\n\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n return null;\n };\n\n this.indentationBlock = function(session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n\n if (level == -1)\n continue;\n\n if (level <= startLevel)\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n\n this.openingBracketBlock = function(session, bracket, row, column, typeRe) {\n var start = {row: row, column: column + 1};\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n\n if (fw == \"start\" && end.row > start.row) {\n end.row --;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n\n this.closingBracketBlock = function(session, bracket, row, column, typeRe) {\n var end = {row: row, column: column};\n var start = session.$findOpeningBracket(bracket, end);\n\n if (!start)\n return;\n\n start.column++;\n end.column--;\n\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(acequire, exports, module) {\n\"use strict\";\n\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = \".ace-tm .ace_gutter {\\\nbackground: #f0f0f0;\\\ncolor: #333;\\\n}\\\n.ace-tm .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-tm .ace_fold {\\\nbackground-color: #6B72E6;\\\n}\\\n.ace-tm {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-tm .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-tm .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-tm .ace_storage,\\\n.ace-tm .ace_keyword {\\\ncolor: blue;\\\n}\\\n.ace-tm .ace_constant {\\\ncolor: rgb(197, 6, 11);\\\n}\\\n.ace-tm .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-tm .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-tm .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_invalid {\\\nbackground-color: rgba(255, 0, 0, 0.1);\\\ncolor: red;\\\n}\\\n.ace-tm .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-tm .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-tm .ace_support.ace_type,\\\n.ace-tm .ace_support.ace_class {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-tm .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-tm .ace_string {\\\ncolor: rgb(3, 106, 7);\\\n}\\\n.ace-tm .ace_comment {\\\ncolor: rgb(76, 136, 107);\\\n}\\\n.ace-tm .ace_comment.ace_doc {\\\ncolor: rgb(0, 102, 255);\\\n}\\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\\ncolor: rgb(128, 159, 191);\\\n}\\\n.ace-tm .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-tm .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-tm .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-tm .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-tm .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-tm .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-tm .ace_meta.ace_tag {\\\ncolor:rgb(0, 22, 142);\\\n}\\\n.ace-tm .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-tm .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px white;\\\n}\\\n.ace-tm .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-tm .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-tm .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-tm .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-tm .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-tm .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-tm .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\\\n\";\n\nvar dom = acequire(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass);\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"./lib/oop\");\nvar dom = acequire(\"./lib/dom\");\nvar Range = acequire(\"./range\").Range;\n\n\nfunction LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n \n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n}\n\n(function() {\n this.getRowLength = function(row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else \n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n } else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n\n this.$getWidgetScreenLength = function() {\n var screenRows = 0;\n this.lineWidgets.forEach(function(w){\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n }; \n \n this.$onChangeEditor = function(e) {\n this.attach(e.editor);\n };\n \n this.attach = function(editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n\n if (this.editor == editor)\n return;\n\n this.detach();\n this.editor = editor;\n \n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n this.detach = function(e) {\n var editor = this.editor;\n if (!editor)\n return;\n \n this.editor = null;\n editor.widgetManager = null;\n \n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function(w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n\n this.updateOnFold = function(e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n } else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n \n this.updateOnChange = function(delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n \n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n\n if (len === 0) {\n } else if (delta.action == 'remove') {\n var removed = lineWidgets.splice(startRow + 1, len);\n removed.forEach(function(w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n } else {\n var args = new Array(len);\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n \n this.$updateRows = function() {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets) return;\n var noWidgets = true;\n lineWidgets.forEach(function(w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n\n this.addLineWidget = function(w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n \n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n \n this.session.lineWidgets[w.row] = w;\n \n w.session = this.session;\n \n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n }\n \n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n \n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n \n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n \n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n \n this.removeLineWidget = function(w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy) try {\n w.editor.destroy();\n } catch(e){}\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n } else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", {data:{start:{row: w.row}}});\n this.$updateRows();\n };\n \n this.getWidgetsAtRow = function(row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n \n this.onWidgetChanged = function(w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n \n this.measureWidgets = function(e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n \n if (!changedWidgets || !changedWidgets.length) return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el) continue;\n if (w.session != this.session) continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n \n w.h = w.el.offsetHeight;\n \n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n \n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", {data:{start:{row: min}}});\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n \n this.renderWidgets = function(e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n \n while (first > 0 && !lineWidgets[first])\n first--;\n \n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el) continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n \n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n \n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n \n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n } else {\n w.el.style.right = \"\";\n }\n }\n };\n \n}).call(LineWidgets.prototype);\n\n\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\nvar LineWidgets = acequire(\"../line_widgets\").LineWidgets;\nvar dom = acequire(\"../lib/dom\");\nvar Range = acequire(\"../range\").Range;\n\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\n\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n \n var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n \n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n \n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n \n \n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\n\nexports.showErrorMarker = function(editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n \n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n } else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n } else if (oldWidget) {\n return;\n } else {\n gutterAnno = {\n text: [\"Looks good!\"],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n \n var w = {\n row: pos.row, \n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n \n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n \n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
    \");\n \n el.appendChild(dom.createElement(\"div\"));\n \n var kb = function(_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return {command: \"null\"};\n }\n };\n \n w.destroy = function() {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n \n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n \n editor.session.widgetManager.addLineWidget(w);\n \n w.el.onmousedown = editor.focus.bind(editor);\n \n editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight});\n};\n\n\ndom.importCssString(\"\\\n .error_widget_wrapper {\\\n background: inherit;\\\n color: inherit;\\\n border:none\\\n }\\\n .error_widget {\\\n border-top: solid 2px;\\\n border-bottom: solid 2px;\\\n margin: 5px 0;\\\n padding: 10px 40px;\\\n white-space: pre-wrap;\\\n }\\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\\n border-color: #ff5a5a\\\n }\\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\\n border-color: #F1D817\\\n }\\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\\n border-color: #5a5a5a\\\n }\\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\\n border-color: #5aaa5a\\\n }\\\n .error_widget_arrow {\\\n position: absolute;\\\n border: solid 5px;\\\n border-top-color: transparent!important;\\\n border-right-color: transparent!important;\\\n border-left-color: transparent!important;\\\n top: -5px;\\\n }\\\n\", \"\");\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\"], function(acequire, exports, module) {\n\"use strict\";\n\nacequire(\"./lib/fixoldbrowsers\");\n\nvar dom = acequire(\"./lib/dom\");\nvar event = acequire(\"./lib/event\");\n\nvar Editor = acequire(\"./editor\").Editor;\nvar EditSession = acequire(\"./edit_session\").EditSession;\nvar UndoManager = acequire(\"./undomanager\").UndoManager;\nvar Renderer = acequire(\"./virtual_renderer\").VirtualRenderer;\nacequire(\"./worker/worker_client\");\nacequire(\"./keyboard/hash_handler\");\nacequire(\"./placeholder\");\nacequire(\"./multi_select\");\nacequire(\"./mode/folding/fold_mode\");\nacequire(\"./theme/textmate\");\nacequire(\"./ext/error_marker\");\n\nexports.config = acequire(\"./config\");\nexports.acequire = acequire;\n\nif (typeof define === \"function\")\n exports.define = define;\nexports.edit = function(el) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n } else if (el) {\n value = dom.getInnerText(el);\n el.innerHTML = \"\";\n }\n\n var doc = exports.createEditSession(value);\n\n var editor = new Editor(new Renderer(el));\n editor.setSession(doc);\n\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode) env.textarea = oldNode;\n event.addListener(window, \"resize\", env.onResize);\n editor.on(\"destroy\", function() {\n event.removeListener(window, \"resize\", env.onResize);\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function(text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.version = \"1.2.9\";\n});\n (function() {\n ace.acequire([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n if (!window.ace)\n window.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n window.ace[key] = a[key];\n });\n })();\n \nmodule.exports = window.ace.acequire(\"ace/ace\");","module.exports.id = 'ace/mode/json_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/range\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return\\\"Range: [\\\"+this.start.row+\\\"/\\\"+this.start.column+\\\"] -> [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[1]:\\\"\\\\n\\\",this._signal(\\\"changeNewLineMode\\\")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case\\\"windows\\\":return\\\"\\\\r\\\\n\\\";case\\\"unix\\\":return\\\"\\\\n\\\";default:return this.$autoNewLine||\\\"\\\\n\\\"}},this.$autoNewLine=\\\"\\\",this.$newLineMode=\\\"auto\\\",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/json/json_parse\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){\\\"use strict\\\";var at,ch,text,value,escapee={'\\\"':'\\\"',\\\"\\\\\\\\\\\":\\\"\\\\\\\\\\\",\\\"/\\\":\\\"/\\\",b:\\\"\\\\b\\\",f:\\\"\\\\f\\\",n:\\\"\\\\n\\\",r:\\\"\\\\r\\\",t:\\\"\\t\\\"},error=function(m){throw{name:\\\"SyntaxError\\\",message:m,at:at,text:text}},next=function(c){return c&&c!==ch&&error(\\\"Expected '\\\"+c+\\\"' instead of '\\\"+ch+\\\"'\\\"),ch=text.charAt(at),at+=1,ch},number=function(){var number,string=\\\"\\\";for(\\\"-\\\"===ch&&(string=\\\"-\\\",next(\\\"-\\\"));ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();if(\\\".\\\"===ch)for(string+=\\\".\\\";next()&&ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch;if(\\\"e\\\"===ch||\\\"E\\\"===ch)for(string+=ch,next(),(\\\"-\\\"===ch||\\\"+\\\"===ch)&&(string+=ch,next());ch>=\\\"0\\\"&&\\\"9\\\">=ch;)string+=ch,next();return number=+string,isNaN(number)?(error(\\\"Bad number\\\"),void 0):number},string=function(){var hex,i,uffff,string=\\\"\\\";if('\\\"'===ch)for(;next();){if('\\\"'===ch)return next(),string;if(\\\"\\\\\\\\\\\"===ch)if(next(),\\\"u\\\"===ch){for(uffff=0,i=0;4>i&&(hex=parseInt(next(),16),isFinite(hex));i+=1)uffff=16*uffff+hex;string+=String.fromCharCode(uffff)}else{if(\\\"string\\\"!=typeof escapee[ch])break;string+=escapee[ch]}else string+=ch}error(\\\"Bad string\\\")},white=function(){for(;ch&&\\\" \\\">=ch;)next()},word=function(){switch(ch){case\\\"t\\\":return next(\\\"t\\\"),next(\\\"r\\\"),next(\\\"u\\\"),next(\\\"e\\\"),!0;case\\\"f\\\":return next(\\\"f\\\"),next(\\\"a\\\"),next(\\\"l\\\"),next(\\\"s\\\"),next(\\\"e\\\"),!1;case\\\"n\\\":return next(\\\"n\\\"),next(\\\"u\\\"),next(\\\"l\\\"),next(\\\"l\\\"),null}error(\\\"Unexpected '\\\"+ch+\\\"'\\\")},array=function(){var array=[];if(\\\"[\\\"===ch){if(next(\\\"[\\\"),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;for(;ch;){if(array.push(value()),white(),\\\"]\\\"===ch)return next(\\\"]\\\"),array;next(\\\",\\\"),white()}}error(\\\"Bad array\\\")},object=function(){var key,object={};if(\\\"{\\\"===ch){if(next(\\\"{\\\"),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;for(;ch;){if(key=string(),white(),next(\\\":\\\"),Object.hasOwnProperty.call(object,key)&&error('Duplicate key \\\"'+key+'\\\"'),object[key]=value(),white(),\\\"}\\\"===ch)return next(\\\"}\\\"),object;next(\\\",\\\"),white()}}error(\\\"Bad object\\\")};return value=function(){switch(white(),ch){case\\\"{\\\":return object();case\\\"[\\\":return array();case'\\\"':return string();case\\\"-\\\":return number();default:return ch>=\\\"0\\\"&&\\\"9\\\">=ch?number():word()}},function(source,reviver){var result;return text=source,at=0,ch=\\\" \\\",result=value(),white(),ch&&error(\\\"Syntax error\\\"),\\\"function\\\"==typeof reviver?function walk(holder,key){var k,v,value=holder[key];if(value&&\\\"object\\\"==typeof value)for(k in value)Object.hasOwnProperty.call(value,k)&&(v=walk(value,k),void 0!==v?value[k]=v:delete value[k]);return reviver.call(holder,key,value)}({\\\"\\\":result},\\\"\\\"):result}}),ace.define(\\\"ace/mode/json_worker\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/worker/mirror\\\",\\\"ace/mode/json/json_parse\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"../lib/oop\\\"),Mirror=acequire(\\\"../worker/mirror\\\").Mirror,parse=acequire(\\\"./json/json_parse\\\"),JsonWorker=exports.JsonWorker=function(sender){Mirror.call(this,sender),this.setTimeout(200)};oop.inherits(JsonWorker,Mirror),function(){this.onUpdate=function(){var value=this.doc.getValue(),errors=[];try{value&&parse(value)}catch(e){var pos=this.doc.indexToPosition(e.at-1);errors.push({row:pos.row,column:pos.column,text:e.message,type:\\\"error\\\"})}this.sender.emit(\\\"annotate\\\",errors)}}.call(JsonWorker.prototype)}),ace.define(\\\"ace/lib/es5-shim\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,\\\"sentinel\\\",{}),\\\"sentinel\\\"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if(\\\"function\\\"!=typeof target)throw new TypeError(\\\"Function.prototype.bind called on incompatible \\\"+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,\\\"__defineGetter__\\\"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,\\\"XXX\\\"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0\\n}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return\\\"[object Array]\\\"==_toString(obj)});var boxedString=Object(\\\"a\\\"),splitString=\\\"a\\\"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,thisp=arguments[1],i=-1,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,result=[],thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0,thisp=arguments[1];if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduce of empty array with no initial value\\\");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError(\\\"reduce of empty array with no initial value\\\")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):object,length=self.length>>>0;if(\\\"[object Function]\\\"!=_toString(fun))throw new TypeError(fun+\\\" is not a function\\\");if(!length&&1==arguments.length)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError(\\\"reduceRight of empty array with no initial value\\\")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&\\\"[object String]\\\"==_toString(this)?this.split(\\\"\\\"):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT=\\\"Object.getOwnPropertyDescriptor called on a non-object: \\\";Object.getOwnPropertyDescriptor=function(object,property){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if(\\\"object\\\"!=typeof prototype)throw new TypeError(\\\"typeof prototype[\\\"+typeof prototype+\\\"] != 'object'\\\");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom=\\\"undefined\\\"==typeof document||doesDefinePropertyWork(document.createElement(\\\"div\\\"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR=\\\"Property description must be an object: \\\",ERR_NON_OBJECT_TARGET=\\\"Object.defineProperty called on non-object: \\\",ERR_ACCESSORS_NOT_SUPPORTED=\\\"getters & setters can not be defined on this javascript engine\\\";Object.defineProperty=function(object,property,descriptor){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if(\\\"object\\\"!=typeof descriptor&&\\\"function\\\"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,\\\"value\\\"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,\\\"get\\\")&&defineGetter(object,property,descriptor.get),owns(descriptor,\\\"set\\\")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return\\\"function\\\"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name=\\\"\\\";owns(object,name);)name+=\\\"?\\\";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=[\\\"toString\\\",\\\"toLocaleString\\\",\\\"valueOf\\\",\\\"hasOwnProperty\\\",\\\"isPrototypeOf\\\",\\\"propertyIsEnumerable\\\",\\\"constructor\\\"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if(\\\"object\\\"!=typeof object&&\\\"function\\\"!=typeof object||null===object)throw new TypeError(\\\"Object.keys called on a non-object\\\");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws=\\\"\\t\\\\n\\u000b\\\\f\\\\r   ᠎              \\\\u2028\\\\u2029\\\";if(!String.prototype.trim||ws.trim()){ws=\\\"[\\\"+ws+\\\"]\\\";var trimBeginRegexp=RegExp(\\\"^\\\"+ws+ws+\\\"*\\\"),trimEndRegexp=RegExp(ws+ws+\\\"*$\\\");String.prototype.trim=function(){return(this+\\\"\\\").replace(trimBeginRegexp,\\\"\\\").replace(trimEndRegexp,\\\"\\\")}}var toObject=function(o){if(null==o)throw new TypeError(\\\"can't convert \\\"+o+\\\" to object\\\");return Object(o)}});\";","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar HighlightRules = acequire(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/json\"), \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","ace.define(\"ace/mode/yaml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar YamlHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"comment\",\n regex : \"#.*$\"\n }, {\n token : \"list.markup\",\n regex : /^(?:-{3}|\\.{3})\\s*(?=#|$)/\n }, {\n token : \"list.markup\",\n regex : /^\\s*[\\-?](?:$|\\s)/\n }, {\n token: \"constant\",\n regex: \"!![\\\\w//]+\"\n }, {\n token: \"constant.language\",\n regex: \"[&\\\\*][a-zA-Z0-9-_]+\"\n }, {\n token: [\"meta.tag\", \"keyword\"],\n regex: /^(\\s*\\w.*?)(:(?=\\s|$))/\n },{\n token: [\"meta.tag\", \"keyword\"],\n regex: /(\\w+?)(\\s*:(?=\\s|$))/\n }, {\n token : \"keyword.operator\",\n regex : \"<<\\\\w*:\\\\w*\"\n }, {\n token : \"keyword.operator\",\n regex : \"-\\\\s*(?=[{])\"\n }, {\n token : \"string\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]'\n }, {\n token : \"string\", // multi line string start\n regex : /[|>][-+\\d\\s]*$/,\n onMatch: function(val, state, stack, line) {\n var indent = /^\\s*/.exec(line)[0];\n if (stack.length < 1) {\n stack.push(this.next);\n } else {\n stack[0] = \"mlString\";\n }\n\n if (stack.length < 2) {\n stack.push(indent.length);\n }\n else {\n stack[1] = indent.length;\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\", // single quoted string\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"constant.numeric\", // float\n regex : /(\\b|[+\\-\\.])[\\d_]+(?:(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)(?=[^\\d-\\w]|$)/\n }, {\n token : \"constant.numeric\", // other number\n regex : /[+\\-]?\\.inf\\b|NaN\\b|0x[\\dA-Fa-f_]+|0b[10_]+/\n }, {\n token : \"constant.language.boolean\",\n regex : \"\\\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\\\b\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"text\",\n regex : /[^\\s,:\\[\\]\\{\\}]+/\n }\n ],\n \"mlString\" : [\n {\n token : \"indent\",\n regex : /^\\s*$/\n }, {\n token : \"indent\",\n regex : /^\\s*/,\n onMatch: function(val, state, stack) {\n var curIndent = stack[1];\n\n if (curIndent >= val.length) {\n this.next = \"start\";\n stack.splice(0);\n }\n else {\n this.next = \"mlString\";\n }\n return this.token;\n },\n next : \"mlString\"\n }, {\n token : \"string\",\n regex : '.+'\n }\n ]};\n this.normalizeRules();\n\n};\n\noop.inherits(YamlHighlightRules, TextHighlightRules);\n\nexports.YamlHighlightRules = YamlHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n\n if (level == -1)\n continue;\n\n if (line[level] != \"#\")\n break;\n\n endRow = row;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n } else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n\n if (prevIndent!= -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/yaml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/yaml_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/coffee\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar YamlHighlightRules = acequire(\"./yaml_highlight_rules\").YamlHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar FoldMode = acequire(\"./folding/coffee\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = YamlHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = [\"#\", \"//\"];\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n\n this.$id = \"ace/mode/yaml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .replace('ref', block._label)\n .getRegex();\n\ninline.nolink = edit(inline.nolink)\n .replace('ref', block._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    '\n        + (escaped ? code : escape(code, true))\n        + '
    \\n';\n }\n\n return '
    '\n      + (escaped ? code : escape(code, true))\n      + '
    \\n';\n }\n\n blockquote(quote) {\n return '
    \\n' + quote + '
    \\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/*!\n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n var HowlerGlobal = function() {\n this.init();\n };\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function() {\n var self = this || Howler;\n\n // Create a global ID counter.\n self._counter = 1000;\n\n // Pool of unlocked HTML5 Audio objects.\n self._html5AudioPool = [];\n self.html5PoolSize = 10;\n\n // Internal properties.\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = (typeof window !== 'undefined' && window.navigator) ? window.navigator : null;\n\n // Public properties.\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null;\n\n // Set to false to disable the auto audio unlocker.\n self.autoUnlock = true;\n\n // Setup the various state values for global tracking.\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function(vol) {\n var self = this || Howler;\n vol = parseFloat(vol);\n\n // If we don't have an AudioContext created yet, run the setup.\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol;\n\n // Don't update any of the nodes if we are muted.\n if (self._muted) {\n return self;\n }\n\n // When using Web Audio, we just need to adjust the master gain.\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n }\n\n // Loop through and change volume for all HTML5 audio nodes.\n for (var i=0; i=0; i--) {\n self._howls[i].unload();\n }\n\n // Create a new AudioContext to make sure it is fully reset.\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function() {\n var self = this || Howler;\n\n // Keeps track of the suspend/resume state of the AudioContext.\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended';\n\n // Automatically begin the 30-second suspend process\n self._autoSuspend();\n\n // Check if audio is available.\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio();\n\n // Check if the canplaythrough event is available.\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch(e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n }\n\n // Test to make sure audio isn't disabled in Internet Explorer.\n try {\n var test = new Audio();\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {}\n\n // Check for supported codecs.\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function() {\n var self = this || Howler;\n var audioTest = null;\n\n // Must wrap in a try/catch because IE11 in server mode throws an error.\n try {\n audioTest = (typeof Audio !== 'undefined') ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');\n\n // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n var ua = self._navigator ? self._navigator.userAgent : '';\n var checkOpera = ua.match(/OPR\\/([0-6].)/g);\n var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);\n var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;\n var safariVersion = ua.match(/Version\\/(.*?) /);\n var isOldSafari = (checkSafari && safariVersion && parseInt(safariVersion[1], 10) < 15);\n\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, '')),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function() {\n var self = this || Howler;\n\n // Only run this if Web Audio is supported and it hasn't already been unlocked.\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false;\n\n // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n }\n\n // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050);\n\n // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n var unlock = function(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio();\n\n // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n audioNode._unlocked = true;\n\n // Add the audio node to the pool.\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n }\n\n // Loop through any assigned audio nodes and unlock them.\n for (var i=0; i= 55.\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n }\n\n // Setup a timeout to check that we are unlocked on the next event loop.\n source.onended = function() {\n source.disconnect(0);\n\n // Update the unlocked state and prevent this check from happening again.\n self._audioUnlocked = true;\n\n // Remove the touch start listener.\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true);\n document.removeEventListener('keydown', unlock, true);\n\n // Let all sounds know that audio has been unlocked.\n for (var i=0; i 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, ((self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000) - seek);\n var timeout = (duration * 1000) / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite;\n\n // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n sound._ended = false;\n\n // Update the parameters of the sound.\n var setParams = function() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n };\n\n // End the sound instantly if seek is at the end.\n if (seek >= stop) {\n self._ended(sound);\n return;\n }\n\n // Begin the actual playback.\n var node = sound._node;\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function() {\n self._playLock = false;\n setParams();\n self._refreshBuffer(sound);\n\n // Setup the playback params.\n var vol = (sound._muted || self._muted) ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime;\n\n // Play the sound using the supported method.\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n }\n\n // Start a new timer if none is present.\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function() {\n self._emit('play', sound._id);\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true;\n\n // Wait for the audio context to resume before playing.\n self.once('resume', playWebAudio);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate;\n\n // Some browsers will throw an error if this is called without user interaction.\n try {\n var play = node.play();\n\n // Support older browsers that don't support promises, and thus don't have this issue.\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true;\n\n // Set param values immediately.\n setParams();\n\n // Releases the lock and executes queued actions.\n play\n .then(function() {\n self._playLock = false;\n node._unlocked = true;\n if (!internal) {\n self._emit('play', sound._id);\n } else {\n self._loadQueue();\n }\n })\n .catch(function() {\n self._playLock = false;\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n // Reset the ended and paused values.\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n self._emit('play', sound._id);\n }\n\n // Setting rate before playing won't work in IE, so we set it again here.\n node.playbackRate = sound._rate;\n\n // If the node is still paused, then we can assume there was a playback issue.\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' +\n 'on mobile devices and Chrome where playback was not within a user interaction.');\n return;\n }\n\n // Setup the end timer on sprites or listen for the ended event.\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function() {\n // Fire ended on this audio node.\n self._ended(sound);\n\n // Clear this listener.\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n };\n\n // If this is streaming audio, make sure the src is set and load again.\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n }\n\n // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n var loadedNoReadyState = (window && window.ejecta) || (!node.readyState && Howler._navigator.isCocoonJS);\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n self._state = 'loading';\n\n var listener = function() {\n self._state = 'loaded';\n \n // Begin playback.\n playHtml5();\n\n // Clear this listener.\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n node.addEventListener(Howler._canPlayEvent, listener, false);\n\n // Cancel the end timer.\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function(id) {\n var self = this;\n\n // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function() {\n self.pause(id);\n }\n });\n\n return self;\n }\n\n // If no id is passed, get all ID's to be paused.\n var ids = self._getSoundIds(id);\n\n for (var i=0; i Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function() {\n var self = this;\n var args = arguments;\n var vol, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the volume or return the current volume.\n var sound;\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded'|| self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group volume.\n if (typeof id === 'undefined') {\n self._volume = vol;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i 0) ? len / steps : len);\n var lastTick = Date.now();\n\n // Store the value being faded to.\n sound._fadeTo = to;\n\n // Update the volume value on each interval tick.\n sound._interval = setInterval(function() {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick;\n\n // Round to within 2 decimal points.\n vol = Math.round(vol * 100) / 100;\n\n // Make sure the volume is in the right bounds.\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n }\n\n // Change the volume.\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n }\n\n // Set the group's volume.\n if (isGroup) {\n self._volume = vol;\n }\n\n // When the fade is complete, stop it and fire event.\n if ((to < from && vol <= to) || (to > from && vol >= to)) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function(id) {\n var self = this;\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function() {\n var self = this;\n var args = arguments;\n var loop, id, sound;\n\n // Determine the values for loop and id.\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n }\n\n // If no id is passed, get all ID's to be looped.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function() {\n var self = this;\n var args = arguments;\n var rate, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // Update the playback rate or return the current value.\n var sound;\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Set the group rate.\n if (typeof id === 'undefined') {\n self._rate = rate;\n }\n\n // Update one or all volumes.\n id = self._getSoundIds(id);\n for (var i=0; i Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function() {\n var self = this;\n var args = arguments;\n var seek, id;\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n if (self._sounds.length) {\n id = self._sounds[0]._id;\n }\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n var index = ids.indexOf(args[0]);\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n }\n\n // If there is no ID, bail out.\n if (typeof id === 'undefined') {\n return 0;\n }\n\n // If the sound hasn't loaded, add it to the load queue to seek when capable.\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n }\n\n // Get the sound.\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n if (playing) {\n self.pause(id, true);\n }\n\n // Move the position of the track and cancel timer.\n sound._seek = seek;\n sound._ended = false;\n self._clearTimer(id);\n\n // Update the seek position for HTML5 Audio.\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n }\n\n // Seek and emit when ready.\n var seekAndEmit = function() {\n // Restart the playback if the sound was playing.\n if (playing) {\n self.play(id, true);\n }\n\n self._emit('seek', id);\n };\n\n // Wait for the play lock to be unset before emitting (HTML5 Audio).\n if (playing && !self._webAudio) {\n var emitSeek = function() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function(id) {\n var self = this;\n\n // Check the passed sound ID (if any).\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n return sound ? !sound._paused : false;\n }\n\n // Otherwise, loop through all sounds and check if any are playing.\n for (var i=0; i= 0) {\n Howler._howls.splice(index, 1);\n }\n\n // Delete this sound from the cache (if no other Howl is using it).\n var remCache = true;\n for (i=0; i= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n }\n\n // Clear global errors.\n Howler.noAudio = false;\n\n // Clear out `self`.\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {id: id, fn: fn, once: once} : {id: id, fn: fn});\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0;\n\n // Allow passing just an event and ID.\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i=0; i=0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function(fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0);\n\n // If this event was setup with `once`, remove it.\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n }\n\n // Pass the event type into load queue so that it can continue stepping.\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0];\n\n // Remove this task if a matching event was passed.\n if (task.event === event) {\n self._queue.shift();\n self._loadQueue();\n }\n\n // Run the task if no event type is passed.\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function(sound) {\n var self = this;\n var sprite = sound._sprite;\n\n // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n }\n\n // Should this sound loop?\n var loop = !!(sound._loop || self._sprite[sprite][2]);\n\n // Fire the ended event.\n self._emit('end', sound._id);\n\n // Restart the playback for HTML5 Audio loop.\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n }\n\n // Restart this timer if on a Web Audio loop.\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n\n var timeout = ((sound._stop - sound._start) * 1000) / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n // Mark the node as paused.\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n self._clearTimer(sound._id);\n\n // Clean up the buffer source.\n self._cleanBuffer(sound._node);\n\n // Attempt to auto-suspend AudioContext if no sounds are still playing.\n Howler._autoSuspend();\n }\n\n // When using a sprite, end the track.\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function(id) {\n var self = this;\n\n // Loop through all sounds and find the one with this ID.\n for (var i=0; i=0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n }\n\n // Remove sounds until we have the pool size.\n self._sounds.splice(i, 1);\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n for (var i=0; i= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n if (isIOS) {\n try { node.bufferSource.buffer = Howler._scratchBuffer; } catch(e) {}\n }\n }\n node.bufferSource = null;\n\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n\n /** Single Sound Methods **/\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n var Sound = function(howl) {\n this._parent = howl;\n this.init();\n };\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function() {\n var self = this;\n var parent = self._parent;\n\n // Setup the default parameters.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a unique ID for this sound.\n self._id = ++Howler._counter;\n\n // Add itself to the parent's pool.\n parent._sounds.push(self);\n\n // Create the new node.\n self.create();\n\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function() {\n var self = this;\n var parent = self._parent;\n var volume = (Howler._muted || self._muted || self._parent._muted) ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n self._node.paused = true;\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio();\n\n // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n self._errorFn = self._errorListener.bind(self);\n self._node.addEventListener('error', self._errorFn, false);\n\n // Listen for 'canplaythrough' event to let us know the sound is ready.\n self._loadFn = self._loadListener.bind(self);\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false);\n\n // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n self._endFn = self._endListener.bind(self);\n self._node.addEventListener('ended', self._endFn, false);\n\n // Setup the new audio node.\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume();\n\n // Begin loading the source.\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function() {\n var self = this;\n var parent = self._parent;\n\n // Reset all of the parameters of this sound.\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default';\n\n // Generate a new ID so that it isn't confused with the previous sound.\n self._id = ++Howler._counter;\n\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function() {\n var self = this;\n\n // Fire an error event and pass back the code.\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0);\n\n // Clear the event listener.\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Setup a sprite if none is defined.\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {__default: [0, parent._duration * 1000]};\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n parent._emit('load');\n parent._loadQueue();\n }\n\n // Clear the event listener.\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function() {\n var self = this;\n var parent = self._parent;\n\n // Only handle the `ended`` event if the duration is Infinity.\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10;\n\n // Update the sprite that corresponds to the real duration.\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n }\n\n // Run the regular ended method.\n parent._ended(self);\n }\n\n // Clear the event listener since the duration is now correct.\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n\n /** Helper Methods **/\n /***************************************************************************/\n\n var cache = {};\n\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n var loadBuffer = function(self) {\n var url = self._src;\n\n // Check if the buffer has already been cached and use it instead.\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration;\n\n // Load the sound into this Howl.\n loadSound(self);\n\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n for (var i=0; i 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n };\n\n // Decode the buffer into an audio source.\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n }\n\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n var loadSound = function(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n }\n\n // Setup a sprite if none is defined.\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {__default: [0, self._duration * 1000]};\n }\n\n // Fire the loaded event.\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n self._emit('load');\n self._loadQueue();\n }\n };\n\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n var setupAudioContext = function() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n }\n\n // Check if we are using Web Audio and setup the AudioContext if we are.\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch(e) {\n Howler.usingWebAudio = false;\n }\n\n // If the audio context creation still failed, set using web audio to false.\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n }\n\n // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n var iOS = (/iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform));\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n }\n\n // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n if (Howler.usingWebAudio) {\n Howler.masterGain = (typeof Howler.ctx.createGain === 'undefined') ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n }\n\n // Re-run the setup on Howler.\n Howler._setup();\n };\n\n // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n }\n\n // Add support for CommonJS libraries such as browserify.\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n }\n\n // Add to global in Node.js (for testing, etc).\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') { // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n\n\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.3\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n(function() {\n\n 'use strict';\n\n // Setup default properties.\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n\n /** Global Methods **/\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n HowlerGlobal.prototype.stereo = function(pan) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Loop through all Howls and update their stereo panning.\n for (var i=self._howls.length-1; i>=0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n HowlerGlobal.prototype.pos = function(x, y, z) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n y = (typeof y !== 'number') ? self._pos[1] : y;\n z = (typeof z !== 'number') ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n HowlerGlobal.prototype.orientation = function(x, y, z, xUp, yUp, zUp) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self.ctx || !self.ctx.listener) {\n return self;\n }\n\n // Set the defaults for optional 'y' & 'z'.\n var or = self._orientation;\n y = (typeof y !== 'number') ? or[1] : y;\n z = (typeof z !== 'number') ? or[2] : z;\n xUp = (typeof xUp !== 'number') ? or[3] : xUp;\n yUp = (typeof yUp !== 'number') ? or[4] : yUp;\n zUp = (typeof zUp !== 'number') ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n\n /** Group Methods **/\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n Howl.prototype.init = (function(_super) {\n return function(o) {\n var self = this;\n\n // Setup user-defined default properties.\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n };\n\n // Setup event listeners.\n self._onstereo = o.onstereo ? [{fn: o.onstereo}] : [];\n self._onpos = o.onpos ? [{fn: o.onpos}] : [];\n self._onorientation = o.onorientation ? [{fn: o.onorientation}] : [];\n\n // Complete initilization with howler.js core's init function.\n return _super.call(this, o);\n };\n })(Howl.prototype.init);\n\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n Howl.prototype.stereo = function(pan, id) {\n var self = this;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n }\n\n // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n var pannerType = (typeof Howler.ctx.createStereoPanner === 'undefined') ? 'spatial' : 'stereo';\n\n // Setup the group's stereo panning if no ID is passed.\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n }\n\n // Change the streo panning of one or all sounds in group.\n var ids = self._getSoundIds(id);\n for (var i=0; i Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n Howl.prototype.pannerAttr = function() {\n var self = this;\n var args = arguments;\n var o, id, sound;\n\n // Stop right here if not using Web Audio.\n if (!self._webAudio) {\n return self;\n }\n\n // Determine the values based on arguments.\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0];\n\n // Set the grou's panner attribute values.\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n }\n\n // Update the values of the specified sounds.\n var ids = self._getSoundIds(id);\n for (var i=0; i","<=",">=","<<",">>",">>>","+","-","*","/","%","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","_i","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","Parser3","recordError","constructError","ErrorHandler2","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","hexValue","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","octalValue","code","scanIdentifier","restore","scanPunctuator","scanHexLiteral","num","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","$0","$1","$2","scanRegExpBody","classMarker","scanRegExpFlags","char","Scanner2","quot","amp","apos","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","prop","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","Reader2","trackRange","trackLoc","reader","Tokenizer3","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","encodeChunk","lookup","buffer2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","ieee754","customInspectSymbol","Buffer2","alloc","K_MAX_LENGTH","RangeError","encodingOrOffset","allocUnsafe","isEncoding","byteLength2","createBuffer","actual","write","fromString","arrayView","isInstance","fromArrayBuffer","byteLength","fromArrayLike","fromArrayView","SharedArrayBuffer","numberIsNaN","fromObject","toPrimitive","mustMatch","loweredCase","utf8ToBytes","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","read","remaining","strLen","parsed","blitBuffer","byteArray","asciiToBytes","units","utf16leToBytes","fromByteArray","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","swap16","swap32","swap64","slowToString","inspect","INSPECT_MAX_BYTES","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","_arr","hexSliceLookupTable","ext","littleEndian","noAssert","newBuf","readUintLE","readUIntLE","byteLength3","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","getMessage","ERR_OUT_OF_RANGE","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","addNumericalSeparator","INVALID_BASE64_RE","leadSurrogate","toByteArray","base64clean","dst","alphabet","i16","BufferBigIntNotDefined","objectToString","POWERS_OF_TEN","results","log10","al","bl","aStr","bStr","runHi","pivot","pivotIndex","hint","lastOffset","maxOffset","array","minGallop","tmpStorageLength","tmpIndex","stackLength","runStart","runLength","stackSize","mergeAt","start1","length1","start2","length2","gallopRight","gallopLeft","mergeLow","mergeHigh","cursor1","dest","count1","count2","customCursor","customDest","alphabeticalCompare","makeAscendingRun","TimSort","minRun","minRunLength","pushRun","mergeRuns","forceMergeRuns","hasOwnProp","isObject","PREFIX_BEFORE","PREFIX_BEFORE_ALL","PREFIX_AFTER_ALL","SYMBOL_PREFIXES","NON_PROP_SYMBOL_KEYS","for","symbol","copy_comments_by_kind","target_key","source_key","remove_source","source_prop","target_prop","copy_comments","assign_non_prop_comments","UNDEFINED","swap_comments","move_comment","move_comments","remove_comments","begin","item_length","CommentArray","items_length","source_index","real_source_index","mapped","get_mapped","esprima","PREFIX_AFTER_PROP","PREFIX_AFTER_COLON","PREFIX_AFTER_VALUE","PREFIX_AFTER","BRACKET_OPEN","BRACKET_CLOSE","CURLY_BRACKET_OPEN","CURLY_BRACKET_CLOSE","COLON","COMMA","MINUS","previous_hosts","comments_host","unassigned_comments","previous_props","last_prop","inline","reviver","clean","symbolFor","unexpected","SyntaxError","unexpected_end","new_token","set_comments_host","new_host","restore_comments_host","assign_after_comments","after_comments","assign_comments","parse_comments","set_prop","restore_prop","tt2","started","parse_object","parse_array","negative","parse_1","rev","no_comments","subject","res","repeatString","isFunction","isNumber","isString","repeat","ESCAPABLE","BEFORE","AFTER_VALUE","AFTER","\b","\t","\n","\f","\r","\\","quote","process_comments","symbol_tag","deeper_gap","display_block","is_line_comment","inline2","comment_stringify","replacer","one","two","gap","trimRight","join_content","object_stringify","after_comma","sv","AFTER_COLON","holder","array_stringify","PRIMITIVE_OBJECT_TYPES","replacer_","indent_","get_indent","is_primitive_object","trimLeft","reason","mark2","mark","captureStackTrace","isNothing","cycle","NEGATIVE_INFINITY","sourceKeys","YAMLException","compact","exception","Mark","getSnippet","snippet","where","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","construct","instanceOf","represent","defaultStyle","styleAliases","alias","Type","exclude","includedSchema","compileList","currentType","previousType","previousIndex","definition","implicit","explicit","loadKind","compiledImplicit","compiledExplicit","compiledTypeMap","scalar","collectType","compileMap","Schema","DEFAULT","failsafe","_null","canonical","lowercase","uppercase","camelcase","bool","hasDigits","isOctCode","isDecCode","sign","digits","isNegativeZero","binary","decimal","hexadecimal","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","json","POSITIVE_INFINITY","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","timestamp","year","month","day","hour","minute","date","fraction","UTC","setTime","toISOString","NodeBuffer","_require","require","BASE64_MAP","bitlen","tailbits","_hasOwnProperty","_toString","omap","pairKey","pairHasKey","objectKeys","pairs","default_safe","_undefined","regexp","regexp2","_function","default_full","DEFAULT_SAFE_SCHEMA","DEFAULT_FULL_SCHEMA","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","simpleEscapeCheck","simpleEscapeMap","simpleEscapeSequence","filename","onWarning","legacy","implicitTypes","typeMap","documents","generateError","directiveHandlers","YAML","major","minor","checkLineBreaks","TAG","handle","tagMap","checkJson","_position","_length","_character","_result","overridableKeys","quantity","keyTag","keyNode","valueNode","startPos","_class","allowComments","checkIndent","lineBreaks","is_WHITE_SPACE","is_EOL","is_WS_OR_EOL","nodeIndent","_line","_tag","_anchor","detected","anchorMap","skipSeparationSpace","tagHandle","isVerbatim","isNamed","is_FLOW_INDICATOR","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","indentStatus","atNewLine","hasContent","readTagProperty","readAnchorProperty","following","_pos","atExplicitKey","composeNode","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","storeMappingPair","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","testDocumentSeparator","readSingleQuotedScalar","hexLength","hexResult","fromHexCode","charFromCodepoint","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readBlockSequence","directiveName","directiveArgs","documentStart","hasDirectives","State","nullpos","loadDocuments","loadAll","ESCAPE_SEQUENCES","7","10","11","12","92","133","160","8232","8233","DEPRECATED_BOOLEANS_SYNTAX","noArrayIndent","skipInvalid","flowLevel","styleMap","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","explicitTypes","duplicates","usedDuplicates","ind","isPrintable","isWhitespace","isNsChar","singleLineOnly","indentPerLevel","testAmbiguousType","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","isPlainSafe","needIndentIndicator","iskey","dump","chooseScalarStyle","string2","testImplicitResolving","blockHeader","dropEndingNewline","indentString","moreIndented","lineRe","nextLF","prevMoreIndented","foldString","nextChar","escapeSeq","encodeHex","indentIndicator","clip","breakRe","typeList","detectType","duplicateIndex","duplicate","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","objectKeyList","generateNextLine","writeNode","arrayLevel","objects","duplicatesIndexes","loader","dumper","safeLoad","safeLoadAll","safeDump","deprecated","jsYaml","displayName","isReactComponent","__f","isPureReactComponent","E","__u","__R","__O","delete","revealOrder","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","multiple","defaultValue","$$typeof","performance","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","langPrefix","mangle","pedantic","sanitize","sanitizer","smartLists","smartypants","xhtml","HowlerGlobal2","Howler2","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","ctx","autoUnlock","_setup","volume","vol","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","_soundById","_node","mute","muted","unload","close","codecs","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","checkSafari","safariVersion","isOldSafari","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","connect","noteOn","resume","onended","disconnect","_obtainHtml5Audio","testPlay","play","catch","audio","suspend","_sounds","_paused","_suspendTimer","handleSuspension","_resumeAfterSuspend","Howl2","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","protocol","Sound2","internal","_ended","_inactiveSound","soundId","_loadQueue","seek","_seek","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","_clearSound","_interval","linearRampToValueAtTime","_startFadeInterval","isGroup","stepLen","lastTick","_fadeTo","tick","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","events","isId","task","_drain","cnt","_panner","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","__default","loadBuffer","atob","dataView","responseType","setRequestHeader","response","onerror","safeXhrSend","decodeAudioData","arraybuffer","loadSound","setupAudioContext","AudioContext","webkitAudioContext","iOS","appVersion","safari","HowlerGlobal","Howler","Howl","Sound","_orientation","stereo","pan","z2","positionX","setTargetAtTime","positionY","positionZ","orientation","xUp","yUp","zUp","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","setupPanner","createPanner","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","unescapeTest","caret","getRegex","nonWordAndColonTest","originIndependentUrl","prot","baseUrls","justDomain","rtrim","relativeBase","domain","resolveUrl","encodeURI","noopTest","tableRow","cells","escaped","suffLen","currChar","lexer","inLink","inlineTokens","newline","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","indentCodeCompensation","heading","trimmed","hr","blockquote","blockTokens","istask","ischecked","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","isordered","ordered","itemRegex","nextBulletRegex","spacers","hasMultipleLineBreaks","pre","def","splitCells","align","lheading","paragraph","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","findClosingBracket","linkLen","outputLink","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","punctuation","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","mangle2","autolink","prevCapZero","_backpedal","smartypants2","_paragraph","_label","_title","bullet","listItemStart","_comment","reflinkSearch","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","inlineQueue","Lexer","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","infostring","slugger","slug","cleanUrl","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Renderer","textRenderer","TextRenderer","Slugger","parseInline","itemBody","checkbox","renderers","tablecell","tablerow","listitem","marked","newDefaults","getDefaults","use","childTokens","hasExtensions","prevRenderer","args2","prevTokenizer","lexInline"],"mappings":"4bAAG,WAAA,IAACA,EAAIC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,GAAGC,EAAE,GAAGC,EAAE,oEAAoE,WAAWC,EAAEC,WAAWC,KAAKD,IAAIC,GAAGD,EAAEC,UAAUF,EAAE,WAAWA,OAAOC,EAAED,EAAEG,cAAcF,EAAEG,YAAYJ,GAAG,WAAWA,EAAEC,EAAEC,OAAOR,EAAEW,EAAEC,EAAEC,EAAEC,UAAUC,EAAE,OAAOH,KAAKL,EAAE,OAAOK,EAAEZ,EAAEO,EAAEK,GAAG,OAAOA,EAAED,EAAEJ,EAAEK,GAAGG,EAAEH,GAAGL,EAAEK,MAAME,UAAUE,OAAO,MAAMR,EAAE,CAACA,GAAGI,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,OAAO,MAAAJ,MAAYU,SAASV,GAAG,mBAAmBF,GAAG,MAAAA,EAAQa,iBAAiBP,KAAKN,EAAEa,kBAAa,IAASJ,EAAEH,OAAOA,GAAGN,EAAEa,aAAaP,WAAWQ,EAAEd,EAAES,EAAEf,EAAEW,EAAE,MAAM,WAAWJ,EAAEC,EAAER,EAAEW,EAAEC,OAAOC,EAAE,CAACQ,KAAKd,EAAEe,MAAMd,EAAEe,IAAIvB,EAAEwB,IAAIb,EAAEc,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKC,iBAAY,EAAOC,IAAI,MAAArB,IAAUd,EAAEmC,IAAIrB,UAAU,MAAAd,EAAQoC,OAAOpC,EAAEoC,MAAMrB,GAAGA,EAAoC,WAAWP,UAAUA,EAAEY,SAAS,WAAWZ,EAAEC,QAAQe,MAAMhB,EAAE6B,KAAKC,QAAQ7B,EAAE,WAAWD,EAAEC,MAAM,MAAAA,SAAeD,EAAEoB,GAAGW,EAAE/B,EAAEoB,GAAGpB,EAAEoB,GAAGD,IAAIa,QAAQhC,GAAG,GAAG,aAAaE,EAAED,EAAED,EAAEmB,IAAIT,OAAOT,OAAO,SAASD,EAAEmB,IAAIlB,KAAK,MAAMC,EAAEoB,WAAWpB,EAAEoB,UAAU,mBAAmBtB,EAAEe,KAAKgB,EAAE/B,GAAG,KAAK,WAAWA,OAAOC,EAAEC,KAAK,SAASF,EAAEoB,KAAK,MAAApB,EAAQwB,IAAI,KAAKxB,EAAEsB,IAAItB,EAAEwB,IAAIS,KAAK,KAAKhC,EAAE,EAAEA,EAAED,EAAEmB,IAAIT,OAAOT,OAAO,SAASD,EAAEmB,IAAIlB,KAAK,MAAMC,EAAEoB,IAAI,GAAGA,IAAItB,EAAEwB,IAAIS,KAAK/B,EAAEoB,iBAAiBY,EAAElC,IAAI,WAAWC,KAAKA,EAAEsB,QAAQA,KAAI,IAAK9B,EAAEkB,KAAKV,KAAKkC,EAAEC,OAAOzC,IAAIH,EAAE6C,wBAAwB7C,EAAE6C,oBAAoB3C,GAAGyC,GAAG,qBAAqBnC,EAAEmC,EAAEC,IAAI3C,EAAEiB,UAAUjB,EAAE6C,MAAK,SAASC,EAAEtC,UAAUsC,EAAEZ,IAAIN,IAAIpB,EAAE0B,IAAIN,OAAM5B,EAAE,GAAGO,EAAEwC,MAAK,SAASD,OAAOtC,EAAEC,EAAER,EAAEW,EAAEC,EAAEC,IAAIgB,cAAcgB,GAAGZ,KAAKL,OAAOrB,EAAEwC,SAAS,MAAMC,EAAE,GAAGrC,IAAIsB,IAAItB,EAAEsB,IAAI,EAAEgB,EAAEpC,EAAEF,EAAEX,EAAEO,EAAE2C,SAAI,IAAArC,EAAWsC,gBAAgB,MAAMxC,EAAEoB,IAAI,CAACnB,GAAG,KAAKJ,EAAE,MAAAI,EAAQyB,EAAE1B,GAAGC,EAAED,EAAEoB,KAAKqB,EAAE5C,EAAEG,GAAGA,EAAEiB,KAAKhB,GAAG4B,EAAE7B,QAAO,WAAWL,EAAEC,EAAEC,EAAER,EAAEW,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,OAAOC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEhE,GAAGA,EAAEyB,KAAKrB,EAAE6D,EAAED,EAAEhD,WAAWR,EAAEiB,IAAI,GAAGgC,EAAE,EAAEA,EAAElD,EAAES,OAAOyC,OAAO,SAASjD,EAAEiB,IAAIgC,GAAG,SAASlD,EAAEkD,KAAK,kBAAkBG,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAExC,EAAE,KAAKwC,EAAE,KAAK,KAAKA,GAAGM,MAAMC,QAAQP,GAAGxC,EAAEgD,EAAE,CAAClD,SAAS0C,GAAG,KAAK,KAAK,MAAMA,EAAEjC,IAAI,EAAEP,EAAEwC,EAAEvC,KAAKuC,EAAEtC,MAAMsC,EAAErC,IAAI,KAAKqC,EAAE3B,KAAK2B,GAAG,IAAIA,EAAElC,GAAGlB,EAAEoD,EAAEjC,IAAInB,EAAEmB,IAAI,EAAE,UAAUqC,EAAEP,KAAKE,GAAGC,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,OAAOoC,QAAG,WAAgBC,EAAE,EAAEA,EAAEO,EAAEP,IAAI,OAAOM,EAAEN,KAAKE,EAAErC,KAAKoC,EAAEpC,KAAKqC,EAAEvC,OAAOsC,EAAEtC,KAAK,GAAGqC,QAAG,UAAe,OAAOpD,EAAEsD,EAAED,EAAEA,GAAGxD,EAAEQ,EAAEC,EAAEyC,EAAEC,EAAEC,EAAEC,GAAGK,EAAED,EAAEhC,OAAOgC,EAAEpC,MAAMmC,EAAEnC,KAAKkC,UAAU,IAAIC,EAAEnC,KAAKuC,EAAE9C,KAAK0C,EAAEnC,IAAI,KAAKoC,GAAGG,EAAE9C,KAAKyC,EAAEE,EAAE9B,KAAK+B,EAAED,IAAI,MAAMC,GAAG,MAAMC,MAAMD,GAAG,mBAAmBD,EAAEvC,MAAM,MAAMuC,EAAEnC,KAAKmC,EAAEnC,MAAMkC,EAAElC,IAAImC,EAAE/B,IAAI0B,EAAEc,EAAET,EAAEL,EAAEjD,GAAGiD,EAAEe,EAAEhE,EAAEsD,EAAED,EAAEK,EAAEH,EAAEN,GAAGC,GAAG,WAAAhD,EAAaa,KAAK,mBAAmBb,EAAEa,SAASQ,IAAI0B,GAAGjD,EAAEiE,MAAM,IAAIhB,GAAGI,EAAE/B,KAAK2B,GAAGA,EAAE9C,YAAYH,MAAM+B,EAAEsB,QAAQnD,EAAEoB,IAAIkC,EAAEL,EAAEQ,EAAER,KAAK,MAAMO,EAAEP,KAAK,mBAAmBjD,EAAEa,MAAM,MAAM2C,EAAEP,GAAG7B,KAAKoC,EAAEP,GAAG7B,KAAKpB,EAAEqB,QAAQA,IAAIQ,EAAErC,EAAEyD,EAAE,IAAIe,EAAER,EAAEP,GAAGO,EAAEP,QAAQM,MAAMN,EAAE,EAAEA,EAAEM,EAAE/C,OAAOyC,MAAMM,EAAEN,GAAGM,IAAIN,GAAGM,IAAIN,IAAI,WAAWnD,EAAEC,EAAEC,OAAOR,EAAEW,MAAMX,EAAE,EAAEA,EAAEM,EAAEmB,IAAIT,OAAOhB,OAAOM,EAAEmB,IAAIzB,QAAQ0B,GAAGpB,EAAEC,EAAE,mBAAmBI,EAAEU,KAAKgD,EAAE1D,EAAEJ,EAAEC,GAAG8D,EAAE9D,EAAEG,EAAEA,EAAEL,EAAEmB,IAAId,EAAEiB,IAAIrB,WAAWA,EAAE,WAAWD,EAAEC,UAAUA,EAAEA,GAAG,GAAG,MAAAD,GAAS,kBAAkBA,UAAU6D,QAAQ7D,GAAGA,EAAEwC,MAAK,SAASD,KAAKA,EAAEtC,MAAKA,EAAEU,KAAKX,IAAIC,EAAE,WAAWD,EAAEC,EAAEC,EAAER,EAAEW,EAAEC,OAAOC,EAAEE,EAAEsC,UAAK,IAAS9C,EAAEsB,MAAMtB,EAAEsB,IAAItB,EAAEsB,SAAI,UAAe,MAAArB,GAASG,GAAGC,GAAG,MAAMD,EAAEF,gBAAgB,MAAAG,GAASA,EAAEH,aAAaH,IAAImE,YAAY9D,GAAGE,EAAE,SAAS,KAAKE,EAAEH,EAAEyC,EAAE,KAAKtC,EAAE2D,cAAcrB,EAAErD,EAAEgB,OAAOqC,GAAG,KAAKtC,GAAGJ,YAAYgE,aAAahE,EAAEC,GAAGC,EAAED,cAAS,IAAAC,EAAWA,EAAEF,EAAE+D,YAAuO,WAAWpE,EAAEC,EAAEC,GAAG,MAAMD,EAAE,GAAGD,EAAEsE,YAAYrE,EAAEC,GAAGF,EAAEC,GAAG,MAAMC,EAAE,GAAG,iBAAiBA,GAAGH,EAAEwE,KAAKtE,GAAGC,EAAEA,EAAE,KAAK,WAAWF,EAAEC,EAAEC,EAAER,EAAEW,OAAOC,OAAO,UAAAL,KAAe,iBAAiBC,IAAIsE,MAAMC,QAAQvE,MAAM,IAAI,iBAAiBR,MAAM8E,MAAMC,QAAQ/E,EAAE,IAAIA,MAAMO,KAAKP,KAAKO,KAAKC,GAAGwE,EAAE1E,EAAEwE,MAAMvE,EAAE,OAAOC,MAAMD,KAAKC,KAAKA,EAAED,KAAKP,EAAEO,IAAIyE,EAAE1E,EAAEwE,MAAMvE,EAAEC,EAAED,YAAY,MAAAA,EAAQ,IAAI,MAAMA,EAAE,KAAKA,OAAOA,EAAE0E,QAAQ,WAAW,KAAK1E,EAAEA,EAAE2E,gBAAgB5E,EAAEC,EAAE2E,cAAcC,MAAM,GAAG5E,EAAE4E,MAAM,GAAG7E,EAAE8E,MAAMA,EAAE,IAAI9E,EAAE8E,EAAE7E,EAAEK,GAAGJ,EAAEA,EAAER,GAAGM,EAAE+E,iBAAiB9E,EAAEK,EAAE0E,EAAEC,EAAE3E,GAAGN,EAAEkF,oBAAoBjF,EAAEK,EAAE0E,EAAEC,EAAE3E,WAAW,4BAA4BL,EAAE,IAAII,IAAIJ,EAAE0E,QAAQ,aAAa,KAAKA,QAAQ,SAAS,aAAa,SAAA1E,GAAY,SAASA,GAAG,SAASA,GAAG,aAAAA,GAAgB,aAAAA,GAAgBA,KAAKD,QAAQC,GAAG,MAAMC,EAAE,GAAGA,gBAAgBqC,IAAI,mBAAmBrC,IAAI,MAAMA,KAAI,IAAKA,GAAG,MAAAD,EAAQ,IAAI,MAAMA,EAAE,IAAID,EAAEmF,aAAalF,EAAEC,GAAGF,EAAEoF,gBAAgBnF,KAAK,WAAWA,QAAQ6E,EAAE7E,EAAEc,MAAK,GAAIvB,EAAE6F,MAAM7F,EAAE6F,MAAMpF,GAAGA,GAAG,WAAWA,QAAQ6E,EAAE7E,EAAEc,MAAK,GAAIvB,EAAE6F,MAAM7F,EAAE6F,MAAMpF,GAAGA,GAAG,WAAWA,EAAEC,EAAER,EAAEW,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,OAAOC,EAAEoC,EAAEnC,EAAEoC,EAAElC,EAAEC,EAAEC,EAAEiC,EAAE/B,EAAEgC,EAAE/B,EAAEC,EAAEzD,EAAEa,aAAQ,IAASb,EAAEwB,mBAAmB,KAAK,MAAMhC,EAAE+B,QAAQ/B,EAAE+B,IAAIsB,EAAE7C,EAAEoB,IAAI5B,EAAE4B,IAAIpB,EAAEuB,IAAI,KAAKlB,EAAE,CAACwC,OAAOvD,EAAE6B,MAAM6B,EAAEhD,YAAY,mBAAmByD,EAAE,IAAI6B,EAAEtF,EAAEc,MAAMyC,KAAKE,EAAE+B,cAAcrF,EAAE6C,EAAE1B,KAAKiE,EAAEvC,EAAEO,EAAEA,EAAEzC,MAAMiD,MAAMf,EAAE9B,GAAGf,EAAEX,EAAE8B,IAAI+B,KAAKrD,EAAEsB,IAAI9B,EAAE8B,KAAKJ,GAAGkE,EAAEK,mBAAmBhC,GAAGA,EAAEiC,UAAUC,OAAO3F,EAAEsB,IAAI8D,EAAE,IAAI3B,EAAE6B,EAAEC,MAAMjE,IAAI8D,EAAE,IAAIQ,EAAEN,EAAEC,GAAGH,EAAE5D,YAAYiC,EAAE2B,EAAEO,OAAOE,GAAGtC,GAAGA,EAAEuC,IAAIV,GAAGA,EAAEtE,MAAMwE,EAAEF,EAAEW,UAAUA,MAAM,IAAIX,EAAExD,QAAQ2D,EAAEH,EAAE1C,IAAIvC,EAAE8C,EAAEmC,EAAE/D,KAAI,EAAG+D,EAAE7D,IAAI,IAAI,MAAM6D,EAAEY,QAAQA,IAAIZ,EAAEW,OAAO,MAAAtC,EAAQwC,6BAA6BD,KAAKZ,EAAEW,UAAUC,IAAIxD,EAAE,GAAG4C,EAAEY,MAAMxD,EAAE4C,EAAEY,IAAIvC,EAAEwC,yBAAyBX,EAAEF,EAAEY,OAAOX,EAAED,EAAEtE,MAAMqC,EAAEiC,EAAEW,MAAM9C,EAAE,MAAMQ,EAAEwC,0BAA0B,MAAAb,EAAQc,oBAAoBd,EAAEc,qBAAqB,MAAMd,EAAEe,mBAAmBf,EAAE7D,IAAId,KAAK2E,EAAEe,uBAAuB,IAAI,MAAA1C,EAAQwC,0BAA0BX,IAAID,GAAG,MAAMD,EAAEgB,2BAA2BhB,EAAEgB,0BAA0Bd,EAAEC,IAAIH,EAAEhE,KAAK,MAAMgE,EAAEiB,wBAAuB,IAAKjB,EAAEiB,sBAAsBf,EAAEF,EAAEY,IAAIT,IAAIvF,EAAEyB,MAAMjC,EAAEiC,IAAI,GAAGX,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,IAAIhG,EAAEyB,MAAMjC,EAAEiC,QAAQJ,KAAI,GAAI+D,EAAE3D,IAAIzB,EAAEA,EAAEoB,IAAI5B,EAAE4B,IAAIpB,EAAEiB,IAAIzB,EAAEyB,IAAIjB,EAAEiB,IAAIqF,SAAQ,SAASxG,SAASoB,GAAGlB,MAAKoF,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,WAAW,MAAMA,EAAEmB,qBAAqBnB,EAAEmB,oBAAoBjB,EAAEF,EAAEY,IAAIT,GAAG,MAAMH,EAAEoB,oBAAoBpB,EAAE7D,IAAId,MAAK,aAAa+F,mBAAmBnB,EAAElC,EAAEC,QAAOxB,QAAQ2D,EAAEH,EAAEtE,MAAMwE,EAAEF,EAAEW,MAAMX,EAAEY,OAAO1G,EAAE4C,MAAMc,EAAEhD,GAAGoF,EAAE/D,KAAI,EAAG+D,EAAE3D,IAAIzB,EAAEoF,EAAE7C,IAAIxC,EAAEiD,EAAEoC,EAAEO,OAAOP,EAAEtE,MAAMsE,EAAEW,MAAMX,EAAExD,SAASwD,EAAEW,MAAMX,EAAEY,IAAI,MAAAZ,EAAQqB,oBAAoBjE,EAAEA,EAAE,GAAGrC,GAAGiF,EAAEqB,oBAAoBxD,GAAG,MAAAmC,EAAQsB,4BAA4BtB,EAAEsB,wBAAwBrB,EAAElC,IAAIK,EAAE,MAAMR,GAAGA,EAAEnC,OAAO+C,GAAG,MAAAZ,EAAQjC,IAAIiC,EAAElC,MAAMJ,SAASsC,EAAE2D,EAAE5G,EAAE2D,MAAMC,QAAQH,GAAGA,EAAE,CAACA,GAAGxD,EAAER,EAAEW,EAAEC,EAAEC,EAAEE,EAAEsC,EAAEE,GAAGqC,EAAErD,KAAK/B,EAAEoB,IAAIpB,EAAEuB,IAAI,KAAK6D,EAAE7D,IAAIf,QAAQD,EAAEE,KAAK2E,GAAG/B,MAAMoC,IAAIL,EAAElE,GAAG,MAAMkE,EAAEhE,KAAI,OAAQ,MAAMf,GAAGL,EAAEyB,MAAMjC,EAAEiC,OAAOR,IAAIzB,EAAEyB,IAAIjB,EAAEoB,IAAI5B,EAAE4B,KAAKpB,EAAEoB,IAA2Q,SAAWtB,EAAEC,EAAEC,EAAER,EAAEW,EAAEC,EAAEyC,EAAEC,OAAOE,EAAEoC,EAAEnC,EAAE2D,EAAE1D,EAAElD,EAAEc,MAAMuE,EAAEtF,EAAEe,MAAMqC,EAAEpD,EAAEc,KAAKuC,EAAE,KAAK,QAAAD,OAAc,GAAI,MAAA/C,OAAagD,EAAEhD,EAAEI,OAAO4C,UAAUhD,EAAEgD,UAAUtD,MAAMkD,EAAE6D,WAAW1D,EAAE,GAAGH,EAAE8D,WAAW,GAAG9D,EAAE5C,EAAEgD,GAAG,cAAc,MAAMtD,EAAE,IAAI,OAAAqD,SAAgB4D,SAASC,eAAe3B,KAAKlF,EAAE4G,SAASE,gBAAgB,6BAA6B9D,GAAG4D,SAASG,cAAc/D,EAAEkC,EAAE8B,IAAI9B,GAAGjF,EAAE,KAAK0C,GAAE,KAAM,OAAAK,MAAakC,GAAGvC,GAAGhD,EAAEsH,OAAO/B,MAAM+B,KAAK/B,OAAO,IAAIjF,EAAEA,GAAGR,EAAE+E,MAAM0C,KAAKvH,EAAEwH,YAAYlC,KAAKpF,EAAEc,OAAOnB,GAAG4H,wBAAwBtE,EAAEoC,EAAEkC,yBAAyBzE,EAAE,IAAI,MAAA1C,MAAY8C,EAAE,GAAG0D,EAAE,EAAEA,EAAE9G,EAAE0H,WAAWhH,OAAOoG,MAAM9G,EAAE0H,WAAWZ,GAAGa,MAAM3H,EAAE0H,WAAWZ,GAAG7C,UAAUqB,YAAYnC,EAAEyE,QAAQtC,EAAEsC,QAAQzE,EAAEyE,SAAS5H,EAAE6H,eAAeA,UAAU1E,GAAGA,EAAEyE,QAAQ,QAA34H,SAAW5H,EAAEC,EAAEC,EAAER,EAAEW,OAAOC,MAAMA,KAAKJ,EAAE,aAAaI,GAAG,QAAAA,GAAWA,KAAKL,GAAG6H,EAAE9H,EAAEM,EAAE,KAAKJ,EAAEI,GAAGZ,OAAOY,KAAKL,KAAK,mBAAmBA,EAAEK,IAAI,aAAAA,GAAgB,QAAQA,GAAG,UAAAA,GAAa,YAAYA,GAAGJ,EAAEI,KAAKL,EAAEK,IAAIwH,EAAE9H,EAAEM,EAAEL,EAAEK,GAAGJ,EAAEI,GAAGZ,GAA2rHqI,CAAE/H,EAAEuF,EAAEnC,EAAE/C,EAAE2C,GAAGG,IAAIhC,IAAI,WAAWmC,EAAErD,EAAEe,MAAMJ,SAASiG,EAAE7G,EAAE4D,MAAMC,QAAQP,GAAGA,EAAE,CAACA,GAAGrD,EAAEC,EAAER,EAAEW,GAAG,kBAAkBgD,EAAE/C,EAAEyC,EAAE/C,EAAEgI,WAAWhF,GAAG,MAAM1C,MAAMgD,EAAEhD,EAAEI,OAAO4C,KAAK,MAAMhD,EAAEgD,IAAI2E,EAAE3H,EAAEgD,kBAAkBiC,QAAG,OAAYA,EAAEtB,aAAajE,EAAEiE,OAAO,aAAAZ,IAAiBC,IAAIwE,EAAE9H,EAAE,QAAQsD,EAAEF,EAAEa,OAAM,GAAI,YAAYsB,QAAG,OAAYA,EAAE2C,UAAU5E,IAAItD,EAAEkI,SAASJ,EAAE9H,EAAE,UAAUsD,EAAEF,EAAE8E,SAAQ,WAAYlI,EAA9zCmI,CAAEzI,EAAE4B,IAAIpB,EAAER,EAAEW,EAAEC,EAAEC,EAAEE,EAAEwC,MAAMzD,EAAE4I,SAASlF,EAAEhD,SAASmI,KAAK1G,IAAI,SAAS,MAAMpB,OAAOe,IAAIyB,EAAE7C,EAAEuB,MAAMwB,EAAE1C,EAAEA,EAAEyB,QAAQe,IAAI,MAAMvD,EAAE8B,IAAI+G,EAAEnI,EAAER,IAAI,WAAWO,EAAEC,KAAKsB,KAAKhC,EAAEgC,IAAItB,EAAED,GAAGA,EAAEuC,MAAK,SAAS8F,SAASA,EAAE7G,IAAI6G,EAAE7G,IAAI,GAAGxB,EAAEuC,MAAK,SAASxC,KAAKuH,KAAKe,YAAWD,KAAK/G,IAAI+G,EAAEC,EAAE3G,SAAikC,WAAW1B,EAAEC,EAAER,OAAO,mBAAmBO,EAAEA,EAAEC,GAAGD,EAAEsI,QAAQrI,QAAQmI,KAAK/G,IAAI+G,EAAE3I,IAAI,WAAWO,EAAEC,EAAER,OAAOW,EAAEC,EAAEC,KAAKf,EAAEgJ,SAAShJ,EAAEgJ,QAAQvI,MAAMA,EAAEiB,SAASqH,SAASlI,EAAEkI,UAAUtI,EAAEqB,KAAKmH,EAAEpI,EAAE,KAAKH,IAAIR,GAAG,mBAAmBO,EAAEc,SAAS,SAASd,EAAEqB,MAAMrB,EAAEqB,IAAIrB,EAAEsB,SAAI,EAAO,SAAStB,EAAEuB,KAAK,IAAInB,EAAEqI,2BAA2BA,6BAA6BL,KAAK/G,IAAI+G,EAAEnI,KAAK+B,KAAK5B,EAAEoC,IAAI,QAAQpC,EAAEJ,EAAEkB,QAAQZ,EAAE,EAAEA,EAAEF,EAAEK,OAAOH,MAAMA,IAAI2D,EAAE7D,EAAEE,GAAGL,EAAER,GAAG,MAAMY,GAAG2H,EAAE3H,GAAG,WAAWN,EAAEC,EAAEC,UAAU2B,KAAKH,YAAY1B,EAAEE,GAAG,WAAWD,EAAEC,EAAER,OAAOW,EAAEC,EAAEyC,IAAI3B,IAAI5B,EAAE4B,GAAGnB,EAAEC,GAAGI,KAAK,mBAAmBZ,GAAG,KAAKA,GAAGA,EAAEyB,KAAKjB,EAAEiB,IAAI4B,EAAE,GAAGJ,EAAEzC,EAAED,IAAII,GAAGX,GAAGQ,GAAGiB,IAAIwH,EAAE7E,EAAE,KAAK,CAAC7D,IAAIK,GAAGT,EAAEA,OAAE,IAAAK,EAAW2C,iBAAiBxC,GAAGX,EAAE,CAACA,GAAGY,EAAE,KAAKJ,EAAE8H,WAAWlI,EAAE+E,MAAM0C,KAAKrH,EAAEsH,YAAY,KAAKzE,GAAG1C,GAAGX,EAAEA,EAAEY,EAAEA,EAAEgB,IAAIpB,EAAE8H,WAAW3H,GAAGyC,EAAEC,EAAE9C,GAAmR,WAAWD,EAAEC,OAAOC,EAAE,CAACsB,IAAIvB,EAAE,OAAOL,IAAIwB,GAAGpB,EAAE4I,SAAS,SAASrG,EAAE8F,UAAU9F,EAAE3B,SAASyH,IAAIQ,SAAS,SAAStG,OAAO+F,EAAE5I,SAASmC,KAAK8E,oBAAoB,MAAM,IAAI1G,GAAG4B,KAAKA,KAAK8E,gBAAgB,kBAAkBjH,GAAGmC,KAAK0E,sBAAsB,SAASuC,QAAQ9H,MAAMiD,QAAQ6E,EAAE7E,OAAOqE,EAAE9F,KAAKuG,IAAIlH,KAAKmE,IAAI,SAAS8C,KAAKnI,KAAKmI,OAAOT,EAAES,EAAEJ,uBAAuBA,qBAAqB,aAAaM,OAAOV,EAAEtG,QAAQ8G,GAAG,GAAGT,GAAGA,EAAEd,KAAKuB,MAAMvG,EAAE3B,kBAAkBV,EAAE2I,SAASzH,GAAGlB,EAAE0I,SAASlD,YAAYxF,EAAEV,EAAE,CAAC8B,IAAI,SAAStB,EAAEC,WAAWC,EAAER,EAAEW,EAAEJ,EAAEA,EAAEmB,UAAUnB,EAAEuB,OAAOtB,EAAEkB,aAAalB,EAAEwB,cAAc,MAAAhC,EAAQuJ,6BAA6BC,SAASxJ,EAAEuJ,yBAAyBjJ,IAAIK,EAAEH,EAAEqB,KAAK,MAAArB,EAAQiJ,sBAAsBA,kBAAkBnJ,GAAGK,EAAEH,EAAEqB,KAAKlB,SAASH,EAAEyF,IAAIzF,QAAQmI,KAAKA,QAAQrI,GAAG2B,IAAI,GAAyDmE,EAAEF,UAAUsD,SAAS,SAASlJ,EAAEC,OAAOC,IAAI,MAAA2B,KAAWqE,KAAKrE,KAAKqE,MAAMrE,KAAKoE,MAAMpE,KAAKqE,IAAIrE,KAAKqE,IAAIxD,EAAE,GAAGb,KAAKoE,OAAO,mBAAmBjG,MAAMA,EAAE0C,EAAE,GAAGxC,GAAG2B,KAAKb,QAAQhB,GAAG0C,EAAExC,EAAEF,GAAG,MAAAA,GAAS6B,KAAKF,SAASE,KAAKJ,IAAId,KAAKV,GAAG8I,EAAElH,QAAQiE,EAAEF,UAAUwD,YAAY,SAASpJ,QAAQ2B,WAAWL,KAAI,EAAGtB,GAAG6B,KAAKJ,IAAId,KAAKX,GAAG+I,EAAElH,QAAQiE,EAAEF,UAAUC,OAAO/B,EAAErE,EAAE,GAAGC,EAAE,mBAAmB2J,QAAQA,QAAQzD,UAAU0D,KAAKC,KAAKF,QAAQG,WAAWC,WAAWtH,EAAEC,IAAI,EAAExC,EAAE,ECEroT,IAAI8J,EAAU,GAEd,WAAgBC,EAAK3I,WAEXtB,KAAKsB,IACTtB,GAAKsB,EAAMtB,UAETiK,EAGR,WAAcC,EAAKC,EAAOC,OAIxBC,EAHGC,EAAM,wBACThH,EAAI4G,EAAIK,MAAMD,GACdE,EAAU,MAEPlH,GAAKA,EAAE,WACNI,EAAIJ,EAAE,GAAGmH,MAAM,KACVzK,EAAE,EAAGA,EAAE0D,EAAE1C,OAAQhB,IAAK,KAC1Ba,EAAI6C,EAAE1D,GAAGyK,MAAM,OACXC,mBAAmB7J,EAAE,KAAO6J,mBAAmB7J,EAAEsE,MAAM,GAAGwF,KAAK,QAGnEC,EAAWV,EAAIjF,QAAQqF,EAAK,OAC1BM,EAAWT,GAAS,YACxBU,EAAMC,KAAKD,IAAIX,EAAIlJ,OAAQmJ,EAAMnJ,QAC5B+J,EAAI,EAAGA,EAAIF,EAAKE,OACpBZ,EAAMY,IAA+B,MAAvBZ,EAAMY,GAAKC,OAAO,GAAU,KACzCC,EAAQd,EAAMY,GAAK9F,QAAQ,gBAAiB,IAC/CiG,KAAeH,GAAKR,MAAM,YAAcP,GAAS,IAAM,GACvDmB,GAAQD,EAAM5I,QAAQ,KACtB8I,GAAQF,EAAM5I,QAAQ,KACtB+I,EAAMnB,EAAIa,IAAQ,OACdM,IAAQD,MAAe9I,QAAQ,KAAK,GAAK6I,GAAO,IAC9C,aAGCF,GAASP,mBAAmBW,GAChCF,GAAQC,EAAM,GACTH,GAASf,EAAI/E,MAAM4F,GAAKO,IAAIZ,oBAAoBC,KAAK,oBAItDR,EAAMY,KAAOb,EAAIa,GAAM,IACzB,gBAIW,IAAfX,EAAKmB,UAAwB,IAANlB,IACpBG,EAGR,WAAsBhH,EAAGK,UAEtBL,EAAEgI,KAAO3H,EAAE2H,KAAQ,EAClBhI,EAAEgI,KAAO3H,EAAE2H,QACVhI,EAAEiI,MAAQ5H,EAAE4H,MAKjB,WAAgCvJ,EAAOwJ,YAChCD,MAAQC,IACRF,KAgBP,SAAmBtJ,UACXA,EAAMZ,MAAMiK,QAAU,GALhBI,EAKyBzJ,EAAMZ,MAAMqK,KAJ3Cf,EAAWe,GAAML,IAAIM,GAAajB,KAAK,KAD/C,IAAcgB,EAZAE,CAAU3J,GAChBA,EAAMZ,MAGd,WAAoB4I,UACZA,EAAIjF,QAAQ,eAAgB,IAAIwF,MAAM,KAG9C,WAAqBqB,SACM,KAAnBA,EAAQd,OAAO,GAAW,EAAI,MAAM1I,QAAQwJ,EAAQd,OAAOc,EAAQ9K,OAAO,KAAQ,EAAI,EAW9F,IAAI+K,EAAgB,KAEhBC,EAAU,GAEVC,EAAc,GAEdC,GAAQ,GAcZ,kBACKhC,QAUI,OATJ6B,GAAiBA,EAAcI,SAC5BJ,EAAcI,SAEZJ,GAAiBA,EAAcK,mBACjCL,EAAcK,qBAGI,oBAAXD,SAAyBA,SAAWD,IAEhCG,UAAY,OAAWC,QAAU,IAKpD,YAAepC,EAAKjF,eACF,IAAZA,OAA6B,GAEjB,iBAANiF,GAAkBA,EAAIA,QACtBA,EAAIjF,UACRiF,EAAIA,KAaZ,SAAkBA,WACRlK,EAAEgM,EAAQhL,OAAQhB,QACtBgM,EAAQhM,GAAGuM,SAASrC,UAAe,SAEjC,EAbHqC,CAASrC,IArCd,SAAgBA,EAAKsC,QACN,IAATA,MAAuB,QAExBT,GAAiBA,EAAcS,KACpBA,GAAMtC,GAEK,oBAAVuC,SAAyBA,QAAQD,EAAK,kBAC7CA,EAAK,SAAS,KAAM,KAAMtC,IA+B3BA,EAAKjF,EAAU,UAAY,QAG5ByH,GAAQxC,GAchB,YAAiBA,WACZyC,GAAW,EACN3M,EAAE,EAAGA,EAAEgM,EAAQhL,OAAQhB,KACD,IAA1BgM,EAAQhM,GAAG0M,QAAQxC,QACX,WAGJa,EAAIkB,EAAYjL,OAAQ+J,OACpBA,GAAKb,UAEXyC,EAIR,YAAuBC,MAEjBA,GAASA,EAAKC,kBAEfC,EAAOF,EAAKC,aAAa,QAC5BE,EAASH,EAAKC,aAAa,aAGvBC,GAASA,EAAKvC,MAAM,WAAYwC,GAAWA,EAAOxC,MAAM,qBAGtDyC,GAAMF,IAId,YAAyBzJ,QACpBA,EAAE4J,SAAW5J,EAAE6J,SAAW7J,EAAE8J,QAAU9J,EAAE+J,UAAuB,IAAX/J,EAAEgK,kBAC5ChK,EAAEiK,eAAiBjK,EAAE0J,QAAU5K,MACtCoL,GAAQlK,GAIhB,YAAiBA,UACZA,IACCA,EAAEmK,4BAA8BA,2BAChCnK,EAAEoK,mBAAqBA,oBACzBC,mBAEI,EAIR,YAA6BrK,QAExBA,EAAE4J,SAAW5J,EAAE6J,SAAW7J,EAAE8J,QAAU9J,EAAE+J,UAAuB,IAAX/J,EAAEgK,aAEtD1M,EAAI0C,EAAE0J,aAE8B,MAAnCY,OAAOhN,EAAEiN,UAAUC,eAAuBlN,EAAEkM,aAAa,QAAS,IACjElM,EAAEmN,aAAa,oBAEfC,GAAcpN,UACV4M,GAAQlK,UAGR1C,EAAEA,EAAEF,aAIf,IAAIuN,IAA4B,EAiB7B,IAACC,GAAU,SAAUC,cACP5M,KACFuG,KAAK1F,KAAMb,GACpBA,EAAMmL,YACOnL,EAAMmL,cAGlBlG,MAAQ,CACZ2D,IAAK5I,EAAM4I,KAAOiE,MAtBhBH,KAE0B,mBAAnB3I,mBACL0G,oBACa,YAAY,cACpBoC,0BAGO,QAASC,SAEC,UAkBvBF,MAAsBG,UAAYH,KAChChI,UAAYoI,OAAOC,OAAQL,GAAgBA,EAAahI,aACxDA,UAAUlE,YAAcwM,IAExBtI,UAAUW,sBAAwB,SAAgCvF,UACrD,IAAfA,EAAMmN,SACHnN,EAAM4I,MAAM/H,KAAKb,MAAM4I,KAAO5I,EAAMoN,WAAWvM,KAAKb,MAAMoN,aAI3DxI,UAAUqG,SAAW,SAAmBrC,OAC1ChJ,EAAWyN,EAAaxM,KAAKb,MAAMJ,iBAChCiB,KAAKyM,oBAAoB1N,EAAUgJ,GAAK,GAAOlJ,OAAS,KAIzDkF,UAAUwG,QAAU,SAAkBxC,QACvCV,SAAS,CAAEU,IAAAA,QAEZyC,EAAWxK,KAAKoK,SAASrC,UAGxB/H,KAAK0M,eAAiBnF,cAEpBiD,KAGDzG,UAAUQ,mBAAqB,aAC7BzF,KAAKkB,WACR0M,UAAW,KAGV3I,UAAUS,kBAAoB,eAChCmI,EAAS3M,KAET4J,SACEgD,SAAWhD,EAAciD,QAAO,SAAUC,KACvCvC,QAAS,MAAeL,UAAY,OAAgBC,QAAU,cAGlEuC,UAAW,KAGV3I,UAAU8C,qBAAuB,WACZ,mBAAhB7G,KAAK4M,eAA8BA,aACtCzF,OAAO0C,EAAQ1J,QAAQH,MAAO,MAGhC+D,UAAUa,oBAAsB,gBACjC8H,UAAW,KAGV3I,UAAUc,mBAAqB,gBAChC6H,UAAW,KAGV3I,UAAU0I,oBAAsB,SAA8B1N,EAAUgJ,EAAKgF,UAC5EhO,EACLiO,OAAOC,GACPxM,KAAKyM,GACL/D,KAAK,SAAUpJ,OACXsI,EAAU8E,EAAKpF,EAAKhI,EAAMZ,MAAMqK,KAAMzJ,EAAMZ,UAC5CkJ,EAAS,KACG,IAAX0E,EAAkB,KACjBK,EAAW,CAAErF,IAAAA,EAAUM,QAAAA,YACpB+E,EAAU/E,UACV+E,EAAS/N,WACT+N,EAAShO,IDpTkpQ,SAAWjB,EAAEC,EAAEC,OAAOR,EAAEW,EAAEC,EAAEC,EAAEC,UAAUC,EAAEiC,EAAE,GAAG1C,EAAEgB,WAAWV,KAAKL,EAAE,OAAOK,EAAEZ,EAAEO,EAAEK,GAAG,OAAOA,EAAED,EAAEJ,EAAEK,GAAGG,EAAEH,GAAGL,EAAEK,MAAME,UAAUE,OAAO,MAAMR,EAAE,CAACA,GAAGI,EAAE,EAAEA,EAAEE,UAAUE,OAAOJ,MAAMK,KAAKJ,EAAED,WAAW,MAAAJ,MAAYU,SAASV,GAAGY,EAAEd,EAAEe,KAAKN,EAAEf,GAAGM,EAAEiB,IAAIZ,GAAGL,EAAEkB,IAAI,MCqT54QgO,CAAatN,EAAOqN,UAErBrN,MAENiN,OAAOM,YAGLvJ,UAAUC,OAAS,SAAiB3E,EAAKkO,OAC3CxO,EAAWM,EAAIN,SACfwN,EAAWlN,EAAIkN,SACfxE,EAAMwF,EAAMxF,IAEZyF,EAASxN,KAAKyM,oBAAoBD,EAAazN,GAAWgJ,GAAK,GAE/D0F,EAAUD,EAAO,IAAM,KAEvBE,EAAW1N,KAAK2N,mBAChB5F,IAAM2F,SACJC,YAAc5F,EACG,mBAAXwE,KACD,CACRqB,OAAQ5N,KACR+H,IAAAA,EACA2F,SAAAA,EACAF,OAAAA,EACA9G,QAAS+G,KAKLA,GAGDpB,EAnHM,CAoHZwB,GAEEC,GAAO,SAAU3O,UACpBoG,EAAc,IAAKwI,EAAO,CAAEC,QAASC,IAAmB9O,KAKzD2M,GAAOhC,YAAcA,EACrBgC,GAAOE,cAAgBA,GACvBF,GAAOjB,MAAQA,GACfiB,GAAOA,OAASA,GAChBA,GAAOoC,MANK,SAAU/O,UAAgBoG,EAAcpG,EAAMgP,UAAWhP,IAOrE2M,GAAOgC,KAAOA,GACdhC,GAAOqB,KAAOA,ECrWmB,IAAIrP,GAAEF,GAAEI,GAAED,GAAE,EAAEF,GAAE,GAAGgD,GAAElD,EAAE6B,IAAIvB,GAAEN,EAAE4C,IAAIrC,GAAEP,EAAE4I,OAAOO,GAAEnJ,EAAEgC,IAAIV,GAAEtB,EAAEgJ,QAAQ,YAAWnI,EAAEE,KAAKkB,KAAKjC,EAAEiC,IAAIhC,GAAEY,EAAET,IAAGW,GAAGX,GAAE,MAAMF,EAAED,GAAEwQ,SAAQA,IAAI,CAAC7O,GAAG,GAAGK,IAAI,YAAYpB,GAAGX,EAAE0B,GAAGV,QAAQhB,EAAE0B,GAAGT,KAAK,IAAIjB,EAAE0B,GAAGf,GAAG,YAAWL,UAAUJ,GAAE,EAAS,SAAWI,EAAEO,EAAED,OAAOZ,EAAEmH,GAAElH,KAAI,UAAUD,EAAEC,EAAEK,EAAEN,EAAE8B,QAAQJ,GAAG,CAACd,EAAEA,EAAEC,GAAG2P,QAAE,EAAO3P,GAAG,SAASgC,OAAOlC,EAAEX,EAAEC,EAAED,EAAE0B,GAAG,GAAGmB,KAAKnB,GAAG,KAAKf,MAAMe,GAAG,CAACf,EAAEX,EAAE0B,GAAG,IAAI1B,EAAE8B,IAAI0H,SAAS,OAAOxJ,EAAE8B,IAAI/B,IAAGC,EAAE0B,GAAvL0E,CAAEoK,GAAElQ,GAAsL,YAAWO,EAAED,OAAOZ,EAAEmH,GAAElH,KAAI,IAAIH,EAAE0G,KAAK6C,GAAErJ,EAAEuQ,IAAI3P,OAAOc,GAAGb,EAAEb,EAAEuQ,IAAI3P,EAAEb,GAAEwQ,IAAIxO,IAAId,KAAKjB,IAAsF,YAAWM,UAAUJ,GAAE,EAAEmC,IAAE,iBAAiB,CAACwG,QAAQvI,KAAI,IAA8G,YAAWA,EAAEE,OAAOK,EAAEsG,GAAElH,KAAI,UAAUoJ,GAAExI,EAAE0P,IAAI/P,OAAOkB,GAAGpB,IAAIO,EAAE0P,IAAI/P,EAAEK,EAAEkB,IAAIzB,GAAGO,EAAEa,GAAG,YAAWpB,EAAEK,UAAUT,GAAE,EAAEmC,IAAE,kBAAkB/B,IAAGK,GAAG,YAAWL,OAAOO,EAAEd,GAAEqC,QAAQ9B,EAAEwB,KAAKlB,EAAEuG,GAAElH,KAAI,UAAUW,EAAEkB,IAAIxB,EAAEO,GAAG,MAAMD,EAAEc,OAAOA,IAAG,EAAGb,EAAEyF,IAAIvG,KAAIc,EAAES,MAAMiD,OAAOjE,EAAEoB,GAA8D,YAAWpB,OAAOO,EAAEsG,GAAElH,KAAI,IAAIW,EAAEwE,YAAWvE,EAAEa,GAAGpB,EAAEP,GAAE0J,uBAAsBA,kBAAkB,SAAS5G,KAAKnB,IAAIb,EAAEa,GAAGmB,GAAGjC,EAAE,GAAGiC,KAAK,CAACjC,EAAE,GAAG,aAAa,QAAG,KAAU,iBAAekG,SAAQ,SAASnG,MAAMA,EAAEoC,UAAUwN,IAAIxO,IAAI+E,QAAQzC,IAAG1D,EAAE4P,IAAIxO,IAAI+E,QAAQ2B,IAAG9H,EAAE4P,IAAIxO,IAAI,SAASvB,KAAK+P,IAAIxO,IAAI,GAAGjC,EAAE8B,IAAIpB,EAAEG,EAAEsB,SAAQjC,GAAE,GAAGF,EAAE6B,IAAI,SAASrB,MAAK,KAAK0C,IAAGA,GAAE1C,IAAIR,EAAE4C,IAAI,SAASpC,OAAMF,GAAEE,GAAGL,GAAE,MAAMY,MAAKP,EAAEwB,KAAKyO,UAAUxO,IAAI+E,QAAQzC,IAAGxD,EAAEkB,IAAI+E,QAAQ2B,IAAG5H,EAAEkB,IAAI,KAAKjC,EAAE4I,OAAO,SAAS/H,OAAMN,GAAEM,OAAOC,EAAED,EAAEmB,OAAOlB,EAAE2P,KAAK3P,EAAE2P,IAAIxO,IAAIf,SAAS,IAAIhB,GAAEiB,KAAKL,IAAIT,KAAIL,EAAE2Q,4BAA2B3Q,EAAE2Q,wBAAwB,SAASnQ,OAAOoQ,EAAElQ,EAAE,wBAAwBK,GAAG4B,IAAGkO,qBAAqBD,GAAG3G,WAAWzJ,IAAIO,EAAEkJ,WAAWvJ,EAAE,YAAWiQ,sBAAsBjQ,MAAM8D,KAAIvE,QAAE,GAAQD,EAAEgC,IAAI,SAASnB,EAAEH,KAAKsC,MAAK,SAAS4N,SAAS3O,IAAI+E,QAAQzC,IAAGqM,EAAE3O,IAAI2O,EAAE3O,IAAIoN,QAAO,SAAS7O,UAAUA,EAAEoB,IAAI+G,GAAEnI,YAAWO,KAAKiC,MAAK,SAASxC,KAAKyB,QAAQA,IAAI,OAAMvB,EAAE,GAAGV,EAAE8B,IAAIf,EAAE6P,EAAEzO,SAAQgH,IAAGA,GAAEtI,EAAEH,IAAIV,EAAEgJ,QAAQ,SAASnI,OAAMS,GAAET,OAAOH,EAAEG,EAAEmB,OAAOtB,GAAGA,EAAE+P,UAAUA,IAAI7O,GAAGoF,QAAQzC,UAASqM,KAAK9O,IAAI8O,EAAElQ,EAAEyB,OAAO,IAAIQ,GAAE,mBAAmBgO,sBAAsB,YAAWnQ,OAAOK,EAAEZ,GAAE,mBAAmBO,EAAEwB,KAAKxB,EAAEwB,MAAM/B,GAAEY,EAAE,YAAWL,OAAOK,EAAEZ,KAAI+B,IAAIxB,EAAEoB,KAAK3B,GAAEY,EAAE,YAAWL,EAAEK,UAAUL,GAAGA,EAAEU,SAASL,EAAEK,QAAQL,EAAEmC,MAAK,SAAS4N,EAAElQ,UAAUkQ,IAAIpQ,EAAEE,MAAK,YAAWF,EAAEK,SAAS,mBAAmBA,EAAEA,EAAEL,GAAGK,0KCC/1E2N,OAAOsC,eAAeC,GAAS,aAAc,CAAEtM,OAAO,8CACI,kBAC1D,SAAsBuM,EAAOC,UAClBA,EAAaC,QAAO,CAACrF,EAAMtI,IACpB,QAANA,EACOsI,EAAKsF,MAGLtF,EAAK1K,KAAKoC,EAAEpC,OAExB6P,IAMP,SAKII,YAAYC,EAAUC,QACbD,SAAWA,MAAAA,EAA2CA,EAAW,QACjEC,WAAaA,MAAAA,EAA+CA,EAAa,GAKlFF,cACW/O,KAAKgP,SAAShP,KAAKgP,SAASnQ,OAAS,GAKhDkQ,MAAMJ,EAAOO,UACF,IAAIC,GAAKnP,KAAKgP,SAAShM,MAAM2L,EAAOO,GAAMlP,KAAKiP,YAK1DF,eACW,IAAII,GAAKnP,KAAKgP,SAAShM,MAAM,GAAIhD,KAAKiP,YAKjDF,aACW,IAAII,GAAKnP,KAAKgP,SAAShM,MAAM,MAAQhD,KAAKiP,YAMrDF,KAAKK,UACMpP,KAAKqP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAID,GAAK,IAAInP,KAAKgP,SAAUI,GAAU,IAAIpP,KAAKiP,aAM1DF,YAAYK,MACe,iBAAZA,SACApP,KAAKuP,aACVC,EAAaJ,EAAQK,WAAW,cAAgBL,EAAQpM,MAAM,IAAMoM,SACnE,IAAID,GAAK,IAAInP,KAAKgP,UAAW,IAAIhP,KAAKiP,WAAYO,IAE7DT,cACW,IAAII,GAAK,IAAInP,KAAKgP,UAAW,IAAIhP,KAAKiP,aAEjDF,kBACW/O,KAAKgP,SAMhBD,UAAUW,UACC,IAAIC,GAAUD,EAAO1P,MAEhC+O,oBACW/O,KAAKiP,WAMhBF,OAAOa,UACIA,EAAMZ,SAASnQ,SAAWmB,KAAKgP,SAASnQ,QACxC+Q,EAAMZ,SAASa,OAAM,CAACpM,EAAG5F,IAAM4F,IAAMzD,KAAKgP,SAASnR,KAM9DkR,WAAWa,WACH5P,KAAKgP,SAASnQ,OAAS+Q,EAAMZ,SAASnQ,SAEnC+Q,EAAMZ,SAASa,OAAM,CAACpM,EAAG5F,IAAM4F,IAAMzD,KAAKgP,SAASnR,KAM9DkR,SAASa,SACCE,EAAS9P,KAAKgP,SAASnQ,OAAS+Q,EAAMZ,SAASnQ,eACjDiR,EAAS,IAENF,EAAMZ,SAASa,OAAM,CAACpM,EAAG5F,IAAM4F,IAAMzD,KAAKgP,SAASc,EAASjS,KAEvEkR,kBACW/O,KAAKgP,SACP7F,QAAuB,iBAANjI,EAAkB,IAAIA,IAAM,IAAIA,OACjDsH,KAAK,IACL1F,QAAQ,MAAO,IAExBiM,QAAQgB,EAAIC,UACDhQ,KAAKgP,SAASrK,QAAQoL,EAAIC,YAG1Bb,GACf,iBAAwBA,GACpBJ,YAAYW,EAAOlG,SACTA,MAAAA,OAAmC,EAASA,EAAKwF,SAAUxF,MAAAA,OAAmC,EAASA,EAAKyF,iBAC7GS,MAAQA,EAEjBX,kBACW/O,KAAK0P,MAMhBX,UACQkB,SACyB,UAAhBjQ,KAAK0P,aAA0B,IAAPO,OAAgB,EAASA,EAAGC,IAAIlQ,MAKzE+O,IAAI3M,OACI6N,EACkB,UAAhBjQ,KAAK0P,aAA0B,IAAPO,GAAyBA,EAAGE,IAAInQ,KAAMoC,GAKxE2M,MAAMJ,EAAOO,UACF,IAAIS,GAAU3P,KAAK0P,MAAOU,MAAMpN,MAAM2L,EAAOO,IAKxDH,eACW,IAAIY,GAAU3P,KAAK0P,MAAOU,MAAMC,SAK3CtB,aACW,IAAIY,GAAU3P,KAAK0P,MAAOU,MAAMtB,OAM3CC,KAAKK,UACMpP,KAAKqP,UAAUD,GAASE,YAAYF,GAM/CL,UAAUK,UACC,IAAIO,GAAU3P,KAAK0P,MAAOU,MAAMf,UAAUD,IAMrDL,YAAYK,UACD,IAAIO,GAAU3P,KAAK0P,MAAOU,MAAMd,YAAYF,IAEvDL,cACW,IAAIY,GAAU3P,KAAK0P,MAAOU,MAAMb,sBAG3BI,aCjMpBxD,OAAOsC,eAAe6B,GAAS,aAAc,CAAElO,OAAO,mBACrC,EAIjB,SACI2M,mBACSwB,OAAS,GAElBxB,IAAIvF,EAAMgH,KAAUC,eACXF,OAAOzR,KAAK,CAAE0K,KAAAA,EAAMgH,MAAAA,EAAOC,OAAAA,KACzB,EAEX1B,IAAIvF,EAAMkH,GAAQ,UACPA,EAAQ1Q,KAAKuQ,OAAOvD,WAAY9L,EAAEsI,KAAKmH,OAAOnH,KAC/CxJ,KAAKuQ,OAAOvD,WAAY9L,EAAEsI,KAAKiG,WAAWjG,KAEpDuF,gBACW/O,KAAKuQ,OAEhBxB,aACSwB,OAAS,GAElBxB,eACW/O,KAAKuQ,OAAO1R,SAErB+R,OAAOC,sBACM3P,KAAKlB,KAAKuQ,aACXrP,aAID4P,aC9BjB,YAAsBC,UACXA,EAAIjO,QAAQ,UAAW,QAHlCqJ,OAAOsC,eAAeuC,GAAS,aAAc,CAAE5O,OAAO,iDACO,kBAItC6O,kBACvB,SAAqBF,SACV,IAAIE,GAAaF,OAG5B,MAAMG,GAAWC,QAAeA,EAAIC,SAAS,KAAKC,oBAClD,SAAexS,EAAS,QAChByS,EAAM,IAAIC,WAAW1S,EAAS,iBAC3B2S,OAAOC,gBAAgBH,GACvBvP,MAAM2P,KAAKJ,EAAKJ,IAAS1I,KAAK,KCdzC2D,OAAOsC,eAAekD,GAAS,aAAc,CAAEvP,OAAO,sBAClC,EACpB,MAAMsM,GAASkD,GACTtB,GAAWuB,GACXC,GAAUC,GAIhB,SAIIhD,YAAYiD,EAAQC,OACZhC,EAAIiC,EAAIC,EAAIC,OACXC,WAA6F,UAA1EJ,MAAAA,OAAyC,EAASA,EAAQI,kBAA+B,IAAPpC,EAAgBA,EAAK,QAC1HqC,QAAuF,UAAvEL,MAAAA,OAAyC,EAASA,EAAQK,eAA4B,IAAPJ,GAAgBA,OAC/GK,UAA2F,UAAzEN,MAAAA,OAAyC,EAASA,EAAQM,iBAA8B,IAAPJ,GAAgBA,OACnHK,OAASR,QACRvM,EAAwF,UAA3EwM,MAAAA,OAAyC,EAASA,EAAQQ,mBAAgC,IAAPL,EAAgBA,EAAKJ,EAAO5I,eAC7H3D,KAAOzF,KAAKuS,UAAYG,GAAUH,UAAU9M,GAAQA,OACpDkN,UAAY,QACZpC,OAAS,IAAID,GAASQ,YACtBxG,QAAU,CAACsI,KAAKC,UAAU7S,KAAKyF,YAC/BqN,aAAe,EAMxB/D,YAAYgE,QACHJ,UAAU7T,KAAKiU,GAMxBhE,eAAegE,SACLxJ,EAAQvJ,KAAK2S,UAAUxS,QAAQ4S,GACjCxJ,WACKoJ,UAAUxL,OAAOoC,EAAO,GAOrCwF,mBACUiE,EAAaJ,KAAKC,UAAU7S,KAAKyF,MACnCzF,KAAKsK,QAAQtK,KAAK8S,gBAAkBE,SAC/BF,cAAgB,OAChBxI,QAAQnD,OAAOnH,KAAK8S,aAAc9S,KAAKqS,WAAYW,GACpDhT,KAAKsK,QAAQzL,OAASmB,KAAKqS,kBACtB/H,QAAQnD,OAAO,EAAG,QAClB2L,cAAgB,SAGxBG,mBAKTlE,wBACS4D,UAAUhO,aACPvG,EAAE8U,eACAA,YAAYlT,MACd5B,EAAEmS,UACAA,OAAOvQ,KAAKuQ,WAO1BxB,MAAM3M,EAAO+Q,QACJ1N,KAAOrD,OACPgR,SAASD,QACTE,aAOTtE,IAAIvF,OACIiB,EAAOzK,KAAKyF,cACXd,qBACY,IAAT8F,SACOA,IACPzK,KAAKuS,WAA0B,iBAANrR,EAClBuJ,EAAKvJ,GAAGuJ,KAGRA,EAAKvJ,MAGbuJ,EAOXsE,IAAIvF,EAAMpH,EAAOkR,MACkB,IAA3B9J,EAAK+J,WAAW1U,wBACX2U,MAAMpR,GAAO,OAGlBqI,EAAOzK,KAAKyF,OACXqJ,MAAMnK,kBACS,IAAZ8F,EAAKvJ,IAAuC,iBAAZuJ,EAAKvJ,IAAsC,iBAAZuJ,EAAKvJ,KAChElB,KAAKuS,WAA0B,iBAANrR,IACpBA,GAAK,CAAEuJ,KAAM,GAAIgJ,GAAI3B,GAAQ4B,WAG7BxS,GAAK,MAGdlB,KAAKuS,WAA0B,iBAANrR,EAClBuJ,EAAKvJ,GAAGuJ,KAGRA,EAAKvJ,MAGP,OAATuJ,SAEU,IAAVrI,GAAyC,iBAAVA,GAAsBuR,MAAMvR,GAChC,iBAAhBoH,EAAKoK,SACPzM,OAAOqC,EAAKoK,OAAQ,UAGlBnJ,EAAKjB,EAAKoK,QAGhB5T,KAAKuS,WAAoC,iBAAhB/I,EAAKoK,SAC9BpK,EAAKoK,QAAU,CAAEnJ,KAAMrI,EAAOqR,GAAI3B,GAAQ4B,WAG1ClK,EAAKoK,QAAUxR,EAEpBkR,IAEAtT,KAAKsS,iBACGuB,IAAI,MAAOrK,EAAK4H,WAAYwB,KAAKC,UAAUzQ,SAElDgR,UAAS,QACTC,eAKTtE,OACQ/O,KAAK8S,aAAe,SACfA,cAAgB,OAChBrN,KAAOmN,KAAKkB,MAAM9T,KAAKsK,QAAQtK,KAAK8S,oBACpCM,UAAS,QACTH,oBAMblE,OACQ/O,KAAK8S,aAAe9S,KAAKsK,QAAQzL,OAAS,SACrCiU,cAAgB,OAChBrN,KAAOmN,KAAKkB,MAAM9T,KAAKsK,QAAQtK,KAAK8S,oBACpCM,UAAS,QACTH,oBAMblE,SAASoE,OACDlD,QACEzG,GAAO,IAAIkF,GAAOS,MAAO4E,UAAU/T,WACpCuQ,OAAOyD,aACPvO,KAA2G,UAA9FzF,KAAKwS,OAAOY,SAAS5J,EAAMxJ,KAAKyF,KAAMzF,KAAKuQ,OAAQ,CAAE4C,MAAAA,EAAOZ,UAAWvS,KAAKuS,mBAAiC,IAAPtC,EAAgBA,EAAK,GAEjJlB,MAAMvF,EAAMgH,KAAUC,SACZwD,EAAa,IAAI3D,GAASQ,SACrBoD,IAAI1K,EAAMgH,EAAOC,QACvBkC,UAAUhO,aACPvG,EAAEmS,UACAA,OAAO0D,uBAGJ7R,MACTL,MAAMC,QAAQI,GAAQ,OAChB+R,EAAM/R,EAAM+G,SAAU,CACxBsB,KAAMzK,KAAKuS,UAAU9O,GACrBgQ,GAAI3B,GAAQ4B,sBAELrS,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,KAEe,iBAAV/R,GAAgC,OAAVA,EAAgB,OAC5C+R,EAAM,UACLE,QAAQjS,GAAO+G,KAAI,EAAE1H,EAAGgC,QACvBhC,GAAKzB,KAAKuS,UAAU9O,gBAEjBpC,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,SAGA/R,qBAGIA,MACXL,MAAMC,QAAQI,GAAQ,OAChB+R,EAAM/R,EAAM+G,QAASnJ,KAAKsU,YAAY7Q,EAAEgH,kBACnCpJ,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,KAEe,iBAAV/R,GAAgC,OAAVA,EAAgB,OAC5C+R,EAAM,UACLE,QAAQjS,GAAO+G,KAAI,EAAE1H,EAAGgC,QACvBhC,GAAKzB,KAAKsU,YAAY7Q,gBAEnBpC,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,SAGA/R,gBAICsQ,6BC3ObjE,kBAAwB,aAAc,CAAErM,OAAO,YACvCmS,OAAcA,OAAcA,OAAcA,aAAe,UACxD,CACZrV,KAAM,IAAM,OACZsV,SAAU,OACVpL,QAAS,OACTqL,QAAS,KAAM,EACfC,KAAM,KAAM,EACZC,SAAU,KAAM,EAChB5F,kBAAoB/O,MACpB4U,SAAWrT,GAAMA,EACjBsT,QAAS,IAAM,GACfzB,SAAU,CAAC5R,EAAGiC,IAAMA,EACpBqR,iBAAkB,OAClB/F,KAAKgG,EAAMvL,KAASwL,UAAeD,EAAK3U,KAAK,CAAEqK,KAAMzK,MAAQwJ,KAASwL,IACtEC,UAAW,KAAM,EACjBC,OAAQ,IAAM,WAEJ,CAACzK,EAAM0K,IAAUC,OACxB3K,GAA0B,mBAAT0K,EAAsBA,EAAK1K,GAAQ0K,UAE7C,CAAC/V,EAAKqL,IAAS8J,GAAQc,IAAI5K,EAAM,CAC3CgK,QAAUlT,QAA4B,IAAtBA,EAAEzC,KAAKM,GAAK8Q,wBAEnBzF,UACF6K,OACA7K,GADA,CAEHkK,SAAU,KAAM,sBAIVlK,UACH6K,OACA7K,GADA,CAEHiK,KAAM,KAAM,eClCpBvI,OAAOsC,eAAe8G,GAAS,aAAc,CAAEnT,OAAO,wBAChC,EACtB,MAAMuP,GAAcC,GACd4D,GAAS3D,kBAIO,IACXyD,OACAE,GAAOC,MADP,CAEHvW,KAAM,IAAM,UACZkK,QAAS,KAAM,EACfyL,QAAS,IAAM,CAAC,QAAS,QACzB9F,SAASvF,EAAMpH,EAAOmO,EAAQ0B,UACtBA,EAAQkB,OAA0B,kBAAV/Q,MAChB6P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,WAElE,kBAAVhH,QAAiC,IAAVA,KACvB8R,IAAI1K,EAAM,0BAEdpH,GAEX2M,KAAKgG,EAAMvL,KAASwL,OACZ/E,SAC4B,UAAlB8E,EAAKW,eAA4B,IAAPzF,EAAgBA,EAAK8E,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,MAAQwJ,KAASwL,sBCxBxH7I,OAAOsC,eAAekH,GAAS,aAAc,CAAEvT,OAAO,qBACnC,EACnB,MAAMuP,GAAcC,GACd4D,GAAS3D,eACI,CAAC9S,EAAU6W,SACtB3F,EAAIiC,QACF2D,EAAkF,UAAtED,MAAAA,OAAuC,EAASA,EAAOE,iBAA8B,IAAP7F,EAAgBA,EAAK,EAC/GvH,EAAkF,UAAtEkN,MAAAA,OAAuC,EAASA,EAAOG,iBAA8B,IAAP7D,EAAgBA,EAAK8D,EAAAA,EAC/GC,gBAAkD,EAASL,EAAOE,0BAAsD,EAASF,EAAOG,kBACtIT,OACDE,GAAOC,MADN,CAEJvW,KAAM,IAAM,OACZkK,QAAS,kBAA8C,EAASwM,EAAOE,WAAa,IAAI/T,MAAM8T,IAAM1M,QAASpK,EAASqK,YAAa,GACnI2F,SAASvF,EAAMD,SACL2M,EAAY3M,EAAQ,SACLC,EAAK+J,WACT1U,QAAUqX,EAChBlW,KAEJjB,EAASoX,SAAS3M,EAAM0M,IAEnCtB,UAASpL,EAAMD,IACJC,EAAK1K,KAAKsX,SAAS7M,EAAM6H,aAAa9B,YAAY,SAE7DP,SAASvF,EAAMpH,EAAOmO,EAAQ0B,MACtBA,EAAQkB,QAAUpR,MAAMC,QAAQI,OACxB6P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,YAElFrH,MAAMC,QAAQI,YACR8R,IAAI1K,EAAM,uBACVpH,EAEF6T,MAAkBpX,OAASgX,GAAOzT,EAAMvD,OAAS6J,GAClDmN,IAAQnN,IACDwL,IAAI1K,EAAM,iCAAkCpH,EAAMvD,OAAQgX,KAG1D3B,IAAI1K,EAAM,mCAAoCpH,EAAMvD,OAAQgX,EAAKnN,GAGvEtG,EAAMvD,OAASgX,IACb3B,IAAI1K,EAAM,mCAAoCpH,EAAMvD,OAAQgX,GAE9DzT,EAAMvD,OAAS6J,KACbwL,IAAI1K,EAAM,kCAAmCpH,EAAMvD,OAAQ6J,SAEhEyL,EAAM/R,EAAM+G,KAAI,CAACrB,EAAKyB,WAClB8M,EAAStX,EAASqU,SAAS5J,EAAK1K,KAAKyK,GAAQ0I,EAAQM,UAAYzK,EAAI2C,KAAO3C,EAAKyI,EAAQ0B,UACxFA,EAAQM,UAAY,CAAE9H,KAAM4L,EAAQ5C,GAAI3L,EAAI2L,IAAO4C,eAEnDhV,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,GAEXpF,KAAKgG,EAAMvL,KAASwL,OACZsB,SACyB,UAAfvB,EAAKwB,YAAyB,IAAPD,EAAgBA,EAAKvB,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAMjB,SAAAA,EAAU6W,OAAQA,MAAAA,EAAuCA,EAAS,IAAMpM,KAASwL,iBCzD3L7I,OAAOsC,eAAe+H,GAAS,aAAc,CAAEpU,OAAO,uBACjC,EACrB,MAAMoT,GAAS5D,iBAIO6E,GACXnB,OACAE,GAAOC,MADP,CAEH1G,KAAKvF,UACMxJ,KAAK0W,WAAWlN,GAAM,GACxBiB,KAAKvL,KAAKsK,IAEnBuF,SAASvF,UACExJ,KAAK0W,WAAWlN,GAAM,GACxBiB,KAAK+J,SAAShL,IAEvBJ,QAAS,IAAMqN,EAAM,GAAGhM,KAAKrB,UAC7B2F,SAASvF,EAAMD,OACP0G,QACEiG,EAAY3M,EAAQ,SACkC,UAA/CvJ,KAAK0W,WAAWlN,EAAKxG,MAAM,EAAGkT,WAAgC,IAAPjG,OAAgB,EAASA,EAAGxF,KAAK0L,SAAS3M,EAAMD,IAExHwF,SAASvF,EAAMpK,OACP6Q,EAAIiC,SACwG,UAAlE,UAA3BlS,KAAK0W,WAAWlN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGxF,KAAKmK,SAASpL,EAAMpK,UAAyB,IAAP8S,EAAgBA,EAAK1I,GAEjJuF,QAAQvF,EAAMpH,OACN6N,EAAIiC,SACyG,UAAnE,UAA3BlS,KAAK0W,WAAWlN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGxF,KAAKoK,QAAQrL,EAAMpH,UAA2B,IAAP8P,EAAgBA,EAAKuE,EACzIzJ,WAAY7L,EAAEiH,MAAMoB,KACpBL,QAAShI,EAAEsJ,KAAKoK,QAAQrL,EAAMpH,KAC9ByM,QAAO,CAACtN,EAAGJ,IAAMI,EAAEoV,OAAOxV,MAEnC4N,SAASvF,EAAMpH,EAAOmO,EAAQ0B,OACtB9Q,EAAInB,KAAK0W,WAAWlN,eACd,IAANrI,EACOiB,EAEJjB,EAAEsJ,KAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,IAEhDlD,iBAAiBvF,OACTyG,SACoC,UAA3BjQ,KAAK0W,WAAWlN,UAA0B,IAAPyG,OAAgB,EAASA,EAAGxF,KAAKqK,iBAAiBtL,IAEtGuF,WAAWvF,EAAMoN,SACPC,EAAS,CAACxV,EAAGK,SAAYuO,EAAIiC,SAAkC,UAAhBxQ,EAAEoV,gBAA6B,IAAP7G,EAAgBA,EAAK,IAA4B,UAAhB5O,EAAEyV,gBAA6B,IAAP5E,EAAgBA,EAAK,IACrJ6E,EAAeN,EAAMzJ,WAAY7L,EAAEiH,MAAMoB,KAAO/I,KAAKoW,UACvDD,GAAoC,IAAxBG,EAAalY,OAClB4X,EAAMhW,KAAKoW,GAAQ,GAEtBE,EAAalY,OAAS,EAAIkY,EAAa,QAAK,GAExDhI,KAAKgG,EAAMvL,KAASwL,UACThV,KAAK0W,WAAWlN,GAAM,GACxBiB,KAAKsK,KAAKA,EAAMvL,KAASwL,yBCvDnCvG,iBAAwB,aAAc,CAAErM,OAAO,qBAC7BmS,eAAuBA,eAAuBA,kBAAqB,QACtFyC,EAAapF,GACbqF,EAAepF,gBAIA,CAACqF,EAAStB,WAWrBuB,EAAaF,EAAaT,WAAWU,EAAQ/N,SAAU,CACzDjK,KAAMiC,EAAEjC,KACR4X,SAAU3V,EAAE2V,SACZ1O,MAAQoB,GAbI,EAAC4N,EAAQhV,QACjBgV,EAAOhP,aACAgP,EAAOhP,MAAMhG,UAEhBgV,EAAOlY,UACN,cAAe6C,MAAMC,QAAQI,OAC7B,eAAkC,iBAAVA,IAAuBL,MAAMC,QAAQI,yBAC3CA,IAAUgV,EAAOlY,OAM3BmY,CAAQlW,EAAGqI,EAAK0G,OACjCzF,KAAMtJ,EAAEsJ,iBAEL6K,OACA6B,GADA,CAEHpI,SAASvF,EAAMpH,EAAOmO,EAAQ0B,OACtBmF,EAASD,EAAWT,WAAWlN,GAAM,UACrC4N,EAAO3M,KAAKkK,WACLvS,EAEJgV,EAAO3M,KAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,IAErDlD,KAAKgG,EAAMvL,KAASwL,OACZ/E,SAC2B,UAAjB8E,EAAKqC,cAA2B,IAAPnH,EAAgBA,EAAK8E,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAMkX,QAAAA,EAAStB,OAAQA,MAAAA,EAAuCA,EAAS,GAAIuB,WAAAA,GAAc3N,KAASwL,aAIlMsC,EAAW1T,GAAO,CAAC6G,EAAMmL,IACpBrB,EAAQgD,WAAW,CACtB,CACIrY,KAAM0E,EACN6G,KAAAA,EACA+M,eAAmBvH,SAA2B,UAAVxM,EAAE,UAAuB,IAAPwM,EAAgBA,EAAKxF,EAAKrB,YAEpF,CACIlK,KAAM,OACNuL,KAAMuM,EAAWrB,SAASlL,GAC1B+M,UAAa/T,EAAI,CAACA,GAAK,KAE5BmS,kBAEgB0B,EAAQ,yBACRA,EAAQ,2BACN,CAACG,EAAYC,EAAYC,IACvCpD,EAAQgD,WAAW,CACtB,CACIrY,KAAM,SACN4X,SAAU,EACVrM,KAAMgN,EACND,UAAarL,OAAOyL,KAAKD,GAAS,IAEtC,CACIzY,KAAM,SACNuL,KAAMiN,EACNF,eAAmBvH,SAAiC,UAAhB0H,EAAQlU,UAAuB,IAAPwM,EAAgBA,EAAK0H,EAAQxL,OAAOyL,KAAKD,GAAS,uBClE1HxL,OAAOsC,eAAeoJ,GAAS,aAAc,CAAEzV,OAAO,oBACpC,EAClB,MAAMoT,GAAS5D,GACTD,GAAcE,cAIF,CAAC+F,EAAM7Y,EAAU6W,IACxBN,OACAE,GAAOC,MADP,CAEHvW,KAAM,IAAM,MACZkK,QAAS,KAAO,IAChB2F,SAASvF,EAAMD,SACL2M,EAAY3M,EAAQ,SACLC,EAAK+J,WACT1U,QAAUqX,EAChBlW,KAEJjB,EAASoX,SAAS3M,EAAM0M,IAEnCtB,UAASpL,EAAMpK,IACJoK,EAAK6F,UAAUjQ,GAE1ByV,QAAUrL,GAASoO,EAAK/C,QAAQrL,EAAM,IACtCuF,SAASvF,EAAMpH,EAAOmO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV/Q,MAChB6P,EAAQM,UAAYZ,GAAYe,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,WAEzE,OAAVhH,GAAmC,iBAAVA,WAClB8R,IAAI1K,EAAM,yBACVpH,QAEL+R,EAAM,UACLyD,KAAKxV,GAAOuC,eACVyO,SAAS5J,EAAM/H,EAAG8O,EAAQ0B,KAC3BxQ,GAAK1C,EAASqU,SAAS5J,EAAK1K,KAAK2C,GAAIW,EAAMX,GAAI8O,EAAQ0B,gBAEpD5Q,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,GAEXpF,iBAAiBvF,OACTyG,SACgF,UAAvE2F,MAAAA,OAAuC,EAASA,EAAOkC,kBAA+B,IAAP7H,EAAgBA,EAAK2H,EAAK9C,iBAAiBtL,EAAK1K,KAAK,MAErJiQ,KAAKgG,EAAMvL,KAASwL,OACZ/E,SACwB,UAAd8E,EAAK5L,WAAwB,IAAP8G,EAAgBA,EAAK8E,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAM4X,KAAAA,EAAM7Y,SAAAA,EAAU6W,OAAQA,MAAAA,EAAuCA,EAAS,IAAMpM,KAASwL,oCChDzLvG,iBAAwB,aAAc,CAAErM,OAAO,iBACjCmS,kBAAqB,QACpCwD,EAAMnG,GACNoG,EAAcnG,GACdoG,EAASlG,gBACO6D,QACd3F,EAAIiC,EAAIC,QACN+F,kBAAkD,EAAStC,EAAOuC,QAA0F,UAApEvC,MAAAA,OAAuC,EAASA,EAAOsC,eAA4B,IAAPjI,GAAgBA,EACpL4F,gBAA8C,EAASD,EAAOuC,OAAS,EAA0E,UAAhEvC,MAAAA,OAAuC,EAASA,EAAOC,WAAwB,IAAP3D,EAAgBA,OACzKxJ,gBAA8C,EAASkN,EAAOuC,OAAS,SAAiF,UAAhEvC,MAAAA,OAAuC,EAASA,EAAOlN,WAAwB,IAAPyJ,EAAgBA,EAAK6D,EAAAA,EACrLC,OAA2E,kBAAzB,EAASL,EAAOC,WAAuF,kBAAzB,EAASD,EAAOlN,YAC/I4M,OACA2C,EAAOxC,MADP,CAEHvW,KAAM,IAAM,SACZkK,QAAS,IAAMyM,EAAM,EAAIA,EAAM,EAC/B9G,SAASvF,EAAMpH,EAAOmO,EAAQ0B,UACtBA,EAAQkB,OAA0B,iBAAV/Q,MAChB6P,EAAQM,UAAYyF,EAAYtF,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,WAElE,iBAAVhH,IACA8R,IAAI1K,EAAM,yBAEZ0O,IAAYE,OAAOC,UAAUjW,KAC3B8R,IAAI1K,EAAM,0BAEZyM,MAAoBJ,GAAOzT,EAAQsG,KACjCwL,IAAI1K,EAAM,qCAAsCpH,EAAOyT,EAAKnN,GAE9DtG,EAAQyT,IACN3B,IAAI1K,EAAM,qCAAsCpH,EAAOyT,GAEzDzT,EAAQsG,KACNwL,IAAI1K,EAAM,oCAAqCpH,EAAOsG,GAE1DtG,GAEX2M,KAAKgG,EAAMvL,KAASwL,OACZsB,SAC2B,UAAjBvB,EAAKuD,cAA2B,IAAPhC,EAAgBA,EAAKvB,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAMkY,QAAAA,EAASrC,IAAAA,EAAKnN,IAAAA,EAAKuN,QAAAA,EAASL,OAAQA,MAAAA,EAAuCA,EAAS,IAAMpM,KAASwL,oBAI1L,EAAGkD,QAAAA,EAASK,OAAAA,KAAaR,EAAI1C,IAAId,EAAQiE,WAAW,CAAEN,QAAAA,SAAqB,CAC5F9E,SAAU,CAAC5J,EAAMpH,EAAOmO,EAAQ0B,OACpBxH,EAAK2I,SAAS5J,EAAMpH,EAAOmO,EAAQ0B,GACtCsG,EAAOE,SAASrW,MACV8R,IAAI1K,EAAM,4BAA6B+O,EAAO/P,KAAK,OAEvDpG,0CChDRqM,iBAAwB,aAAc,CAAErM,OAAO,iBACjCmS,OAAeA,cAAiB,QAC/C0D,EAASrG,GACT8G,EAAS7G,GACT8G,EAAW5G,GACX6G,EAAUC,GACVb,EAAcc,YACHlI,OAAO,iBACTA,OAAO,qBACD,CAACmI,EAAQnD,mBACoDzD,UAA7D6G,QAAShM,GAASkF,IAAQ+G,MAAOxC,GAA4BtE,EAAlB+G,gKAAkB/G,EAAlB,CAAnDgH,KAA0BA,OAC7BC,EAAmB5P,YACN,IAAXwD,SACOkM,QACLG,EAAcX,EAAOY,aAAa9P,EAAMwD,GAAQkD,MAChDwG,EAAaD,EAAM4C,UAClBjE,OAAK8D,GAAkBxC,IAE5B6C,EAAoB,CAAC/P,EAAMgQ,SACzBlD,QACE+C,EAAcrM,EAAS0L,EAAOY,aAAa9P,EAAMwD,GAAQkD,WAAQ,EACjEuJ,EAAazM,GAAwC,UAAxByJ,EAAM4C,UAAiC,IAAP/C,EAAgBA,EAAW,GACxFoD,EAAWvN,OAAOyL,KAAK6B,GACvBE,gBAA0D,EAAS/D,EAAO3V,SAC5E,IAAIyY,EAAO/I,UAAUnG,EAAKoQ,WAAY,IAAIlB,EAAOvJ,KAAK3F,EAAK+J,WAAY,CAACqC,EAAO3V,WAAauJ,wBAChC,EAASoM,EAAOiE,uBAAyBR,GAAeK,EAASjB,SAASe,GACtIG,EAAgBrK,YAAY+J,GAAeM,GACzB7a,KAAK0a,WAEvBlE,OACD2C,EAAOxC,MADN,CAEJvW,KAAM,IAAM,SACZsV,SAAU,IAAMoB,MAAAA,OAAuC,EAASA,EAAOpB,SACvEpL,QAAS,KAAO,IAChB2F,cACW/O,KAAK2U,YAEhB5F,SAASvF,EAAMD,SACL2M,EAAY3M,EAAQ,EACpBuQ,EAAetQ,EAAK+J,cACtBuG,EAAajb,QAAUqX,SAChBlW,WAGLyK,EADe2O,EAAgB5P,EAAKxG,MAAM,EAAGkT,IACzB4D,EAAa5D,WAChCzL,MAAAA,OAAmC,EAASA,EAAK0L,SAAS3M,EAAM0M,IAE3EtB,UAASpL,EAAMpK,IACJma,EAAkB/P,EAAMpK,EAAIgS,YAEvCrC,QAAQvF,EAAMpH,SACJ2X,EAAeX,EAAgB5P,GAC/BwQ,EAAe7N,OAAOyL,KAAsB,iBAAVxV,EAAqBA,EAAQ,WAC9D+J,OAAOyL,KAAKmC,GACd/M,WAAY+M,EAAatY,GAAGgT,QAAQjL,KACpCwD,YAAagN,EAAavB,SAAShX,KACnC0H,IAAIyP,EAAQqB,cAErBlL,SAASvF,EAAMpH,EAAOmO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV/Q,MAChB6P,EAAQM,UAAYyF,EAAYtF,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,WAElE,iBAAVhH,GAAgC,OAAVA,WACtB8R,IAAI1K,EAAM,yBACVpH,MAEP2X,EAAeb,KACflM,EAAQ,OACFkN,EAAaxB,EAAOY,aAAa9P,EAAMwD,OACzCqM,EAAca,EAAWhK,SACzB1G,EAAKmH,OAAOuJ,EAAWpL,OAAQ,OACzBqL,EAAcD,EAAWtG,SACjBsF,EAAciB,GAAa/G,SAAS5J,EAAK1K,KAAKqb,GAAc/X,EAAM+X,GAAc,IAAIxB,EAAS7H,OAAUmB,KAE1GmD,OAAK2E,GAAiBtD,EAAM4C,UAEzCe,EAAajO,OAAOyL,KAAKmC,GACzBM,EAAaD,EAAWpN,YAAa+M,EAAatY,GAAGkT,aACrDiD,EAAO,IAAI0C,IAAI,IAAID,KAAelO,OAAOyL,KAAKxV,KAC9C+R,EAAM,KACPxP,gBACGyV,EAAW3B,SAAShX,GAAI,KACnBsY,EAAatY,GAAGgT,QAAQjL,gBAEvB+Q,EAAWR,EAAatY,GAAG2R,SAAS5J,EAAK1K,KAAK2C,GAAIW,EAAMX,GAAI8O,EAAQ0B,IACrE8H,EAAatY,GAAGiT,QAAUqF,EAAatY,GAAGkT,kBAC1B,OACT5S,MAAMC,QAAQuY,IAAiC,IAApBA,EAAS1b,QACpC0b,EAAS1a,cAAgBsM,QAA2C,IAAjCA,OAAOyL,KAAK2C,GAAU1b,eAC1DsV,EAAI1S,MAGPA,GAAK8Y,IACJX,WAAWzJ,IAAI3G,EAAK1K,KAAK2C,GAAI8Y,GAAU,WAI5C9Y,GAAKW,EAAMX,gBAGZJ,KAAK8K,OAAOiI,sBAAsBhS,KACrCf,GAAKe,EAAMf,UAEZ8S,GAEXpF,KAAKgG,EAAMvL,KAASwL,OACZsB,SAC2B,UAAjBvB,EAAKyF,cAA2B,IAAPlE,EAAgBA,EAAKvB,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAM+Y,OAAQG,EAAetD,OAAQA,MAAAA,EAAuCA,EAAS,GAAI5I,OAAAA,EAAQyJ,MAAAA,EAAO2C,gBAAAA,EAAiBG,kBAAAA,GAAqB/P,KAASwL,sBC3G7P7I,OAAOsC,eAAegM,GAAS,aAAc,CAAErY,OAAO,sBAClC,eACA,CAACsY,EAAS1I,KAAY,CACtCjD,KAAKvF,UACMkR,EAAQxK,IAAI8B,GAAQ9S,KAAKwI,KAAK1H,KAA9B0a,CAAoClR,IAE/CuF,SAASvF,UACEkR,EAAQxK,IAAI8B,GAAQwC,SAAS9M,KAAK1H,KAAlC0a,CAAwClR,IAEnDuF,iBACW2L,EAAQxK,IAAI8B,GAAQ5I,QAAQ1B,KAAK1H,KAAjC0a,IAEXC,WAAUnR,EAAMpH,IACLsY,EAAQxK,IAAI8B,GAAQ2I,UAAUnR,EAAMpH,GAE/C2M,QAAQvF,UACGkR,EAAQxK,IAAI8B,GAAQyC,QAAQ/M,KAAK1H,KAAjC0a,CAAuClR,IAElDuF,cACW2L,EAAQxK,IAAI8B,GAAQ0C,KAAKhN,KAAK1H,KAA9B0a,IAEX3L,kBACW2L,EAAQxK,IAAI8B,GAAQ2C,SAASjN,KAAK1H,KAAlC0a,IAEX3L,SAASvF,EAAMD,UACJmR,EAAQxK,IAAI8B,GAAQmE,SAASzO,KAAK1H,KAAlC0a,CAAwClR,EAAMD,IAEzDwF,SAASvF,EAAMpK,UACJsb,EAAQxK,IAAI8B,GAAQ4C,SAASlN,KAAK1H,KAAlC0a,CAAwClR,EAAMpK,IAEzD2P,QAAQvF,EAAMpH,UACHsY,EAAQxK,IAAI8B,GAAQ6C,QAAQnN,KAAK1H,KAAjC0a,CAAuClR,EAAMpH,IAExD2M,SAASvF,EAAMpH,EAAOmO,EAAQ0B,UACnByI,EAAQxK,IAAI8B,GAAQoB,SAAS1L,KAAK1H,KAAlC0a,CAAwClR,EAAMpH,EAAOmO,EAAQ0B,IAExElD,iBAAiBvF,UACNkR,EAAQxK,IAAI8B,GAAQ8C,iBAAiBpN,KAAK1H,KAA1C0a,CAAgDlR,IAE3DuF,KAAKgG,EAAMvL,KAASwL,UACT0F,EAAQxK,IAAI8B,GAAQ+C,KAAKrN,KAAK1H,KAA9B0a,CAAoC3F,EAAMvL,KAASwL,IAE9DjG,WAAWvF,EAAMoN,UACN8D,EAAQxK,IAAI8B,GAAQ0E,WAAWhP,KAAK1H,KAApC0a,CAA0ClR,EAAMoN,IAE3D7H,UAAUvF,EAAMpH,UACLsY,EAAQxK,IAAI8B,GAAQiD,UAAUvN,KAAK1H,KAAnC0a,CAAyClR,EAAMpH,IAE1D2M,OAAOvF,EAAMpH,UACFsY,EAAQxK,IAAI8B,GAAQkD,OAAOxN,KAAK1H,KAAhC0a,CAAsClR,EAAMpH,gBCjD3D+J,OAAOsC,eAAemM,GAAS,aAAc,CAAExY,OAAO,uBACjC,EACrB,MAAMoT,GAAS5D,GACTE,GAAUD,GACVF,GAAcI,GACd8I,GAAUzY,QACR6N,WACuB,UAAX7N,SAA0B,IAAP6N,OAAgB,EAASA,EAAG6K,OAE7DC,GAAe3Y,QACb6N,WACuB,UAAX7N,SAA0B,IAAP6N,OAAgB,EAASA,EAAG+K,0BAK9C,CAACC,EAAarF,WACzBsF,EAAY,SACVjL,EAAIiC,EAAIC,EAAIC,KACZyI,GAAOjF,SACoB,iBAAhBA,EAAOkF,KAC2F,UAA5FG,MAAAA,OAAiD,EAASA,EAAY/K,IAAI0F,EAAOkF,aAA0B,IAAP7K,EAAgBA,EAAK,GAEnI2F,EAAOkF,QAEyD,2BAA/B,EAASlF,EAAOoF,WAA2B,IACjD,iBAAvBpF,EAAOnF,OAAO0K,KAAmB,IACpCvF,EAAOnF,OAAO2K,kBAC6H,UAA9HH,MAAAA,OAAiD,EAASA,EAAY/K,IAAI,OAAO0F,EAAOnF,OAAO0K,QAAQhS,QAAS,IAAIjI,aAAyB,IAAPgR,EAAgBA,EAAK,SAEtKmJ,EAAWzF,EAAOnF,OAAO0K,KAAKrY,QAAQ,MAAO,UAC5C,IACA8S,EAAOnF,OAAO6K,UAAqI,UAApHL,MAAAA,OAAiD,EAASA,EAAY/K,IAAI,OAAOmL,KAAYlS,QAAS,IAAIjI,aAAyB,IAAPiR,EAAgBA,EAAU,MACtF,UAAzF8I,MAAAA,OAAiD,EAASA,EAAY/K,IAAImL,UAA8B,IAAPjJ,EAAgBA,EAAK,WAGhIwD,EAAOnF,OAAO0K,WAElB,WAEJ7F,OACAE,GAAOC,MADP,CAEHvW,KAAM,IAAM,SACZkK,QAAS,IAAM,GACf2F,SAASvF,EAAMpH,EAAOmO,EAAQ0B,MACtBA,EAAQkB,OAA0B,iBAAV/Q,SACPmQ,UAAYZ,GAAYe,UAAUH,UAAUvS,KAAKoJ,WAAapJ,KAAKoJ,iBAAc,GAEjF,iBAAVhH,WACA8R,IAAI1K,EAAM,yBACVpH,KAEP2Y,GAAYnF,GAAS,IACI,aAArBA,EAAOoF,WAA4B5Y,EAAMvD,OAAS,IAAMuD,EAAMqW,SAAS,SAC/DrW,EAAMqN,WAAW,KACnB,cAAgBrN,EAAMY,MAAM,GAC5B,aAAeZ,GAEA,aAArBwT,EAAOoF,WAA4C,iBAAT5Y,EAAmB,KACzDqR,EAAKrR,KACLA,EAAMqN,WAAW,KAAM,IACW,iBAAvBmG,EAAOnF,OAAO0K,MAAqBvF,EAAOnF,OAAO0K,KAAK1L,WAAW,kBACjEyE,IAAI1K,EAAM,+BACVpH,MAEDwT,EAAOnF,OAAO6K,WAAa1F,EAAOnF,OAAO2K,oBACxClH,IAAI1K,EAAM,wBACVpH,IAENqR,EAAGzQ,MAAM,WAET4S,EAAOnF,OAAO2K,oBACZlH,IAAI1K,EAAM,sBACVpH,MAENqR,EAAGrL,MAAM,iDACH8L,IAAI1K,EAAM,mCACVpH,KAGU,aAArBwT,EAAOoF,YAA4D,iBAAvBpF,EAAOnF,OAAO0K,MAAqBvF,EAAOnF,OAAO0K,KAAK1L,WAAW,SACpGgB,OAAO6K,UAAY1F,EAAOnF,OAAO2K,aAAehZ,EAAMqN,WAAW,MAC1EmG,EAAOnF,OAAO8K,cACd3F,EAAOnF,OAAO+K,qBACPpZ,KAGVyY,GAAOjF,IAAWA,EAAO6F,kBACnBrZ,QAELmW,EAAS2C,WACX3C,EAAO1Z,OAAS,IAAM0Z,EAAOE,SAASrW,MAC/B8R,IAAI1K,EAAM,4BAA6BpH,GAE3CA,GAEXyS,QAAS,IAAMqG,IAAY/R,IAAI2I,GAAQmI,aACvCnF,qBACWiG,GAAYnF,GAAUA,OAAS,EAE1C7G,KAAKgG,EAAMvL,KAASwL,OACZ/E,SAC2B,UAAjB8E,EAAK2G,cAA2B,IAAPzL,EAAgBA,EAAK8E,EAAK3U,MAAMsF,KAAKqP,EAAM,CAAEtK,KAAMzK,KAAMkb,UAAAA,EAAWtF,OAAAA,GAAUpM,KAASwL,iBCtG1I7I,OAAOsC,eAAekN,GAAS,aAAc,CAAEvZ,OAAO,cCAtD+J,OAAOsC,eAAemN,GAAS,aAAc,CAAExZ,OAAO,iDACA,oBAItD,MACI2M,mBACSsM,SAAW,GAEpBtM,SAAS0E,EAAIhJ,QACJ4Q,SAAS5H,GAAMhJ,EAExBsE,IAAI0E,SACMhJ,EAAOzK,KAAKqb,SAAS5H,eACd,IAAThJ,WACQ+F,MAAM,2BAA2BiD,+BAEtChJ,0BAOf,MACIsE,mBACSsM,SAAW,GAEpBtM,SAAS0E,EAAI8C,QACJ8E,SAAS5H,GAAM8C,EAExBxH,IAAI0E,SACM8C,EAAOvW,KAAKqb,SAAS5H,eACd,IAAT8C,WACQsF,KAAK,+BAA+BpI,+BAEzC8C,MAAAA,EAAmCA,EAAO,eCpCzDpK,OAAOsC,eAAeqN,GAAS,aAAc,CAAE1Z,OAAO,oBCAlD2Z,EAAmB/b,IAAQA,GAAKgc,yBAA4B5P,OAAU,SAAS3N,EAAGkD,EAAGF,EAAGwa,QAC7E,IAAPA,MAAuBxa,UACpBgN,eAAehQ,EAAGwd,EAAI,CAAEC,YAAY,EAAMhM,IAAK,kBAAoBvO,EAAEF,OAC1E,SAAShD,EAAGkD,EAAGF,EAAGwa,QACT,IAAPA,MAAuBxa,KACzBwa,GAAMta,EAAEF,KAEV0a,EAAgBnc,IAAQA,GAAKmc,cAAiB,SAASxa,EAAGya,WACjD7a,KAAKI,EAAa,YAANJ,GAAoB6a,EAAQC,eAAe9a,MAAoB6a,EAASza,EAAGJ,WAE7FkN,iBAAwB,aAAc,CAAErM,OAAO,MACzCwP,GAA8B2C,KAC9B1C,GAAyB0C,KACzBxC,GAA2BwC,KAC3BsE,GAAyBtE,KACzBuE,GAAgCvE,KAChC+H,GAA+B/H,KAC/BgI,GAA6BhI,KAC7BiI,GAA4BjI,KAC5BkI,GAA+BlI,KAC/BmI,GAA+BnI,KAC/BoI,GAA8BpI,KAC9BqI,GAA+BrI,KAC/BsI,GAA+BtI,KAC/BuI,GAAmBvI,KACnBwI,GAAyBxI,KACzByI,GAA+BzI,YC1B5C0I,GAUA,SAAehV,YACNA,GAAQ,IAENiV,QA4EX,SAAsBjV,OAChBkV,EAAO,GACPC,EAAU,UAEPnV,EAAKoV,iBA8DS5e,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa6e,YAAa,IAAIA,KAAK7e,MACnCsD,MAAMC,QAAQvD,UAAW8e,EAAW9e,EAAG+e,MACvC/e,aAAagf,WAAY,IAAIA,IAAIF,EAAWxb,MAAM2P,KAAKjT,GAAI+e,OAC3D/e,aAAa6b,WAAY,IAAIA,IAAIiD,EAAWxb,MAAM2P,KAAKjT,GAAI+e,QAC3DE,EAAK,WAGAjc,OAFJ3C,KAAKL,KACFK,KAAK4e,GACCjf,EAAG,KACXkf,EAAMlf,EAAEgD,MACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,UACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,WACRA,aAAeF,MACrBhc,GAAK,IAAIgc,IAAIF,EAAWxb,MAAM2P,KAAKiM,GAAMH,YACnCG,aAAerD,MACrB7Y,GAAK,IAAI6Y,IAAIiD,EAAWxb,MAAM2P,KAAKiM,GAAMH,YACnCI,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,OACd,KACD9f,EAAIsf,EAAKhd,QAAQwd,KAEhBlc,QADD5D,EACMuf,EAAQvf,GAER2f,EAAWG,aAIpB7O,QACGA,MACD4O,cApEOjf,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa6e,YAAa,IAAIA,KAAK7e,MACnCsD,MAAMC,QAAQvD,UAAW8e,EAAW9e,EAAGsf,MACvCtf,aAAagf,WAAY,IAAIA,IAAIF,EAAWxb,MAAM2P,KAAKjT,GAAIsf,OAC3Dtf,aAAa6b,WAAY,IAAIA,IAAIiD,EAAWxb,MAAM2P,KAAKjT,GAAIsf,QAC3DL,EAAK,WAGAjc,OAFJ3C,KAAKL,KACFK,KAAK4e,GACCjf,MAC6B,IAArC0N,OAAOkQ,eAAe3W,KAAKjH,EAAGgD,QAC9Bkc,EAAMlf,EAAEgD,MACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,UACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,WACRA,aAAeF,MACrBhc,GAAK,IAAIgc,IAAIF,EAAWxb,MAAM2P,KAAKiM,GAAMI,YACnCJ,aAAerD,MACrB7Y,GAAK,IAAI6Y,IAAIiD,EAAWxb,MAAM2P,KAAKiM,GAAMI,YACnCH,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,OACd,KACD9f,EAAIsf,EAAKhd,QAAQwd,KAEhBlc,QADD5D,EACMuf,EAAQvf,GAERkgB,EAAMJ,aAIf7O,QACGA,MACD4O,cAzDYrc,EAAG0O,WAClB6H,EAAOzL,OAAOyL,KAAKvW,GACnB2c,EAAK,IAAIjc,MAAM6V,EAAK/Y,QACfhB,EAAI,EAAGA,EAAI+Z,EAAK/Y,OAAQhB,IAAK,KAChC4D,EAAImW,EAAK/Z,GACT8f,EAAMtc,EAAEI,MACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,UACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,WACRC,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,OACd,KACDpU,EAAQ4T,EAAKhd,QAAQwd,KAEpBlc,QADD8H,EACM6T,EAAQ7T,GAERwG,EAAG4N,WAIVK,GAvGgBC,CAAYhW,GAC9BA,EAAKoV,iBAgDS5e,MACF,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa6e,YAAa,IAAIA,KAAK7e,MACnCsD,MAAMC,QAAQvD,UAAW8e,EAAW9e,EAAG+e,MACvC/e,aAAagf,WAAY,IAAIA,IAAIF,EAAWxb,MAAM2P,KAAKjT,GAAI+e,OAC3D/e,aAAa6b,WAAY,IAAIA,IAAIiD,EAAWxb,MAAM2P,KAAKjT,GAAI+e,QAC3DE,EAAK,WACAjc,KAAKhD,EAAG,KACXkf,EAAMlf,EAAEgD,GACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,EACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,GACRA,aAAeF,MACrBhc,GAAK,IAAIgc,IAAIF,EAAWxb,MAAM2P,KAAKiM,GAAMH,IACnCG,aAAerD,MACrB7Y,GAAK,IAAI6Y,IAAIiD,EAAWxb,MAAM2P,KAAKiM,GAAMH,IACnCI,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,KAEhBlc,GAAK+b,EAAWG,UAGhBD,cAlDOjf,MACG,iBAANA,GAAwB,OAANA,SAAmBA,KAC5CA,aAAa6e,YAAa,IAAIA,KAAK7e,MACnCsD,MAAMC,QAAQvD,UAAW8e,EAAW9e,EAAGsf,MACvCtf,aAAagf,WAAY,IAAIA,IAAIF,EAAWxb,MAAM2P,KAAKjT,GAAIsf,OAC3Dtf,aAAa6b,WAAY,IAAIA,IAAIiD,EAAWxb,MAAM2P,KAAKjT,GAAIsf,QAC3DL,EAAK,WACAjc,KAAKhD,MAC6B,IAArC0N,OAAOkQ,eAAe3W,KAAKjH,EAAGgD,QAC9Bkc,EAAMlf,EAAEgD,GACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,EACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,GACRA,aAAeF,MACrBhc,GAAK,IAAIgc,IAAIF,EAAWxb,MAAM2P,KAAKiM,GAAMI,IACnCJ,aAAerD,MACrB7Y,GAAK,IAAI6Y,IAAIiD,EAAWxb,MAAM2P,KAAKiM,GAAMI,IACnCH,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,KAEhBlc,GAAKsc,EAAMJ,UAGXD,cA3CYrc,EAAG0O,WAClB6H,EAAOzL,OAAOyL,KAAKvW,GACnB2c,EAAK,IAAIjc,MAAM6V,EAAK/Y,QACfhB,EAAI,EAAGA,EAAI+Z,EAAK/Y,OAAQhB,IAAK,KAChC4D,EAAImW,EAAK/Z,GACT8f,EAAMtc,EAAEI,GACO,iBAARkc,GAA4B,OAARA,IAC1Blc,GAAKkc,EACCA,aAAeL,OACrB7b,GAAK,IAAI6b,KAAKK,GACRC,YAAYC,OAAOF,KACzBlc,GAAKqc,GAAWH,KAEhBlc,GAAKsO,EAAG4N,UAGRK,IA9BX,YAAqBL,UACfA,aAAeO,OACVA,OAAOxM,KAAKiM,GAGd,IAAIA,EAAI9d,YAAY8d,EAAIQ,OAAOnb,QAAS2a,EAAIS,WAAYT,EAAI9e,wBCPrEsN,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,wBAEQA,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,mCAEQA,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,gCAEQA,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,iCAEQA,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,cAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aA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b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,cAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,+DCngBD7P,iBAAwB,aAAc,CAAErM,OAAO,wBAC1BmS,aAAqBA,QAAgBA,uBAA+BA,uBAA+BA,uBAA+BA,uBAA+BA,sBAAyB,QAChNgK,EAAS3M,0BACgB,CAC3BolB,WAAW,EACXC,SAAS,EACTC,aAAa,EACbC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,iBAAkB,EAClBC,cAAe,EACfC,eAAgB,IAChBC,WAAY,yDAEe,CAC3B7xB,KAAM,sBACN8xB,0BACAC,uBAAwB,EACxBC,UAAW,GACXC,wBAAwB,EACxBC,MAAO,CACHC,eA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BACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,YAAa,CAC9B,sBACA,uBACA,wBAEQA,SAAS,iBAAkB,CACnC,sBACA,uBACA,wBAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,iCAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,8BAEQA,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,8BAEQA,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,gCAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,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AS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,0BC1WRnS,OAAOsC,eAAewW,GAAS,aAAc,CAAE7iB,OAAO,mCACrB,EACjC,MAAM8iB,GAAStT,6BACf,SAAgC8I,EAASO,SAC/BwD,EAAYyG,GAAOzK,UAAU/S,UAAK,EAAWgT,GAC7C8D,EAAa0G,GAAOtK,WAAWlT,UAAK,EAAWuT,GAC/Ckf,EAAkBjV,GAAO3N,WAAW,CACtC,CACIrY,KAAM,SACNuL,KAAMya,GAAOrG,IAAIJ,EAAU,qBAC3BjH,eAAmBvH,EAAIiC,SAAoF,UA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sBAAsBskB,GAAaxd,IAMnC,yBALA,iBACUoC,EAAc,IAAIiK,GAAOyR,6BACjBC,gBAAgB3b,GACvBA,GAsBX4b,iBALA,SAAoB5b,SACVP,EAAU,IAAIwK,GAAO4R,yBACjBC,YAAYrc,EAASO,GACxBP,iMChDXvO,OAAOsC,eAAe4P,GAAS,aAAc,CAAEjc,OAAO,4BAC5B,qBAC1B,SAAyB6Y,KACTqD,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,6BACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,gCACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,uBACA,2BACA,gCAEQA,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,cAEQA,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,WAEQA,SAAS,WAAY,CAC7B,WACA,WACA,YACA,gBAEQA,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,oBAEQA,SAAS,cAAe,CAChC,eACA,OACA,SACA,oBAEQA,SAAS,iCAAkC,CACnD,gCACA,sCACA,0BAEQA,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,mBAEQA,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,cAEQA,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,sBAEQA,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,UACA,kBAEQA,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,uBAEQA,SAAS,kBAAmB,CACpC,MACA,aAEQA,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sBAEQA,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,aAEQA,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,YAEQA,SAAS,eAAgB,CACjC,QACA,cAEQA,SAAS,YAAa,CAC9B,OACA,KACA,QACA,OACA,QACA,WAEQA,SAAS,OAAQ,CACzB,IACA,IACA,QAEQA,SAAS,mBAAoB,CACrC,wBACA,uBACA,wBACA,uBACA,MACA,OACA,SACA,YAEQA,SAAS,YAAa,CAC9B,QACA,WAEQA,SAAS,wBAAyB,CAC1C,QACA,WACA,SACA,OACA,UACA,WACA,oBACA,SACA,UACA,WACA,aACA,OACA,UACA,WACA,WAEQA,SAAS,eAAgB,CACjC,UACA,WACA,UACA,WACA,6BACA,iBACA,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"} \ No newline at end of file diff --git a/changelog/index.html b/changelog/index.html index 5147599e..bc7af293 100644 --- a/changelog/index.html +++ b/changelog/index.html @@ -17,11 +17,11 @@ - Technical Changelog Minecraft 1.17, 1.18, latest + Technical Changelog Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/dimension-type/index.html b/dimension-type/index.html index 70986fa7..d7b88259 100644 --- a/dimension-type/index.html +++ b/dimension-type/index.html @@ -17,11 +17,11 @@ - Dimension Type Generator Minecraft 1.17, 1.18, latest + Dimension Type Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/dimension/index.html b/dimension/index.html index 2a43abe1..545b8e0d 100644 --- a/dimension/index.html +++ b/dimension/index.html @@ -17,11 +17,11 @@ - Dimension Generator Minecraft 1.17, 1.18, latest + Dimension Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/index.html b/index.html index b9a0bf7d..8f549160 100644 --- a/index.html +++ b/index.html @@ -20,8 +20,8 @@ Data Pack Generators Minecraft 1.15, 1.16, 1.17 - - + + diff --git a/item-modifier/index.html b/item-modifier/index.html index 29fb10f8..eabd77c7 100644 --- a/item-modifier/index.html +++ b/item-modifier/index.html @@ -17,11 +17,11 @@ - Item Modifier Generator Minecraft 1.17, 1.18, latest + Item Modifier Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/loot-table/index.html b/loot-table/index.html index 584efa44..a1eb0bf7 100644 --- a/loot-table/index.html +++ b/loot-table/index.html @@ -17,11 +17,11 @@ - Loot Table Generator Minecraft 1.17, 1.18, latest + Loot Table Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/predicate/index.html b/predicate/index.html index 8b29f718..1601f57b 100644 --- a/predicate/index.html +++ b/predicate/index.html @@ -17,11 +17,11 @@ - Predicate Generator Minecraft 1.17, 1.18, latest + Predicate Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/recipe/index.html b/recipe/index.html index c4a9a966..3f0c9d8f 100644 --- a/recipe/index.html +++ b/recipe/index.html @@ -17,11 +17,11 @@ - Recipe Generator Minecraft 1.17, 1.18, latest + Recipe Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/sounds/index.html b/sounds/index.html index 063599b1..b5a91914 100644 --- a/sounds/index.html +++ b/sounds/index.html @@ -17,11 +17,11 @@ - Sound Explorer Minecraft 1.17, 1.18, latest + Sound Explorer Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/world/index.html b/world/index.html index 2e01d40f..f0cef925 100644 --- a/world/index.html +++ b/world/index.html @@ -17,11 +17,11 @@ - World Settings Generator Minecraft 1.17, 1.18, latest + World Settings Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html index f0a1f37d..eebbb3fb 100644 --- a/worldgen/biome/index.html +++ b/worldgen/biome/index.html @@ -17,11 +17,11 @@ - Biome Generator Minecraft 1.17, 1.18, latest + Biome Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html index 13409dc1..3db85bc5 100644 --- a/worldgen/carver/index.html +++ b/worldgen/carver/index.html @@ -17,11 +17,11 @@ - Carver Generator Minecraft 1.17, 1.18, latest + Carver Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/density-function/index.html b/worldgen/density-function/index.html new file mode 100644 index 00000000..760449b0 --- /dev/null +++ b/worldgen/density-function/index.html @@ -0,0 +1,31 @@ + + + + + + + Density Function Generator Minecraft 1.18.2 + + + + + + + +
    + + + diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html index 39bc7cdf..66d6d944 100644 --- a/worldgen/feature/index.html +++ b/worldgen/feature/index.html @@ -17,11 +17,11 @@ - Feature Generator Minecraft 1.17, 1.18, latest + Feature Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/index.html b/worldgen/index.html index 3be16f35..2b0a9a60 100644 --- a/worldgen/index.html +++ b/worldgen/index.html @@ -17,11 +17,11 @@ - Worldgen Generators Minecraft 1.17, 1.18, latest + Worldgen Generators Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html index b5151f2c..23f1f26f 100644 --- a/worldgen/noise-settings/index.html +++ b/worldgen/noise-settings/index.html @@ -17,11 +17,11 @@ - Noise Settings Generator Minecraft 1.17, 1.18, latest + Noise Settings Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/noise/index.html b/worldgen/noise/index.html index fb6176fc..4f7ad70a 100644 --- a/worldgen/noise/index.html +++ b/worldgen/noise/index.html @@ -17,11 +17,11 @@ - Noise Generator Minecraft 1.18, latest + Noise Generator Minecraft 1.18, 1.18.2 - - + + diff --git a/worldgen/placed-feature/index.html b/worldgen/placed-feature/index.html index a3adf2d7..df49e522 100644 --- a/worldgen/placed-feature/index.html +++ b/worldgen/placed-feature/index.html @@ -17,11 +17,11 @@ - Placed Feature Generator Minecraft 1.18, latest + Placed Feature Generator Minecraft 1.18, 1.18.2 - - + + diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html index 3181459e..ee3a068b 100644 --- a/worldgen/processor-list/index.html +++ b/worldgen/processor-list/index.html @@ -17,11 +17,11 @@ - Processor List Generator Minecraft 1.17, 1.18, latest + Processor List Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html index feb72c88..760633cc 100644 --- a/worldgen/structure-feature/index.html +++ b/worldgen/structure-feature/index.html @@ -17,11 +17,11 @@ - Structure Feature Generator Minecraft 1.17, 1.18, latest + Structure Feature Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/structure-set/index.html b/worldgen/structure-set/index.html new file mode 100644 index 00000000..0ea8d375 --- /dev/null +++ b/worldgen/structure-set/index.html @@ -0,0 +1,31 @@ + + + + + + + Structure Set Generator Minecraft 1.18.2 + + + + + + + +
    + + + diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html index f7e0d643..0e01f9c5 100644 --- a/worldgen/surface-builder/index.html +++ b/worldgen/surface-builder/index.html @@ -17,11 +17,11 @@ - Surface Builder Generator Minecraft 1.17, 1.18, latest + Surface Builder Generator Minecraft 1.17, 1.18, 1.18.2 - - + + diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html index a8663270..86508698 100644 --- a/worldgen/template-pool/index.html +++ b/worldgen/template-pool/index.html @@ -17,11 +17,11 @@ - Template Pool Generator Minecraft 1.17, 1.18, latest + Template Pool Generator Minecraft 1.17, 1.18, 1.18.2 - - + +